Оглавление:
- Шаг 1. Требования
- Шаг 2: настройка
- Шаг 3: Настройка оборудования
- Шаг 4: установка прошивки
- Шаг 5: Разработка приложения Ubidots
- Шаг 6: Конфигурация приборной панели
Видео: Как создать систему обнаружения движения с помощью Arduino: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Создайте счетчик движения и присутствия, используя Feather HUZZAH, запрограммированный с помощью Arduino и работающий на Ubidots.
Эффективное физическое обнаружение движения и присутствия в умных домах и умном производстве может быть очень полезным в самых разных приложениях, от решений для пожилых людей в условиях окружающей среды (AAL) до системы подсчета производства, которая питает более крупные MES. Другие приложения для обнаружения движения и присутствия включают, но не ограничиваются:
- Автоматика для дверей и ворот
- Датчики парковки для обозначения свободных мест
- Удаленный мониторинг уровня в резервуаре
- Умные дома и помещения для освещения и безопасности
- Обнаружение и подсчет единиц в конвейерных линиях
- Обнаружение меток на печатных материалах
- Обнаружение жидкости внутри картона, пластика и бумаги
- Обнаружение расстояния
- Счетчики посетителей
Хотя существует множество приложений для измерения присутствия и движения, существует столько же датчиков для сбора данных, как емкостные, индуктивные, фотоэлектрические и ультразвуковые датчики. В зависимости от стоимости, условий окружающей среды и требований к точности следует выбрать наиболее подходящее оборудование для среды и требований приложения.
В этом руководстве мы сосредоточимся на создании счетчика производства в реальном времени; приложение будет считать каждую единицу, проходящую по конвейерной ленте. Мы будем использовать Arduino IDE для программирования ультразвукового датчика Feather HUZZAH ESP8266 и Ubidots для разработки нашего приложения и отображения информационной панели IoT.
Шаг 1. Требования
- Перо HUZZAH с ESP8266MB7389-100
- Ультразвуковой датчик
- Arduino IDE 1.8.2 или выше
- Учетная запись Ubidots -или-Лицензия STEM
Шаг 2: настройка
- I Настройка оборудования
- II. Установка прошивки
- III. Разработка приложений Ubidots (события, переменные и информационные панели)
Шаг 3: Настройка оборудования
Ультразвуковой датчик MB7389-100 - это недорогой вариант для промышленных приложений с широким диапазоном требований и низким энергопотреблением в сложных погодных условиях благодаря классу IPv67.
Для начала скопируйте схему ниже, чтобы прикрепить ультразвуковой датчик к Feather HUZZAH ESP8266.
ПРИМЕЧАНИЕ. Показания датчика могут быть аналоговыми или ШИМ; ниже мы собираемся объяснить настройку для чтения ШИМ, для получения дополнительной информации см. примеры, показанные выше.
[Необязательно] поместите микроконтроллер и датчики в корпус со степенью защиты IP67, чтобы защитить их от пыли, воды и других опасных факторов окружающей среды. Стандартный корпус похож на тот, что изображен на фотографиях выше.
Шаг 4: установка прошивки
Во-первых, вы должны установить Feather Huzzah в IDE Arduino и скомпилировать код. Не забудьте проверить эту настройку, выполнив простой тест на мигание. Для получения дополнительной информации о подключении устройства Feather ознакомьтесь с этим полезным руководством по настройке оборудования.
Чтобы отправить данные датчика на платформу разработки Ubidots IoT, скопируйте и вставьте приведенный ниже код в IDE Arduino. Не забудьте назначить имя сети Wi-Fi, пароль и токен вашей учетной записи Ubidots, как указано в коде.
/ ******************************** Включенные библиотеки *************** ****************/#включают /****************************** ** Константы и объекты ****************************** // * Ubidots * / const char * SSID_NAME = "xxxxxxxx"; // Введите здесь ваше имя SSIDconst char * SSID_PASS = "xxxxxxxx"; // Поместите сюда свой парольconst char * TOKEN = "Assig_your_ubidots_token"; // Поместите сюда свой TOKENconst char * DEVICE_LABEL = "motion-control"; // Метка вашего устройстваconst char * VARIABLE_LABEL = "distance"; // Метка вашей переменнойconst char * USER_AGENT = "ESP8266"; const char * VERSION = "1.0"; const char * HTTPSERVER = "industrial.api.ubidots.com"; // Пользователи Ubidots Business // const char * HTTPSERVER = " things.ubidots.com "; // Пользователи Ubidots для образовательных учрежденийint HTTPPORT = 80; / * Ультразвуковой датчик * / const int pwPin1 = 5; // Вывод ШИМ, к которому подключен датчик Wi-FiClient clientUbi; / ******************************* Дополнительные функции *** *************************** // ** Получает длину тела @arg переменной тело типа char @return dataLen the длина переменной * / int dataLen (char * variable) {uint8_t dataLen = 0; for (int i = 0; i distance / 25.4 * / float distance = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, distance); delay (1000);} void sendToUbidots (const char * device_label, const char * variable_label, float sensor_value) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Пространство для хранения значений для отправки * / char str_val [10]; / * ---- Преобразует значения датчиков в тип char ----- * / / * 4 - минимальная ширина, 2 - точность; значение с плавающей запятой копируется в str_val * / dtostrf (sensor_value, 4, 2, str_val); / * Строит тело для отправки в запрос * / sprintf (body, "{"% s / ":% s}", variable_label, str_val); / * Строит HTTP запрос должен быть POST * / sprintf (данные, "POST /api/v1.6/devices/%s", device_label); sprintf (data, "% s HTTP / 1.1 / r / n", data); sprintf (data, "% sHost: things.ubidots.com / r / n", data); sprintf (data, "% sUser-Agent:% s /% s / r / n", data, USER_AGENT, VERSION); sprintf (data, "% sX-Auth-Token:% s / r / n", data, TOKEN); спринт f (данные, "% sConnection: close / r / n", данные); sprintf (данные, "% sContent-Type: application / json / r / n", данные); sprintf (данные, "% sContent-Length:% d / r / n / r / n", данные, dataLen (тело)); sprintf (данные, "% s% s / r / n / r / n", данные, тело); / * Первоначальное соединение * / clientUbi.connect (HTTPSERVER, HTTPPORT); / * Проверяем клиентское соединение * / if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Отправка ваших переменных:")); Serial.println (данные); / * Отправляем HTTP-запрос * / clientUbi.print (data); } / * Пока клиент доступен, прочтите ответ сервера * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Свободная память * / free (data); бесплатно (тело); / * Остановить клиента * / clientUbi.stop ();}
Совет: вы можете проверить, правильно ли подключено ваше устройство, открыв последовательный монитор в Arduino IDE.
Вы можете убедиться, что устройство создано в вашем бэкэнде Ubidots, просмотрев его в своей учетной записи «Управление устройствами» -> «Устройства».
Щелкнув свое устройство, вы найдете переменную под названием «расстояние», в которой хранятся показания датчика. Это имя было присвоено в коде, который вы только что вставили в IDE Arduino. Если вы хотите настроить автоматические переменные, сделайте это, отредактировав карту устройства или прошив обновленный код с правильной номенклатурой переменных для вашего приложения.
Когда Feather HUZZAH ESP8266 подключен и передает данные в Ubidots, пришло время создать приложение, используя тщательно разработанную Ubidots конфигурацию приложения без кода.
Шаг 5: Разработка приложения Ubidots
Конфигурация событий Ubidots
Текущие показания, которые мы отправляем в Ubidots, являются входными данными о расстоянии. Чтобы преобразовать эти показания в желаемый результат, который мы хотим - подсчитанные единицы - мы должны создать событие, выполнив следующие шаги:
- Внутри текущего устройства «motion-control» создайте новую переменную по умолчанию, названную «box», которая будет получать 1 каждый раз, когда подсчитывается новая единица.
- Перейдите в Управление устройством -> События и щелкните синий значок плюса в правом верхнем углу страницы, чтобы добавить новое событие.
- Настройте свое событие, начиная с «Если триггеры»:
- Выберите переменную: "расстояние"
- Значение: значение (по умолчанию)
- Меньше или равно [максимальное ожидаемое расстояние} между датчиком и проходящими мимо коробками * наше приложение требует 500 мм
- На 0 минут
- Сохранить
4. После настройки триггеров в соответствии со спецификациями вашего приложения щелкните оранжевый значок «плюс» в правом верхнем углу, чтобы добавить условное действие.
5. Выберите действие «Установить переменную».
6. Затем выберите ранее созданную переменную по умолчанию «box» и значение «1».
7. Сохраните изменения. Если событие настроено правильно, оно будет посылать «1» каждый раз, когда расстояние между датчиком и устройством превышает указанный порог, что говорит о том, что поблизости нет объекта - и должно учитывать новый элемент, который только что прошел..
В карточке «Устройство для перьев» вы обнаружите, что переменная «box», где «1» отправляется каждый раз, когда обнаруживается присутствие юнита.
Этот прототип особенно полезен для промышленных конвейерных лент и подсчета единиц. Он может быть настроен для соответствия различным средам или аппаратным средствам просто в процессе кодирования или разработки приложений.
8. Визуализируйте количество обнаруженных единиц (или раз, когда объект был обнаружен). Теперь, используя переменную "коробки", мы собираемся создать новую переменную скользящего окна, чтобы суммировать общее количество показаний, полученных от переменной "коробки" в определенный спам (минуты, часы, дни, недели и т. д.). Чтобы выполнить эту разработку, выполните следующие простые шаги:
Назначьте следующие учетные данные вашей новой переменной скользящего окна
Выберите устройство: управление движением (или имя устройства, на которое вы отправляете данные)
Выберите переменную: коробки
Вычислить: sum
Каждые: «1» час (или в соответствии с запросами вашего приложения)
Теперь присвойте имя новой переменной, которая указывает количество ящиков (или перемещений), подсчитанных за час, точно так же, как «ящиков / час» или «единиц / часов».
Шаг 6: Конфигурация приборной панели
Наконец, создайте информационную панель для отображения количества обнаруженных единиц.
Перейдите в Управление устройством -> Панели мониторинга и добавьте новый виджет. Этот виджет будет отображать количество ящиков, подсчитанных сегодня, с разбивкой по часам.
Назначьте следующие учетные данные своему новому виджету, чтобы визуализировать свой счет.
Каким бы вы хотели видеть ваши данные ?: Диаграмма
Выберите тип виджета: линейный график
Добавить устройство: управление движением
Добавить переменную: ящиков / час
Заканчивать. И с этой последней разработкой приборной панели - ваше приложение готово, и теперь у вас есть эффективная и действенная система обнаружения движения и присутствия. Вот последний взгляд на наши результаты.
Рекомендуемые:
Как создать систему Wi-Fi, которая будет управлять освещением и обогревом аквариума: 5 шагов
Как сделать систему Wi-Fi, которая управляет освещением и обогревом вашего аквариума: Что она делает? Система, которая включает / выключает ваш аквариум автоматически по расписанию или вручную с помощью кнопки или запроса через Интернет. Система, которая следит за температурой воды и отправляет электронные письма и предупреждения в случае, если
Как сделать интеллектуальную систему сигнализации обнаружения наводнений с использованием Raspberry Pi и частиц аргона: 6 шагов
Как сделать интеллектуальную систему сигнализации обнаружения наводнений с использованием Raspberry Pi и частиц аргона: стандартные датчики наводнения отлично подходят для предотвращения серьезных повреждений вашего дома или рабочего места, но это затрудняет присутствие на сигнале тревоги, если вас нет дома. вы можете купить эти умные. Эта система сигнализации о наводнении обнаруживает любую жидкость и срабатывает
Visuino создает систему обнаружения вторжений с использованием Arduino: 8 шагов
Visuino создает систему обнаружения вторжений с использованием Arduino: в этом руководстве мы будем использовать микроволновый радарный датчик движения XYC-WB-DC, подключенный к Arduino UNO и Visuino, для обнаружения любого движения в радиусе около 5 м, включая тонкие стены. Посмотрите демонстрационное видео
Как создать систему JARVIS или реальную JARVIS / собственную помощь ИИ: 8 шагов
Как создать систему JARVIS или реальную помощь JARVIS / собственный ИИ: Вы когда-нибудь смотрели говорящий компьютер, как ДЖАРВИС с Тони Старком в фильме «Железный человек»? Вы когда-нибудь хотели иметь такой компьютер? Я прав? Не волнуйтесь … Вы можете исполнить это желание на своем собственном компьютере. У вас может быть компьютерный JARVIS и
Как правильно подключить и настроить полочную систему Mini HiFi (звуковую систему): 8 шагов (с изображениями)
Как правильно подключить и настроить полочную систему Mini HiFi (звуковую систему): Я человек, которому нравится изучать электротехнику. Я учусь в старшей школе при школе Энн Ричардс для молодых женщин-лидеров. Я делаю это поучительно, чтобы помочь всем, кто хочет наслаждаться своей музыкой из системы Mini LG HiFi Shelf Syste