Приветствую. Мир не стоит на месте, земля крутится и мы тоже идем вперед. Прежде чем мы начнем изучать возможности сборки ESP8266 & NodeMCU & LUA, мы разберем каждый элемент для лучшего понимания.
ESP8266 - это микроконтроллер китайского производителя Espressif Systems с WiFi интерфейсом на борту. Большую популярность он приобрел с приходом в мир DIY, интернет вещей. ESP8266 отлично подходит для домашних проектов где необходимо использование WiFi. Он гибок в использовании. Его можно подключать к другому МК через UART как модуль WiFi так и загружать исполнительный код в него, используя для написания кода языки С, LUA, Pyton, JavaScript. На борту у ESP8266 32-разрядное ядро с тактовой частотой CPU 80 МГц. Микроконтроллер не имеет внутренней EPROM, программа выполняется из внешней ПЗУ путем подгрузки кода в кеш инструкций. Поддерживает до 16 мб внешней памяти. К недостаткам можно отнести слабую периферийную наполненность. На базе ESP8266 выпускают разнообразные модули как:
NodeMCU - это бесплатный, открытый проект для IoT написанный на скриптовом языке LUA. Основана на официальном SDK от Espressif и использует файловую систему "SPIFFS". NodeMCU может выполнять скрипты как из последовательного порта (UART) так и из файловой системы. Преимущество прошивки заключается в его встроенном интерпретаторе языка LUA, который исключает необходимость компилировать весь проект. При добавлении функций или редактирования кода достаточно подгрузить необходимый скрипт. Что значительно ускоряет процесс сборки проекта.
У NodeMCU богатый функционал: Поддержка датчиков - температуры, влажности, давления, и т.п. (AM2320, DHT11, DHT21, DHT22, DHT33, DHT44, BME280, BMP085 )
- акселерометров (ADXL345)
- магнитометров (HMC5883L)
- гироскопы (L3G4200D)
Работа с протоколами HTTP, MQTT, JSON, CoAP Поддержка интерфейсов 1-Wire, I2C, SPI, UART TFT дисплеи ILI9163, ILI9341, PCF8833, SEPS225, SSD1331, SSD1351, ST7735
IQ светодиоды и LED контроллеры – WS2812, tm1829, WS2801, WS2812 Множество подключаемых модулей: шифрования, синхронизации SNTP, таймеры, ШИМ, FatFS, и т.д. Подробную документацию на NodeMCU можно найти на:https://nodemcu.readthedocs.io/en/master/ LUA - это скриптовый язык с открытыми исходными кодами на С. Реализация языка по стилю ближе к JavaScript с реализацией прототипной модели ООП, но отличается Паскале-подобным синтаксисом и более гибкими конструкциями. Встроенные средства параллельного программирования позволяют писать многопоточные программы только средствами языка, не обращаясь к API операционной системы или внешним библиотекам. |