Оглавление:
- Шаг 1. Необходимые компоненты
- Шаг 2: Создание удаленного устройства
- Шаг 3. Программное обеспечение и библиотеки
- Шаг 4. Использование SSH и установка библиотек
- Шаг 5: протокол Bluetooth
- Шаг 6: Использование мезонина на DragonBoard 410c
- Шаг 7: Программное обеспечение DragonBoard 410c
Видео: Обнаружение чрезвычайных ситуаций - Qualcomm Dragonboard 410c: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
При поиске систем безопасности, которые работают с отслеживанием чрезвычайных ситуаций, можно заметить, что обработать всю записанную информацию слишком сложно. Подумав об этом, мы решили использовать наши знания в области обработки аудио / изображений, датчиков и исполнительных механизмов, чтобы создать единую законченную систему, которая позволяет прогнозировать ситуации, в которых жизни людей находятся в опасности.
В этом проекте есть локальный датчик и удаленные устройства для сбора данных и отправки на драконовую доску, которая обладает вычислительной мощностью, способной извлекать важную информацию из полученных данных.
Удаленное устройство представляет собой плату Arduino с модулем HC-06, способным передавать всю информацию, и недорогой широкой сетью, способной обрабатывать большие объемы данных.
Шаг 1. Необходимые компоненты
Прежде всего, вы должны решить, какие датчики и исполнительные механизмы вы собираетесь использовать, и сделать эскиз архитектуры.
В нашем случае мы используем эти датчики, подключенные к ARDUINO Pro Mini, перечисленные ниже:
- PIR (пассивный инфракрасный датчик - датчик присутствия)
- DHT 11 (датчик влажности и температуры)
- Датчик CO (датчик угарного газа)
- Датчик шума
Приводы:
- сервопривод двигателя
- зуммер
Коммуникация:
Модуль Bluetooth HC-06
Что касается Dragonboard 410c, у нас будет несколько датчиков и программное обеспечение для обработки всех вводимых данных:
Датчики:
- DHT 11
- Датчик солнечного света
Приводы:
- Реле
- Статус светодиода
- Зуммер
Шаг 2: Создание удаленного устройства
Теперь пришло время подключить все следующие компоненты к плате Arduino, создав устройство, которое будет получать данные из окружающей среды (шум, влажность, температура и т. Д.) И отправлять их на Dragonboard с помощью модуля Bluetooth HC-06.
Обязательно обратите внимание на подключения, потому что у всех датчиков есть определенные места для подключения.
В системе можно использовать более одного устройства для сбора данных. Чем больше устройств вы установили в среде, тем точнее диагностика, генерируемая обработкой данных. Так как можно будет извлечь более широкий спектр информации, которая может быть полезной.
Мы решили использовать плату Arduino, потому что у нее больше совместимых датчиков, и можно установить эти удаленные устройства в разных местах, собирая больше информации.
Локальное устройство - DragonBoard 410c, которое обрабатывает аудио, видео, цифровую и аналоговую информацию с помощью вашего мощного процессора SnapDragon 410.
Размещение компонентов (Remote Devide)
У одного элемента есть несколько контактов, которые необходимо подключить к нужным контактам на мини-плате arduino pro.
Модуль Bluetooth HC-06 имеет 4 контакта:
- TX (Transmissor) -> подключен к контакту RX Arduino
- RX (приемник) -> подключен к контакту TX Arduino
- VCC -> подключен по 5в
- GND
Датчик DHT 11 имеет 4 контакта (но используется только 3):
- Сигнал -> подключен к цифровому выводу
- VCC -> подключен по 5в
- GND
Датчик PIR имеет 3 контакта:
- Сигнал -> подключен к цифровому выводу
- VCC -> подключен по 5в
- GND
Датчик газа (MQ) имеет 4 контакта:
- Цифровой выход -> подключен к цифровому выводу (если вам нужна цифровая информация)
- Аналоговый выход -> в нашем случае мы используем его, подключенный к аналоговому выводу
- VCC -> подключен по 5в
- GND
Датчик шума (KY-038) имеет 3 контакта:
- Сигнал -> подключен к аналоговому выводу
- VCC -> подключен по 5в
- GND
Код для удаленного устройства Arduino:
/ * * Arduino отправляет данные через Blutooth * * Значения датчиков считываются, объединяются в * String и отправляются через последовательный порт. * / #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN, DHTTYPE); поплавок влажный, температурный; логическое pir = 0; int co, микрофон; Строка msg = ""; символьный ном [40]; void setup () {Serial.begin (9600); dht.begin (); } void loop () {humidaty = dht.readHumidity (); температура = dht.readTemperature (); pir = digitalRead (PIRPIN); co = analogRead (КОПИН); mic = analogRead (A0); msg = "#;" + Строка (влажность) + ";" + String (температура) + ";" + String (mic) + ";" + String (pir) + ";" + String (co) + "; #" + "\ n"; Serial.print (сообщение); задержка (2000); }
Пояснение к коду:
Все контакты, используемые в Arduino, указаны в начале кода, и соответствующие библиотеки, необходимые для работы датчиков, инициализированы. Все данные будут переданы в соответствующие переменные, которые будут получать значения, считываемые с каждого датчика каждые 2000 миллисекунд, затем все они объединяются в строку, а затем записываются в последовательном режиме. Отсюда очень легко получить такие данные с помощью кода pyton, присутствующего в DragonBoard.
Шаг 3. Программное обеспечение и библиотеки
Для обработки всех полученных данных и управления системой безопасности необходимо использовать некоторые программы и библиотеки в Qualcomm DragonBoard 410c.
В этом конкретном проекте мы используем:
Программное обеспечение:
- Python
- Ардуино
Платформы:
- Amazon AWS -> онлайн-сервер
- Phant -> Служба данных хоста
Библиотеки:
- OpenCV - обработка видео (https://opencv-python-tutroals.readthedocs.io/en/latest/)
- PyAudio - обработка звука (https://people.csail.mit.edu/hubert/pyaudio/)
- Волна (https://www.physionet.org/physiotools/wave-installation.shtm)
- AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
- Numpy (https://www.numpy.org)
- SciKit1 - обучение и прогнозирование машинного обучения (https://scikit-learn.org/stable/install.html)
- cPickle - Сохраните параметры машинного обучения (https://pymotw.com/2/pickle/)
- MRAA - используйте GPIO (https://iotdk.intel.com/docs/master/mraa/python/)
- UPM - используйте GPIO (https://github.com/intel-iot-devkit/upm)
- PySerial - используется для последовательной связи с устройством Bluetooth (https://pythonhosted.org/pyserial/)
Шаг 4. Использование SSH и установка библиотек
Прежде всего вам нужно получить IP-адрес от Dragonboard, для этого вам нужно включить DragonBoard, подключенный к мыши, клавиатуре и монитору HDMI. Когда плата включается, вам нужно подключиться к сети, затем вы идете в терминал и запускаете команду:
sudo ifconfig
после этого вы можете получить IP-адрес.
С IP-адресом вы можете получить доступ к Dragonboard через SHH, для этого вам нужно открыть терминал на компьютере, подключенном к той же сети, что и плата. В терминале можно запустить команду:
ssh linaro @ {IP}
(вы должны заменить {IP} на IP-адрес, который вы получили в Dragonboard).
Первая библиотека, которую вам нужно установить, - это mraa lib. Для этого вам нужно запустить в терминале следующую команду:
sudo add-apt-repository ppa: mraa / mraa && sudo apt-ge; t update && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa
Чтобы установить opencv для python, вам нужно всего лишь запустить команду:
sudo apt-get install python-opencv
Чтобы установить PyAudio, вам необходимо выполнить команду:
sudo apt-get install python-pyaudio python3-pyaudio
На плате уже установлены библиотеки WAVE и AudioOp. Чтобы установить numpy, вам нужно выполнить команду:
sudo apt-get install python-numpy python-scipy
Последняя библиотека, которую вам нужно установить, - это scikit, для ее установки вам необходимо установить pip. Затем вам нужно только запустить команду:
pip установить scikit-Lear
Шаг 5: протокол Bluetooth
Подключение DragonBoard к Arduino через Bluetooth
Модуль Bluetooth (HC-06) изначально был подключен к Arduino Nano согласно следующему примеру:
Используя графический интерфейс Linaro (операционная система, используемая в текущем проекте в DragonBoard), в правой части нижней панели щелкните значок Bluetooth, а затем нажмите «Настроить новое устройство» и настройте свой модуль Bluetooth, оставив его в паре. Убедитесь, что ваш модуль действительно подключен, снова щелкнув значок Bluetooth, щелкните «Устройства…» и посмотрите, указано ли имя вашего устройства и подключено ли оно. Теперь выберите свое устройство на экране «Устройства Bluetooth», щелкните его правой кнопкой мыши и обратите внимание на порт, к которому подключен модуль Bluetooth (например, «rfcomm0»). Примечание. Имя порта, к которому подключено ваше устройство, будет важно на следующем шаге для включения обмена данными.
Установка обмена данными DragonBoard и Bluetooth
В основном мы следуем пошаговой инструкции по ссылке: https://www.uugear.com/portfolio/bluetooth-communi…, но мы не выполнили часть сопряжения, а только выполнение кодов Python и Arduino. В python использовалась последовательная библиотека, которая инициализируется в порту, подключенном к bluetooth, поэтому код python считывает данные датчиков, которые подключены к arduino через модуль bluetooth.
Шаг 6: Использование мезонина на DragonBoard 410c
Чтобы связать драконовую доску и компоненты, мы используем тип щита, названный Мезаннином, разработанный 96boards.
Используя этот экран, подключать периферийные устройства становится намного проще.
Используемые разъемы взяты из комплекта разработчика Grove, поэтому он просто использует специальный кабель, который подключается в обе стороны, Все детали можно легко найти на этом веб-сайте:
Мы используем следующие комплекты:
- Grove Relay
- Датчик солнечного света Grove
- Светодиодная розетка Grove
- Датчик температуры и влажности Grove
- Роща зуммер
Шаг 7: Программное обеспечение DragonBoard 410c
Часть программы на DragonBoard была написана на Python, а программа, используемая на Arduino, была разработана на C ++. Каждые 2 минуты Arduino считывает все подключенные к нему датчики. Затем Arduino отправляет показания на DragonBoard по Bluetooth. DragonBoard объединяет показания, полученные от Arduino, с показаниями, полученными с помощью мезонинного щита, с функциями из аудио и видео образцов.
С помощью этих данных совет пытается предсказать, возникает ли чрезвычайная ситуация. Совет отправляет в Amazon Web Service с помощью Phant необработанные данные и сделанные им прогнозы. Если плата предсказывает, что происходит странная ситуация, она пытается предупредить пользователя миганием светодиода и зуммера в мезонине и отобразить в веб-приложении. В веб-приложении также можно увидеть необработанные данные, чтобы понять, что происходит в этой области.
Рекомендуемые:
Обнаружение вибраций с помощью модуля пьезоэлектрического датчика удара: 6 шагов
Обнаружение вибраций с помощью модуля пьезоэлектрического датчика удара: в этом руководстве мы узнаем, как обнаруживать вибрацию удара с помощью простого пьезоэлектрического датчика Модуль вибрации и Visuino. Посмотрите демонстрационное видео
Ночной свет, обнаружение движения и темноты - без микро: 7 шагов (с изображениями)
Night Light Motion & Darkness Sensing - No Micro: эта инструкция предназначена для предотвращения удара ногой при ходьбе по темной комнате. Можно сказать, что это для вашей же безопасности, если вы встаете ночью и пытаетесь безопасно добраться до двери. Конечно, вы можете использовать прикроватную лампу или основную лампу
Обнаружение объектов с помощью Sipeed MaiX Board (Kendryte K210): 6 шагов
Обнаружение объектов с помощью досок Sipeed MaiX (Kendryte K210): в продолжение моей предыдущей статьи о распознавании изображений с помощью досок Sipeed MaiX Boards я решил написать еще один учебник, посвященный обнаружению объектов. Недавно появилось интересное оборудование с чипом Kendryte K210, в том числе S
Обнаружение движения под освещением кровати: 16 шагов (с изображениями)
Обнаружение движения при освещении кровати: Вы когда-нибудь пытались тихонько встать с постели ночью, только чтобы споткнуться о что-то и разбудить весь дом? Ночные огни с датчиком движения, незаметно установленные под вашей кроватью, обеспечивают низкий уровень света, достаточно яркий, чтобы направлять вас вокруг этих беспорядочных кубиков LEGO
Обнаружение объектов с помощью Dragonboard 410c или 820c с использованием OpenCV и Tensorflow .: 4 шага
Обнаружение объектов W / Dragonboard 410c или 820c с использованием OpenCV и Tensorflow. В этой инструкции описывается, как установить OpenCV, Tensorflow и фреймворки машинного обучения для Python 3.5 для запуска приложения Object Detection