Передача показаний датчиков ds18b20 и DHT22 на сайт «Народный мониторинг» narodmon.ru |
Содержание
Народный мониторинг - IoT проект Интернета вещей
Народный мониторинг - IoT проект Интернета вещейОтечественный проект Интернета вещей (IoT Cloud) narodmon.ru, основанный в 2011 году, предназначен для сбора, обработки, хранения и отображения (на карте и в приложениях) показаний датчиков и веб-камер своих участников с публичным или приватным доступом на различных платформах. Народный мониторинг - IoT проект Интернета вещей
Народный мониторинг - это:
В настоящее время, к сервису подключены десятки тысяч устройств по всему миру, которые передают данные о температуре, влажности, атмосферном давлении, уровне радиации, загрязнении воздуха, и других параметрах. По каждому датчику можно смотреть статистику, в том числе за длительный период. Срок хранения подробных показаний датчиков составляет 30 дней, среднечасовых значений - 1 год, среднесуточных - вечность. Если нужно хранить подробные показания дольше, то можно настроить их автоматическую выгрузку на Яндекс.Диск или Google Drive. В данной статье рассмотрим подключение выносного датчика температуры ds18b20, установленного на улице (в экране Стивенсона) и датчика DHT22, установленного на балконе. Значение датчика температуры ds18b20 предоставлено для всеобщего доступа, а значения температуры и влажности от датчика DHT22 используются для приватного доступа. Схема подключенияСхема подключения к модулю D1 mini Схема подключения к модулю esp8266-01 Подготовка модуля к работеПодготовка модуля к работе заключается в выполнении следующих шагов. Шаг 1. Программирование модуляПрограммирование модуля (запись программы (прошивки) «Smacont-ESP») осуществляется в соответствии с инструкцией «Программирование модулей ESP и отладочных плат». Шаг 2. Настройка сетевого соединения с модулемВыполнить настройку сетевого соединения с модулем в соответствии с инструкцией «Первое включение». Шаг 3. Настройка WiFi-сетиВыполнить настройку WiFi-сети в соответствии с инструкцией «Настройки WiFi-сети». Конфигурация модуляВнешние устройстваКонфигурирование модуля для работы с сенсором DS18B20 выполняется в соответствии с инструкцией «Подключение датчиков температуры DS18B20». Необходимо обратить внимание, что в нашем примере сенсор DS18B20 подключен к «GPIO0» и привязан к переменной «V0». Конфигурирование модуля для работы с сенсором DHT22 выполняется в соответствии с инструкцией «Подключение датчика температуры и влажности DHT11/DHT21(AM2301)/DHT22». Необходимо обратить внимание, что в нашем примере сенсор DHT22 подключен к «GPIO2» и привязан к переменным «V1» (температура) и «V2» (влажность). На вкладке «Vx map» проконтролируем изменение значений переменных «V0», «V1» и «V2» в зависимости от изменения температуры и влажности окружающей среды. Вкладка «Vx map» Текстовые шаблоныНа вкладке «Текст. шабл.» необходимо заполнить текстовые шаблоны «Т06» и «Т07». Вкладка «Текстовые шаблоны» Шаблон «Т06» содержит имя домена «narodmon.ru».
Шаблон «Т07» содержит «URL-путь» и «параметры»: /get?ID=XXXXXXXXXX&T1=$V00&DHT22T=$V01&DHT22H=$V02.
TIMERДля периодического опроса сенсоров ds18b20 и DHT22 будем использовать «TMR3» так как по умолчанию он уже настроен на работу с периодом десять секунд. Данный период (10 сек.) выбран, чтобы не вызывать внутренний нагрев сенсоров, который может привести к изменению значения температуры. Чем больше данный период, тем меньше сказывается внутренний нагрев на показания датчиков.
На вкладке «TIMER» необходимо произвести конфигурирование таймера «TMR3»:
Для обеспечения возможности дальнейшей обработки события от таймера, необходимо привязать параметр «Состояние» таймера «TMR3» к одному из «Vx», например, к «V59». Для периодической отправки значений сенсоров будем использовать «TMR7» так как по умолчанию он уже настроен на работу с периодом пять минут. Данный период (5 мин.) является минимально возможным для работы с сервисом narodmon.ru. В целях противодействия DOS-атакам, при интенсивной передаче данных (например, при передаче показаний чаще 1 минуты или же http-запросов к сайту и REST API), доступ к серверу проекта с IP-источника блокируется сперва на 5 минут, а затем на 1 час. Если паразитный трафик не прекращается, то срок может быть увеличен как и диапазон IP адресов источника трафика.
На вкладке «TIMER» необходимо произвести конфигурирование таймера «TMR7»:
Для обеспечения возможности дальнейшей обработки события от таймера, необходимо привязать параметр «Состояние» таймера «TMR7» к одному из «Vx», например, к «V60». Конфигурирование «TIMER» ДействияНа вкладке «Действия» создаем действие «GET-запрос» («Действие N0»). В качестве параметра «<хост>» выбираем шаблон «Т06» содержащий имя домена «narodmon.ru».
В качестве параметра «[/ Действие «GET-запрос» Настройка действий, для опроса сенсоров ds18b20 и DHT22, рассмотрены в статьях «Подключение датчиков температуры DS18B20 и «Подключение датчика температуры и влажности DHT11/DHT21(AM2301)/DHT22». СценарииНа вкладке «Сценарии (Задачи)» создаем сценарии (задачи, триггеры), которые будут вызываться по событиям обновления переменной «V59» и «V60» (события формируются таймерами «TMR3» и «TMR7», происходит каждые 10 секунд и каждые 5 минут). В качестве действия выберем «Действие N0», «Действие N1», «Действие N2», по которым будут вызываться функции опроса сенсоров и «GET-запрос». Сценарии
Получаем следующий алгоритм работы:
В результате, на странице сервиса narodmon.ru получаем отображение значений сенсоров ds18b20 и DHT22. |
Программы
Прошивка «Smacont-ESP»:
«Программа Настройки»:
Телеграм каналНовостиЭнергонезависимая память (EEPROM) Переменные «Vx» (карта переменных «Vx») Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой Обмен данными. Open Monitoring Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25 Датчик температуры и влажности SHT30 (SHT31/SHT35) Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений Действие «termostat()». Термостат ESP-NOW. Датчик температуры и влажности с питанием от батареек Последовательные интерфейсы (UART, I2C, SPI) Управление одноканальным модулем реле |