ESP8266
ESP8266 + Firebase

Сейчас облачными хранилищами никого не удивишь. Все хранят данные в облаках. А может ли ESP8266 под NodeMCU использовать облачные хранилища? А почему бы и нет. Давайте заставим ESP8266 отправлять данные в базу данных FireBase.
Как сделать Web-интерфейс для ESP8266 под NodeMCU

WiFi модули на базе микроконтроллера ESP8266 имеют достаточно интересный функционал, включая возможность использовать WiFi. Это позволяет использовать их в различных домашних устройствах. Создание Web-интерфейса для таких устройств - наиболее привлекательная, но не всегда простая тема. В этой статье рассматриваются примеры создания web-интерфейса для ESP8266 под framework NodeMCU на языке LUA. В примерах от простого к сложному ознакомимся с преимуществами ESP8266 и научимся бороться с его недостатками. Главный недостаток ESP8266, особенно при построение web-интерфейса, это конечный объем оперативной памяти. Этого можно не заметить при создании простых приложений, но при решении более сложных задач Вы неизбежно столкнетесь с недостатком памяти. Надеюсь, эта статья поможет обойти подобные проблемы.
Во всех примерах использовался модуль ESP12E и фреймворк NodeMCU собранный с модулями: adc, bme280, cron, crypto, dht, file, gpio, http, i2c, mqtt, net, node, pwm, rtctime, sjson, sntp, spi, tmr, u8g, uart, websocket, wifi, tls.
Такое количество модулей не обязательно. Эта сборка использовалачь для примеров к другим статьям. Необходимые модули: file, net, sjson, websocket, wifi.
Скачать фреймворк NodeMCUможно здесь
Скачать примеры здесь.
Метеостанція на ESP8266

Метеостанція зібрана на базі модуля ESP8266. Працює через WiFi, має web-інтерфейс, дисплей і можливість надсилати дані у мережу Інтернет. Реалізована можливість публікувати погодні графіки і інформаційні блоки на власному сайті або використовувати службу thingsspeak.com. Все це можна зробити своїми руками всього за один вечір із загальнодоступних модулів.
GPS-трекер + Дисплей SSD1306

У одній з попередніх статей розглядався GPS-трекер на базі ESP8266
Тепер підключимо до нього дисплей SSD1306. Докладніше про SSD1306 та бібліотеку U8G йшлося у статті ESP8266 NodeMCU. U8G
Треба підключити дисплей SSD1306 як показано на схемі:
ESP8266 NodeMCU. SSD1306. U8G

Для роботи з різними дисплеями NodeMCU використовує бібліотеку U8glib. Підтримуються дисплеї які працюють по шині SPI або IIC. В документації до NodeMCU можна перевірити чи підтримується саме ваша модель дисплею: https://nodemcu.readthedocs.io/en/master/en/modules/u8g/ У прикладі використовується графічний OLED дисплей SSD1306 який працює по шині IIC.
GPS-трекер на базі ESP8266

GPS-трекер на базі ESP8266 з SD-карткою та web-інтерфейсом


ESP8266 NodeMCU. UART

ESP8266 має один UART порт. NodeMCU дозволяє використовувати ще один UART порт, який може тільки передавати дані, але нас цікавить тільки повноцінний порт. Невеличка складність використання UART виникає через те, що цей порт використовується для програмування плати NodeMCU. Коли запускається скрипт, який використовує UART, скрипт перехоплює всі данні які йдуть по порту UART, і NodeMCU вже не виконуватиме ніяких команд, поки скрипт не «відпустить" UART. Щоб уникнути блокування NodeMCU і забезпечити можливість відправляти команди, застосовуємо прийом, описаний в статті "ESP8266 NodeMCU Прошивка. Робимо WiFi розетку". Тобто, робимо авто-запуск головного скрипта з затримкою. Це дасть нам кілька секунд контролю над NodeMCU щоб виправити ситуацію якщо щось пішло не так. Приклад скрипта init.lua:
ESP8266 NodeMCU, file, SD-Card

NodeMCU має власну файлову систему. Можна не тільки зберігати скрипти lua, а і використовувати її для роботи з власними файлами. Файлова система проста, без директорій. Тобто, всі файлі зберігаються у корні файлової системи. Проте допускається створення файлів з іменами типу: myDir/test.txt, але це буде просто файл з таким ім`ям. За роботу з файлами відповідає модуль file. Як і у звичайних файлових системах, файли можна відкрити у декількох режимах. Відкривається файл функцією file.open(filename, mode). Функції передаються ім`я файлу та потрібний режим:
ESP8266 NodeMCU timer, rtc, SNTP, cron

Розглянемо роботу таймерів, лічильників, Watchdog, годинника реального часу, синхронізацію часу з Інтернетом, та cron. Словом все, що має відношення до часу. У NodeMCU можна використовувати 7 таймерів, за допомогою яких запускати потрібні функції через певний час. Роботу таймерів забезпечує модуль tmr.
ESP8266 NodeMCU ADC

ESP8266 має лише один канал Аналого-цифрового перетворювача (ADC0). АЦП 10- бітний. Діапазон вимірюваних напруг 0..1 Вольт. Зверніть увагу, на платі NodeMCU може бути впаяний резистивний дільник напруги. У цьому випадку на вхід плати (A0) можна подавати від 0 до 3.3 В.
ESP8266 NodeMCU PWM

У попередній статті ми познайомились з NodeMCU і спробували керувати GPIO виводами. Тепер використаємо PWM для керування яскравістю світлодіода і спробуємо керувати сервомашинкою або сервоприводом. За роботу з PWM відповідає модуль PWM. Зверніть на це увагу, коли будите робити зборку NodeMCU. Як зібрати NodeMCU з потрібними модулями ми розглядали у попередній статті.
NodeMCU дозволяє використати одночасно не більше 6 PWM виходів на пінах від 1 до 12. Частота PWM може бути від 1 до 1000 Гц. Шпаруватість задається 10 бітним числом, тобто від 0 до 1023.
ESP8266 NodeMCU Прошивка. Робимо WiFi розетку

Популярність WiFi-модулів на базі ESP8266 на стільки велика, що крім прошивок для використання ESP8266 у якості WiFi-модуля під керуванням зовнішнього мікроконтролера, існує безліч прошивок для використання його і як мікроконтролера з різними цільовими призначеннями, у тому числі і в сфері Інтернет речей. У цьому циклі статей ми будемо вивчати можливості ESP8266 з прошивкою NodeMCU і познайомимось з мовою програмування LUA.
Недавні записи
- CRSF to PWM
- U-FOC PC Monitor для Chrome browser
- Фільтрація Back-EMF. Безсенсорні BLDC мотори
- Text to speech. Українська мова
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
Tags
bluetooth bldc nodemcu tim max1674 eeprom led avr hih-4000 brushless programmator mpu-6050 usart examples smd sensors piezo rs-232 motor html git meteo bme280 gps bkp encoder java-script raspberry-pi websocket esp8266 books solar eb-500 atmega mongodb gpio sms css pwm ethernet pmsm st-link capture dma stm32 watchdog lcd rfid python uart battery dc-dc soldering timer ssd1331 wifi nvic dht11 docker i2c 3d-printer adc bmp280 flash rtc servo barometer remap exti mpx4115a web flask ngnix usb displays foc ssd1306 mpu-9250 options
Архіви