Начало работы с платой NodeMcu ESP8266 v3 Lua
NodeMcu – платформа на основе ESP8266 для создания различных устройств IoT. Модуль умеет отправлять и получать информацию в локальную сеть либо в интернет при помощи Wi-Fi. Недорогой модуль часто используется для создания систем умного дома или роботов Arduino, управляемых на расстоянии. В этой статье мы рассмотрим описание платы, отличие версий и распиновку последней версии модуля Esp8266 NodeMcu v3. Также мы коротко рассмотрим язык Lua, на котором нужно писать программы для NodeMcu.
Описание ESP8266 NodeMcu v3
Технические характеристики модуля:
- Поддерживает Wi-Fi протокол 802.11 b/g/n;
- Поддерживаемые режимы Wi-Fi – точка доступа, клиент;
- Входное напряжение 3,7В – 20 В;
- Рабочее напряжение 3В-3,6В;
- Максимальный ток 220мА;
- Встроенный стек TCP/IP;
- Диапазон рабочих температур от -40С до 125С;
- 80 МГц, 32-битный процессор;
- Время пробуждения и отправки пакетов 22мс;
- Встроенные TR переключатель и PLL;
- Наличие усилителей мощности, регуляторов, систем управления питанием.
Существует несколько поколений плат NodeMcu – V1(версия 0.9), V2(версия 1.0) и V3 (версия 1.0). Обозначения V1, V2, V3 используются при продаже в интернет-магазинах. Нередко происходит путаница в платах – например, V3 внешне идентична V2. Также все платы работают по принципу open-source, поэтому их могут производить любые фирмы. Но в настоящее время производством плат NodeMcu занимаются Amica, DOIT и LoLin/Wemos.
Отличия от других модификаций
Платы поколения V1 и V2 легко отличить – они обладают различным размером. Также второе поколение оснащено улучшенной модификацией чипа ESP-12 и 4 Мб флэш-памяти. Первая версия, устаревшая, выполнена в виде яркой желтой платформы. Использовать ее неудобно, так как она покрывает собой 10 выходов макетной платы. Плата второго поколения сделана с исправлением этого недостатка – она стала более узкой, выходы хорошо подходят к контактам платы. Платы V3 внешне ничем не отличаются от V2, они обладают более надежным USB-выходом. Выпускает плату V3 фирма LoLin, из отличий от предыдущей платы можно отметить то, что один из двух зарезервированных выходов используется для дополнительной земли, а второй – для подачи USB питания. Также плата отличается большим размером, чем предыдущие виды.
Питание модуля NodeMcu
Подавать питание на модуль можно несколькими способами:
- Подавать 5-18 В через контакт Vin;
- 5В через USB-разъем или контакт VUSB;
- 3,3В через вывод 3V.
Преимущества NodeMcu v3
- Наличие интерфейса UART-USB с разъемом micro USB позволяет легко подключить плату к компьютеру.
- Наличие флэш-памяти на 4 Мбайт.
- Возможность обновлять прошивку через USB.
- Возможность создавать скрипты на LUA и сохранять их в файловой системе.
Недостатки модуля NodeMcu
Основным недостатком является возможность исполнять только LUA скрипты, расположенные в оперативной памяти. Этого типа памяти мало, объем составляет всего 20 Кбайт, поэтому написание больших скриптов вызывает ряд трудностей. В первую очередь, весь алгоритм придется разделять на линейные блоки. Эти блоки необходимо записать в отдельные файлы системы. Все эти модули исполняются при помощи оператора dofile.
При написании нужно соблюдать правило – при обмене данными между модулями нужно пользоваться глобальными переменными, а при вычислении внутри модулей – локальными. Также важно в конце каждого написанного скрипта вызывать функцию collectgarbage (сборщик мусора).
Распиновка NodeMcu v3
Модуль V3 имеет 11 контактов ввода-вывода общего назначения. Помимо этого некоторые из выводов обладают дополнительными функциями:
- D1-D10 – выводы с широтно-импульсной модуляцией;
- D1, D2– выводы для интерфейса I²C/TWI;
- D5–D8 – выводы для интерфейса SPI;
- D9, D10 – UART;
- A0 – вход с АЦП.
Подключение NodeMCU к компьютеру
Для начала работы с NodeMcu нужно подключить плату к компьютеру. Первым шагом будет установка драйвера CP2102 и открытие Arduino IDE. Затем нужно найти в «Файл» — «Настройки» и в окно «дополнительные ссылки для менеджера плат» вставить ссылку http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json.
После этого в меню «документы» — «плата» «менеджер плат» выбрать «esp8266» и установить последнюю версию. После проделанных действий в меню «инструменты» — «плата» нужно найти NodeMCU.
После того, как все необходимые данные будут установлены и скопированы, можно будет начать работать.
Пример подключения светодиода к NodeMCU
Принципиальная схема подключения представлена на рисунке.
Итоговый макет макет выглядит следующим образом:
Сама плата работает от напряжения 3.3 В, поэтому для подключения светодиода нужно использовать резистор. В данном примере для красного светодиода берется резистор номиналом 65 Ом.
Похожим способом к плате подключается и фотодиод:
Плату NodeMCU можно использовать и для управления по ИК каналу. Для управления нужен пульт дистанционного управления с ИК приемником и сама платформа. Инфракрасный приемник подключается по схеме, представленной ниже:
Прошивки для esp8266 NodeMcu
В основу платформы загружена стандартная прошивка Node MCU, в которую встроен интерпретатор языка Lua. При помощи Lua-команд можно выполнять следующие действия:
- Подключение к Wi-Fi точке доступа;
- Работа в роли Wi-Fi точки доступа;
- Переход в режим глубокого сна для уменьшения потребления энергии;
- Включение или выключения светодиода на выходе GPIO16;
- Выполнение различные операции с файлами во флэш-памяти;
- Поиск открытой Wi-Fi сети, подключение к ней;
- Вывод MAC адреса;
- Управление пользовательскими таймерами.
Для программирования NodeMCU можно использовать Arduino IDE или комплекс средств разработки SDK — ESPlorer. Этот комплекс обладает рядом отличий:
- Он может работать на множестве различных платформ;
- Обладает поддержкой нескольких открытых файлов;
- Позволяет подсвечивать код языка Lua;
- Возможность умной отправки файлов;
- Возможность поддержки нескольких видов прошивки одновременно.
Для обеспечения корректной и стабильной работы нужно обновить прошивку до последней версии. Существует несколько способов обновления – облачный сервис, Docker Image и компилирование в Linux. Каждый из этих способов обладает своими плюсами и минусами. Наиболее простым и понятным является первый способ.
Сбор прошивки в облачном сервисе
Облачный сервис обладает простым и удобным интерфейсом. Работа начинается с ввода email. Далее будет предложено выбрать тип прошивки – стабильная прошивка или тестируемая. Первая используется для обучения и создания большого количества объектов, поэтому рекомендуется выбирать именно ее. Следующим шагом будет подключение нужных модулей. По умолчанию уже записано несколько основных пунктов, остальные нужно включать только по необходимости. Затем выбираются дополнительные опции. Среди них есть поддержка FatFS для чтения sd-карты или включение режима отладки.
После начала сборки придет письмо на почту, сигнализирующее о начале запуска процесса. Через некоторое время придет и второе письмо – будет предложено выбрать версию float (дробные числа) или integer (целые числа).
После перехода по полученной ссылке нужно будет скачать файл bin и поместить его в Resources – Binaries. Там будет расположен файл nodemcu_integer_0.9.5_20150318.bin, который нужно удалить. В итоге содержимое папки будет выглядеть следующим образом.
Обновление прошивки Node Mcu
Для правильной и стабильной работы платы требуется перезаписать esp_init_data_default.bin. Скачать его можно на официальном сайте. Нужный файл нужно поместить снова в систему для прошивки NodeMCU Flasher по пути Resources – Binaries, предварительно удалив из него старый файл.
Затем можно подключать NodeMCU и приступить к обновлению. Для начала нужно поменять настройки – в NodeMCU Flasher во вкладке Config нужно выбрать файл собранной прошивки вместо INTERNAL://NODEMCU.
Остальное оставить без изменений, перейти на Operations и нажать Flash. Как только окончится прошивка, нужно снова перейти на Config и в первой строке указать путь esp_init_data_default.bin. Также дополнительно указывается адрес, куда нужно переместить этот файл. Для модуля NodeMCU следует выбрать адрес 0x3FC000. После этого нужно снова вернуться на Operations и нажать Flash.
После этого нужно переформатировать всю файловую систему млаты. Для этого нужно запустить ESPlorer, обязательно поставить скорость обмена 115200 и перезагрузить NodeMCU. После всех вышеописанных действий будет новая версия прошивки. Отладочная плата полностью перепрошита и готова к работе.
Краткое описание языка Lua
Язык Lua обладает простым синтаксисом и мощными конструкциями описания данных, которые основаны на массивах и расширяемой семантике. Этот мощный язык программирования используется для создания программного обеспечения, расширения различных игр. В отличие от остальных языков Lua обладает более гибкими и более мощными конструкциями.
Мигание светодиодами на Lua
Можно рассмотреть простейшую схему – мигание светодиодом. Этот пример поможет изучить работы с контактами GPIO. Светодиод нужно подключить как показано на схеме.
Затем нужно записать следующий скетч в левое окно ESPlorer:
pin_number = 1
gpio.mode (pin_number, gpio.OUTPUT) // установка рабочего режима на выход
gpio.write (pin_number, gpio.HIGH)// установка высокого уровня
gpio.write (pin_number, gpio.LOW)// установка низкого уровняgpio.serout (1, gpio.HIGH, {+990000,990000}, 10, 1) // установка мигания светодиодом 10 раз
После нужно сохранить скрипт с названием init.lua. Сразу после этого начнется автоматическая загрузка написанного кода в отладочную плату и его выполнение. Если операция выполнена успешно, отладочная плата начнет мигать светодиодом.
Важно отметить, что плата самостоятельно выполняет скрипт, подключение к компьютеру нужно только для подачи питания.
arduinomaster.ru
1. Понятие Интернета вещей для Умного дома Умный дом – это жилой дом, организованный для удобства проживания людей при помощи различных высокотехнологичных устройств. |
|
2. Обзор набора Интернета вещей для Умного дома Откроем наш набор и рассмотрим его содержимое. Самый главный компонент любой «умной» системы – его контроллер. Контроллер предназначен для получения информации и управления «умным» домом. В нашем наборе два контроллера! Это плата Arduino Mega и модуль NodeMcu v3 Lua WI-FI ESP8266 Ch440. Вы можете выбрать любой из них. Подробнее … |
|
3. Установка программного обеспечения Разработка собственных приложений на базе плат, совместимых с архитектурой Arduino, осуществляется в официальной бесплатной среде программирования Arduino IDE. Среда предназначена для написания, компиляции и загрузки собственных программ в память микроконтроллера. Подробнее … |
|
4.1. Подключение датчика влажности и температуры DHT11 (DHT22) Плата модуля содержит основные компоненты: датчик температуры и относительной влажности DHT22 в белом корпусе, светодиод индикации питания и вилка соединителя. Внутри DHT22 небольшая плата с компонентами: емкостным датчиком влажности, терморезистором, имеющим отрицательную характеристику и микроконтроллером. Подробнее … |
|
4.2. Подключение цифровой датчика температуры DS18B20 (RI002) Для измерения температуры «умного» дома в набор включен датчик температуры RI002. Это хорошо известный цифровой датчик температуры DS18B20 водонепроницаемом корпусе из нержавейки. Приемущества водонепроницаемого корпуса – возможность измерить температуру в неблагоприятной для микросхем среде: в почве, на дожде или даже в аквариуме. Подробнее … |
|
4.3. Подключаем датчик влажности почвы Домашний уют — это атмосфера тепла в вашей квартире, желание возвращаться туда после трудного дня. Уют и комфорт в вашем доме оказывают непосредственное влияние на ваше самочувствие и настроение. Необходимое условие в создании уюта имеет использование комнатных цветов. Они доступны каждому из нас и при этом лучше любой мебели помогут создать уют и комфорт, и как ни что другое просто вдохнуть в ваш дом чистую энергию. Подробнее … |
|
4.4. Как подключить датчик уровня воды Одна из главных задач умного дома — заботиться о своей сохранности, не допускать взломов, пожаров, затоплений, и прочих повреждений. Вот о защите от протечек и затопления мы сегодня и поговорим. Точнее сказать, пока только об обнаружении протечек. Подробнее … |
|
4.5. Определение концентрации углеводородных газов с помощью датчика MQ-2 Одна из самых важных задач в вопросе безопасности умного дома –обнаружение утечки газа. Для того, чтобы плата Arduino успешно решала задачи такого рода, нужно подключить к ней датчик газа MQ-2. Датчик MQ-2 определит концентрацию углеводородных газов (пропан, метан, н-бутан), дыма (взвешенных частиц, являющихся результатом горения) и водорода в окружающей среде. Датчик можно использовать для обнаружения утечек газа и задымления. Подробнее … |
|
4.6. Определение концентрации угарного газа с помощью датчика MQ-7 Основным источником выделения угарного гоза СО, является сгорание углеродного топлива при недостаточном количестве кислорода. Углерод «не догорает» и вместо углекислого газа CO2, в атмосферу выбрасывается угарный газ CO. Источником СО в доме, при неправильной эксплуатации, могут выступать дровяные печи, газовые конфорки, газовые котлы и прочая отопительная техника, работающая на углеродном топливе. В выхлопе бензинового двигателя автомобиля содержание СО может быть до 3%. Подробнее … |
|
4.7. Подключение модуля датчика огня Модуль датчика огня Flame Sensor позволяет фиксировать наличие пламени или другого источника огня в прямой видимости перед собой. |
|
4.8. Подключение датчика присутствия HC-SR501 Рассмотрим еще один датчик, связанный с обеспечением безопасности для умного дома. Это модуль датчика присутствия HC-SR501 на основе пироэлектрического эффекта. Состоит из самого PIR-датчика (Pyroelectric (Passive) InfraRed sensor) и схемы управления. Такие датчики часто используются в охранных системах и в быту для обнаружения движения в помещении. Подробнее … |
|
5. Отображение показаний и индикация состояний датчиков Данные, получаемые с датчиков, мы выводили в монитор последовательного порта Arduino. Смотреть показания датчиков через последовательный порт не совсем удобно, нам необходимы более удобные устройства для отображения данных. Подробнее … |
|
5.1. Дисплей TFT 2.4″ Shield 240×320 В качестве экрана для отображения показаний с датчиков мы будем использовать 2.4″ Shield 240×320. Основное применение дисплея – отображение простой графики и символьных данных с использованием 16 цветов. Подробнее … |
|
5.2. Вывод показаний датчиков на TFT 2.4″ Shield 240×320 для Arduino MEGA Подключим TFT Shield к Arduino MEGA. Для использования библиотеки SWTFT с платой Arduino Mega, необходимо внести изменения в файл SWTFT.cpp . Подробнее … |
|
5.3. Светодиодная индикация и звуковая сигнализация о критических параметрах датчиков для Arduino MEGA Введем светодиодную индикацию и звуковую сигнализацию, чтобы информировать вас о наступлении неблагоприятных климатических условиях или условиях, представляющих опасность для дома (пожар, утечка газов). Подробнее … |
|
5.4. Расширение цифровых портов для NodeMCU ESP8266 с помощью микросхемы MCP23017 Использование микросхемы MCP23017 позволит расширить количество цифровых контактов модуля NodeMCU на 16 и позволит организовать светодиодную индикацию и звуковую сигнализацию о критических параметрах датчиков. Подробнее … |
|
5.5. Светодиодная индикация и звуковая сигнализация о критических параметрах датчиков для NodeMCU Для светодиодной индикации будем использовать обычные светодиоды, которые подсоединим к микросхеме расширителя входов MCP23017 (банку A выводы GPA0- GPA7). Для звуковой индикации будем использовать небольшой динамик. Подробнее … |
|
6. Управление исполнительными устройствами В нашем умном доме нам потребуются исполнительные устройсва для управление освещением умного дома, вентилятором для создания прохлады, увлажнителем для управления влажностью воздуха, помпой для полива растений, возможно для автоматического открытия/закрытия входных и гаражных дверей. |
|
6.1. Подключение блока реле для управления исполнительными устройствами Для управления электроприборами пользуются различными клавишными выключателями и тумблерами. Чтобы управлять такими электроприборами с помощью микроконтроллера существует специальный тип выключателей — электромеханические реле. В набор ИНТЕРНЕТ ВЕЩЕЙ ДЛЯ УМНОГО ДОМА включен Relay Shield. Подробнее … |
|
6.2. Подключение блока реле к плате Arduino MEGA ассмотрим подключение Eelay Shield к плате Arduino MEGA. Relay Shield мы будем использовать для включения/выключения света для освещения растений, вентилятора, насоса для полива растений. Включения/выключения вентилятора и помпы будет осуществляться в зависимости от значений температуры воздуха (вентилятор) и влажности почвы (мембранный вакуумный насос. Подробнее … |
|
6.3. Отображение данных о статусе исполнительных устройств на экране дисплея и управление с помощью сенсора В предыдущей главе мы рассматривали вывод данных, получаемых с датчиков на экран TFT 2.4″ Shield. Теперь нам необходимо на экран дисплея выводить и данные о состоянии исполнительных устройств, подключенных к реле. Для этого нам необходимо формировать другие экраны, а также главный экран. Как мы будем делать переходы между экранами? Подробнее … |
|
6.4. Подключение блока реле к модулю NodeMCU Теперь рассмотрим подключение Relay Shield к модулю NodeMCU. Relay Shield мы будем использовать также – для включения/выключения света для освещения растений, вентилятора, насоса для полива растений. Светом будем управлять с помощью кнопки, включения/выключения вентилятора и помпы будет осуществляться в зависимости от значений температуры воздуха (вентилятор) и влажности почвы (мембранный вакуумный насос. Подробнее … |
|
6.5. Управление блоком реле по ИК-каналу. Пример с модулем NodeMCU В набор включен инфракрасный пульт дистанционного управления с платой инфракрасного приёмника. |
|
6.6. Организация доступа в дом с помощью RFID-модуля для Arduino MEGA Идентификация объектов производится по уникальному цифровому коду, который считывается из памяти электронной метки, прикрепляемой к объекту идентификации. Считыватель содержит в своем составе передатчик и антенну, и посылает в эфир электромагнитные сигналы определенной частоты. RFID-метки «отвечают» собственным сигналом, который содержит информацию об идентификационном номере данной метки и данные об объекте, оснащенном данной меткой. Подробнее … |
|
7. Создание будильников для запуска исполнительных устройств по расписанию В предыдущей главе мы рассмотрели управление исполнительными устройствами «умного дома» либо с помощью команд, отправляемых по нажатии кнопки или нажатии по кнопке на сенсорном дисплее, либо при наступлении определенных климатических параметров, данные о которых мы получаем с датчиков. |
|
7.1. Подключение модуля DS3231 к плате Arduino MEGA. Вывод времени на экран дисплея Рассмотрим подключение модуля часов реального времени DS3231 к плате Arduino MEGA. Используем выводы Arduino MEGA 20 (SDA) и 21(SCL). Сначала добавим вывод времени на экран дисплея (главное меню). Для программирования нам понадобятся Arduino-библиотеки Wire (встроенная в Arduino IDE), Time и DS1307RTC. В цикле будем получать данные о текущем времени (часы, минуты) с модуля DS3231 и выводить на экран дисплея. Подробнее … |
|
7.2. Добавление срабатывания устройств Умного дома по будильнику (для Arduino MEGA) После подключения модуля RTC, мы можем организовать запуск исполнительных устройств «умного дома» по расписанию. Для этого создадим объект, описывающий будильник. В цикле loop() нашего скетча добавим проверку наступления события по расписанию и необходимых действий при наступлении события. |
|
7.3. Подключение модуля DS3231 к модулю NodeMCU Рассмотрим подключение модуля DS3231 к модулю NodeMCU. У нас в проекте есть устройство, подключенное к модулю NodeMCU по протоколу I2C – это микросхема расширителя входов MCP2301. Подсоединяем к контактам NodeMCU D3 (GPIO0) – SCL и D4(GPIO2). Подробнее … |
|
7.4. Добавление срабатывания устройств Умного дома по будильнику (для NodeMCU) После подключения модуля RTC, мы можем организовать запуск исполнительных устройств «умного дома» по расписанию. Для этого создадим объект, описывающий будильник. Подробнее … |
|
8. Организация подключения к сети Интернет с помощью модуля SIM800L В предыдущих главе мы рассмотрели мы сделали большие шаги построения «умного дома» – оснастили его датчиками и исполнительными устройствами и создали и обеспечили определенную степень автоматизации для создания комфорта и безопасности. Теперь пришло время сделать наш «умный дом» устройством IoT (Интернета вещей), чтобы получить доступ к нему для мониторинга и управления из любой точки мира по сети интернет. Организуем доступ контроллеров нашего дома к сети интернет. Подробнее … |
|
9. Протокол MQTT – простой протокол для Интернета вещей Наконец мы готовы к тому, чтобы устройства нашего «умного» дома стали устройствами Интернета вещей, что позволит получать данные с датчиков и управлять исполнительными устройствами нашего «умного дома» через интернет из любой точки мира. В качестве устройства управления удобнее всего использовать мобильный телефон. Нас интересует получение данных на телефон и управление исполнительными устройствами с телефона. Подробнее … |
|
9.1. IoT Manager — управление Умным домом через мобильное приложение IoT Manager – это мобильное приложение для телефонов и планшетов, совмещающего в себе табло для отображения данных с датчиков и пульт для управления исполнительными устройствами. Существуют версии для Android и iOS, которые можно скачать в GooglePlay и AppStore www.iotmanager.ru. Но прежде, чем скачивать приложение, определимся с брокером. В качестве брокеров выбираем сервис CloudMQTT.com (www.cloudmqtt.com), в котором можно создать бесплатный аккаунт. Подробнее … |
|
9.2. Передача данных брокеру (тестовый пример) IoTManager не только подписан на темы, но также выступает в роли publisher – публикует данные в темы. Это значения слайдеров и статус кнопки. Эти данные плата NodeMCU, подписанная в качестве subscriber на эти темы, может использовать для управления, подключенными к плате устройствами. Подробнее … |
|
9.3. Публикация данных датчиков в темы брокера на примере NodeMCU Рассмотрим подоробнее отправку данных с датчиков нашего умного дома брокеру. Будем отправлять брокеру данные с двух датчиков DHT22 и DS18B20. Правки осуществляем в скетче из предыдущей главы. Устанавливаем количество виджетов для отображения по количеству датчиков. Подробнее … |
|
9.4. Управление из IoT Manager исполнительными устройствами на плате NodeMCU В данной главе рассмотрим управление исполнительными устройствами, подключенными к NodeMCU, из мобильного приложения IoT Manager. В скетч для NodeMCU необходимо внести следующие изменения. Изменяем количество виджетов для отображения (увеличение на количество исполнительных устройств). Подробнее … |
arduino-kit.ru
Контроллер для ПВК на базе ESP8266 NodeMCU Lua — Контроллер для ПВК на базе ESP8266 NodeMCU — Проекты — Каталог
Итак, нам потребуется модуль esp8266 NodeMCU v2 Lua WI-FI на основе ESP8266 от Amica. Многие используют подобные модули для проектов «Умный дом», но мы хотим использовать его для управления пароводяным котлом (ПВК). Посмотрев данный сюжет у Вас появится представление о данном модулеВ следующем видео смотрим на прототип системы, а именно: состав контроллера, почему ESP8266, обзор функций (полуавтоматический режим), демонстрация работы, сколько потребляет контроллер, как и на чем будем собирать контроллер , когда будем испытывать новый контроллер
Переходим к третьей части. Посмотрим работает ли ESP8266 с «твердым» реле, общее устройство системы управления ПВК, что в корпусе компьютерного БП, корпус для ESP8266, о принципе работы, как собирал систему, себестоимость контроллера без учета работ
В четвертой части займемся следующими вопросами: почему ds18b20 плохо работают у нас, решение проблемы датчиков температуры или переждать помеху с помощью delay(), особенности опроса датчиков, другое решение по ds18b20 — питание 5В
Пятая часть является принципиально важной, в ней мы рассмотрим конвертер уровней для ds18b20, применим технологию AJAX JSON, сделаем звуковые оповещения, загрузка файлов через SPIFFS, увидим работу на практике, узнаем как залить скетч по «воздуху»
В шестой части мы увидим, как подключить ИК пульт от ТВ Sony к нашему контроллеру, сделаем фильтр на БП для устранения помех от электромиксера, покажу индикацию ну и конечно попробуем наш контроллер в реальном деле
В седьмой части внесем существенные изменения в работу с wi-fi, доработаем программу управления миксером, впервые расскажу о программном режиме, посмотрим на скетч
Восьмая часть нашего сериала посвящена, в основном, программному режиму работы контроллера, рассмотрим стенд для тестирования, узнаем как устроен этот режим, как редактировать программу, как подключать датчики, и о некоторых доработках и исправлениях в скетче
В девятой части мы реализуем, по многочисленным просьбам, уведомления о прохождении заданной температуры и посмотрим на навый режим регулирования температуры в ПВК — ПИД регулирование
Схема системы:
Необходимые компоненты:
в последней версии (v.2.5) добавлено:
-восстановление состояний реле;
-работа по MQTT;
-коррекция температуры (мультипликативная, аддитивная).
Скачать Скетч v.2.5
Скачать Скетч v.2.4
Скачать Драйвер для Ch440
Скачать Библиотека для LCD ESP8266-I2C-LCD1602-master.zip
Скачать Скетч для поиска адреса LCD1602 (I2C search)
Скачать Звуковые файлы для загрузки оповещений
www.simple-automation.ru
ESP8266 и прошивка NodeMcu – esp8266
esp8266 nodemcu
Глючность прошивок с AT командами многих разочаровывает, в том числе и меня. Но я оптимистично смотрю в будущее и вижу … NodeMcu. Итак, что ЭТО может? Эта прошивка может интерпретировать команды языка Lua. Причем не просто команды в терминале, как AT команды, а может создавать файлы во флеш памяти ESP8266 и выполнять их. Autorun, разумеется тоже есть — здесь это init.lua. С помощью lua-команд мы можем:
- подключаться к WiFi точке доступа
- выступать в роли WiFi точки доступа
- уходить в глубокий сон для снижения энергопотребления (недоступно для AT команд)
- привязать lua-функцию к кнопке на GPIO16 (недоступно для AT команд в стандартной прошивке, частично доступно в некоторых кастомных)
- включать/выключать светодиод на GPIO16 (недоступно для AT команд в стандартной прошивке, доступно в некоторых кастомных)
- перенаправлять вывод, в примерах есть telnet сервер (недоступно для AT команд)
- создавать/записывать/читать/выполнять/искать/удалять/выводить списком файлы во флеш памяти (недоступно для AT команд)
- в режиме startsmart автоматически находить открытую WiFi сеть и подключаться к ней (недоступно для AT команд)
- выводить свой MAC адрес (недоступно для AT команд в стандартной прошивке, доступно в некоторых кастомных)
- управление пользовательским таймером (недоступно для AT команд)
- управлением таймером WatchDog (недоступно для AT команд в стандартной прошивке, частично доступно в некоторых кастомных)
- управление (запись/чтение/триггер) GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15 (недоступно для AT команд)
- PWM (ШИМ) GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15 (недоступно для AT команд)
- TCP/IP сокеты
- режим WEB сервера
- I2C — адресация/запись/чтение (недоступно для AT команд)
- АЦП 10 бит на пине TOUT (недоступно для AT команд)
Полное описание команд на github
Итак, как это все попробовать?
1. Качаем прошивку
2. Прошиваем ESP8266 любой утилитой, например XTCOM UTIL
3. Качаем luautil, или ESPlorer
автором которых является ваш покорный слуга (для luatool требуется установленный python 2.7, pyserial — гугл вам в помощь, для ESPlorer требуется JAVA )
4. Прописываем в файле init.lua SSID и PASSWORD вашей точки доступа (lua файлы открывайте чем угодно, хоть блокнотом)
5. Заливаем lua скрипт init.lua в ESP8266 с помощью luatool командой
luatool.py -p COM4 -f init.lua -t init.lua
luatool.py -p COM4 -f init.lua -t init.lua |
6. Заливаем lua скрипт main.lua (это имя файла по-умолчанию, поэтому его можно не указывать)
7. Подключаемся терминалом к ESP8266, делаем
init.lua автоматически стартует после перезагрузки
lua script loaded by luatool 0.2 init.lua ver 1.1 set mode=STATION (mode= 1) MAC=18-FE-34-98-D4-B5 set wifi NodeMcu 0.9.2 build 20141120 powered by Lua 5.1.4
lua script loaded by luatool 0.2 init.lua ver 1.1 set mode=STATION (mode= 1) MAC=18-FE-34-98-D4-B5 set wifi NodeMcu 0.9.2 build 20141120 powered by Lua 5.1.4
|
все готово, теперь можем запускать основной скрипт
Если все сделали правильно, то через cекунду вы увидите в терминале
В чем ложка дегтя? Большой черпак дегтя в том, что прошивка очень сырая. Часть команд, описанных в документации в данный момент вообще не работает. Уходит в exception при ошибках переполнения таймера, переменных и много чего еще. Радует то, что разработчики (китайские товарищи, кстати) активно над ней работают. Сообщество им активно помогает. Потенциал этой прошивки огромен — полнейшая круть!
Купить ESP8266
Купить ESP8266 в розницу по разумной ценеesp8266.ru
NodeMCU v3 распиновка | Технохрень
Есть несколько как минимум два типа плат NodeMCU v3:
Распиновка и характеристики NodeMCU v3 таких плат немного отличаются.
Схема NodeMCU v3
Страшная тайна NodeMCU и Arduino
Пришло время открыть самую страшную тайну ардуино. К NodeMCU это тоже относится. У нее есть защитный диод Шоттки, на схеме обозначен как D1. У него много всяких функций, в частности защита USB компа.
Так вот этот поганец периодически сгорает, но не полностью, а наполовину, и выдает маленький ток после себя. И если ваш девайс питается от MicroUSB провода, то все может начать глючить и тупить. Можно его убрать в конечном устройстве и заменить на перемычку. В конечном итоге у USB компа полно всяких защит и без этого диода.
Характеристики NodeMCU
Они плавно вытекают из используемого чипа ESP8266.
Рабочее напряжение | Производитель заявляет поддержку от 3.6 до 20 вольт. Ну-ну, можно попробовать конечно 20 вольт в нее воткнуть, если есть парочка лишних, попробуйте, напишите что получится 🙂 |
Напряжение питания | 3.3 вольта. Хотя на практике подать 5 вольт на цифровую ногу можно |
Цифровой вход/выход | 11 (все с поддержкой ШИМ)
|
Аналоговые выходы | 1 |
Максимальный потребляемый ток | 220 мА |
Wi-Fi | Встроенный 802.11 b/g/n
|
Опубликовать вашу статью на нашем сайте можно тут!
skproj.ru
Сравнение NodeMCU-совместимых плат с чипом ESP8266 | arm
Сравнение друг с другом плат разработчика, совместимых с NodeMCU [2], неизбежно приводит к сравнению между собой ESP8266-совместимых чипов и модулей, установленных на этих платах. Сравнивать довольно сложно не столько потому, что подобных плат множество (по сути их только 3 вида), потому, что под разными именами выпускаются одни и те же платы.
К сожалению, есть некая путаница в обозначении версий и поколений плат.
Generation (поколение) | Версия NodeMCU | Common Name |
1 | 0.9 | V1 |
2 | 1.0 | V2 |
2 | 1.0 | V3 |
Содержимое третьего столбца (Common Name) этой таблицы чаще всего встречается в маркировке изделий, доступных в продаже в китайских Интернет-магазинах, таких как Banggood, AliExpress и dx.com. Причем на AliExpress часто попадаются платы с маркировкой V3, хотя они выглядят точно так же, как платы V2.
Дополнительно усиливает путаницу именований тот факт, что аппаратура открыта (open hardware), и фактически любое предприятие может производить и выпускать на рынок свои собственные NoduMCU-совместимые платы. В настоящий момент есть 3 главных производителя таких плат: Amica [3], DOIT/SmartArduino [4], and LoLin/WeMos [5].
Платы 1 и 2 поколения удобно отделять друг от друга, потому их размер отличается. Оба этих поколения используют чипы ESP-12 с памятью 4MB flash, однако 2 поколение использует более новый улучшенный чип ESP-12E.
[1 поколение / v0.9 / V1]
Оригинальный и уже устаревший dev kit обычно продается в виде платы с желтой маской размером 47 x 31 мм. По краям модуля расположены штырьковые коннекторы со стандартным шагом 2.54 мм, однако ряды расположены друг от друга на большом расстоянии, что делает неудобным установку этих модулей в обычные платы макетирования bread board. Обзор [6] дает очень хорошее представление об этих платах.
Плата разработчика ESP8266 NodeMCU первого поколения |
Цоколевка выводов платы NodeMCU первого поколения |
Платы поставляются с модулем ESP-12 и flash-памятью 4MB.
[2 поколение / v1.0 / V2]
Эти модули быстро заменили 1 поколение, они уже, и поэтому их удобнее устанавливать в плату bread board. Модуль ESP-12 был заменен на более новый ESP-12E.
Плата разработчика ESP8266 NodeMCU второго поколения |
Цоколевка выводов платы NodeMCU второго поколения |
[V3]
Что же нового появилось у V3? Пока что проект NodeMCU не выпустил новой спецификации, поэтому официально нет никаких плат 3-го поколения. Таким образом, V3 это всего лишь «версия», изобретенная производителем LoLin, чтобы показать незначительные улучшения плат V2. Среди остальных улучшений утверждается, что порт USB стал более надежным.
Цоколевка выводов платы NodeMCU «третьего» поколения |
Если Вы сравните цоколевку плат V2 и V3, то найдете очень мало различий. Компания LoLin приняла решение использовать один из двух зарезервированных выводов для вывода напряжения питания USB, и второй использует как дополнительный контакт GND.
Обратите внимание на различия в размерах, эта плата LoLin значительно больше плат Amica и DOIT V2.
Сравнение габаритов плат Amica и LoLin |
В чем отличие «официальных» плат от «не официальных»? Вероятно, никакого существенного отличия нет. Компания Amica выглядит как единственный производитель плат, на 100% совместимых со спецификацией аппаратуры V2 NodeMCU. Такие платы можно найти на AliExpress или у Seed Studio [7]. Имейте в виду, что сейчас множество плат имеют маркировку «NodeMCU V2», хотя они не соответствуют этой спецификации.
[Альтернативы]
WeMos D1 mini. В конце 2015 года стала доступной интересная плата WeMos D1 mini. Она имеет приблизительно ту же ширину (25.6 мм), что и V2 NodeMCU devkit, но почти на треть короче (длина 34.2 мм). Плата работает на ESP-8266EX MCU, и предоставляет 4MB flash. 9 выводов GPIO делают плату D1 mini подходящей для множества целевых применений IoT. Плата поддерживается средами разработки Arduino и NodeMCU.
Компания WeMos также продает некоторое количество шилдов для платы D1 mini, которые хорошо стыкуются, в результате получаются отличные малогабаритные устройства.
Небольшой недостаток в том, что припаять коннекторы Вам придется самому. Некоторые пользователи жалуются, что бывает сложно получить корректно работающие драйвера для микросхемы преобразователя Ch44x USB-UART [8], которая установлена на D1 mini. Такая же микросхема стоит на дешевых клонах плат Arduino.
Также очевидно, что у D1 mini немного меньше контактов, чем у обычной платы NodeMCU (см. рисунки с цоколевкой). Понятно, что не было другого способа уменьшить размеры платы, кроме уменьшения количества контактов на разъемах. Но все-таки контакт с напряжением 5V был оставлен, в этом плата похожа на LoLin V3.
Радует невысокая цена на плату D1 mini, её можно найти на AliExpress всего лишь за $4.
WiFiMCU. У DOIT/SmartArduino, производителя плат V2, также есть альтернативный dev kit с чипом Cortex-M4 [9].
Adafruit/SparkFun. Еще 2 быстро появившиеся альтернативы — SparkFun ESP8266 Thing [10] и Adafruit HUZZAH ESP8266 Breakout [11].
SparkFun ESP8266 Thing |
Плата Adafruit выглядит довольно привлекательно, она немного меньше, чем NodeMCU dev kit, однако для её подключения требуется отдельный переходник USB — TTL UART вместо стандартного кабеля USB.
Adafruit HUZZAH ESP8266 Breakout |
Также Adafruit продает полноформатную плату, подобную NodeMCU v2, на которой есть дополнительный коннектор для подключения аккумулятора LiPo [12].
Плата ESP8285. В статье [13] описывается, как использовать firmware NodeMCU на маленькой платке ESP8285 Tindie. Этот кристалл SoC (System On Chip) очень похож на ESP8266, отличие только в том, что в нем имеется память 1 MB SPI flash, встроенная прямо в SoC.
ESP8285 Development Board |
[Ссылки]
1. Comparison of ESP8266 NodeMCU development boards site:frightanic.com.
2. NodeMCU site:nodemcu-build.com.
3. Amica ESP8266 site:twitter.com.
4. WiFi ESP site:doit.am.
5. LOLIN32 site:wemos.cc.
6. ESP8266: NodeMCU Dev Kit Review site:squix.org.
7. NodeMCU v2 — Lua based ESP8266 development kit site:seeedstudio.com.
8. How To Use Cheap Chinese Arduinos That Come With With Ch440G / Ch441G Serial/USB Chip (Windows & Mac OS-X) site:kig.re.
9. WiFiMCU: a NodeMCU dev kit with a Cortex-M4 chip site:frightanic.com.
10. SparkFun ESP8266 Thing site:sparkfun.com.
11. Adafruit HUZZAH ESP8266 Breakout site:adafruit.com.
12. New Adafruit ESP8266 development board with LiPo connector site:frightanic.com.
13. NodeMCU on ESP8285 site:frightanic.com.
14. espressif.com FAQ ESP8266.
microsin.net
Архивы NodeMCU – esp8266
LuaUploader
О прошивке для ESP8266 NodeMCU мы уже публиковали ранее материал, но хочется вернуться к этой теме снова. Во-первых, проект активно развивается, хоть и использует все еще SDK 0.9.2, во-вторых, появилось множество рабочих примеров скриптов, в-третьих, появились удобные инструменты, которые позволяют не только в один клик загружать lua-скрипты в ESP8266, но и много чего еще. В-четвертых, NodeMCU, на сегодняшний день пожалуй, самая стабильная прошивка из всех существующих. Ну и в-пятых, важным моментом я бы выделил появление модулей. Пока на сегодняшний день существует единственный модуль для цифрового датчика температуры DS18B20 от разработчиков NodeMCU. Оцените легкость использования:
t=require(«ds18b20») t.setup(9) print(t.read(nil,t.C))
t=require(«ds18b20») t.setup(9) print(t.read(nil,t.C)) |
Прошивка NodeMCU набирает все больше и больше сторонников еще и благодаря появившимся программам для работы с NodeMCU. Пожалуй, самой удобной я бы назвал LuaUploader, скриншот которой вы видите в начале статьи. Предельно простой интерфейс при большом функционале. Дизайн не блещет, но автор сейчас работает над новой версией с полностью переработанным интерфейсом. Новая программа будет называться AutoLua.
Не обойду стороной и появление новой утилиты для прошивки ESP8266. Особенностей две: автоматом определяет GPIO0, автор тот же, что и NodeMCU. Код, соответственно, так же закрыт.
NodeMCU-flasher
LuaUploader_1.0.2.zip
NodeMCU Flasher win32/win64
nodemcu
Раздел на нашем форуме, посвященный NodeMCU
ESPlorer — IDE для NodeMCU
P.S. Уже после выхода статьи появилась еще одна приятная новость: в NodeMCU увеличилось число поддерживаемых таймеров до 7.
esp8266.ru