Рубрики
Проекты на ESP8266

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

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

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

Ранее на нашем сайте мы рассматривали аналогичные проекты на основе платы 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 представлена на следующем рисунке.

Подключите выводы 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, онлайн-инструмент для проектирования схем и печатных плат.

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

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

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

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

Настройка Ubidots

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

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

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

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

Исходный код для двунаправленного счетчика посетителей на 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-дисплее просто отображается сообщение «Нет посетителей, индикатор выключен».

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

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

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

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

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

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

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

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

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

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

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