Опустим причины выбора именно ESP8266. Кратко об этом сообщается в разделе «О проекте».
Итак выбор основы для построения умных элементов дома сделан, это Wi-Fi модуль ESP8266. Дело за малым, осталось приобрести плату для экспериментов. Площадка для покупки АллиЭкспресс. Итак приобретено:
- nodemcu V3 Lua ESP8266 10шт цена за единицу примерно 150 рублей
- Макетная плата MB102 на 830 точек 1шт 300 рублей (лучше брать сразу 2)
- Комплект соединительных проводов 120шт 160 рублей
- Датчик давления BMP180
- Датчик температуры и влажности DHT22
- Модуль часов реального времени DS3231
- Датчик температуры 18B20 влагонепроницаемое исполнение
- Инфракрасный датчик CO2 MH-Z19
- Датчик формальдегида ZE08-CH20
- Модуль реле KY-019
- ЖК дисплей 3.2″ с сенсорным вводом (не самый удачный выбор для ESP)
Получился внушительный список. Это связано в первую очередь с желанием получить опыт программирования данного модуля. В качестве уроков буду использовать работу со всевозможными датчикими.
Про каждый из вышеперечисленных элементов сделаю отдельную заметку с информацией о подключении и сборе данных. Пока только о центральном элементе.
Вариантов исполнения Wi-Fi модуля на основе ESP8266 довольно много. Это и крайне миниатюрные платы, которые можно поместить в любой выключатель, так и довольно крупные версии, например купленная мной. Основное отличие версий — это наличие различной обвязки. Выбор на плату NodeMcu V3 пал не случайно. Данную версию легко подключить к ПК для программирования, для этого не потребуется программатор, достаточно простого кабеля USB-microUSB.
Так же в платку встроен интерпретатор команд LUA. Это означает, что в контроллер можно сохранять скрипты на языке LUA и интерпретатор будет их исполнять. Я данный способ программирования не использовал, а пошел по второму пути — прошивка бинарным кодом. Чуть подробней: в нашем случае программа может воплотиться в жизнь двумя способами с помощью интерпретатора или с помощью компилятора.
- Интерпретатор — берет команду, и выполняет ее. И так последовательно перебирает весь текст программы. Шаг за шагом. Можно сказать, что он последовательно работает с текстом. Сама программ всегда представляет собой набор текстовых команд.
- Компилятор — действует чуток иначе. Он так же обрабатывает текст программы, но в результате обработки — получается набор машинных команд. Именно этот набор команд записывается в память контроллера — и становится самостоятельной инструкцией для процессора. Это уже не текст понятный человеку, это машинные инструкции.
Второй способ мне симпатизирует больше. В далекой перспективе, он не содержит ограничений связанных с синтаксисом языка. Но это очень далекая перспектива.
Для начала работы я взял среду Ardruino IDI. Данная среда разработки была создана для любителей самоделок на базе плат Ardruino с чипами Atmel Mega, но была адаптирована в том числе и для ESP8266. Среда удобна набором готовых решений и примеров работы. В этом смысле она идеальна для начала изучения области микроконтроллеров в домашних условиях. Основа — это язык Си и Си++. Хотя после начала использования у меня было желание уйти в обычный блокнот, уж часто «глюки» меня раздражали, но все де среда работоспособно и ряд примеров был написан именно на ней.
Ждем посылку… данный текст будет дописан