WiFi погодная станция на Wemos D1
Замечательная новость для любителей создавать переферийные беспроводные устройства. Появилась arduino совместимая плата Wemos D1 на базе ESP8266. В отличие от старых модификация плат с ESP8266, Wemos имеет форм-фактор arduino, то есть на него наденуться шилды.
Сейчас я попробовал создать погодную станцию с подключением по WiFi и внутренним сервером, для которой нужны:
- Wemos D1
- LCD keypad Shield - дисплей 2х16 с навигационными кнопками
- DHT21 или 11,22
Обратите внимание, что пины на wemos и на arduino именованы по разному, хотя и расположены одинаково
Датчик температуры и влажности DHT21 не требует подключения резистора между пином данных и +5В, так как имеет его уже на плате. Я подключил его к пину 5, он же D1. Однако меня ждала неприятность в виде того, что LCD шилд что-то гадил на эту ногу, хотя она какбы не была на нем задействована - ее пришлось отогнуть и впаять отдельные ножи в wemos для подлкючения DHT.
Программная часть.
Не буду копипастить статьи и отъедать чужую инфу, поэтому как настроить Arduino IDE написано на https://geekelectronics.org.
Собственно скетч Wemos-DHT-LCD.
В итоге:
- показ времени, температуры и влажности на LCD
- установка времени производится кнопка "влево" - выводится H-часы или M-минуты. Стрелки вверх/вниз установка
- подключение к одной из 3х точек доступа указанных в соответственных массивах
- синхронизация времени методом GET
- показ параметров для запросов :
- - http://ip/ - all
- - http://ip/h - humidity float
- - http://ip/t - themperature float
- Управление gpio16: (возможно подключение реле вентилятора)
- - http://ip/gpio16/0 - gpio16 OFF
- - http://ip/gpio16/1 - gpio16 ON
- - http://ip/gpio16/2 - gpio16 not set - controlled by humidity level
- периодическиая отправка параметров методом GET на определенный PHP скрипт, который описан ниже
PHP скрипт требуется расположить на роутере или на своем хостинге. Мне нравится например atwebpages.com.
Требуется наличие apache или lighttpd, PHP5,php5-gd,php5-sqlite,sqlite3.
У меня это поднято на OpenWRT-роутере.
Функции скрипта:
- отображение графиков полученных данных с нескольких датчиков
- прием данных методом GET с сохранием показаний в sqlite
Использованы материалы с сайтов:
[tags]esp8266,arduino,DHT,wemos,LCD[/tags]
Lisolog (C) / 2017