esp sensors2На базе дешевого WI-FI модуля ESP8266 можно быстро получить беспроводной датчик температуры, влажности, давления, освещенности- достаточно обновить прошивку модуля и подключить датчики. Дополнительные микроконтроллеры не требуются.

В данный момент прошивка поддерживает чтение  датчиков DHT11/22, BMP085/180, BH1750,  DS18B20, AM2321 и другие и умеет передавать показания на сайт народного мониторинга, на сервис учета метрик ThingSpeak.com, MQTT сервер, в систему умного дома MajorDoMo, в систему компьютерного контроля Бенукс. Имеется возможность управлять состоянием свободных GPIO для управления нагрузками(реле), читать состояние входов GPIO, выводить данные на LCD или OLED экран и множество других функций.

Схема подключения датчиков в заголовке статьи - это всего лишь пример для оценки простоты сборки устройства, реальная и правельная схема подключения может отличаться (например питание датчику DHT22 желательно 5в.). Так же не рекомендуется использовать ESP-01. Рекомендуемые модули ESP-07 и ESP-12 и другие, с максимально выведеными GPIO. Для более полноценного использования прошивки рекомендуются модули с flash памятью 1 мегабайт и выше, возможна перепайка чипа памяти.

 

Версия 0.0.1 (от 22.11.14) - первая публичная версия. 2 раздельные прошивки для dht22 и bmp180.

Версия 0.0.2 (от 29.11.14) DHT+BMP. Поддерживает одновременно оба датчика !! Можно подключить и один из них. Переработан веб сервер.

Версия 0.0.3 (от 5.12.14) DHT+BMP+DS18B20. Добавлен датчик DS18B20.

Версия 0.0.4 (от 9.12.14). Исправлено отображение отрицательных температур.

Версия 0.0.5 (от 17.12.14)  Добавлены настройки wi-fi через веб интерфейс, настройки включения/выключения датчиков и отправки данных на narodmon.ru, возможность менять вывод gpio у датчиков DHT22 и DS18B20. Можно подключить ДВА датчика DHT22. Прошивка поддерживает LCD экран через  i2c переходник.

Версия 0.0.6 (от 18.12.14) Добавлена поддержка удобного сервиса сбора статистики Thingspeak.com. Сервис создает удобные графики, которые могут быть встроены на Ваш сайт.

Версия 0.0.7 (от 27.12.14, исправлено 30.12.14) Добавлена поддержка BH1750 (датчик освещенности), LM75 (датчик температуры), DHT11(датчик влажности), добавлен DDNS клиент. Добавлен I2C сканер(для отладки i2c датчиков). Добавлена поддержка системы MajorDoMo. Добавлена поддержка LCD 1604 и 2004. Базовые функции управления состоянием GPIO выводов для управления нагрузками(реле). Добавлен OpenDNS для резолвинга хостов по имени. Исправлено отображение отрицательной температуры у DS18B20. Возможны проблемы сохранения настроек.

Версия 0.0.8 (от 13.01.15) Добавлены датчики INA219 (датчик тока и напряжения), DS1621(температура). Исправлена проблема с памятью.  Управление розетками/люстрами по протоколу RCswitch 433 или 315 мгц GET запросом. Свое сообщение на LCD экране через GET запрос. Новый внешний вид главной страницы. Настройка адреса у LCD экрана. Добавлен сервис flymon.net. Чтение состояния GPIO  с отправкой состояния на narodmon, flymon.net, MajorDoMo.

Версия 0.0.9 (от 25.01.15)  Добавлена авторизация на настройки, логин и пароль можно менять. Добавлен режим Safe Mode(Безопасный режим) для начальной настройки и востановления доступа к модулю. Новый внешний вид на всех страницах. Добавлена поддержка микросхем PCF8591(АЦП/ЦАП), PCF8574(8 внешних GPIO). Поддержка прямого управления любыми i2c устройствами через http get запрос(описание). Исправлена проблема работы MajorDoMo. Исправлены мелкие ошибки. Добавлено управление временем импульсов RCswitch.

Версия 0.1.0 с режимом PRO. (15.03.15). Прошивка имеет как Free функционал, так и опции на платной основе. Новые возможности прошивки: Спящий режим. Счетчик импульсов для счетчиков воды и энергии. Отправка быстрого события на сервер, например для датчиков движения. Поддержка MQTT клиента (доступно чтение датчиков, чтение/управление gpio, управление подсветкой LCD и отправка сообщения на LCD.). Поддержка шины 1-wire с возможностью подключения до 10 ds18b20 или ds18s20. Поддержка датчика влажности AM2321. Назначение I2C на любые GPIO. Статический IP адрес.

 

Проект переехал на отдельный новый сайт wifi-iot.com.

Демонстрация веб интерфеса тут.

Тема на форуме про новый конструктор прошивок. Внимательно читаем как переключить ОТА на новый конструктор !!

Список добавленных возможностей находится  тут . Обсуждение прошивки  находится на форуме. Прошивку под свои требования можно собрать в личном кабинете.

Внимание ! ! Функции описанные ниже для их появления в прошивке необходимо включить в конструкторе перед сборкой прошивки !! Описание некоторых функций имеется только в личном кабинете при нажатии кнопки "?".

Варианты применения модуля
-Интеграция в системы умного дома.
-Домашняя метеостанция с просмотром показаний онлайн.
-Учет показаний счетчиков воды, электросчетчиков и просмотр показаний онлайн.
-Управляемая по WI-FI розетка, люстра или другие электроприборы.
-Встраивание в выключатели с локальным и удаленным управлением.
-Простейший термостат или влагостат.
-Управление нагрузкой по логическим условиям с нескольких датчиков.
-Управление устройствами, подключенные к модулю, через ИК или радио пульт.
-Светодиодная бегущая строка в рекламно-информационных целях, управляемая через WI-FI.
-Управление и контроль через GSM SMS модули, в том числе и на русском.

 

Функции в разработке:

Оставить заявку на добавление опции/датчика на форуме.

Прошивка и запуск модуля ESP8266

Статья находится здесь.

Сброс WI-FI настроек модуля

Сбросить настройки WI-FI можно и прошив файл бланка по адресу 7E000.

Подключение датчиков

Датчики DHT22 и DS18B20 (а так же DS18S20,DS1820) подключается согласно распиновки (распиновка DHT11/22 распиновка DS18B20). Выводы модуля для подключения датчиков указываются на страничке веб интерфейса sensors.

Датчикам DS18B20  необходима подтяжка на плюc резистором на 1.5кОм...4.7кОм(в зависимости от напряжения питания и количества датчиков). Возможно подключение по паразитному питанию двумя проводами. Для начальной работы датчиков необходимо зайти на вкладку 1-wire и просканировать адреса. В FREE версии доступен только один датчик. в PRO - до 10.

Примечание: GPIO 1 соотвествует вывод TXD. GPIO 3 - RXD. 

I2C устройства подключаются на соотвествующие выводы, указанные на вкладке GPIO.

Датчик BMP085 или BMP180 подключается согласно распиновки датчика. Остальные датчики подключаем согласно их даташитам.

Датчики DS1621 и LM75 в данный момент не могут использоваться одновременно.

Экранчики LCD1602/1604/2004/OLED подключаются так же на I2C шину. Адрес у LCD переходника I2C по умолчанию 0х27. Его можно поменять в настройках экрана. У OLED адрес фиксирован - 0х3C.

Считать любые i2c датчики можно и напрямую через get запрос. Тема на форуме.

Настройка датчиков в веб интерфейсе

esp sensors2

 Выбираем необходимые сенсоры и устанавливаем на каких GPIO они подключены и нажимаем Set на вкладке Hardware. Нажимаем Set. Некоторые датчики можно включить только в PRO версии !

 

 

 

esp main4После успешной настройки через некоторое время Вы увидите на главной странице состояние датчиков.

 

 

 

 

 

 

 

 

 

 

LCD и OLED дисплеи

Статья про дисплеи находится тут.

Светодиодные матрицы

Статья про LED матрицы находится тут.

Настройка и управление GPIO(VGPIO) и внешними GPIO

Статья находится здесь.

Работа с ШИМ:

esp pwm

Модуль имеет 3 канала ШИМ (PWM). Для работы с ШИМ необходимо указать количество каналов и указать GPIO на которых необходимо запустить ШИМ. Управление PWM (ШИМ) GET командой /pwm?ch=Y&set=XXX , Y - это номер канала 0,1,2, XXX - уровень ШИМ 0..255. Посмотреть установленные уровни ШИМ можно на страничке /pwmprint . Для сохранения состояния в энергонезависимую память необходимо дописать &flash=1. Доступно управление через MQTT.

Работа с АЦП(АDC):

Модуль ESP8266 имеет один АЦП с опорным напряжением 1.024 вольта.  АЦП включается на вкладке Sensors. При активации функции напряжение питания VDD становится недоступной т.к. используется этот же АЦП !

Планировщик задач (Scheduler):

Scheduler espПланировщик позволяет включать/выключать нагрузки, подключенные на GPIO по определенному времени. При установке в конструкторе прошивки модуля ШИМ(PWM) так же доступно управление уровнем ШИМ. В данный момент доступно 8 возможных задач. На примере скриншоте слева задано включение GPIO 12 в 12.00 и выключение в 14.00.

 

 

 

Управление розетками/люстрами по протоколу RCswitch 433 или 315 мгц

Для начала необходимо узнать код команды, например воспользовавшись ардуино и библиотекой RCswitch или  опцией RCswitch приёмник 433/315 в прошивке.

Команда для управления: http://IP_ADRESS/rcremote?cmd=YYYY. Где YYYY - цифровой код команды.  Так же доступен параметр &per=X, который задает время импульсов в микросекундах. Параметр не обязательный. По умолчанию 300мкс. Битность сигнала можно изменить параметром &bits=24 - в этом случае передача будет идти 24 битной посылкой.

Режим PRO и его активация

Для развития проекта необходимо время, а как известно время - это деньги и по этому было решено перейти на платную основу. Плата символическая - 100 рублей или 2.05 доллара/евро (цена ниже при количестве ключей 2 и больше). Сейчас прошивка имеет некоторый функционал, который доступен только при активации ключа. Один ключ может использоваться только на одно устройство ESP8266.

Для получения ключа необходимо зарегистрироваться в личном кабинете. Вводить ключ необходимо по ссылке GET PRO на главной странице модуля. ID устройства необходимо смотреть на страничке активации ключа !

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

Обновление прошивки через интернет(OTA)

Модуль может получать обновления прошивки например для изменения состава модулей и исправления ошибок. Для этого в конструкторе прошивки необходимо включить соотвествущую опцию. Прошивка через программатор необходима только в первый раз, далее обновления уже можно получать зайдя в соотвествующий пункт веб интерфейса ESP8266. Перед запуском обновления необходимо заранее в конструкторе прошивки выставить необходимые опции и собрать прошивку. Создавать прошивку в конструкторе нужно и при исправлении/правке кода при анансе этого на форуме.

Обновление через интернет имеет недостаток- ограничение размера прошивки в 236кб + 4кб загрузчик при flash памяти в 512кб.  При выборе опции 1мегабайт и модуле с 1 и более мегабайт данного ограничения нет. Например  модули ESP-12 всех модификаций имеют на борту 4 мегабайта. Так же можно перепаять чип памяти на более ёмкий.

На модуль должен быть обязательно получен ключ для режима PRO -по этому коду идет привязка к Вашей учетной записи в личном кабинете конструктора !!  Без ключа будет загружена облегченная версия прошивки. При получении ключа из облегченной версии можно обновится до полной версии, созданной в конструкторе.

Если запустить обновление на модуле с полученным ключем, но если прошивка в конструкторе не создана, то в логах ЛК будет соотвествующее сообщение и загрузится облегченная прошивка.

Сообщения(вкладка логи) конструктора при обновлении через OTA:

Обновление прошивки на модуле 10000 файл user1.bin (1Mb) - на модуле прошло обновление. Это сообщение еще не значит, что оно было успешно. Так же в сообщении передается какой файл прошивки обновился и указывается установленный размер flash.

Ошибка обновления на модуле 100000. Выбран не тот размер flash памяти. - Попытка обновится при установленной прошивке 512кб на прошивку 1мб или наоборот. Для перехода с 512кб на 1 мег необходимо перепрошится через программатор. Посмотреть реальный размер установленной памяти можно на страничке /debug .

Ошибка обновления на модуле 1000000. Прошивка с поддержкой OTA не создана в конструкторе. - Не собрана прошивка с включенной галкой OTA или сборка была не успешна.

Добавление устройства на сайте narodmon.ru

Сервис полезен для просмотра показаний датчиков онлайн, а также на смарфонах, планшетах и ПК.

Добавление устройства ничем не отличается от добавления других любых датчиков на сайте http://narodmon.ru. Необходимо добавить устройство на сайте, указав его id.  ID можно узнать в веб интерфейсе на страничке servers.

Считывание данных сторонними сервисами или программами

Данные с датчика можно считать и по адресу http://IP_Адрес/sensors . Данные выводятся через точку c запятой. Эти данные легко можно считывать с помощью систем умного дома или своим приложением. По этому адресу читает данные система Бенукс.

Для работы опции в конструкторе необходимо включить "Чтение датчиков GET запросом".

Работа с системой MajorDoMo

Статья находится здесь.

Работа с системой thingspeak.com

Для подключения системы необходимо зарегистрироваться и далее создать канал. На страничке API Keys смотрим ключ write данного канала и копируем его в соотвествующее поле модуля в веб интерфейсе на страничке servers. Добавляем field в зависимости от подключенных датчиков: 

 
field1 DHT1/ AM2321 temp
field2 DHT1 / AM2321 humidity
field3 BMP temp
field4 BMP pressure
field5 DHT2 / INA219 temp / voltage
field6 DHT2 / INA219 humidity / current
field7 DS18B20 / LM75 temp
field8 BH1750 light
 
Некоторые field имеют несколько назначений, может использоватся только один из датчиков.

Работа с MQTT серверами

Модуль поддерживает отправку данных на сервер и управление gpio. Для работы сервиса необходимо ввести логин, пароль и адрес сервера (IP адрес или доменое имя). 

Дополнительные команды mqtt:

логин/имя устройства/lcd/line/X - вывод информации на LCD или OLED дисплей, где X – номер строки, начиная с 0.

логин/имя устройства/lcd/light - Управление подсветкой LCD дисплея. 0 - выключить, 1-включить. Настройка энергонезависима.

Основную документацию по настройке и работе MQTT рекомендую почитать в интернете..

 

Решаем проблемы работы прошивки

Проблемы стабильности прошивки

Проблемы с нестабильностью работы чаще всего связаны:

1. Низкое качество питания. Как по току, так и чистоте напряжения(например вч помехи от ШИМ стабилизаторов). Используемый стабилизатор должен держать минимум 200мА. Для этого подходят стабилизаторы вида 1117. Не помешает установка электролита не менее 200мкф и керамического кондесатора на 0.1мкф(обозначение 104). Использование 3.3в от USB-UART переходников не желательно..

2. Несовместимость с роутером. Некоторые роутеры нестабильно работают с модулем. Иногда это решается выбором другого SDK в конструкторе или настройкой роутера, например на более низкую скорость или ширину канала.

3. Ошибка в работе конкретного модуля в прошивке. Основная часть прошивки отточена и esp8266 может работать стабильно месяцами, но не исключены ошибки в работе конкретной опции.

4. Использование нерекомендуемых GPIO 0,1,2,3,15 - эти выводы нерекомендуется использовать для подключения счетчиков и сухого контакта. Входы в некоторых случаях необходимо защищать через оптрон или компаратор для защиты от статики.

5. Проблема со связью может быть связана так же и из-за UDP трафика внутри сети. Например от IPTV.

Невозможно прошить модуль

Ошибки, которые допускают пользователи, из-за чего прошить и запустить модуль не удается:

1. Опять же низкое качество питания.

2. Забыли подключить GPIO 15 и GPIO 0 на минус, а CH_EN на плюс. GPIO 0 необходимо отключить после успешной прошивки.

3. Перепутали RX, TX. Модуль и USB-UART должны быть подключены крест на крест. Иногда на USB-UART переходнике RX TX могут быть перепутаны.

Невозможно прошить модуль через интернет (OTA) 

Возможные причины:

1. Опять же низкое качество питания. В этом режиме качество питания должно быть еще выше, т.к. одновременно идет запись и передача данных по WI-FI. Потребление тока максимально в течении примерно 20 секунд.

2. Обращение  к модулю из браузера или других систем во время обновления прошивки. Не рекомендуюется обращаться к модулю во время ОТА.

3. Не создана прошивка в конструкторе с поддержкой OTA или создана не для того размера флешь.

Рекомендуется смотреть логи личного кабинета - там так же отображаются некоторые ошибки обновления..

4. UDP трафик внутри сети, возможно даже небольшой.

 

Полезные ссылки:

Конструктор прошивки www.wifi-iot.ru/

Канал обзоров и инструкций от Umka Канал умной автоматики.

Сайт мониторинга и управления http://flyhub.org (в активной разработке)

Обсуждение прошивки на форуме.

Обсуждение прошивки в IRC чате на канале #esp8266 . В чате можно получить ответы на вопросы в реальном времени. Задать вопросы можно как разработчику прошивки (ник MaksMS) так и разработчику сервиса flymon.net (ник FlyRouter).

 

* - возможности, доступные в версии PRO.

Содержание статьи может меняться по мере выхода новой версии прошивки.

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.