Esp8266 lua примеры
WiFi модули на базе микроконтроллера ESP имеют достаточно интересный функционал, включая возможность использовать WiFi. Это позволяет использовать их в различных домашних устройствах. Создание Web-интерфейса для таких устройств — наиболее привлекательная, но не всегда простая тема. В примерах от простого к сложному ознакомимся с преимуществами ESP и научимся бороться с его недостатками. Главный недостаток ESP, особенно при построение web-интерфейса, это конечный объем оперативной памяти. Этого можно не заметить при создании простых приложений, но при решении более сложных задач Вы неизбежно столкнетесь с недостатком памяти.
Поиск данных по Вашему запросу:
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
![](http://m-gen.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif)
Содержание:
- Примеры LUA
- Nodemcu Lua Wi-Fi на Esp8266
- ● Проекты умного дома и интернета вещей на основе Arduino и NodeMCU
- Начало работы с ESP8266 NodeMcu v3 Lua с WiFi
- nodemcu_api_ru
- ESP-8266/ESP32 NodeMCU Lua: азы программирования.
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: ✅ Точка доступа на ESP8266 за 5 минут.
Примеры LUA
Войти или зарегистрироваться. Искать только в заголовках Сообщения пользователя: Имена участников разделяйте запятой.
Переводите его в режим прошивки и шьете в сотый раз lua, micropython, arduino, AT, espruino, etc, — любыми и в любой последовательности до получения правильного эффекта.
Однако, есть проблема : Проблемы нет! Зачем это нужно — тратить время и напрягать мозги? Для самодельщиков это вряд ли подъемно. Для профи — обязательно. Следствие — объем материала для переработки в мозге для Lua в десятки раз меньше чем для Си. Еще особенность Lua в том, что поняв как это работает, вы сможете программировать на JavaScript семейство Espruino, в том числе Iskra JS — платы на порядок мощнее чем обычная Ардуино. Большая засада. Приучитесь думать событийно-асинхронно — возвращаться к Си будет влом.
Ну, не страшно — Python на Малине будет интереснее и понятнее. Итак: событийное программирование — нет никаких закольцовок кода отсутствует loop.
Во флэше памяти столько, сколько сами напаяете, поэтому даже при ограниченной «оперативной» памяти в которую много не затолкаешь программа может быть очень и очень большой.
Весь скрипт не надо держать постоянно в памяти: произошло событие — кусок загрузился, отработал, и выгрузился. Есть еще несколько, но начинающему они понятны не будут. Прилагаемый файл lessonsLua. ESPLorer имеет кнопок и менюшек очень много. Со временем они станут поняты. Но сейчас нам нужны главные операции, что нарисованы ниже. По сути, все остальное «удобняшки» Левое окно — редактор скрипта. Для редактора — загрузить в редактор — левое окно!!! Этот файл, также, можно сохранить и запустить на модуле, или запустить на модуле без сохранения на нем.
Правое окно — терминал. В нем отражается информация, что гуляет между модулем и компьютером. Справа есть несколько полезных элементов управления.
Шаг первый — здесь. Заводим модуль в сеть. Шаг второй — Немного почитать. Шаг третий — Blink от Lua. Шаг четвертый — асинхронный код — много разных Blink. Шаг пятый — глубже: создание функций. Шаг шестой — первый модуль. Проверка памяти. Работа с памятью и модулями. MQTT — что это. Счетчик расхода воды. Маленький сервер. Про расписания. Установка значения по недельному расписанию. Допрос Народного Мониторинга. Модуль: забираем данные с Народного Мониторинга.
Азы: изучаем память. Грузим файлы по wifi. DS — батарейное питание и датчик температуры. Модель общения с любым 1Wire устройством. Анонимная функция и callback. Для начинающих Метатаблицы для чайников.
Сылка на habrahabr. Не для чайников, но очень полезно. Таблицы для начинающих. Работа со штатным модулем DS18b Скелет программы IoT. Скелет программы IoT ч. Освещение на улице. Последнее редактирование: 30 авг ИгорьК , 25 июл Ссылка на очень хорошее руководство на русском языке. Однако, помним, что версия Lua у нас 5. Плюс охрана и сирена. Плюс полив огорода. Итог IoT: оно управляет отоплением, светом, поливом и охраняет одновременно.
Часы на MAX Модуль для MAX Про while, tmr. Начинающим читать в первую очередь! Фича MQTT. Немного про ds18b Редактируем код на устройстве через сеть. Еще раз — отправка таблицы на броке р. Очень маленький файл. LFS от swc — отличная работа! О памяти еще раз. Еще раз LFS — на компьютере от vklimk Сборка прошивки от vklimk. Модуль mh-Z19b — СО2 в воздухе. ESP32 — первые шаги.
Переписываем линейный код Ардуино. Избавление от delay. Текущие заметки ESP32 Lua. Находим книгу Роберту Иерусалимски » Программирование на языке Lua «. Всего страница. Если исключить описание нескольких стандартных библиотек — то страниц Их все пока читать не обязательно: объектно-ориентированное программирование, например, для ESP встречается не часто.
Остается страницы. Да тоже не важно: любой язык состоит из двух вещей: управляющих конструкций и всего остального. Вот про управляющие конструкции и функции узнать следует — а об остальном поговорим позже. Для прочтения — только!!! Там еще введение, оглавление и другая лабуда, которая будет все равно пропущена. Теперь внимание: все написанное здесь представляет собой иллюстрации к книге, а не ее замену, и, тем более, не учебник. Читайте первоисточник, а не его перевранные копии. Последнее редактирование: 1 окт
Nodemcu Lua Wi-Fi на Esp8266
В статье я рассмотрю три решения. С помощью готовых библиотек aRest. С помощью облачного сервиса Blynk. Третье решение предусматривает использование готового приложения поставляемого сервисом Blynk.
Подключение к сети wifiprint(all-audio.pro()) all-audio.proe(all-audio.proN) all-audio.pro config(«Имя сети»,»ключ сети») print(all-audio.pro()) Логическая единица на.
● Проекты умного дома и интернета вещей на основе Arduino и NodeMCU
Годовая подписка на Хакер. Она создана на базе модуля ESP Плату второго поколения можно приобрести приблизительно за 6—7 долларов. С платой можно работать из Arduino IDE. Ты можешь установить другую скорость, но при первом же сбросе устройства она вернется к Важно, чтобы драйверу была установлена точно такая же скорость. Скорее всего, в первоначальной прошивке чего-то будет не хватать, поэтому в идеале нужно прошить устройство самостоятельно. Ссылка с bin-файлом приходит на почту. Точнее сказать, приходят даже сразу две ссылки. Одна с образом, поддерживающим операции с плавающей запятой, и вторая с не поддерживающим.
Начало работы с ESP8266 NodeMcu v3 Lua с WiFi
При этом нельзя осуществить дебажный вывод через Serial. Но, к счастью, встретилось более корректное решение в виде SoftwareSerial библиотеки, которая позволяет сэмулировать UART на произвольные пины при некотором снижении скорости потока данных. Но, как уже было отмечено, дело не сдвинулось ни на шаг — прошивка автоперезагружалась едва достигнув инициализации модема. Это и послужило причиной отложить в сторону этот вариант подключения устройства и попробовать NodeMCU — проект прошивки, исполняющей загруженные Lua скрипты!
Установка программного обеспечения Разработка собственных приложений на базе плат, совместимых с архитектурой Arduino, осуществляется в официальной бесплатной среде программирования Arduino IDE.
nodemcu_api_ru
Используя наш сайт, вы подтверждаете, что прочитали и поняли политику о куки , политику конфиденциальности и пользовательское соглашение. Stack Overflow на русском — это сайт вопросов и ответов для программистов. Регистрация займёт не больше минуты. Но пока не встречал примеров реализации этого протокола на языке LUA именно для ESP поэтому не могу понять как и с чего начать. Было бы удобно написать программу на языке LUA, закинуть программу в контроллер и все. Пока не могу понять как это сделать и где найти пример.
ESP-8266/ESP32 NodeMCU Lua: азы программирования.
База знаний. Вконтакте Instagram YouTube. Nodemcu Lua Wi-Fi на Esp Беспроводная связь. Быстрый просмотр. NodeMCU Lua — плата на основе популярного модуля ESP рисунок 1 предназначена для создания IoT устройств устройств Интернета вещей , которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi. Содержание Технические характеристики модуля Примеры использования скриптовый язык Lua Примеры использования скетч в среде программирования Arduino IDE NodeMCU Lua — плата на основе популярного модуля ESP рисунок 1 предназначена для создания IoT устройств устройств Интернета вещей , которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.
Реализация wifi термометра на ESP+DHT22 через NodeMCU прошивку и Далее, создаются необходимые скрипты (примеры их написания также.
Сейчас облачными хранилищами никого не удивишь. Все хранят данные в облаках. А почему бы и нет.
Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Сразу оговорюсь, что ковыряние в таких железках, равно как и программирование, это моё хобби за мои деньги и в свободное от основной деятельности время. Поэтому прошу отнестись с определенной скидкой к степени критики данного материала.
Модуль умеет отправлять и получать информацию в локальную сеть либо в интернет при помощи Wi-Fi. Недорогой модуль часто используется для создания систем умного дома или роботов Arduino, управляемых на расстоянии.
Популярность WiFi-модулей на базе ESP настолько велика, что помимо прошивок для использования ESP в качестве WiFi-модуля под управлением внешнего микроконтроллера, существует масса прошивок для использования его и как микроконтроллера с разными целевыми назначениями, в том числе и в сфере интернет вещей. ESP — это микроконтроллер с WiFi интерфейсом. Его можно использовать как WiFi модуль, и как микроконтроллер. Минусы: По сравнению с другими разрядными микроконтроллерами периферия не вызывает восхищения. ESP идеально подходит для домашних проектов, интернета вещей. ESP программируется через последовательный порт UART, поэтому для его прошивки не требуется специального программатора.
Войти или зарегистрироваться. Искать только в заголовках Сообщения пользователя: Имена участников разделяйте запятой. Новее чем: Искать только в этой теме Искать только в этом разделе Отображать результаты в виде тем.
Использование ESPHome в связке с Home Assistant
ESPHome. Вникаем. Пользуемся.
Часть I. Вводная.
Небольшое вступление
Полная и достаточно внятная поддержка ESPHome в Home Assistant пришла к нам с обновлением 0.85.
Что же такое ESPHome?
Если коротко, то это инструмент, который позволяет интегрировать в Home Assistant устройства, созданные на базе ESP8266 / ESP32.
Конечно, есть масса других проектов для подобных задач, таких как Tasmota, ESPEasy, WifiIot, ESPUrna, но основное их отличие от ESPHome заключается в том, что все они, для интеграции с любыми системами, используют MQTT, а вот ESPHome разрабатывался специально для Home Assistant и для интеграции используется Native API.
Я ни в коем случае не призываю отказываться от MQTT, но в связке ESPHome Home Assistant он просто не нужен.
Так же, нужно добавить, что еще одним преимуществом является то, что здесь мы имеем для всех задач, в том числе и создании внутренних автоматизаций, всего лишь один конфиг-файл, который использует YAML.
P.S. И в завершение краткого описания хочу сказать, если честно, проникся я этой системой, зацепила она меня. Вот уж действительно, в ней всё по-настоящему «Easy».
P.P.S. Статья будет большая, дабы не упустить важные моменты и показать максимум возможностей на старте.
Итак, в данной статье мы рассмотрим следующее:
- Установка ESPHome
- Создание файла конфигурации
- Прошивка платы
- Запуск
- Добавление датчиков
Приступим.
1. Установка ESPHome
Что использовал я?
У меня после переезда Home Assistant на Raspberry 3B остался не у дел Orange Pi LIte с 512 Мб и установленной DietPi на борту.
На этой плате и будем работать с ESPHome.
Следует заметить, что ESPHome может быть установлена на одном устройстве с Home Assistant. Но в моем случае обе системы находятся на разных устройствах.
Так же есть возможность работы системы в случае использования Hass.io .
Для работы системы понадобится предустановленный Python 2.7 ибо система использует platformio.
Итак, установка:
pip install esphome
Надеюсь во время установки ошибок не возникло. Переходим к следующему этапу.
2. Создание файла конфигурации
В ESPHome есть 2 варианта создания основного файла конфигурации:
Создание файла в консолиСоздание файла в Dashboard
Я расскажу про оба эти варианта.
Вариант первый. Создаем файл в консоли командой:
esphome test.yaml wizard
Где, test.yaml, это имя файла вашего проекта
Далее отвечаем на вопросы дружественного мастера установки:
Придумываем и указываем имя нашего проекта. Например, Test. Пишем с маленькой буквы.
Теперь нужно выбрать и ввести тип нашей платформы. Я буду использовать ESP-01 с объемом памяти 1 Мб, по этому выбираю ESP8266.
Далее выбираем тип платы. У меня esp01_1m.
Теперь вводим имя нашей точки доступа, к которой будет подключаться наша плата. Обратите внимание: и плата которую мы конфигурируем и сервер на котором сейчас создаем файл конфигурации должны находиться в одной сети.
Вводим пароль для указанной выше точки доступа.
Вводим пароль для последующего обновления прошивки по воздуху.
Итак, мы создали файл основной конфигурации.Теперь нужно его залить в плату.Сделаем это.
3. ПРОШИВКА ПЛАТЫ
Перед прошивкой подключаем TTL-конвертер к серверу, а плату к конвертеру.
Не забываем перевести плату в режим прошивки — замыкаем GPIO-0 на землю и подаем питание.
Прошивка устройства осуществляется командой:
esphome test.yaml run
После запуска скачиваются недостающие библиотеки и компилируется проект. Это займет какое-то время.
Потом система пытается залить скомпилированный файл в нашу плату.
Далее нам нужно выбрать, через что мы будем шить нашу плату: через TTL-конвертер или через ОТА.Первая прошивка должна заливаться только через TTL-конвертер.
Вот так выглядит заливка конфигурационного файла.
Далее, перезагружаем плату и по идее мы должны увидеть лог старта нашей платы.
На этом месте я прервусь, дабы перейти ко второму варианту создания конфигурационного файла.
Вариант второй. Создаем файл в Dashboard.
Для работы в Dashboard нам сначала нужно ее установить.
Сделаем это командой:
pip2 install tornado esptool
И запустим командой:
esphome config/ dashboard
После этого в браузере перейдем по адресу:
localhost:6052
Где, «localhost», это адрес сервера, на котором мы работаем с ESPHome
В браузере нас встречает вот такая форма:
Нажимаем на » » что бы создать конфиг-файл.
Вводим имя проекта
Выбираем тип нашей платы
Вводим логин и пароль WiFi
В завершение видим сообщение, что у нас всё хорошо и мы готовы к прошивке устройства.
В выпадающем списке справа выбираем, через что будем шиться. Для первого раза выбираем TTL-конвертер
Итак, мы готовы шиться.
Но перед этим пару слов о кнопочках проекта:
UPLOAD — запускает процесс прошивки по выбранному интерфейсуEDIT — позволяет редактировать конфиг-файлSHOW LOGS — показывает лог работающего устройстваVALIDATE — проверяет на ошибки конфиг-файл после изменения.
Переводим плату в режим прошивки — замыкаем GPIO-0 на землю и подаем питание.
Жмем VALIDATE и если ошибок нет, жмем UPLOAD.
Все, что происходит далее, ничем не отличается от прошивки через консоль.
4. Запуск
После прошивки видим, что наш проект онлайн — это значит, что дальше мы можем прошивать устройство по ОТА.
Можем нажать SHOW LOGS и посмотреть, что там пишет наше устройство
После успешного старта проекта, пусть даже с пустой конфигурацией предлагаю заглянуть в Home Assistant.
Заходим в Настройки/Интеграции/Создать новую интеграцию и напротив строки ESPHome нажимаем НАСТРОИТЬ.
Вводим адрес платы. Можно посмотреть в логе
Вводим пароль, который мы указывали при создании конфиг-файла
Видим пока что, вот такую картину. А чего мы хотели, мы же еще не добавили ни одного датчика…
5. Добавление датчиков
Теперь откроем конфиг-файл и добавим веб-сервер и какие-нибудь внутренние датчики.
В Dashboard нажмем на EDIT.
Добавляем веб-сервер:
web_server: port: 80
Добавляем датчик, который будет нам показывать статус подключения нашего устройства к сети
binary_sensor: — platform: status name: «Test»
Добавляем датчик, который будет нам показывать время работы устройства в сети.
sensor: — platform: uptime name: Test Uptime Sensor
Целиком конфиг-файл выглядит следующим образом:
esphome: name: test platform: ESP8266 board: esp01_1m wifi: ssid: ‘**********’ password: ‘********’ # Enable logging logger: # Enable Home Assistant API api: password: ‘*******’ ota: password: ‘*******’ web_server: port: 80 binary_sensor: — platform: status name: «Test» sensor: — platform: uptime name: Test Uptime Sensor
Сохраняем и нажимаем VALIDATE
Если ошибок нет, жмем UPLOAD для загрузки проекта в устройство.
После загрузки, система пытается подключиться к устройству и если подключение есть, то сразу же выводится в лог всевозможная информация, в том числе и статус подключения к Home Assistant.
Проверим, что там у нас в Home Assistant.
Ага. Отлично.
Теперь посмотрим на веб-сервер.
Для этого в браузере перейдем по адресу, который получило наше устройство.
Ну, неплохо же!
Теперь можно добавлять в конфиг-файл различные сенсоры, бинарные сенсоры, Light-компоненты, свитчи, автоматизации и прочие фишечки…
Вот собственно и всё, что я хотел рассказать в первой части. Этого пожалуй достаточно для старта.
Во второй части я планирую рассказать уже о более конкретной задаче, которую я хочу реализовать на устройстве Sonoff Basic.
Ну и в завершение.
Хочу добавить.
Если вдруг вы хотите перейти с уже существующего устройства в котором залита Tasmota
или ESPEasy или ESPurna, то создаете конфиг-файл, как описано выше, только не жмете UPLOAD, а нажимаете на три точки, справа от имени проекта. Затем на кнопку COMPILE.
После того, как скомпилируется ваш конфиг-файл вы можете скачать его и подсунуть для обновления прошивки вашего устройства в настройках той системы, которая сейчас установлена.
Ну и в завершение 2.
Если у вас возникли проблемы еще на первом этапе заливки основного конфиг-файла в устройство и проблемы эти связаны с Linux-системами, то можно скомпилировать файл и залить его из Windows программой esphomeflasher
В программе выбираете com-порт, к которому подключен TTL-конвертер, выбираете скомпилированный файл и жмете кнопку FLASH ESP
После удачной прошивки, устройство видится в Dashboard и с ним можно уже работать по ОТА.
Ну и в завершение 3. Бонус
Для автоматического запуска Dashboard, можно создать сервис в SystemD, например:
[Unit] Description=Dashboard After=network-online.target [Service] Type=simple User=%i ExecStart=/root/config esphome dashboard [Install] WantedBy=multi-user. target
Или добавить строку в rc.local
/usr/local/bin/esphome /root/config/ dashboard
Важный момент — обращайте внимание на пути, указанные в коде. Вы должны указать свои пути расположения ESPHome.
Вот теперь точно — всё!
Всем спасибо, кто осилил текст и дочитал до конца!
P.S. Статья обновлена 8.04.19 по причине критичных изменений в самом проекте ESPHome.
Изменения коснулись смены имени проекта. Раньше было ESPHomeLib, а теперь просто ESPHome.
Соответственно изменились основные команды и пути расположения файлов.
Быстрый старт с NodeMCU v3 (ESP8266), экосистемой Arduino и IDE PlatformIO | Данила Логинов
Хотите сделать IoT проект, но не знаете с чего начать? Вот ответ.
NodeMCU — пятидолларовая платформа IoT с открытым исходным кодом, основанная на системе Wi-Fi ESP8266 на чипе. Версия 3 работает на модуле ESP-12E (ESP8266MOD), и это простая в использовании макетная плата, оснащенная аналоговыми и цифровыми контактами, адаптером USB-последовательный порт на основе модуля Ch440g и разъемом micro USB.
По умолчанию он запускает сценарии Lua, однако экосистема Arduino больше подходит для начинающих из-за огромного количества доступной информации и библиотек. Или, если вы уже начали создавать устройство с Arduino и нуждаетесь в некоторых возможностях Wi-Fi, было бы проще перенести вашу кодовую базу на ESP8266.
Обычно кодирование для Arduino происходит в Arduino IDE, несмотря на то, что существует более мощное решение: PlatformIO — бесплатная экосистема с открытым исходным кодом для разработки IoT. Вот некоторые плюсы:
- Ускоренная компиляция
- Автозаполнение
- Мощный менеджер библиотек
- Удобный способ организации кода начните с IoT и выходите за его пределы 🙂
Плата разработки поставляется со встроенной прошивкой, позволяющей управлять чипом Wi-Fi с помощью AT-команд. Просто распакуйте свою новую плату NodeMCU и подключите ее к компьютеру с помощью USB-кабеля, она несколько раз мигнет синим светодиодом.
Он использует микросхему Ch440g для преобразования последовательного интерфейса в USB, что означает, что вашему компьютеру нужны драйверы для работы с платой.
Компьютер с Windows 10 может автоматически найти и установить соответствующие драйверы, но если вам нужно, скачайте драйвер здесь (WCH — китайская компания, разработавшая этот чип).
Чтобы проверить работоспособность платы, мы передадим несколько команд. Вы можете использовать Serial Monitor из Arduino IDE или любого другого последовательного терминала, например, терминала Брея.
Найдите обнаруженный порт и подключитесь к нему со скоростью передачи
Окно приема после RST со скоростью 9600 бод строка с надписью «готово». Мои платы работали с9600
. Нажмите на кнопку RST , чтобы сбросить макетную плату, и в окне приема должен появиться какой-то «мусор»:115200
по умолчанию: Сообщение «готово» в окне приема со скоростью 115200 бодПереключение на
AT — OK!CR+LF
окончания строки и отправить командуAT
, она должна ответить сообщениемOK
:Теперь мы можем играть с другими командами, такими как:
-
AT+RST
перезапускает модуль -
AT+GMR
проверяет информацию о версии -
AT+CWMODE?
возвращает текущий режим: 1 — станция, 2 — программная точка доступа, 3 — станция + программная ТД.0033 AT+RST команда после)
-
AT+CWJAP=”MyNetwork”,””,qwerty12”
подключается кMyNetwork
с паролемqwerty12
, отвечает сообщениямиWIFI CONNECTED
и 9004 IP0033 WIFI и 9004 соединения created -
AT+CIFSR
возвращает информацию о подключении
Вы также можете установить TCP-соединение с другими устройствами в вашей сети или найти дополнительные команды в документе ESP8266 AT Command Examples. На доске написано
ОШИБКА
, если отправленная вами команда не поддерживается.Перейдем к IDE. Выполните простые шаги, предложенные на веб-сайте PlatformIO: Установка.
PlatformIO, по сути, является расширением Visual Studio Code, поэтому вам нужно установить VS Code и добавить расширение
platformio-ide
: также вытащите расширение C/C++ (ms-vscode.cpptools
), в конце перезапустить VS Code и все — кодить можно!Несмотря на то, что в некоторых руководствах говорится, что необходимо стереть/прошить плату с помощью соответствующих инструментов, я счел это ненужным при работе с PlatformIO.
Вам также не нужно возиться с менеджером платы Arduino IDE!
Просто щелкните значок PlatformIO на левой панели и выберите Новый проект :
PlatformIO: Новый проектНазовите свой проект, выберите NodeMCU 1.0 (модуль ESP-12E) плату и Платформа Arduino , использовать местоположение проекта по умолчанию или нет:
PlatformIO: Мастер проектовНажмите Готово и дайте ему загрузить все зависимости и построить структуру проекта. Проверьте файл
файл platformio.iniplatformio.ini
:Это основной файл конфигурации, который вас интересует:
платформа
,board
иframework
параметры сообщают компилятору PlatformIO, что использовать для компиляции проекта . Вы также можете указать здесь зависимости проекта (библиотеки и версии), скорость передачи данных последовательного монитора и многое другое. Более подробная информация доступна здесь: Файл конфигурации проекта.Попробуем собрать проект, на нижней панели находим кнопку PlatformIO: Build (значок галочки ) и нажимаем ее, чтобы запустить процесс сборки. Если все в порядке, вы получите тот же вывод в окне терминала:
Сборка вывода в окне терминалаМне не удалось заставить работать встроенный светодиод на моих платах, но, возможно, вам повезет больше: он должен быть подключен к контакту
LED_BUILTIN
. Давайте моргнем миру:Нажмите на PlatformIO: Кнопка Upload (стрелка вправо) для сборки и загрузки прошивки на плату. Синий светодиод будет мигать, пока процесс не завершится.
Загрузить вывод в окне терминалаСхема подключения внешнего светодиода, если нужно:
Схема миганияТеперь можно протестировать возможности Wi-Fi и узнать, как добавлять библиотеки. Я предлагаю библиотеку WiFiManager, которая предоставляет простой API для настройки подключения вашего модуля из браузера.
Перейдите в реестр Libraries и найдите 90.
16.0 в файл
platformio.ini
и изменить кодmain.cpp
:Загрузите проект и откройте окно PlatformIO: Serial Monitor , он инициализирует менеджер Wi-Fi и запустит HTTP-сервер :
WiFiManager: инициализацияЗайдите в настройки Wi-Fi на вашем устройстве и подключитесь к точке доступа, созданной платой.
Если это устройство Android, вам будет предложено «войти в сеть Wi-Fi». Фактически, он переместит вас на HTML-страницу, обслуживаемую модулем. Если нет, вы можете открыть браузер и ввести
Android: войдите в сеть Wi-FiIP-адрес AP
, полученный в окне Терминала (192.168.4.1
здесь):Введите SSID и пароль вашей локальной сети, нажмите Сохранить и проверьте окно Терминала :
WiFiManager: подключеноЕсли соединение установлено успешно, вы увидите сообщение
Idle
, что означает, что функцияloop()
начала свою работу. С этого момента вы готовы к работе с интернет-возможностями, которые вам нужны в среде, удобной для Arduino!Финальный проект вы можете найти на GitHub: https://github.
com/loginov-rocks/NodeMCU-Arduino-PlatformIO
Удачи в проектах IoT!
Начало работы — документация NodeMCU
Основной процесс начала работы с NodeMCU состоит из следующих трех шагов.
- Соберите прошивку с нужными вам модулями
- Прошить прошивку на чип
- Загрузить код на устройство.
Обычно вы выполняете шаги 1 и 2 только один раз, но затем повторяете шаг 3 по мере разработки приложения. Если ваше приложение перерастает ограниченную оперативную память на кристалле, вы можете использовать Lua Flash Store (LFS) для перемещения вашего кода Lua во флэш-память, освобождая гораздо больше оперативной памяти для переменных данных. Вот почему рекомендуется включить LFS на шаге 1, если вы разрабатываете более крупное приложение. Как показано ниже, существует другой подход к загрузке кода Lua.
Предупреждение
Для каждой задачи у вас есть несколько вариантов инструментов в зависимости от используемой ОС.
Выбор задач и ОС
Задача \ ОС Окна macOS Линукс Сборка прошивки облачный конструктор облачный конструктор облачный конструктор Докер Докер Докер родной Флэш-прошивка NodeMCU PyFlasher NodeMCU PyFlasher esptool.py esptool.py esptool.py Код загрузки ESPlorer (Java) ESPlorer (Java) ESPlorer (Java) Инструмент NodeMCU (Node. js)
Инструмент NodeMCU (Node.js) Инструмент NodeMCU (Node.js) Задачи LFS ниже Сборка микропрограммы с поддержкой LFS облачный конструктор облачный конструктор облачный конструктор Докер Докер Докер родной Сборка luac.cross не требуется, если вы используете веб-сервис Терри или Docker для последующей компиляции образа LFS не требуется, если вы используете веб-сервис Терри или Docker для последующей компиляции образа LFS не требуется, если вы используете веб-сервис Терри или Docker для последующей компиляции образа LFS родной родной родной скачать из выпуска Компилировать Lua в образ
LFSвеб-сервис веб-сервис веб-сервис Докер Докер Докер родной родной родной Загрузить образ LFS универсальный универсальный универсальный Как это читать
Вариант использования: вы только начинаете работу с NodeMCU и предпочитаете ОС Windows (и не используете LFS), тогда синие квадраты в столбце «Windows» являются ориентиром .
Вы:
- собрать прошивку на облачном сборщике
- скачать и запустить NodeMCU PyFlasher для переноса прошивки на устройство
- загрузите и запустите ESPlorer, для которого требуется Java, для передачи файлов Lua из вашей системы на устройство
Не хватает инструментов?
Наша цель — как можно быстрее познакомить вас с программированием на Lua для ESP8266, поэтому мы свели количество упомянутых здесь инструментов к минимуму; frightanic.com: Инструменты и IDE обсуждает другие инструменты и опции.
Осторожно
Приведенные ниже главы не предназначены для последовательного изучения. Выберите задачу из матрицы выше, и она перенесет вас в соответствующую главу.
Cloud Builder
Cloud Builder на https://nodemcu-build.com позволяет выбрать ветку NodeMCU, модули и несколько других параметров конфигурации (например, SSL да/нет). После завершения сборки вы получите электронное письмо с двумя ссылками для загрузки кастомной прошивки:
- один для NodeMCU с плавающей поддержкой
- один для NodeMCU без плавающей поддержки , т.
е. двоичный файл только для целых чисел
Мы рекомендуем использовать сборку с плавающей запятой, несмотря на то, что целочисленный вариант использует меньше оперативной памяти для хранения переменных, так как между двумя вариантами существует небольшая разница во времени выполнения. Кроме того, вариант с плавающей запятой правильно обрабатывает нецелые значения, и это значительно упрощает числовые вычисления.
Для всего остального графический интерфейс сборщика облачных вычислений говорит сам за себя. Следовательно, здесь нет необходимости в дальнейших пояснениях.
Для LFS
- Развернуть панель «Опции LFS»
- Выберите размер LFS, 64 КБ, вероятно, будет достаточно
- Выберите другие параметры и соберите
↑ вернуться к матрице
Обратите внимание, что эта служба не поддерживается командой NodeMCU. Тем не менее, им управляет член команды NodeMCU как физическое лицо.
NodeMCU PyFlasher
Автономный прошивальщик NodeMCU с графическим интерфейсом на основе Python, esptool.
py (см. ниже) и wxPython. Запускаемый .exe доступен для Windows и .dmg для macOS.
Установка не требуется на Windows и macOS! Инструкции по запуску на других платформах доступны на сайте проекта.
- Установите драйверы для последовательного порта USB. Какой драйвер вам нужен, зависит от используемого вами модуля ESP8266 или конвертера USB-to-serial.
- Подключите кабель USB к устройству и компьютеру.
- Загрузите и запустите PyFlasher
- Выберите последовательный порт, найдите двоичный файл микропрограммы и установите параметры флэш-памяти.
↑ вернуться к матрице
Обратите внимание, что этот инструмент не является официальным предложением NodeMCU. Тем не менее, он поддерживается членом команды NodeMCU в индивидуальном порядке.
esptool.py
esptool.py был запущен как усилия сообщества ESP8266, но с тех пор был принят Espressif. Это их официально рекомендуемый способ прошивки чипов ESPxxx.
- Установите драйверы для последовательного интерфейса USB. Какой драйвер вам нужен, зависит от используемого вами модуля ESP8266 или конвертера USB-to-serial.
- Установите Python 2.7 или Python >=3.4 в вашей системе, если он еще не доступен.
- Подключите кабель USB к устройству и компьютеру.
-
$ pip install esptool
(также устанавливает pySerial) -
$ esptool.py --port
--baud <скорость передачи> write_flash -fm <режим flash> 0x00000 .bin
flash-mode
— этоqio
для большинства ESP8266 ESP-01/07 (модули 512 Кбайт) иdio
для большинства ESP32 и ESP8266 ESP-12 (модули >=4 МБ). ESP8285 требуетили
.Скорость передачи данных по умолчанию — 115200. Большинство аппаратных конфигураций должны работать со скоростью 230400 в зависимости от ОС, драйвера и модуля. Модули NodeMCU и WeMos обычно работают с 921600.
Более подробная информация доступна в репозитории esptool.py GitHub.
↑ вернуться к матрице
ESPlorer
TBD https://github.com/4refr0nt/ESPlorer
↑ вернуться к матрице
NodeMCU-Tool
Возможно, NodeMCU-Tool, для которого требуется Node.js, является лучшим инструментом для загрузки и выполнения кода, чем ESPlorer. Кроме того, в отличие от первого, он очень хорошо поддерживается. Однако мы также понимаем, что пользователи Windows в целом предпочитают графический интерфейс командной строке.
Список функций довольно длинный, но по сути NodeMCU-Tool предлагает:
- загружать (Lua) файлы из вашей хост-системы на устройство
- управление файловой системой устройства (удаление, загрузка/загрузка и т. д.)
- запускать файлы на NodeMCU и отображать вывод через UART/serial
Быстрый запуск:
- Установите Node.js и NPM, если они еще не доступны
- Глобально установить NodeMCU-Tool
$ npm install nodemcu-tool -g
- Проверка установки с помощью runnin
$ nodemcu-tool --version
- Загрузить файл Lua
$ nodemcu-tool upload --port=/dev/ttyUSB0 helloworld.
lua
- Запустить
$ nodemcu-tool запустить helloworld.lua
Обратите внимание, что вам может понадобиться использовать префикс
sudo
для установки инструмента на шаге 2, а также, возможно, добавить флаг–unsafe-perm
после команды установки.↑ назад к матрице
Docker
Образ сборки Docker NodeMCU — это самый простой способ сборки компонентов, связанных с NodeMCU, локально на выбранной вами платформе.
Предложение:
- сборка прошивки NodeMCU на основе локально клонированных исходников и конфигурации
- локальная кросс-компиляция файлов Lua в образ LFS
Подробные инструкции доступны в файле README образа. Что касается доступных параметров конфигурации, проверьте документацию и изучите комментарии в
app/include/user_config.h
.Для LFS
- В
app/include/user_config.h
отредактируйте строку#define LUA_FLASH_STORE 0x0
и отрегулируйте размер до необходимого.Обратите внимание, что это должно быть кратно 4 КБ.
- Создайте сборку, как если бы вы собирали этот образ в противном случае (т. е. см. его README)
↑ назад к матрице
Обратите внимание, что этот образ Docker не является официальным предложением NodeMCU. Тем не менее, он поддерживается членом команды NodeMCU в индивидуальном порядке.
Сборка
luac.cross
Локальная копия
luac.cross
нужна только в том случае, если вы хотите самостоятельно скомпилировать файлы Lua в образ LFS и используете Docker , а не .Windows
Пользователи Windows могут скомпилировать локальную копию
luac.cross
исполняемый файл для использования на ПК разработки. Для этого вам нужно:- Чтобы загрузить текущие исходники NodeMCU (это ZIP-файл dev или ZIP-файл релиза) и распаковать в локальную папку, скажем
C:\nodemcu-firmware
; выберите версии master/dev в соответствии с версией прошивки, которую вы хотите использовать.Если вам нужна целочисленная сборка, отредактируйте файл
app/includes/user_config.h
, чтобы выбрать это. - Выберите предпочтительный набор инструментов для сборки
luac.cross
исполняемый файл. Здесь у вас есть несколько вариантов: - Если вы являетесь пользователем Windows 10 с уже установленной подсистемой Windows для Linux (WSL), то это среда Linux, поэтому вы можете следовать приведенным ниже инструкциям по сборке Linux.
- Менее ресурсоемким вариантом, который работает на всех вариантах ОС Windows, является использование Cygwin или MinGW, которые являются вариантами портов коллекции компиляторов GNU для Windows и которые могут компилироваться в собственные исполняемые файлы Windows. В случае с Cygwin установите Cygwin (выбрав ядро Cygwin + gcc-core + gnu make в меню установки). В случае с MinGW вам снова нужна только очень простая среда сборки C, поэтому установите MINGW; вам нужны только ядро GCC и mingw32-make.
Оба они создают подсказку Cmd , какие пути в соответствующей цепочке инструментов GCC. Переключитесь на
app/lua/luac_cross
и запустите make для сборки компилятора в корневом каталоге прошивки NodeMCU. Вы делаете это, запускаяmake
в Cygwin иmingw32-make -f mingw32-Makefile.mak
МинГВ. - Вы также можете использовать MS Visual Studio (доступна бесплатная версия сообщества). Просто откройте прилагаемый файл решения MS (msvc\hosttools.sln) и соберите его, чтобы получить файл Lua 5.1 luac.cross.exe. В настоящее время нет файла sln для версии Lua 5.3.
- Если у вас есть встроенный исполняемый файл
luac.cross
, вы можете использовать его для компиляции кода Lua в образ LFS. Вы можете удалить его из иерархии nodemcu-firmware, так как эта иерархия папок больше не требуется и может быть удалена.
Linux
- Убедитесь, что у вас установлен пакет инструментов GCC, необходимый для сборки.
- Загрузите текущие исходные коды NodeMCU (этот ZIP-файл dev или ZIP-файл релиза) и распакуйте в локальную папку; выберите версии master/dev в соответствии с версией прошивки, которую вы хотите использовать. Если вам нужна целочисленная сборка, отредактируйте файл
app/includes/user_config.h
, чтобы выбрать это. - Изменить каталог на
app/lua/luac_cross
подпапку - Запустите
make
для сборки исполняемого файла. - Если у вас есть встроенный исполняемый файл
luac.cross
, вы можете использовать его для компиляции кода Lua в образ LFS. Возможно, вы захотите переместить это из иерархии nodemcu-firmware, так как эта иерархия папок больше не требуется и может быть удалена.
macOS
То же, что и для Linux
↑ вернуться к матрице
Компилировать Lua в образ LFS
Выбрать файлы Lua для запуска из LFS
Самый простой способ — хранить все файлы Lua для вашего проекта в одном каталоге на вашем хосте.
(Эти файлы будут скомпилированы
luac.cross
для построения образа LFS на следующем шаге.)Например, чтобы запустить серверы Telnet и FTP из LFS, поместите следующие файлы в каталог проекта:
- lua_examples/ lfs/_init.lua. Вспомогательные подпрограммы и функции LFS.
- lua_examples/lfs/dummy_strings.lua. Перемещение общих строк в LFS.
- lua_examples/telnet/telnet_fifosock.lua. Простой сервер telnet (пример 1).
- lua_examples/telnet/telnet_pipe.lua. Простой сервер telnet (пример 2).
- lua_modules/ftp/ftpserver.lua. Простой FTP-сервер .
Вы всегда должны включать первые два модуля, но остальные файлы обычно заменяются вашими собственными файлами проекта. Также помните, что это примеры, и вы можете полностью изменить или заменить их для нужд своего приложения.
Примечание
Вам понадобится компилятор luac.cross, который соответствует вашей конфигурации в отношении чисел с плавающей запятой/целого числа, Lua 5.
1/5.3 и, возможно, версии.
Веб-служба кросс-компиляции Lua LFS Терри
https://blog.ellisons.org.uk/article/nodemcu/a-lua-cross-compile-web-service/
Примечание: ознакомьтесь с выбором файлов Lua first
Загрузите ZIP-файл со всеми вашими файлами Lua, готовыми для LFS. Веб-сервис кросс-компилирует их в файл
.img
, готовый для загрузки на устройство. Он поддерживает образы LFS для вариантов встроенного ПО как с плавающей запятой, так и с целым числом.Дополнительную информацию можно получить на сайте службы.
Обратите внимание, что эта служба не поддерживается командой NodeMCU. Тем не менее, им управляет член команды NodeMCU как физическое лицо.
Docker
Примечание: сначала ознакомьтесь с выбором файлов Lua
Тот же образ Docker, который вы использовали для сборки прошивки NodeMCU, можно использовать для компиляции файлов Lua в образ LFS.
-
$ cd <ваша-nodemcu-прошивка-папка>
-
$ docker run --rm -ti -v
pwd:/opt/nodemcu-firmware -v {PathToLuaSourceFolder}:/opt/lua marcelstoer/nodemcu-build lfs-image
Родной для ОС
Примечание: сначала ознакомьтесь с выбором файлов Lua
Для Windows, если вы собирали с помощью WSL / Cygwin, вы сделаете это из соответствующего командного окна, оба из которых используют оболочку
bash
.Если вы использовали Visual Studio, просто используйте окно Windows cmd.
-
$ cd <проект-каталог>
-
$ luac.cross -o lfs.img -f *.lua
Вам нужно будет настроить пути
img
иlua
в соответствии с их местоположением и убедиться, чтоluac.cross
находится в вашем списке поиска$PATH
. Например, если вы используете WSL и файлы вашего проекта находятся вD:\myproject
, тогда путь Lua будет/mnt/d/myproject/*.lua
(для cygwin заменитеmnt
наcygwin
). Это создастlfs.img
, если нет ошибок компиляции Lua (при необходимости снова укажите явный путь к каталогу).Вы также можете добавить простой однострочный файл сценария в каталог
~/bin
, чтобы завершить эту команду.↑ вернуться к матрице
Загрузить образ LFS
Скомпилированный файл образа LFS (например,
lfs.
) загружается как обычный файл в файловую систему устройства (SPIFFS). Вы делаете это так же, как с файлами Lua, например. ESPlorer или NodeMCU-Tool. Также есть новый пример, HTTP_OTA.lua, вimg
lua_examples
, который может получать изображения из стандартной веб-службы.После того, как файл образа LFS окажется на SPIFFS, вы можете выполнить команду node.flashreload(), после чего загрузчик загрузит его во флэш-память и немедленно перезапустит модуль ESP с загруженным новым LFS, если файл образа действителен. Однако вызов вернется с ошибкой , если файл окажется недействительным, поэтому ваш код перепрошивки должен включать логику для обработки такого возврата ошибки.
Измени
файл init.lua
init.lua
— это файл, который первым запускается прошивкой NodeMCU. Обычно он настраивает соединение WiFi и запускает основное приложение Lua. Предполагая, что вы включили файл_init
, описанный выше, его выполнение добавит простой API для доступа к модулю LFS:- Отдельные функции могут выполняться напрямую, например.
LFS.myfunc(a,b)
- LFS теперь находится в требуемом пути, поэтому
требуется 'myModule'
работает как положено.
Выполните защищенный вызов этого кода
_init
:pcall(node.LFS._init())
и проверьте статус ошибки. Более подробное описание см. в разделе «Методы и подходы к программированию» в официальном документе LFS.Минимальный пример LFS
Ниже приведен краткий обзор создания и запуска простейшей из возможных систем на основе LFS.
Чтобы использовать LFS, начните с версии прошивки NodeMCU с включенной LFS. См. раздел матрицы «Построить LFS включенная прошивка» для того, как это сделать. Загрузите ее на ESP8266 обычным способом (независимо от того, что для вашей установки).
Затем создайте файловую систему LFS. Это можно сделать несколькими способами, как обсуждалось выше; один из самых простых — использовать
luac.cross -o lfs.img -f *lua
на хост-компьютере. Не забудьте включить файл с именемhello_world.
со следующим содержимым в одну строку:lua
print("Hello ESP8266 world!")
Файл lua_examples/lfs/_init.lua обязательно должен быть включен в образ, так как это самый простой способ интегрировать систему LFS. Затем файлlfs.img
можно загрузить в ESP8266, как и любой другой файл.Следующий шаг — сообщить ESP8266, что LFS существует. Это делается с помощью node.LFS.reload(«lfs.img»), который инициирует сброс, за которым следует node.LFS._init() для лучшей интеграции LFS; вход в esp8266 и выполнение следующих команд дает обзор последовательности команд.
> > node.LFS.reload("lfs.img") -- node.LFS.reload() вызывает здесь один или два сброса. -- Вызвать LFS hello_world. > узел.LFS.hello_world() Привет, мир ESP8266! -- ВЫПОЛНЕНО! -- теперь еще немного идей и помощников -- Список модулей в LFS. > распечатать (узел.LFS.list) функция: 3fff0728 > для k,v в парах(node.LFS.list()) do print(k,v) end 1 dummy_strings 2 _инит 3 привет_мир -- интегрировать LFS с SPIFFS > узел.
LFS._init() -- Теперь мы можем запускать и загружать файлы из SPIFFS или LFS, используя `dofile` и `loadfile`. > dofile("hello_world.lua") Привет, мир ESP8266! -- `require()` теперь также работает так же. -- если бы в SPIFFS был файл с именем "hello_world.lua", то он был бы выполнен. Но если нет поиска в LFS. -- _init.lua также устанавливает глобальную LFS как копию node.LFS. Это несколько обратная совместимость и может быть удалена в будущем. > распечатать (LFS) таблица: 3fff06e0 >
Обратите внимание, что исправление ошибок не использовалось, так как команды предназначены для ввода на терминале, и ошибки станут очевидными.
Затем вы должны настроить процесс загрузки ESP8266, чтобы проверить существование образа LFS и запустить необходимый модуль. После того, как таблица модулей LFS была зарегистрирована с помощью запуска lua_examples/lfs/_init.lua, запуск модуля LFS — это просто вопрос, например:
LFS.hello_world()
.node.LFS.reload() необходимо перезапускать, только если образ LFS обновлен; после загрузки образа LFS во флэш-память исходный файл (в SPIFFS) больше не используется и может быть удален.
-