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-інтерфейсом
Цей приклад демонструє, як можна зробити простий GPS-трекер за допомогою популярних електронних модулів. У цьому прикладі використовується Wi-Fi модуль ESP-12 на базі чіпа ESP8266. Прошивка NodeMCU та LUA-скрипти з відкритим кодом.
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.
Tags
dma dc-dc lcd eb-500 raspberry-pi tim wifi eeprom gpio piezo rfid usb encoder capture avr mongodb adc soldering ngnix gps css python options examples ethernet motor atmega sensors bkp exti led meteo mpu-9250 remap solar smd html docker hih-4000 programmator displays mpx4115a battery brushless web pmsm nodemcu watchdog rtc servo uart i2c mpu-6050 pwm usart sms git ssd1331 3d-printer flash nvic books websocket st-link ssd1306 max1674 foc stm32 java-script esp8266 timer bmp280 barometer dht11 rs-232 bluetooth bldc flask bme280
Архіви