Esp8266 nodemcu v3 начало работы: Начало работы с платой NodeMcu ESP8266 v3 Lua
Начало работы с платой 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 и ESP8266
Сегодня на рынке доступно множество достаточно недорогих модификаций плат на базе ESP8266. Мы сделали небольшую подборку наиболее интересных вариантов:
Питание модуля 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. Сразу после этого начнется автоматическая загрузка написанного кода в отладочную плату и его выполнение. Если операция выполнена успешно, отладочная плата начнет мигать светодиодом.
Важно отметить, что плата самостоятельно выполняет скрипт, подключение к компьютеру нужно только для подачи питания.
Nodemcu Lua Wi-Fi на Esp8266: описание, подключение, схема, характеристики
NodeMCU Lua – плата на основе популярного модуля ESP8266 (рисунок 1) предназначена для создания IoT устройств (устройств Интернета вещей), которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.
Содержание
NodeMCU Lua – плата на основе популярного модуля ESP8266 (рисунок 1) предназначена для создания IoT устройств (устройств Интернета вещей), которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.
Технические характеристики модуля
- Процессор 32-битный
- WiFi – 802.11 b/g/n
- Напряжение питания 3,3 В
- Внешнее питание 3.6–20 В
- Ток потребления: режим передачи данных– 200 мА, режим приёма данных – 60 мА
- Подсоединение к компьютер – вход microUSB
- Имеет встроенную flash память 4 Mб
- Поддержка в базовой прошивке интерпретатора Lua
- Возможность обновления прошивки по Wi-Fi
- Наличие встроенного датчика температуры
В чем же преимущества данной платы на основе модуля ESP8266? Во-первых, на плате присутствует интерфейс UART-USB с разъемом micro USB, что позволяет подключать его к компьютеру без переходников. Во вторых, она имеет выводы для всех доступных контактов ESP8266. А это 11 портов ввода-вывода общего назначения, некоторые из которых имеют дополнительные функции (см. рисунок 1).
Рисунок 1. Назначение выводов NodeMcu
В-третьих, на данной плате установлена прошивка, которая может интерпретировать команды скриптового языка Lua. Lua — это встраиваемый язык сценариев, который является маленьким, быстрым и очень мощным. С помощью команд Lua для NodeMCU можно выполнять следующие действия:
- использование платы в качестве WiFi точки доступа
- подключаться (в том числе и автоматическое) к точке доступа WiFi
- режим пониженного энергопотребления (уход в сон)
- перенаправлять вывод
- выполнять операции со списком файлов в flash-памяти
- управление пользовательским таймером и таймером WatchDog
- управление GPIO1 выводами
- создание веб-сервера
- обмениваться даннымиI2C — устройствами
- считывать данные на выводе АЦП
Можно не только выполнять команды Lua в терминале, но и cоздавать файлы в flash-памяти ESP8266 и вызывать их на иcполнение. Рассмотрим примеры напиcания программ для модуля на языке Lua, а также в среде программирования Arduino IDE.
Примеры использования (скриптовый язык Lua)
Рассмотрим пример написания скрипта на языке Lua для платы NodeMCU. Будем использовать программу ESPlorer (рисунок 2), которую вместе с можно скачать со страницы тут.
Рисунок 2. Окно программы ESPlorer.
Напишем скрипт создания простейшего веб-сервера, чтобы при обращении к модулю по HTTP с него выдавалась информация. Создадим для этого файл server1.lua и запишем в него код, представленный в листинге 1. Листинг 1
serverport = 80 server=net.createServer(net.TCP) server:listen(serverport, function(connection) connection:send("HTTP/1.1 200 OK\nContent-Type: text/html\nRefresh: 10\n\n" .. "<!DOCTYPE HTML>" .. "<html><body>" .. "<b>Server </b></br>" .. " ChipID : " .. node.chipid() .. "<br>" .. " MAC : " .. wifi.sta.getmac() .. "<br>" .. " Heap : " .. node.heap() .. "<br>" .. " Timer Ticks : " .. tmr.now() .. "<br>" .. "</html></body>") connection:on("sent",function(connection) connection:close() end) end )
Сохраним файл server1.lua в модуле и запустим. Для проверки работы севера подключимся к точке доступа модуля и наберем в браузере ее адрес: http://192.168.4.1 (рисунок 3). Для запуска сервера при загрузке модуля необходимо в конце нашего autorun-файла init.lua добавить строку: dofile(server1.lua)
Рисунок 3. Обращение к серверу на NodeMCU
Примеры использования (скетч в среде программирования Arduino IDE)
Рассмотрим создание программ дя платы NodeMCU в среде программирования Arduino IDE. Для этого необходимо установить Arduino IDE для ESP8266. На компьютере уже должно быть установлено программное обеспеченние Arduino IDE версии не ниже 1.6.5. На рисунках 4-8 представлены скриншоты процесса установки Arduino IDE для ESP8266.
Рисунок 4.
Рисунок 5.
Рисунок 6.
Рисунок 7.
Рассмотрим пример подключения аналогового датчика освещенности (фоторезистора) к плате NodeMCU ESP8266 и отправку данных по протоколу MQTT в интернет на сервер http://www.mqtt-dashboard.com/.
Схема соединений представлена на рис. 8.
Рисунок 8. Схема подключения.
Для написания скетча необходима библиотека pubsubclient для общения с брокером MQTT . Разархивируйте скачанный файл в папку библиотеки IDE Arduino. Откройте в Arduino IDE скетч _2.ino. Вам необходимо внести в скетч изменения параметров SSID и пароля для точки подключения платы NodeMCU к вашей WiFi сети.
const char* ssid = «your_wifi_hotspot»;
const char* password = «your_wifi_password»;
Загружаем скетч на нашу плату NodeMCU, открываем монитор последовательного порта и если соединения указаны правильно, увидим следующий результат (рисунок 9).
Рисунок 9. Соединение с брокером по сети.
После того, как NodeMCU подключился к wifi и брокеру MQTT, он публикует данные о освещенности для брокера MQTT по теме OsoyooData (рисунок 10).
Рисунок 10. Отправка данных датчика освещенности.
Мы будем использовать на любом устройстве (например планшете или компьютере) MQTT-клиент, чтобы подписаться на тему OsoyooData от того же брокера MQTT и получать значения освещенности в реальном времени.
ESP8266 NodeMCU. Прошивка. WiFi розетка своими руками — Avislab
Статьи о STM32 с примерами (SPL)
(на русском языке)
Популярность WiFi-модулей на базе ESP8266 настолько велика, что помимо прошивок для использования ESP8266 в качестве WiFi-модуля под управлением внешнего микроконтроллера, существует масса прошивок для использования его и как микроконтроллера с разными целевыми назначениями, в том числе и в сфере интернет вещей. В этом цикле статей мы будем изучать возможности ESP8266 с прошивкой NodeMCU и изучим скриптовый язык LUA.
Что такое ESP8266?
ESP8266 — это микроконтроллер с WiFi интерфейсом. Его можно использовать как WiFi модуль, и как микроконтроллер.
Плюсы ESP8266: WiFi интерфейс, 32-разрядное ядро с достаточной производительностью, низкая цена.
Минусы: По сравнению с другими 32-разрядными микроконтроллерами периферия не вызывает восхищения.
ESP8266 идеально подходит для домашних проектов, интернета вещей. ESP8266 программируется через последовательный порт UART, поэтому для его прошивки не требуется специального программатора. Особенность этого микроконтроллера в том, что он может выполнять программу, расположенную на внешней Flash памяти. Это позволяет производителю «наращивать» объем Флеша, что также является плюсом.
На базе ESP8266 выпускаются разные модули:
Существует различные версии плат с уже запаянными модулями ESP8266, стабилизаторами напряжения, микросхемой для обеспечения работы последовательного порта UART через USB и разведенными на гребенку выводами, кнопками и тому подобное. Для работы с такими платами достаточно подключить их к USB порту компьютера. Никакого дополнительного оборудования не требуется. Это очень удобно. Одна из таких плат — NodeMCU. В примерах я буду использовать плату NodeMCU с модулем ESP-12F. Но, Вы вполне можете взять модуль, скажем ESP-01, подключить к нему UART-USB переходник и работать с ним аналогичным образом. У ESP-01 будет меньше памяти и меньше выводов, которые можно задействовать, но в остальном работа с ним аналогичная.
Что такое NodeMCU?
NodeMCU — открытый бесплатный проект на основе скриптового языка Lua. Прошивка достаточно мощная и позволяет очень быстро реализовывать различные типовые проекты. Например, сегодня, в качестве знакомства, мы сделаем WiFi розетку с управлением с мобильного телефона и с Web-интерфейсом. Прошивка умеет исполнять Lua-скрипты как из последовательного UART порта (аналогично AT-командам) так и из внутренней flash памяти (выполняя скрипты). Lua скрипты сохраняются во Flash во внутренней файловой системе. Файловая система плоская, упрощенная. Т.е. без подкаталогов. Тем не менее — это круто. Не стоит забывать, что ESP8266 — это всего лишь микроконтроллер. Из скриптов так же можно получить доступ к файлам, читать и сохранять различную информацию. NodeMCU модульная. Что с одной стороны позволяет наращивать функционал, а с другой собрать прошивку только из требуемых модулей, не расходуя понапрасну память.
NodeMCU работает с протоколами обмена данными — HTTP, MQTT, JSON, CoAP.
Поддерживаются различные датчики —
акселерометры ADXL345,
магнитометры HMC5883L,
гироскопы L3G4200D,
датчики температуры и влажности AM2320, DHT11, DHT21, DHT22, DHT33, DHT44
датчики температуры, влажности, атмосферного давления BME280,
датчики температуры, атмосферного давления BMP085,
множество дисплеев работающих по шинам I2C, SPI. С возможностью работы с разными шрифтами.
TFT дисплеи ILI9163, ILI9341, PCF8833, SEPS225, SSD1331, SSD1351, ST7735,
умные светодиоды и LED контроллеры — WS2812, tm1829, WS2801, WS2812,
поддерживаются интерфейсы — 1-Wire, I2C, SPI, UART,
Также можно задействовать модуль шифрования, планировщик задач, часы реального времени, протокол синхронизации часов через интернет SNTP, таймеры, АЦП канал (один), проигрывать аудио файлы, формировать на выходах ШИМ-сигнал (до 6), использовать сокеты, есть поддержка FatFS, т.е можно подключать SD-карточки и так далее.
Подробная документация NodeMCU здесь: https://nodemcu.readthedocs.io/en/master/
Что такое язык Lua?
Lua — это интерпретируемый язык, который, как и большинство современных интерпретируемых языков, может хранить скомпилированные версии скриптов. Это позволяет увеличить скорость работы. Lua позиционируется как мультипарадигмовый. Он не сложный, и если Вы уже программировали на любом языке, то Lua Вы изучите очень быстро. Если Вы только начинаете программировать, тогда Lua удивит Вас своей доступностью для начинающих.
Есть некоторые особенности при работе с Lua на NodeMCU. В основном это связано с конечным объемом памяти микроконтроллера ESP8266. Нужно придерживаться простых правил и выдерживать стиль работы с Lua. Об этих правилах расскажу чуть позже. Если же сохранять такой же стиль, как и при написании программ на С, то у Вас не получиться ощутить всей мощи Lua и прошивки NodeMCU. Когда Вы начинаете писать на Lua, это увлекает, и Вы начинаете воплощать в жизнь все более объемные задачи. Вы теряете ощущение того, что вы работаете с микроконтроллером и невольно нагружаете задачами, которые не по плечу микроконтроллеру. Нужно помнить, что у ESP8266 ограниченные ресурсы и не следует его грузить задачами, которые под силу выполнить микрокомпьютерам или полноценным компьютерам.
Документация по LUA на русском языке: http://www.lua.ru/doc/
Изучаем LUA за 15 минут: http://tylerneylon.com/a/learn-lua/
Где скачать NodeMCU?
Конечно, можно скачать исходные коды NodeMCU (https://github.com/nodemcu/nodemcu-firmware/releases/) и скомпилировать с нужными параметрами. Но мы не будет так делать. Существует сайт https://nodemcu-build.com, на котором можно собрать NodeMCU с необходимыми Вам модулями. Вы просто отмечаете те модули, которые Вам нужно, указываете свой e-mail и нажимаете внизу кнопку «Start ysour build«. Сначала на указанный e-mail приходит письмо о том что сборка началась. А затем извещение об окончании и ссылки для скачивания integer и float версий. Если в своем проекте Вы не будете использовать вычисления с плавающей запятой, тогда качайте «integer«. Не стоит жадничать и включать те модули, которые Вы не собираетесь использовать. В любой момент можно собрать новую прошивку, добавив недостающий модуль. Для примеров я собрал NodeMCU с такими модулями:
Как залить NodeMCU на ESP8266?
Теперь, когда у нас есть файл прошивки NodeMCU, его нужно залить в ESP8266. Прежде всего, при подключении платы NodeMCU к компьютеру должен появиться виртуальный Com порт. Как правило, последние версии Windows установки драйверов не требуют. Ubuntu сра
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 при ошибках переполнения таймера, переменных и много чего еще. Радует то, что разработчики (китайские товарищи, кстати) активно над ней работают. Сообщество им активно помогает. Потенциал этой прошивки огромен — полнейшая круть!
Архивы 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.
Управляем со смартфона через Blynk – esp8266
Еэспэшники — вливайтесь в ряды блинкеров!
Сегодня мы за 5 минут настроим управление ESP8266 с вашего смартфона (iOS или Android) с помощью нового облачного сервиса Blink. Видео и подробности под катом.
Установите приложение Blynk на смартфон
Зарегистрируйтесь в приложении и создайте новый проект.
Создание нового проекта в Blynk
Введите название проекта, например ESP8266. В поле Hardware Model выберите ESP8266. (надеюсь, что вы заметите впечатляющий список поддерживаемого оборудования) Автоматически сгенерированный Auth Token отправьте на свой почтовый ящик.
Проект Blynk
После нажатия на кнопку Create вам станет доступно пустое поле для проектирования UI вашей панели управления ESP8266.
Пустой проект Blynk
Жмете на плюсик вверху справа — появится панель инструментов Widget Box для добавления виджетов на вашу панель управления. Стоит заметить, что список виджетов еще будет пополняться.
Виджеты Blynk
Для пробы выберем тип виджета Button — этот виджет сразу добавится на вашу панель. Отредактируйте его одним прикосновением. Название можно не заполнять, чуть правее можно выбрать цвет индикатора, в поле OUTPUT PIN выберите справа Digital, а слева любой свободный пин GPIO. Ниже переключите тип кнопки на Switch.
Blynk button
На моей отладочной плате к светодиодам разведено 10 GPIO — я все их подключу к панели Blynk.
Blynk
Все, интерфейс готов, пока отложите смартфон в сторонку.
Если вы еще не знакомы с Arduino IDE для ESP8266 — почитайте здесь и здесь. Установите Arduino IDE, как описано здесь.
Далее установите библиотеку Blynk в Arduino IDE. В этом вам поможет официальная инструкция. Также можете взять библиотеку самую последнюю версию прямо из репозитария и установить вручную. Далее выбираем пример ESP8266_Standalone и прописываем в нем Auth Token, который мы получили по почте, SSID и пароль вашей WiFi сети. Компилируем и заливаем скетч в ESP8266.
ESP8266 Blynk
Вот, собственно, и все.
Возвращаемся к нашему приложению на смартфоне, жмем маленький треугольничек, похожий на кнопку Play, в верхнем правом углу и переходим из режима редактирования проекта в режим управления ESP8266 и жмем созданные нами кнопочки и мигаем светодиодами, как на видео в начале статьи.
Замечания
1. Стоит отметить, что еще есть возможность использовать ESP8266 в качестве WiFi шилда для ардуино.
2. Облачный сервер Blynk — open source и может быть развернут в вашей локальной сети
P.S. Blynk на Kickstarter неплохо отработал — собрал почти 50k
Команда Blynk:
- Pasha Baiborodin — Founder and user experience design warrior
- Dmytro Dumanskiy — Co-Founder and server side guru
- Volodymyr Shymanskyy — embedded Yoda
- Max Kareta — iOs ninja
- Alex Kipar — Android samurai
- Iryna Liashchuk — Communications princess
Не могу не сообщить, что создал этот суперклассный дизайн интерфейса Vitalii Kramar
Большое еспэшное СПАСИБО вам!
Обсуждение Blynk на нашем форуме
Обсуждение Arduino IDE для ESP8266 на нашем форуме
Arduino IDE для ESP8266 – esp8266
Arduino IDE для ESP8266 позволяет писать скетчи и загружать их одним кликом в ESP8266 в знакомой среде (я бы даже сказал «до боли знакомой») Arduino IDE. Для тех кому интерфейс Arduino IDE не очень по душе, есть поддержка плагина для Eclipse. Итак, обо всем по порядку. Самые нетерпеливые могут сразу перейти к Arduino IDE для ESP8266: быстрый старт
Arduino IDE для ESP8266 позволяет создавать прошивки и прошивать их в ESP8266 точно так же, как вы это делаете с Arduino. При этом никаких плат Arduino не требуется, это не тот случай, когда ESP8266 используется в качестве WiFi шилда для Arduino. Кроме того, вы можете использовать практически все Arduino библиотеки с ESP8266 после небольшой доработки. В настоящее время уже достаточно много библиотек адаптировано для использования с ESP8266, но о них чуть ниже.
Arduino IDE для ESP8266 поддерживает все существующие на сегодняшний день модули ESP8266 (потому что они особо и не отличаются), включая модули с флеш бОльшего, чем 512k объема. Поддерживаются модули NodeMCU (всех версий), Olimex-MOD-WiFi-ESP8266.
Поддерживается режим авторестарта и прошивки по RTS+DTR, как у обычной Arduino, для этого потребуется USB-TTL адаптер с разведенными пинами DTR и RTS. Если у вас только RX, TX и GND на USB-TTL, то придется по-старинке вручную притягивать к земле GPIO0 и передергивать питание модуля для прошивки.
Arduino IDE для ESP8266: краткий обзор реализованных в настоящее время функций
Базовые функции языка Wiring
Управление GPIO осуществляется точно также, как и управление pin для arduino:
pinMode,
digitalRead,
digitalWrite,
analogWrite функционируют как обычно. GPIO нумеруются так, как мы уже привыкли: для чтения состояния GPIO2 нужно использовать команду
digitalRead(2)
GPIO0-GPIO15 могут быть
INPUT,
OUTPUT,
INPUT_PULLUP, и
INPUT_PULLDOWN. GPIO16 может быть только
INPUT,
OUTPUT или
INPUT_PULLDOWN. Команда
analogRead(A0) считывает значение ADC (АЦП) с TOUT.
Команда
analogWrite(pin, value) включает программный PWM (ШИМ) на указанном GPIO. Команда
analogWrite(pin, 0) отключает PWM.
value может быть в диапазоне от 0 до
PWMRANGE. Константа
PWMRANGE в настоящее время равна 1023.
Поддержка прерываний обеспечивается функциями
attachInterrupt,
detachInterrupt. Прерывания могут быть назначены на любой GPIO, кроме GPIO16. Стандартные прерывания Arduino
CHANGE,
RISING,
FALLING тоже поддерживаются.
ESP8266 — функции пинов
Тайминг и delay
Функции
millis и
micros возвращают миллисекунды и микросекунды соответственно, прошедшие с момента старта модуля. Любимая многими функция
delay также присутствует и приостанавливает выполнение скетча на указанное время в миллисекундах и позволяет отработать операциям WiFi и TCP/IP. Функция
delayMicroseconds используется аналогично, только время задается в микросекундах.
Помните о том, что когда модуль поддерживает WiFi соединение, ему приходится выполнять множество фоновых задач, кроме вашего скетча. WiFi и TCP/IP функции библиотек SDK имеют возможность обработать все события в очереди после завершения каждого цикла вашей функции
loop() или во время выполнения
delay(…). Если в вашем коде есть фрагменты, которые выполняются более 50 миллисекунд, то необходимо использовать
delay(…) для сохранения нормальной работоспособности стека WiFi.
Также вы можете использовать функцию
yield(), которая эквивалентна
delay(0). С другой стороны, функция
delayMicroseconds блокирует выполнение других задач, поэтому ее использование для временных задержек свыше 20 миллисекунд не рекомендуется.
Последовательные порты Serial и Serial1 (UART0 и UART1)
Объект
Serial работает точно также, как и с Arduino. Помимо аппаратного FIFO (по 128 байт для приема и передачи) определен и программный буфер размером по 256 байт для приема и передачи данных. Прием и передача данных происходит по прерываниям, прозрачно для вашего скетча. Функции записи и чтения блокируют выполнение скетча только когда аппаратный FIFO и программный буфер переполняются.
Serial использует аппаратный UART0, работающий на GPIO1(TX) и GPIO3(RX). Эти пины могут быть переназначены на GPIO15 (TX) и GPIO13 (RX) вызовом функции
Serial.swap(); после
Serial.begin();. Повторный вызов
Serial.swap(); вернет все на свои места.
Serial1 использует аппаратный UART1, работающий только на передачу. UART1 TX это GPIO2. Для включения
Serial1 используйте
Serial1.begin();
По умолчанию, отладочная информация библиотек WiFi выключается, когда вы вызываете функцию
Serial.begin();. Для включения отладочной информации на UART0 используйте
Serial.setDebugOutput(true); Для перенаправления вывода отладочной информации на UART1 используйте команду
Serial1.setDebugOutput(true);
И
Serial и
Serial1 поддерживают 5, 6, 7, 8 бит данных, odd (O), even (E), и no (N) режимы четности, и 1 или 2 стоп бита. Для выбора нужного режима вызывайте
Serial.begin(baudrate, SERIAL_8N1); или
Serial.begin(baudrate, SERIAL_6E2); и т.д.
PROGMEM
Макрос
PROGMEM работает точно также, как в Arduino, помещая read only данные и строковые константы (литералы) во флеш память, высвобождая HEAP. Важное отличие состоит в том, что в ESP8266 одинаковые литералы не хранятся в одном месте, поэтому использование строковых констант внутри конструкций
F(«») и/или
PSTR(«») приводит к расходованию флеш памяти при каждом вызове этих функций. Вы должны самостоятельно управлять одинаковыми строками для экономичного расходования места во флеш памяти.
Библиотека WiFi ESP8266 (ESP8266WiFi)
Функции библиотеки WiFi ESP8266 очень схожи с функциями библиотеки для обычного WiFi шилда.
Список отличий:
- WiFi.mode(m): выбрать режим
WIFI_AP (точка доступа),
WIFI_STA (клиент), или
WIFI_AP_STA (оба режима одновременно). - WiFi.softAP(ssid) создает открытую точку доступа
- WiFi.softAP(ssid, password) создает точку доступа с WPA2-PSK шифрованием, пароль должен быть не менее 8 символов
- WiFi.macAddress(mac) позволяет получить MAC адрес в режиме клиента
- WiFi.softAPmacAddress(mac) позволяет получить MAC адрес в режиме точки доступа
- WiFi.localIP() позволяет получить IP адрес в режиме клиента
- WiFi.softAPIP() позволяет получить IP адрес в режиме точки доступа
- WiFi.RSSI() пока не реализована
- WiFi.printDiag(Serial); выводит диагностическую информацию
Класс
WiFiUDP поддерживает прием и передачу multicast пакетов в режиме клиента. Для передачи multicast пакета используйте вместо
udp.beginPacket(addr, port) функцию
udp.beginPacketMulticast(addr, port, WiFi.localIP()). Когда вы ожидаете multicast пакеты, используйте вместо
udp.begin(port) функцию
udp.beginMulticast(WiFi.localIP(), multicast_ip_addr, port). Вы можете использовать
udp.destinationIP() для определения того, был ли пакет отправлен на multicast адрес или предназначался именно вам. Multicast функции не поддерживаются в режиме точки доступа.
WiFiServer,
WiFiClient, и
WiFiUDP работаю точно так же, как и с библиотекой обычного WiFi шилда. Четыре примера идет в комплекте с этой библиотекой.
Тикер
Библиотека Ticker может быть использована для выполнения периодически повторяющихся событий через определенное время. Два примера включено в поставку.
В настоящее время не рекомендуется блокировать операции ввода-вывода (сеть, последовательный порт, файловые операции) в callback функциях тикера. Вместо блокирования устанавливайте флаг в callback функциях и проверяйте этот флаг в основном цикле.
EEPROM
Эта библиотека немного отличается от стандартной Arduino EEPROM. Необходимо вызвать функцию
EEPROM.begin(size) каждый раз перед началом чтения или записи, размер (указывается в байтах) соответствует размеру данных, которые вы намереваетесь использовать в EEPROM. Размер данных должен быть в диапазоне от 4 до 4096 байт.
Функция
EEPROM.write не производит запись данных во флеш память немедленно, вы должны использовать функцию
EEPROM.commit() каждый раз, когда вы хотите сохранить данные в память. Функция
EEPROM.end() тоже производит запись данных, а также освобождает оперативную память от данных, запись которых произведена. Библиотека EEPROM использует один сектор во флеш памяти, начиная с адреса 0x7b000 для хранения данных. В поставку включено три примера работы с EEPROM.
I2C (Библиотека Wire)
Реализован только режим ведущего, частота ориентировочно до 450 кГц. Перед использованием шины I2C, нужно выбрать пины SDA и SCL путем вызова функции
Wire.pins(int sda, int scl), например
Wire.pins(0, 2) для модуля ESP-01. Для других модулей пины по умолчанию 4(SDA) и 5(SCL).
SPI
Библиотека SPI поддерживает весь Arduino SPI API, включая транзакции, в том числе фазу синхронизации (CPHA). Clock polarity (CPOL) пока не поддерживается (SPI_MODE2 и SPI_MODE3 не работают).
ESP8266 API
Поддержка функций, специфичных для ESP8266 (режим глубокого сна и сторожевой таймер), реализована в объекте
ESP. Функция
ESP.deepSleep(microseconds, mode) переводит модуль в режим глубокого сна. Параметр
mode может принимать значения:
WAKE_DEFAULT,
WAKE_RFCAL,
WAKE_NO_RFCAL,
WAKE_RF_DISABLED. GPIO16 должен быть соединен с RESET для выхода из режима глубокого сна.
Функции
ESP.wdtEnable(),
ESP.wdtDisable(), и
ESP.wdtFeed() управляют сторожевым таймером.
ESP.reset() перезагружает модуль
ESP.getFreeHeap() возвращает размер свободной памяти
ESP.getFreeHeap() возвращает размер свободной памяти
ESP.getChipId() возвращает ESP8266 chip IDE, int 32bit
ESP.getFlashChipId() возвращает flash chip ID, int 32bit
ESP.getFlashChipSize() возвращает размер флеш памяти в байтах, так, как его определяет SDK (может быть меньше реального размера).
ESP.getFlashChipSpeed(void) возвращает частоту флеш памяти, в Гц.
ESP.getCycleCount() возвращает количество циклов CPU с момента старта, unsigned 32-bit. Может быть полезна для точного тайминга очень коротких операций
Библиотека OneWire
Библиотека OneWire была адаптирована для ESP8266 (внесены изменения в OneWire.h) Если у вас установлена библиотека OneWire в папку Arduino/libraries, то будет использоваться именно она, а не из комплекта поставки.
mDNS библиотека ESP8266mDNS
Библиотека позволяет реализовать в вашей программе ответ на мультикастовые DNS запросы для локальной зоны, например «esp8266.local». В настоящее время поддерживается только одна зона. Позволяет обращаться к WEB серверу ESP8266 по имени, а не только по IP адресу. Дополнительную информацию вы можете найти в прилагаемом примере и в файле readme данной библиотеки.
Библиотека Servo
Библиотека позволяет управлять сервомоторами. Поддерживает до 24 сервоприводов на любых доступных GPIO. По умолчанию первые 12 сервоприводов будут использовать Timer0 и будут независимы от любых других процессов. Следующие 12 сервоприводов будут использовать Timer1 и будут разделять ресурсы с другими функциями, использующими Timer1. Большинство сервоприводов будут работать с управляющим сигналом ESP8266 3,3в, но не смогут работать на напряжении 3,3в и потребуют отдельный источник питания. Не забудьте соединить общий провод GND этого источника с GND ESP8266
Другие библиотеки, не включенные в поставку Arduino IDE
Почти все библиотеки, которые не используют низкоуровневый доступ к регистрам микропроцессора AVR должны работать без каких-либо доработок. На сегодняшний день можно точно сказать, что протестированы и полностью работоспособны следующие библиотеки:
- arduinoWebSockets — WebSocket сервер и клиент для esp8266 (RFC6455)
- aREST REST API handler библиотека, позволяет управлять GPIO через http запросы вида http://192.168.1.101/digital/6/1
- Blynk — легкий в освоении IoT фреймворк (страница на Kickstarter). Статья на нашем сайте об этой библиотеке и мобильном приложении ESP8266 – Управляем со смартфона через Blynk
- DallasTemperature DS18B20, DS1820, DS18S20, DS1822
- DHT11 — используйте для инициализации следующие параметры
DHT dht(DHTPIN, DHTTYPE, 15) - NeoPixelBus — Arduino NeoPixel библиотека для esp8266
- PubSubClient Библиотека MQTT by @Imroy. Статья на нашем сайте об этой библиотеке ESP8266 подключаемся к OpenWRT+Mosquitto+mqttwarn и передаем данные на ThingSpeak, EMAIL, Android, iOS, Twitter, CloudMQTT в 100 строчек кода в Arduino IDE
- RTC — библиотека for Ds1307 & Ds3231 для esp8266
- Souliss, Smart Home — фреймворк для Умного Дома, построенный на Arduino, Android и OpenHAB
Установка Arduino IDE через Boards Manager
- Установите Arduino IDE с официального сайта Arduino.cc
- Запустить Arduino IDE, далее Файл — Настройки — в поле Additional Boards Manager URLs вставить ссылку на стабильную версию
http://arduino.esp8266.com/package_esp8266com_index.jsonили для nightly build
http://arduino.esp8266.com/staging/package_esp8266com_index.json, нажать OK (В это поле вы можете вводить несколько ссылок, разделенных запятой) - Инструменты — Плата — Boards Manager
- В Boards Manager в поле фильтра введите esp8266 или вручную пролистайте список и кликните на ESP8266 by ESP8266 Community Forum
- Кликните Install и дождитесь окончания загрузки (около 130 Мегабайт). Если загрузка произошла слишком быстро, возможно, что вы уже устанавливали Arduino IDE для ESP8266 и потребуется почистить кэш Boards Manager, иначе у вас останется установленной старая версия. Нужно сначала деинсталлировать старую версию, а потом необходимо удалить файлы кэша. Для Win7 x64 удалите файлы из папки C:\Users\Пользователь\AppData\Roaming\Arduino15 и повторите все, начиная с п.2
- Закройте Boards Manager и в меню Инструменты выберите Плата — Generic ESP8266
- Установите частоту вашего модуля 80 или 160Mhz, размер флеш памяти и выберите последовательный порт, к которому подключен ваш USB-TTL адаптер
Схема подключения ESP8266
Оптимальное подключение ESP8266 для Arduino IDE
Оптимальное подключение ESP8266
Подключение ESP8266 | Примечание | USB-TTL |
---|---|---|
VCC | ESP8266 подключайте к внешнему источнику питания >300мА, 3,3V | |
GND | все контакты GND должны быть соединены вместе: ESP8266, USB-TTL и источника питания | GND |
TX (UTXD) | RX | |
RX (URXD) | TX | |
GPIO0 | подтягивающий к питанию резистор 10k | DTR (если на вашем USB-TTL не разведен пин DTR, то вам придется вручную переключать GPIO0 на землю для перевода ESP8266 в режим прошивки) |
RESET (RSBT, REST) | подтягивающий к питанию резистор 10k, также можете добавить кнопку, соединяющую RESET и GND для ручного сброса модуля | RTS (если на вашем USB-TTL не разведен пин RTS, то вам придется вручную перезагружать модуль ) |
CH_PD (CH_EN) | подтягивающий к питанию резистор 10k | |
GPIO15 (MTDO) | подтягивающий к земле резистор 10k (для тех модулей, где выведен пин GPIO15) | |
GPIO2 | подтягивающий к питанию резистор 10k (на схеме не показан, но рекомендуется для увеличения стабильности) | |
GPIO16 | для успешного выхода из режима Deep Sleep необходимо соединить пины ESP8266 GPIO16 и RESET через резистор 470 Ом (на схеме не показан) |
Примечания.
1. Не на всех модулях выведены все пины. Перед приобретением модуля ознакомьтесь с видами модулей и их распиновкой.
2. Если на вашем USB-TTL конвертере выведены пины CTS и DSR — для автозагрузки прошивки они вам не помогут, т.к. работают только на вход.
3. Для стабильной работы ESP8266 требуется источник стабилизированного питания 3,3 вольт, ток более 250 миллиампер. Использование питания от USB-TTL конвертера может привести к нестабильности в работе.
Минимальное подключение ESP8266
Минимальное подключение ESP8266 (повышенная стабильность)
Более подробно, со всеми деталями, о подключении ESP8266 вы можете прочитать в нашей статье ESP8266 – подключение и обновление прошивки
Arduino IDE для ESP8266: быстрый старт
1. Подключить USB-TTL к USB
2. Подключить ESP8266 к USB-TTL как обычно. Если вы подключили ESP8266 по схеме без поддержки автозагрузки прошивки (не подключены DTR и RTS), то вручную соедините GPIO0 с землей, передерните питание модуля — все готово для прошивки
3. Запускаем Arduino IDE
4. В меню Инструменты — Плата — Generic ESP8266 board (в самом низу)
5. В меню Инструменты выбираем порт, к которому подключен наш USB-TTL
6. В меню Инструменты — выбираете частоту, размер флеш памяти вашего модуля
7. В меню Файл — Примеры (Образцы) — ESP8266WiFi — WiFiWebServer
8. В скетче заполняете SSID и пароль вашей WiFi сети
9. Жмем кнопку компиляции и загрузки скетча
10. Ждем окончании процесса прошивки. После прошивки, если модуль подключен по схеме без поддержки автопрошивки, отсоедините GPIO0 от земли и передерните питание модуля без отключения USB-TTL от питания
11. В меню Инструменты — Монитор последовательного порта
12. Выбираем скорость 115200
13. Смотрим что происходит в терминале
14. Когда модуль подключится к сети, то появятся надписи в мониторе «WiFi connected» и «Server started»
15. Ниже будет IP адрес вашего модуля ESP8266, например 192.168.1.248
16. Открываете любой браузер, в строке адреса вбиваете «http://192.168.1.248/gpio/1»
17. Смотрите монитор последовательно порта и если к ESP8266 к GPIO2 у вас подключен светодиод (через резистор, разумеется), то он включится.
18. Profit!
Автором этого проекта адаптации Arduino IDE для ESP8266 является наш соотечественник из Санкт-Петербурга Иван Грохотков.
Скачать Arduino IDE для ESP8266 с github
Скачать Arduino IDE для ESP8266 с build сервера
Скачать исходный код Arduino IDE для ESP8266
Задать вопросы автору проекта Ивану Грохоткову aka igrr или сообщить об ошибке в Arduino IDE для ESP8266 можно в специальном разделе на нашем форуме.
Начало работы — Документация NodeMCU
Документация по NodeMCU
Обзор
Основы
Начиная
- Начало работы, также известное как NodeMCU Quick Start
- Селектор задач / ОС
- Конструктор облаков
- NodeMCU PyFlasher
- esptool.py
- ESPlorer
- NodeMCU-Tool
- Докер
- Сборка luac.cross
- Скомпилировать Lua в образ LFS
- Загрузить образ LFS
Сборка прошивки
Прошивка прошивки
Код загрузки
Компиляция кода
Поддержка
Ссылка
Справочное руководство по языку NodeMCU
Программирование в NodeMCU
FAQs
Часто задаваемые вопросы разработчика Lua
Часто задаваемые вопросы для разработчиков расширений
Часто задаваемые вопросы по оборудованию
Белые бумаги
Lua 5.3 Поддержка
Lua Flash Store (LFS)
Компактная отладка Lua (ЖК-дисплей)
Файловая система на SD-карте
Внутренняя файловая система
Модули Lua
Каталог модулей Lua
bh2750
помощник
ds18b20
ds3231
фифо
Fifosock
ftpserver
слухи
HDC1000
httpserver
imap
жидкокристаллический
lm92
mcp23008
Redis
телнет
yeelink
Модули C
adc
реклама1115
adxl345
am2320
apa102
немного
цветение
bme280
bme680
bmp085
cjson
копейка
цветные утилиты
cron
крипто
dcc
dht
кодировщик
настройка конечного пользователя / адаптивный портал / менеджер WiFi
файл
gdbstub
gpio
HDC1080
hmc5883l
http
hx711
i2c
l3g4200d
mcp4725
mdns
mqtt
сеть
узел
ow (1-провод)
pcm
перфоманс
труба
ШИМ
pwm2
rfswitch
вращающийся
rtcfifo
rtcmem
rtctime
si7021
сигма дельта
sjson
СНТП
Softuart
Somfy
spi
структура
switec
tcs34725
tls
tm1829
tmr
tsl2561
u8g2
уарт
ucg
веб-сокет
вай-фай
вай-фай.монитор
wps
ws2801
ws2812
ws2812-эффекты
xpt2046
Документация по NodeMCU
- Документы »
- Bas
.
ESPlorer — esp8266
Описание упаковки
Основные многоплатформенные инструменты для любого разработчика ESP8266 от автора luatool, включая LUA для NodeMCU и MicroPython. Также поддерживаются AT-команды.
Требуется установленная JAVA (SE версии 7 и выше).
Поддерживаемые платформы
Windows (x86, x86-64)
Linux (x86, x86-64, ARM soft и hard float)
Solaris (x86, x86-64)
Mac OS X (x86, x86-64, PPC, PPC64)
Подробный список функций
- Подсветка синтаксиса LUA и код Python
- Цветовые темы редактора кода: по умолчанию, темные, Eclipse, IDEA, Visual Studio
- Возможности редакторов отмены / повтора
- Автозаполнение кода (Ctrl + Пробел)
- Интеллектуальная отправка данных на ESP8266 (без простой отправки с фиксированной задержкой линии), проверяйте правильный ответ от ESP8266 после каждой строки.
- Фрагменты кода
- Детальный каротаж
- и более, еще более…
Учебники для прошивки NodeMCU
Руководства по прошивке MicroPython
Оборудование, рекомендованное разработчиком ESPlorer для опытных пользователей
Аппаратное обеспечение, рекомендованное разработчиком ESPlorer для быстрого старта
- NodeMCU v3 — бренд LoLin, совместимость с MicroPython (Aliexpress, отсортированный порядок: по цене)
- Щиты NodeMCU, совместимость с MicroPython — бренд LoLin (Aliexpress, отсортированный порядок: по цене)
- Witty board, совместимость с MicroPython, RGB LED, датчик освещенности, 3 кнопки (Aliexpress, сортировка: по цене)
- Мини-платы и экраны WeMos, совместимые с Micropython (Aliexpress, сортировка: по цене)
- Мини-плата WeMos и экраны, совместимые с MicroPython, из официального магазина WeMos Electronic Aliexpress
- Самые популярные запчасти DIY (Aliexpres, сортировка по заказам)
ESPlorer Загрузки
Пожертвование
Для пожертвований с помощью кредитной / дебетовой карты, электронного кошелька или интернет-банкинга (в некоторых странах) нажмите кнопку PayPal для пожертвований.
Сообщения об ошибках и обсуждение
Журнал изменений
В настоящее время в процессе — поддержка MicroPython.
0.2.0-RC5
- rsyntaxtextarea обновлено с 2.5.6 до 2.5.8
0.2.0-RC4
- Microchip RN2483 (маломощный модуль приемопередатчика большой дальности LoRa) с поддержкой
0.2.0-RC3
- Автоматическое определение прошивки MicroPython
- Подсветка синтаксиса MicroPython
- Расширения файлов MicroPython *.py и * .pyc добавили
- Команда MicroPython SendToESP (отправить текущий файл из окна редактора в ESP8266, ALT + E)
- Команда MicroPython SendLine (отправить одну строку из окна редактора в ESP8266, ALT + L)
- Команда MicroPython SendBlock (отправить выбранный блок из окна редактора в ESP8266, ALT + B)
- Вкладка MicroPython Coomands: чтение и запись GPIO, соединения WiFi и TCP)
- MicroPython Snippets (блоки кода, редактируемые пользователем, кнопки для быстрого выполнения)
- История введенных вручную команд MicroPython
- Код MicroPython автозаполнение CTRL + ПРОБЕЛ
- Показать / скрыть окно редактора для использования в качестве простого цветного терминала
- Показать / скрыть окно терминала для полноэкранного редактирования кода
- Исправление ошибок
0.2.0-RC2
- добавить селектор скинов (стандартный Java LookAndFeel, зависит от платформы)
- можно отключить (новая опция на вкладке «Настройки»)
- уменьшен минимальный размер окна для экранов с низким разрешением
Автоматическое определение прошивки
v0.2.0-RC1
- добавить новый крутой ESP FileManager. Команды во всплывающем меню: Выполнить, Скомпилировать (Новый!), Просмотр (старый Кот), Изменить (Новый!), Загрузить (Новый!), Переименовать (Новый!), Удалить (доступные команды зависят от расширения файла)
- добавить в левую нижнюю панель функцию «Загрузить файл в ESP с диска» (включая двоичные файлы).
- добавить функцию «Загрузить файл из ESP на диск» (включая двоичные файлы) в файловом менеджере
- Список файлов ESP с автосортировкой по ABC
- добавить новую кнопку FileSystemInfo (новый командный файл.fsinfo () начиная с прошивки 20150311 и новее)
- добавить автоматическое определение прошивки после открытия последовательного порта
- добавить проверку связи с MCU после открытия последовательного порта или «изменение скорости на лету»
- изменяет размер окна по умолчанию на 1024 × 768 и новую концепцию пользовательского интерфейса
- изменение: во всех кнопках / командах «Выполнить» на «Сделать», «Посмотреть» на «Кошку».
- расширенное поле для имени последовательного порта
- добавить «CustomSerialPort» на вкладке «Настройки» (если это разрешено, PortScan никогда не запускается)
- добавить кнопки DTR и RTS со светодиодом
- добавить CTS LED
- добавить новое меню «Ссылки»
- добавить специальную правую панель для NodeMCU (кнопка Heap, кнопка Chip Info, кнопка Chip ID, кнопка Flash ID)
- добавить панель инструментов Показать / скрыть команду в меню «Вид»
- включая размер кнопок панели инструментов
- добавить панель «Сниппеты» Показать / скрыть команду в меню «Вид»
- добавить панель FileManager Показать / скрыть команду в меню «Вид»
- добавить Правая панель дополнительных кнопок Показать / скрыть команду в меню «Вид»
- добавить опцию «Использовать внешний редактор» на вкладке «Настройки».Все файлы Только для чтения
- добавить опцию «EOL» — EOL отображается в окне терминала
- добавить новый режим для сниппетов: Конденсированное выполнение (пожалуйста, не используйте этот режим, если вы используете команды без левого операнда: «= node.heap ()», но «x = node.heap» работают нормально)
- fix AutoComplete (Ctrl + Space) для команд, содержащих «.»
- fix «Настройка AutoSave / AutoRestore включить / отключить окно журнала» ошибка
- исправить ошибку: выйти из приложения без файлов сохранения
- отключить настройку «Автозапуск файла после сохранения в ESP» (для этого можно использовать новую кнопку «Сохранить и запустить» в 2.0.0-финальная версия)
- все настройки автоматически сохраняются при изменении и автоматически восстанавливаются после запуска приложения
- размер окна автоматически сохраняется при закрытии и автоматически восстанавливается после запуска приложения
- : размер вкладки изменен с 5 на 4
- библиотека rsyntaxtextarea обновлена до версии 2.5.6
- некоторый рефакторинг кода
- улучшить стабильность
- теперь концепция управления версиями semver.org (MAJOR.MINOR.PATCH)
Редактор
v0.1 сборка 206
- добавить file.format из NodeMCU 20150107
- AutoMagic чистка CMD-History от Майка (DL2ZAP)
- добавить несколько команд в поле со списком команд
v0.1 сборка 205
- ESPlorer — теперь с открытым исходным кодом!
- добавить функцию «TurboMode». Мои тесты: Размер файла: 3300 байт, 100 строк, скорость передачи: 115200, время загрузки: 1,8 секунды
- Окно терминала тоже имеет синтаксисhilighter (как редактор)
- Совместимость с Java 7 и 8
v0.1 сборка 204
- добавить функцию «AutoReConnect»: после открытия порта на 9600 вы можете легко изменить скорость порта на другую скорость передачи без запуска фрагмента
- добавлены новые настройки: максимальный размер журнала и максимальный размер истории терминала для исправления ошибки «все становится ужасно медленно»
- изменить порядок кнопок сниппетов, добавить кнопку «Отменить редактирование сниппета»
- добавить горячие клавиши сниппетов: для snippet0 — Alt + BackQuote, snippet1 — Alt + 1, snippet9 — Alt + 9, snippet10 — Alt + 0, snippet11 — Alt + Minus, snippet12 — Alt + Equals, snippet13 — Alt + BackSlash, snippet14 — Alt + BackSpace, snippet15 — без горячей клавиши.
v0.1 сборка 203
- добавить AutoScroll Включить / отключить
- добавить новые скорости передачи последовательного порта: 230400, 460800, 921600
v0.1 сборка 202
- добавить команды «Inc / Dec font size» для окон редактора, терминала и журнала
- удалить все действия автоочистки терминала
- исправление ошибки (сохранение настроек)
v0.1 сборка 201
- добавить «Dumb Mode» для отправки данных в старом стиле с линейной задержкой (см. Вкладку «Настройки»)
- добавить функцию фрагментов кода
- добавить команду «Отправить текущую строку в ESP»
- , последний использованный последовательный порт и скорость передачи данных, автосохранение / автозагрузка последней папки сценария сейчас
- горячих клавиш переработано
Настройки
v0.1 сборка 200
- Исправление ошибок
- добавить историю команд
v0.1 начальная общедоступная версия
.