Двунаправленный счетчик посетителей на NodeMCU ESP8266 и MQTT


В этом проекте мы создадим двунаправленный счетчик посетителей с использованием NodeMCU ESPP8266, инфракрасного датчика и Ubidots MQTT. Вы можете использовать этот проект для мониторинга общего количества входящих, исходящих и текущих посетителей онлайн из любой точки мира с помощью панели инструментов Ubidots. Для подсчета входящих и исходящих посетителей лучше использовать инфракрасный (ИК) датчик. Данные о посетителях будут автоматически загружаться в облако Ubidots с помощью WiFi-модуля NodeMCU ESP8266.

Двунаправленный счетчик посетителей на NodeMCU ESP8266 и MQTT

Вы можете использовать этот двунаправленный счетчик посетителей NodeMCU в холле, торговом центре, офисе, а также на входных воротах для подсчета общего количества посетителей. Устройство подсчитывает общее количество людей, входящих через ворота, а также общее количество людей, выходящих через разные ворота. И, наконец, оно подсчитывает общее количество текущих людей, вычитая выходящих посетителей из входящих посетителей. Когда в комнате обнаруживается хотя бы один человек, свет в помещении автоматически включается. Когда в комнате нет людей, свет автоматически выключается.

Отображение количества посетителей на панели инструментов Ubidots

Ранее на нашем сайте мы рассматривали аналогичные проекты на основе платы Arduino:

Необходимые компоненты

  1. NodeMCU ESP8266 (купить на AliExpress).
  2. Инфракрасный датчик – 2 шт. (купить на AliExpress).
  3. Модуль OLED дисплея SSD1306 128×64 с интерфейсом I2C (купить на AliExpress).
  4. Модуль реле на 5 В (купить на AliExpress).
  5. Источник питания постоянного тока 5 В.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

ИК-датчик как детектор посетителей

Основным элементом этого проекта IoT является ИК-датчик, который работает как детектор препятствий. Всякий раз, когда ИК-датчик обнаруживает прерывание излучения, он подсчитывает человека и добавляет его к предыдущему значению.

Модуль ИК-датчика

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

Датчик состоит из следующих электронных компонентов.

Компоненты инфракрасного датчика

1. ИК-светодиодный передатчик

ИК-светодиод излучает свет в диапазоне инфракрасных частот с длиной волны 700 нм – 1 мм. ИК-светодиоды имеют угол излучения света приблизительно 20–60 градусов и дальность действия до 5–10 см .

2. Фотодиодный приемник

Фотодиод действует как ИК-приемник, поскольку проводит ток когда на него падает свет. Фотодиод выглядит как светодиод, с черным покрытием на внешней стороне.

3. Операционный усилитель LM358

LM358 — это операционный усилитель (Op-Amp), используемый в качестве компаратора напряжения в ИК-датчике. Схема компаратора сравнивает пороговое напряжение, установленное с помощью предустановки, и напряжение последовательного резистора фотодиода. Когда падение напряжения на последовательном резисторе фотодиода больше порогового напряжения, выход операционного усилителя становится высоким и наоборот.

Когда выход операционного усилителя высокий, светодиод на выходной клемме включается. Это указывает на обнаружение объекта.

4. Переменный резистор

Переменный резистор здесь предустановлен. Он используется для калибровки диапазона расстояний, на котором должен быть обнаружен объект.

Схема проекта

Схема двунаправленного счетчика посетителей на NodeMCU ESP8266 и MQTT представлена на следующем рисунке.

Схема двунаправленного счетчика посетителей на NodeMCU ESP8266 и MQTT

Подключите выводы I2C (SDA и SCL) 0,96-дюймового OLED-дисплея к выводам NodeMCU D2 и D1. Подключите выходной вывод пары ИК-датчиков к выводам D5 и D6 NodeMCU. Один из ИК-датчиков будет действовать как счетчик входящих посетителей, а другой — как счетчик исходящих посетителей. Аналогично подключите 5-вольтовый релейный модуль к выводу D4 NodeMCU. И ИК-датчики, и релейный модуль работают при напряжении 5 В VCC. Вы можете подать 5 В с вывода Amica NodeMCU Vin или вывода Lolin NodeMCU VU .

Печатная плата для проекта

Вы можете собрать и попробовать эту схему на макетной плате. Но если вы не хотите собирать схему на макетной плате, то вы можете проверить эту схему и построить собственную печатную плату. Я предпочитаю EasyEDA, онлайн-инструмент для проектирования схем и печатных плат.

Схема проекта двунаправленного счетчика посетителей в EasyEDA

После разработки схемы двунаправленного счетчика посетителей ESP8266 вы можете преобразовать схему в печатную плату. Печатная плата выглядит примерно так, как показано на рисунке ниже.

Проект печатной платы для двунаправленного счетчика посетителей

Файл Gerber для изготовления данной печатной платы вы можете скачать по следующей ссылке.

Внешний вид изготовленной печатной платы показан на следующем рисунке.

Внешний вид изготовленной печатной платы для нашего проекта

Затем я собрал все компоненты на печатной плате. Теперь нам нужно протестировать устройство вместе с кодом.

Собранная конструкция проекта

Настройка Ubidots

Нам нужно настроить панель управления Ubidots, чтобы получать данные счетчика посетителей от ESP8266 по протоколу MQTT. Чтобы настроить Ubidots, посетите https://ubidots.com/ и создайте новую учетную запись, используя свой адрес электронной почты.

Главное окно платформы Ubidots

После входа в панель инструментов Ubidots нам понадобится API Key. Чтобы получить API key, нажмите в правом верхнем углу панели на опцию профиля. Вы увидите опцию под названием «API Credentials». Нажмите на опцию.

Выбор пункта меню API Credentials в панели инструментов Ubidots

Теперь, когда вы нажимаете на Default Token и копируете API Token, вам понадобится этот API Token в коде программы для получения данных.

Получение API токена в Ubidots

Исходный код программв

Исходный код для двунаправленного счетчика посетителей на esp8266 с автоматической системой управления освещением приведен ниже. Код требует библиотеки SSD1306 и GFX OLED для компиляции и библиотеку Ubidots. Сначала загрузите следующие библиотеки и добавьте их в Arduino IDE.

1. Загрузите библиотеку SSD1306: https://github.com/adafruit/Adafruit_SSD1306
2. Загрузите библиотеку Adafruit GFX: https://github.com/adafruit/Adafruit-GFX-Library
3. Загрузите библиотеку Ubidots MQTT: https://github.com/ubidots/ubidots-mqtt-esp

В следующей части кода измените Wifi SSID, пароль и токен Ubidots. Используйте тот же токен API. Некоторые WiFi сети не работают с протоколом MQTT из-за проблем с безопасностью. Вы можете попробовать другую сеть, если устройство не может подключиться к серверу MQTT .

Теперь вы можете скопировать код и загрузить его на плату NodeMCU ESP8266.

Тестирование работы проекта

Приведенный выше код для ESP8266 с MQTT Ubidots удовлетворяет всем требованиям проекта. Вы можете загрузить код в модуль WiFi ESP8266. После загрузки кода плата ESP8266 попытается подключиться к сети WiFi. После подключения к сети вы можете открыть Serial Monitor (окно монитора последовательной связи), в котором вы должны увидеть следующую картину.

Тестирование работы проекта в окне монитора последовательной связи

Последовательный монитор отобразит статус подключения к сети WiFi вместе с IP-адресом. Если есть успешное подключение к WiFi и дальнейшее подключение к Ubidots, данные будут автоматически загружаться после каждого установленного интервала. Последовательный монитор также отобразит количество входящих посетителей, исходящих посетителей, текущих посетителей и статус индикатора.

На аппаратной части, если посетителей нет, на OLED-дисплее просто отображается сообщение «Нет посетителей, индикатор выключен».

Тестирование работы проекта (часть 1)

Аналогично, когда внутри помещения кто-то находится, свет включается автоматически, а на OLED-экране отображается количество входящих, исходящих и текущих посетителей.

Тестирование работы проекта (часть 2)

Мониторинг посетителей онлайн на панели инструментов Ubidots

Изначально на панели инструментов Ubidots не будет отображаться никаких устройств. Но как только устройство будет подключено к серверу MQTT, вы увидите устройство, появляющееся в разделе устройств Ubidots

Появление нашего устройства в панели инструментов Ubidots

Теперь нажмите на устройство, которое вы видите на панели инструментов Ubidots. В моем случае я вижу esp8266, поскольку я использую плату NodeMCU ESP8266. На этой панели инструментов вы увидите данные для посетителей. Таким образом, данные изменяются только при возникновении события.

Данные о посетителях в панели инструментов Ubidots

Теперь вернитесь к панели управления. В правом верхнем углу панели управления нажмите на символ «+». Вы увидите множество виджетов. Вы можете нажать и создать виджет для отображения всех индивидуальных параметров от входящего посетителя до текущего посетителя. Например, вы можете выбрать виджет Metric для отображения посетителей.

Выбор виджета Metric для отображения посетителей

Сделайте то же самое для всех остальных 4 переменных . Наконец, после проектирования панели с помощью виджета, вы получите красивую панель в реальном времени, как показано на изображении ниже.

Сконструированная нами панель в Ubidots

Вы также можете посетить мобильную версию панели инструментов Ubidots. Даже мобильный экран будет отображать данные о количестве посетителей на дисплее виджетов.

Мобильная версия нашей панели инструментов Ubidots

Видео, демонстрирующее работу проекта

Ссылка на видео на YouTube

(Проголосуй первым!)
Загрузка...
8 просмотров

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

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