Сборка умного шлема в домашних условиях

Шлем имеет огромное значение для байкера, и большую часть времени мы видели, что он спасал жизни людей. Если человек носит шлем, риск травм головы и головного мозга значительно снижается. Обычные шлемы, которые легко доступны на рынке, не обеспечивают 100% безопасность из-за отсутствия функции обнаружения алкоголя, отсутствия уведомления после аварии и т. д. Функции, которые я упомянул, доступны в умных шлемах, которые носят в основном тяжелые байкеры и стоит около 300-400 долларов. Имея это в виду, сегодня я разработаю недорогой смарт-шлем, который будет иметь такие функции, как обнаружение алкоголя, уведомление об авариях, GPS-трекер и т. д. / она может делать некоторые программные симуляции. Следуйте процедуре, приведенной ниже, шаг за шагом, чтобы завершить этот проект.

Умный шлемУмный шлем

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Как собрать основные электронные компоненты с модулем GSM?

Перед началом этого проекта лучше нарисовать грубый эскиз шлема в блокноте, потому что это позволит нам лучше понять размещение компонентов и нам будет легко собрать схему. Отличный подход перед началом работы — составить полный список всех компонентов, чтобы сэкономить время и избежать вероятности застревания в середине проекта. Полный список всех компонентов, которые легко доступны на рынке, приведен ниже:

Шаг 1: Используемые компоненты (аппаратное обеспечение)

Шаг 2: Используемые компоненты (программное обеспечение)

  • Proteus 8 Professional (можно скачать с Здесь)

Шаг 3: Блок-схема

Чтобы хорошо продемонстрировать работу шлема, я сделал блок-схему, показанную ниже:

Блок-схема

Шаг 4: Принцип работы

В проекте можно использовать все типы плат Arduino, но я предпочел Arduino Nano, потому что две из них будут размещены внутри шлема и требуют меньше места. Я использовал датчик алкоголя MQ-3 для определения количества алкоголя, которое выпил водитель, и этот уровень отображается двухцветным светодиодом. Если водитель принял большое количество алкоголя, светодиод загорается красным, а SMS-уведомление отправляется на номер, указанный в коде, через GPS. Если светодиод горит желтым цветом, это означает, что уровень алкоголя умеренный, а если он горит зеленым цветом, это означает, что водитель не пьян. Таким образом, обеспечивается безопасность водителя, а риск аварии сводится к минимуму. Ультразвуковой датчик будет размещен на задней части шлема и будет постоянно рассчитывать расстояние между водителем и транспортными средствами сзади. Если транспортное средство приближается к гонщику на очень высокой скорости, ультразвуковой датчик отправит сигнал на Arduino, чтобы включить зуммер, и, следовательно, гонщик отойдет в сторону и пропустит транспортное средство. Я включил модуль GPS для отправки предупреждений на определенный номер мобильного телефона в случае аварии. Для обнаружения аварии в схему включается датчик вибрации, который настраивается на определенный уровень вибрации и сразу дает сигнал GSM модулю отправить уведомление на определенные номера в качестве вызова помощи. В этом проекте будут использоваться два Arduino. Один будет подключен к ультразвуковому датчику и датчику алкоголя, а другой будет подключен к модулю GSM и датчику вибрации. Внутри шлема будут размещены две отдельные цепи, которые будут подключены к одной и той же батарее. Примечание. Конденсатор переменной емкости, присутствующий в датчике вибрации, будет настроен.

Шаг 5: Сборка схемы на Proteus

  1. После загрузки и установки программного обеспечения Proteus откройте его. Откройте новую схему, щелкнув значок ISIS в меню.Новая схема
  2. Когда появится новая схема, щелкните значок P в боковом меню. Откроется окно, в котором вы можете выбрать все компоненты, которые будут использоваться.
  3. Теперь введите название компонентов, которые будут использоваться для создания схемы. Компонент появится в списке справа.Выбор компонентов
  4. Точно так же, как и выше, ищите все компоненты, как указано выше. Они появятся в списке устройств.Список компонентов

Шаг 6: Принципиальные схемы

Соберите свою аппаратную схему в соответствии со схемами, показанными ниже:

  1. Схема №1:Принципиальная электрическая схема
  2. Схема № 2:Принципиальная электрическая схема

Шаг 7: Начало работы с Ардуино

Если вы раньше не были знакомы с Arduino IDE, не волнуйтесь, потому что ниже вы можете увидеть четкие шаги записи кода на плате микроконтроллера с помощью Arduino IDE. Вы можете загрузить последнюю версию Arduino IDE с здесь и выполните следующие действия:

  1. Подключите плату Arduino Nano к ноутбуку и откройте панель управления. в панели управления нажмите «Оборудование и звук». Теперь нажмите «Устройства и принтеры». Здесь найдите порт, к которому подключена ваша плата микроконтроллера. В моем случае это COM14, но на разных компьютерах он разный.Поиск порта
  2. Нам нужно будет включить библиотеку для использования модуля GSM. Перейдите в Sketch > Включить библиотеку > Добавить библиотеку .ZIP.Включить библиотеку
  3. Щелкните меню «Инструменты» и установите для платы Arduino Nano.Настройка доски
  4. В том же меню инструментов установите для процессора значение ATmega328P (старый загрузчик).Настройка процессора
  5. В том же меню «Инструменты» установите порт на номер порта, который вы наблюдали ранее в «Устройствах и принтерах».Настройка порта
  6. Загрузите код, прикрепленный ниже, и вставьте его в свою среду разработки Arduino IDE. Нажмите кнопку загрузки, чтобы записать код на плату микроконтроллера.Загрузить

Шаг 8: Код проекта

Код немного длинный, но он действительно прост. Некоторые из его фрагментов объясняются ниже:

1. На старте включены библиотеки, чтобы мы могли легко общаться со специальными периферийными устройствами.

#include “Adafruit_FONA.h” #include SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX); SoftwareSerial *fonaSerial = &fonaSS; Adafruit_FONA фон = Adafruit_FONA (FONA_RST);

2. Затем на Arduino nano определяются контакты, которые будут использоваться для подключения внешних датчиков к микроконтроллеру. Эти выводы будут отвечать за ввод и вывод данных в микроконтроллер.

#define FONA_RX 2 #define FONA_TX 3 #define FONA_RST 4 //датчик вибрации #define VS 10 #define R 2 #define Y 4 #define MQ3 A0 #define зуммер 9 . #define triggerPin 7 //запуск по контакту 7 #define echoPin 8 //эхо по контакту 8

3. Затем инициализируются различные переменные, которые впоследствии будут использоваться в процессах расчета во время выполнения кода. Также делается буфер, который будет использоваться с модулем GSM.

внутренний уровень газа; // это большой буфер для ответов char responsebuffer[255]; uint8_t readline(char *buff, uint8_t maxbuff, uint16_t timeout = 0); тип uint8_t; интервал vs=10; int shockVal = ВЫСОКАЯ;

4. void setup() — это функция, которая выполняется только один раз при включении питания микроконтроллера или нажатии кнопки включения. в этой функции устанавливается скорость передачи данных, которая в основном представляет собой скорость в битах в секунду, с которой микроконтроллер взаимодействует с внешними датчиками. Здесь инициализируются все контакты Arduino, которые будут использоваться для получения входных данных от датчика или отправки выходных данных на другое устройство. GSM-модуль также инициализируется в этой функции.

недействительными настройками () { Serial.begin (9600); // мы начнем последовательную связь, чтобы увидеть расстояние на последовательном мониторе Serial.println(“Учебное пособие по ультразвуковому датчику Tech Ponder”); pinMode (триггерPin, ВЫХОД); //определение пинов pinMode(echoPin, INPUT); pinMode (зуммер, ВЫХОД); цифровая запись (зуммер, НИЗКИЙ); pinMode (MQ3, ВХОД); pinMode(R,ВЫХОД); pinMode (Y, ВЫВОД); pinMode(vs, INPUT); пока (!Серийный); // Serial.println(F(“Базовый тест FONA”)); // Serial.println(F(“Инициализация….(Может занять 3 секунды)”)); fonaSerial->begin(4800); if (! fona.begin(*fonaSerial)) { // Serial.println(F(“Не удалось найти FONA”)); пока (1); } тип = fona.type(); // Serial.println(F(“FONA в порядке”)); // Serial.print(F(“Найдено “)); switch (type) { case FONA800L: // Serial.println(F(“FONA 800L”)); перерыв; case FONA800H: // Serial.println(F(“FONA 800H”)); перерыв; case FONA808_V1: // Serial.println(F(“FONA 808 (v1)”)); перерыв; case FONA808_V2: // Serial.println(F(“FONA 808 (v2)”)); перерыв; case FONA3G_A: // Serial.println(F(“FONA 3G (американский)”)); перерыв; case FONA3G_E: // Serial.println(F(“FONA 3G (Европейский)”)); перерыв; по умолчанию: // Serial.println(F(“???”)); перерыв; } // Печать номера IMEI модуля. char imei[15] = {0}; // ДОЛЖЕН использоваться 16-символьный буфер для IMEI! uint8_t imeiLen = fona.getIMEI(imei); if (imeiLen > 0) { // Serial.print(“IMEI модуля: “); Serial.println(imei); } }

5. void loop() — это функция, которая повторяется в цикле, пока микроконтроллер включен. Для ультразвукового датчика написан код, который, если он измеряет расстояние меньше определенного значения, посылает сигнал на зуммер, который будет использоваться для уведомления водителя о приближающемся транспортном средстве. Сюда же встроен газовый датчик. Три светодиода используются для того, чтобы сообщить, сильно, частично или менее пьян гонщик. Если горит зеленый светодиод, это означает, что гонщик готов к работе. В конце этой функции вызывается другая функция с именем viberationFun().

void loop() { int продолжительность, расстояние; //Добавление длительности и расстояния digitalWrite(triggerPin, HIGH); // запуск волны (например, мигание светодиода) delay(10); digitalWrite(triggerPin, LOW); продолжительность = pulseIn(echoPin, HIGH); //специальная функция для прослушивания и ожидания волны Distance = (duration/2) / 29.1; задержка(1000); Serial.print(расстояние); //печать чисел Serial.print(“cm”); //и модуль Serial.println(” “); // просто вывод на новую строку if (distance < 35) { digitalWrite(buzzer,HIGH); Serial.println("Зуммер включен"); } digitalWrite(зуммер,НИЗКИЙ); уровень газа = (аналоговое чтение (MQ3)); уровень газа = карта (уровень газа, 0,1023,0,255); if(уровень газа > 100 && уровень газа <= 300){//уровень газа больше 100 и меньше 300 digitalWrite(R,LOW);//КРАСНЫЙ светодиод не горит _delay_ms(500);//задержка digitalWrite(Y,HIGH) ;//ЖЕЛТЫЙ светодиод горит _delay_ms(500); } else if(уровень газа > 300 && уровень газа <= 600){//уровень газа больше 300 и меньше 600 digitalWrite(Y,LOW);//ЖЕЛТЫЙ светодиод не горит _delay_ms(500); digitalWrite(R,HIGH);//КРАСНЫЙ светодиод горит } else { digitalWrite(R,LOW);//красный светодиод не горит digitalWrite(Y,LOW);//ЖЕЛТЫЙ светодиод не горит } Serial.println(gaslevel); // вывод значений на последовательный монитор _delay_ms(100); вибрационное удовольствие(); }

6. viberationFun() — это функция, которая определяет, произошло ли столкновение велосипеда с другим объектом или нет. Если он обнаружит какое-либо столкновение, он отправит сообщение на номера, которые указаны в коде. Таким образом, известие об аварии дойдет до кого-то еще, кто предпримет необходимые шаги для спасения гонщика.

void viberationFun(){ shockVal = digitalRead (vs) ; интервал т=0; char sendto[11]=”ВАШ НОМЕР”; char отправить на1[11]=”ВАШ НОМЕР 2″; символьное сообщение[27]=”Обнаружена авария”; if(shockVal == HIGH || shockVal == 1){ if(t==0){ Serial.println(shockVal); if (!fona.sendSMS(отправить, сообщение) && !fona.sendSMS(отправить1, сообщение)) { Serial.println(F(“Ошибка”)); } else { Serial.println(F(“Отправлено!”)); т=1; } задержка(1000); if(!fona.sendSMS(sendto1, message)) { Serial.println(F(“Ошибка”)); } else { Serial.println(F(“Отправлено!”)); т=1; } } }иначе{ t=0; } }

Шаг 9: Сборка оборудования

Теперь, когда мы знаем основные соединения, а также полную схему нашего проекта, давайте двигаться вперед и начнем делать аппаратное обеспечение нашего проекта. Следует иметь в виду, что схема должна быть компактной, а компоненты должны располагаться близко друг к другу. Veroboard является лучшим вариантом по сравнению с макетной платой, потому что соединения на макетной плате ослабевают и может произойти короткое замыкание, а макетная плата имеет больший вес по сравнению с Veroboard. Схема, размещенная на Veroboard, будет очень маленькой, поэтому ее можно будет легко разместить внутри шлема.

  1. Возьмите Veroboard и протрите поверхность медного покрытия скребком.
  2. Теперь разместите компоненты аккуратно и достаточно близко, чтобы размер схемы не стал очень большим.
  3. Аккуратно выполните соединения с помощью паяльника. Если при подключении была допущена какая-либо ошибка, попробуйте распаять соединение и снова правильно припаять соединение, но в конце концов соединение должно быть плотным.
  4. После того, как все соединения будут выполнены, проведите проверку непрерывности. В электронике проверка непрерывности — это проверка электрической цепи, чтобы проверить, течет ли ток по желаемому пути (что это определенно полная цепь). Проверка непрерывности выполняется путем подачи небольшого напряжения (соединенного со светодиодом или создающей помехи деталью, например, пьезоэлектрическим динамиком) над выбранным путем.
  5. Если тест на непрерывность проходит успешно, это означает, что цепь выполнена в соответствии с требованиями. Теперь он готов к испытаниям.
  6. Подсоедините аккумулятор к цепи.

Остальная часть схемы будет размещена внутри шлема, за исключением ультразвукового датчика, который будет установлен на задней стороне шлема для обнаружения транспортных средств, приближающихся сзади. В этом проекте используется батарея Lipo, потому что это очень легкая батарея, и даже если гонщик собирается в дальнюю поездку, она может дать лучшее время. Отрегулируйте батарею Lipo внутри шлема, потому что из-за суровых погодных условий, таких как дождь, это может привести к выходу из строя цепи.

Шаг 10: Тестирование

Так как железо собрано и код также загружен в микроконтроллер, давайте пройдем последний этап и протестируем схему. Сядьте на мотоцикл и включите кнопочный переключатель, чтобы активировать цепь. Начните кататься по своей улице и попросите кого-нибудь подъехать к вам на машине на большой скорости сзади. Вы заметите, что зуммер начнет звонить, а затем затормозит на высокой скорости, так что может возникнуть сильная вибрация. Как только произойдет вибрация, на номер мобильного телефона, указанный в коде, будет отправлено оповещение.

Рекомендации

Это очень интересный проект, есть несколько вариантов, которые могут быть включены в него дополнительно с помощью некоторых основных электронных компонентов. Некоторые из них проиллюстрированы ниже:

  1. Вы можете использовать Raspberry Pi с модулем камеры Pi и настроить его положение таким образом, чтобы вы могли наблюдать проекцию на зеркало шлема. Таким образом, вы сможете получить вид на дорогу сзади, и это будет очень полезно при обгоне и т. д.
  2. Релейный модуль можно подключить к замку зажигания мотоцикла и настроить его таким образом, чтобы зажигание включалось только тогда, когда водитель надел шлем.
  3. Небольшие солнечные панели также могут быть прикреплены к верхней и задней части шлема, чтобы уменьшить потребность в батарее и дополнительно уменьшить вес схемы внутри шлема.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *