NodeMcu V3 подключение, прошивка и работа в ARDUINO IDE – Видео
2 лет назад
#BLYNK, #умныйдом, #управлениенагрузкой, #nodemcu, #esp8266, #smarthouse, #arduino Начало работы с сервером BLYNK – прошивка NodeMCU (esp8266) -Устанавливаем приложение BLYNK; -Регистрируем аккаунт на сервере BLYNK; -Установка библиотеке в ардуино (ARDUINO IDE); – NodeMCU прошиваем BLYNK -Запись скетча для управления реле из приложения BLYNK с мобильного устройства. УРОКИ BLYNK BLYNK машинка (робот) WI-FI : https://youtu.be/aFn76JRL57o BLYNK термометр, подключаем датчик DS18b20: https://youtu.be/yTcwdQ_aXdw BLYNK подключаем реле и сенсорную кнопку: https://youtu.be/RoOUFF5LSW4 BLYNK WI-FI RFID электронный замок с сенсорной кнопкой: https://youtu.be/WYa6oem9NpU BLYNK GPRS подключаемся с помощью модема SIM800l: https://youtu.be/h-E0OG_EmjA BLYNK фоторезистор датчик освещенности : https://youtu.be/8zOQxXAbptA
1 лет назад
Микроконтроллер NODE MCU достойная замена Ардуино – работаем в Flprog без написания кода. Микроконтроллер NODE MCU: http://ali.pub/1thoiv Ссылка для настроек в IDE: http://arduino.esp8266.com/stable/package_esp8266com_index.json Скетч Flprog: https://yadi.sk/d/yt8i3FCE3Mjzp3 Плата Arduino UNO №1: http://ali.pub/8sz69 Плата Arduino UNO №2: http://ali.
pub/t9ojr Arduino UNO на выбор: http://ali.pub/h6n9g Arduino NANO: http://ali.pub/1owdc3 ArduinoPro Mini+USB UART/TTL (конвертер прошивальщик): http://ali.pub/1owdy2 Arduino sensor shield v5.0: http://ali.pub/1bfevy Arduino sensor shield на выбор: http://ali.pub/1bffc3 Обзор – Arduino sensor shield v5.0: https://youtu.be/gWGo75wSl64 Описание Arduino sensor shield v5.
0 на сайте FLprog: https://goo.gl/38xul5 Платформа для Arduino: http://ali.pub/1j5r14 Платформа для Arduino на выбор: http://ali.pub/1j5qpu Двухстрочный дисплей: http://ali.pub/19iccq Четырёхстрочный дисплей: http://ali.pub/19ide2 Дисплей на выбор: http://ali.pub/19idw5 Часы реального времени Ардуино: http://ali.pub/18hybl Датчик препятствий: http://ali.
pub/1dl0rn Датчик препятствий на выбор: http://ali.pub/1dl17e Датчик газа и дыма MQ-2: http://ali.pub/1cshp2 Датчик газа и дыма на выбор: http://ali.pub/1csi8b Дальномер HC-SR04: http://ali.pub/1i9exv Дальномер HY-SRF05: http://ali.pub/1i9fd1 Люксметр: http://ali.pub/1naoed Люксметр на выбор: http://ali.pub/1naoov Датчик влажности: http://ali.pub/17qlfm Датчик индуктивности: http://ali.
pub/1kcaap Датчик индуктивности на выбор: http://ali.pub/1kcax2 Датчик BMP180 (Барометр): http://ali.pub/1la98m Четырёхканальное реле Arduino на выбор: http://ali.pub/171pgl Реле на выбор:http://ali.pub/17ql11 Сервоприводы: http://ali.pub/1f8utg Макетные платы: http://ali.pub/171qnk Макетные платы на выбор: http://ali.pub/1hnp9o Драйвер двигателей: http://ali.
pub/1a1zxx Драйвер двигателей на выбор: http://ali.pub/1a20bj Мотор с редуктором: http://ali.pub/1a211z Мотор на выбор: http://ali.pub/1a232w Колёса: http://ali.pub/1a23dz Колёса на выбор: http://ali.pub/1a23ye RGB Светодиоды модульные: http://ali.pub/1oa2nw RGB Светодиоды на выбор: http://ali.pub/1oa36y Модуль EEPROM AT24C256: http://ali.pub/1qsaa3 Модуль EEPROM на выбор: http://ali.
pub/1qsaly Стартовый набор для начинающих ардуинщиков обзор https://youtu.be/AVPVClkJYB0 Ссылки на покупку под видео
11 меc назад
Появившись в 2005 году первая версия Arduino перевернула мир любительской электроники. Создавать гаджеты стало легко — раньше даже для простых проектов требовался диплом инженера: знание схемотехники и низкоуровневого программирования было непременным условием. Ещё нужно было купить кучу электронных девайсов — программаторы, отладочные платы, тестеры.
Но проект Массимо Банци перевернул DIY И как любая революционная технология, Arduino обросла легендами и мифами. Сегодня мы разберём самые популярные из них. 00:42 Arduino — это микроконтроллер. Почему это не так и что такое Wiring и Processing. 02:41 Все платы Arduino одинаковые. Nano, Lilly Pad, Yun, Tian и Mega — кто все эти платы.
03:58 Uno — лучшая плата из линейки Arduino. Что такое Leonardo и почему они появились на свет. 05:12 Arduino делаются только в Италии. Как поссорились Массимо Банци и Джанлука Мартино. 05:51 Производить Arduino может кто угодно. Чем отличаются китайские клоны и как собрать ардуино своими руками.
_________________________________________________________________ Заведи себе Arduino — http://amperka.ru/collection/arduino?utm_source=announce&utm_campaign=arduino-myths&utm_medium=youtube Узнай как создавать гаджеты — http://amperka.
ru/product/matryoshka-z-iskra?utm_source=announce&utm_campaign=arduino-myths&utm_medium=youtube Собираем Arduino своими руками — http://wiki.amperka.ru/diy:arduino?utm_source=announce&utm_campaign=arduino-myths&utm_medium=youtube #arduino #amperka #железкиамперки
5 меc назад
Репитер (повторитель, усилитель) wi fi сигнала своими руками. Репитер сделан на базе модуля ESP8266. Получается гораздо дешевле чем многие готовые аналоги. – nodemcu Lua V3 esp8266: http://ali.ski/OsDT7 или здесь: http://ali.
ski/Do9dz – архив с программой и файлами для прошивки: https://yadi.sk/d/iWn1j-pX3US5sB – архив для печати корпуса: https://yadi.sk/d/X1v23Cau3US69D Для тех кто хочет экономить при покупках на AliExpress: – Мегабонус : https://goo.
NodeMCU — это популярная и очень удобная платформа на основе WiFi модуля ESP-8266. По сути, NodeMCU представляет собой плату, на которой размещены: сам модуль ESP-8266, стабилизатор напряжения и USB-UART мост.
Существуют разные версии ESP8266, но почти для всех используется один и тот же способ настройки среды разработки Arduino IDE. О том, как, собственно, сделать эту настройку и пойдет речь в статье.
1. Настройка ESP8266 в Arduino IDE
Для этой процедуры необходим доступ в интернет, так как Arduino IDE требуется скачать дополнительные пакеты.
Заходим в настройки Arduino IDE:
В поле Дополнительные ссылки для Менеджера плат пишем такую ссылку:
В самом низу будет нужный нам пакет «esp8266 by ESP8266 Community». Выбираем его и жмем кнопку «Установка».
Спустя некоторое время пакет скопирует необходимые файлы и в Arduino IDE можно будет выбрать нужную нам плату.
2. Подключение светодиода к NodeMCU
В качестве примера, подключим к NodeMCU светодиод и напишем программу, которая будет включать и выключать его с периодом в одну секунду.
Для начала посмотрим на схемы выводов NodeMCU.
Плата имеет 13 цифровых выводов, обозначенных аббревиатурой GPIO. Можем подключить светодиод к любому из них. Пусть это будет вывод D7 (он же GPIO13).
Принципиальная схема
Внешний вид макета
NodeMCU работает с напряжением 3.3 Вольта, так что для подключения красного светодиода нам потребуется использовать токозадающий резистор с сопротивлением 65 Ом. Но подойдет и распространенный резистор 200 Ом.
3. Загрузка программы на NodeMCU с помощью Arduino IDE
Теперь, когда Arduino IDE умеет работать с NodeMCU и светодиод подключен, попробуем загрузить первую программу.
Особенности создания программ в NODEMCU ESP8266 для «интернета вещей»
К изучению возможностей микросхемы ESP8266 я приступил пару месяцев назад.
Первоначально приобрел, как и большинство, модуль ESP-01, но почти сразу нашел новое на тот момент решение на основе модуля ESD-12 в виде DEVKIT и прошивкой nodeMCU, в которую встроена VM LUA версии 5.1.4(без debug и OS*модулей).
Есть несколько способов приобщиться к миру прекрасного — «интернета вещей». Можно взять модуль ESP-01, в котором 512 Кбайт флеш, есть UART интерфейс, пара контактов ESP, добавить к нему интерфейс на USB в последствии перепаять флеш на больший объем.
Для тех, у кого нет желания, либо умения заниматься доработкой модуля, но хочется приобщиться и начать сразу программировать, есть другой способ — это указанная выше плата DEVKIT. Если учесть разность цен решения в 10 долларов — выбор за вами.
Что же хорошего в данном модуле DEVKIT?
Во-первых, он уже содержит интерфейс UART-USB с разъемом micro USB. Поэтому для его подключения к компьютеру нужен лишь кабель USB-microUSB.
Во вторых, он имеет выводы всех доступных сигналов с ESP8266. Вот моя схема подключения к модулю различных датчиков:
Для подключения датчиков к контактам платы DEVKIT я использовал шлейф от старого компьютера для подключения периферии (дисков, CDROM, портов и т.д.) Как видите, я подключил к модулю все или почти все.
В проекте — частотное управление двигателем и ПИД регулирование силовыми установками (нагревателями и выключателями).
В-третьих, модуль уже имеет flash 4 Mбайт, а NODEMCU имеет встроенную файловую систему spiffs.
В-четвертых, есть возможность обновлять прошивку из облака или через USB.
В-пятых, можно создать множество скриптов на LUA и записать их в файловую систему.
После чего через WIFI можно вызывать нужные скрипты на исполнение. Библиотека расширения LUA содержит следующие модули:
json, file, timer, pwm, i2c, spi, 1-wire, net, mqtt, coap, gpio, wifi, adc, uart и system api.
Контракты платы могут быть запрограммированы для gpio, i2c, pwm.
Доступны две версии прошивки с форматом целых, либо вещественных чисел. Следует отметить, что можно программировать свои разработки на СИ.
Но проблема в том, что для отладки каждого изменения в своей программе необходимо собирать прошивку объемом 200 KБ и грузить в модуль примерно 1 минуту. Т.е. сколько ошибок — столько минут.
Другой путь — отладка модулей на LUA и в последствии (если есть необходимость) перенос их на СИ с помощью API CИ для LUA (я, собственно, так и делаю). Одна ошибка — это примерно 1-2КБ и загрузка 1-2 сек. Т.е. сколько ошибок — столько секунд.
Какие же недостатки есть у данного модуля
Основной недостаток в том, что VM LUA исполняет LUA скрипты лишь размещенные в оперативной памяти кристалла. А этой памяти для скриптов всего лишь 20 Кбайт. Этого объема памяти хватает на исполнение скрипта примерно в 110 строк. Поэтому создание сравнительно больших скриптов для данного модуля имеет свою специфику.
Во-первых, необходимо алгоритм разделить на линейные блоки.
Во вторых, записать эти блоки в отдельные файлы файловой системы модуля В-третьих, исполнять эти модули с помощью оператора dofile. При написании модулей надо придерживаться следующих правил: — В конце каждого модуля явно вызвать сборщик мусора; — Для обмена данными между модулями использовать глобальные переменные, а для вычислений внутри модулей -локальные. В результате основная программа на lua выглядит примерно так (один из рабочих вариантов):
— function cb() — колбек функция периодического измерения показаний датчиков collectgarbage() — вызов сборщика мусора if ip==nil then dofile('wifi_1.lua') — функция инициализации wifi станции либо сервера end
— if ip~=nil and is==nil then dofile('srv_1.lua'); — в данном варианте реализуется web сервер is=1; end
— dofile('cbAM2302.lc'); — получение данных с датчика влажности и температуры AM2302 dofile('cb18b20.lua'); — получение показаний с датчиков температуры DS18B20(у меня их три) dofile('get_tp.lc'); dofile('norm.lc'); –получение показаний с датчика давления и температуры(BMP180) end tmr.alarm(3,1000,1,cb) — таймер дискретизации — вызывает колбек функцию. частота дискретизации 1 Гц Так как в этой программе каждый модуль занимает место предыдущего, то таких модулей может быть много. Все они хранятся в файловой системе.
Если реализовать алгоритм данной программы без использование разбивки на модули, то в памяти модуля сможет разместиться программа лишь для одного датчика (либо AM2302, либо 18b20, либо BMP180).
Одной из самых важных характеристик является энергопотребление. У ESP8266 оно просто поражает:
215mA в режиме непрерывной передачи.
1mA в режиме поддержания связи с точкой доступа
10uA в режиме глубокого сна с работающими часами реального времени
0,5uA в режиме Power OFF
Время необходимое на пробуждение и начало передачи пакета менее 2ms. Например, при измерении температуры каждые 100 секунд и подключении к точке доступа и передаче накопленных данных каждые 300 секунд (все остальное время чип спит) средний ток составит около 1mA. Это более трех месяцев работы от трех пальчиковых аккумуляторов емкостью 2600мА/ч.
О модуляхESP
В настоящее время наиболее популярными модулями на чипах ESP8266 являются ESP-01, ESP-02, ESP-03, ESP-04, ESP-05, ESP-06, ESP-07, ESP-08, ESP-09, ESP-10, ESP-11, ESP-12, ESP-12E. Они отличаются количеством разведенных пинов, наличием разъема для подключения внешней антенны, размерами.
Сейчас уже можно найти в продаже старшего брата ESP8266 – это модуль ESP-32. На Aliexpress пока всего у двух продавцов есть эти модули. Цена около 250 рублей против 110 рублей за ESP-12E. В новом модуле будет еще больше плюшек.
Основные возможности ESP-32. (нажмите для просмотра)
Wi-Fi – 802.11 b/g/n/e/i – 802.11 n (2.4 GHz), up to 150 Mbps – 802.11 i security features: pre-authentication and TSN – 802.11 e: Multiple queue management to fully utilize QoS traffic prioritization – Wi-Fi Protected Access (WPA)/WPA2 – Wi-Fi Protected Setup (WPS) – UMA compliant and certified – Antenna diversity nd seection – A-MPDU and A-MSDU aggregation – WMM power s ve U-APSD – Fragmentation and defragmentation – Wi-Fi Direct (P2P), P2P Discovery, P2P Group Owner mode and P2P Power Management – Infrastructure BSS Station mode/ Soft AP mode – Automatic beacon monitoring / scanning – SSL stacks with hardware accelerators Bluetooth – CMOS single-chip fully-integrated radio and baseband – Bluetooth Piconet and Scatternet – Bluetooth 4.2 (BR/EDR/BLE) – Adaptive Frequency Hopping(AFH) – SMP – Class-1, class-2 and class-3 transmitter without exter al power amplifier – +10 dBm tra smitting power – NZIF receiver with -90 dBm sensitivity – Up-to 4 Mbps high speed UART HCI – SDIO / SPI HCI – CVSD and SBC – Low power consumption – Minimum external component CPU and Memory – Xtensa® Dual-Core 32-bit LX6 micr pr cess rs, up to 400MIPS – 128 KB ROM – QSPI Flash/SRAM, up to 4 x 16 MB – Power supply: 2.5V to 3.6V – 416 KB SRAM Clocks and Timers – 2 MHz to 40 MHz crystal oscillator – Internal 8 MHz oscillator with calibration – External 32 kHz oscillator for RTC with calibration – Internal RC oscillator with calibration – Two timer groups including 3 x 64-bit timers and 1 x watchdog in each group – RTC timer with sub-second accuracy – RTC watchdog Advanced Peripheral Interfaces – 12-bit SAR ADC up to 16 channels – 2 x 10-bit D/A converters – 10 x touch sensors – Temperature sensor (-40 +125°C) – 4 x SPI – 2 x I2S – 2 x I2C – 2 x UART – 1 host (SD/eMMC/SDIO) – 1 slave (SDIO/SPI) – Ethernet MAC interface with dedicated DMA and IEEE 1588 support – CAN 2.0 – IR (TX/RX) – Motor PWM – LED PWM up to 16 channes Security – IEEE 802.11 standard security features all supported, including WFA, WPA/ WPA2 and WAPI – Secure boot – Flash encryption – 1024-bit OTP, up to 768-bit for customers – Cryptographc hardware acceleration: – AES 128/192/256 – HASH (SHA-2) library – RSA
– Radom Number Generator
Особенно интересна заявленная поддержка CAN-шины. Скоро управлять системами автомобиля и проводить диагностику можно будет по WiFi прямо с мобильного устройства.
Но вернемся к ESP-12E. На базе этого модуля построена платформа NodeMCU.
О платформеNodeMCU
Платформа использует возможности ESP-12 модуля, собственного микроконтроллера не имеет. Китайцы производят много клонов с разными конвертерами интерфейсов, и сами платформы имеют разные размеры.
По умолчанию в платформу загружена прошивка NodeMCU с поддержкой интерпретатора скриптового языка LUA. Скрипты задают поведение платы.
Я пишу и заливаю программы с помощью Arduino IDE. Для работы с платформой необходимо установить библиотеки. С библиотеками идет большое количество примеров программ.
Установка библиотек в средуArduinoIDEдля работы сNodeMCU.
Для установки библиотек необходимо зайти в настройки Arduino IDE и в поле «Additional board» ввести адрес http://arduino.esp8266.com/package_esp8266com_index.json
Далее «Инструменты» – «Плата» – «Boards Manager».
Пролистываете список вниз и находите ESP8266 by ESP8266 Community, и устанавливаете библиотеки.
Закройте «Boards Manager». Идите в «Инструменты» и выберите плату NodeMCU в соответствии с вашей версией.
Чтобы понять какой модуль у вас установлен и какую версию выбрать, посмотрите на модуль. Если контакты на нем расположены с трех сторон – это ESP-12E, если только с двух – это ESP-12.
Далее выбираете частоту модуля, размер памяти и порт, к которому подключена NodeMCU
Полное описание можно почитать здесь https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_ru причем на русском языке. Я расскажу об основных функциях.
Управление GPIO осуществляется так же, как и у Arduino. pinMode, digitalRead, digitalWrite, analogWrite функционируют как обычно. analogRead(A0) читает значение АЦП с аналогового входа А0 соответственно. analogWrite включает программный ШИМ. Частота ШИМ порядка 1кГц.
Диапазон ШИМ от 0 до 1023, у Arduino, как мы помним, до 255. Прерывания также поддерживаются на любом GPIO, кроме GPIO16. Функции millis() и micros() возвращают миллисекунды и микросекунды, прошедшие со старта модуля. Функция delay() у NodeMCU работает по-другому нежели у Arduino.
Здесь применение delay приветствуется и в больших программах даже необходимо. Когда модуль поддерживает WiFi соединение, ему приходится выполнять множество фоновых задач, кроме вашего скетча.
WiFi и TCP/IP функции библиотек SDK имеют возможность обработать все события в очереди после завершения каждого цикла вашей функции loop() или во время выполнения delay(…). Если в вашем коде есть фрагменты, которые выполняются более 50 миллисекунд, то необходимо использовать delay(…
) для сохранения нормальной работоспособности стека WiFi. А вот delayMicroseconds() блокирует выполнение других задач и не рекомендуется для задержек более 20 миллисекунд. Serial использует аппаратный UART0, работающий на PIO1(TX) и GPIO3(RX).
Программа для управления четырьмя реле с мобильного приложения
После того, как библиотеки установлены, к платформе подключаем блок из 4 реле к пинам D1, D2, D3, D4, что соответствует GPIO 5, 4, 0, 2 соответственно. Затем подключаем питание к платформе и к блоку реле. У имеющегося у меня блока реле есть одна особенность. Для включения реле необходимо подтянуть пин к земле. То есть логический 0 включает реле, а 1 выключает.
Я рассмотрю три варианта программы управления блоком реле.
Первая программа использует популярную библиотеку aRest https://github.com/marcoschwartz/aREST
Это API handler библиотека, позволяет управлять GPIO через http-запросы вида http://192.168.0.10/digital/6/1 ее возможности: устанавливать GPIO в Digital или Analog (ШИМ), устанавливать 0 или 1 на пин в режиме Digital, возвращать переменные и читать состояние пинов.
Программу я откомпилировал и загрузил из примеров, идущих вместе с библиотекой. С точки зрения использования – проще некуда.
В Setup’е устанавливается соединение с точкой доступа, о чем сообщается через COM порт. А loop выглядит вот так:
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
rest.handle(client);
}
Все. Что там происходит не понятно. Работает, но фактически мы не программируем ничего. Просто запускаем программу, все остальное делает библиотека. Но интереснее научиться работать с GPIO «руками». Да, кстати, программа у меня зависала через неопределенное время.
Иногда через 40 минут, иногда через 5-6 часов. Приходя домой после 8 часового рабочего дня, я всегда обнаруживал, что программа не работает. При этом роутер показывает, что клиент WiFi подключен и ему выдан IP адрес. Интерес у меня к библиотеке быстро пропал.
На зависания aRest’а на русскоязычных форумах жалоб не встречал. Я уж грешил на NodeMCU или на нестабильное питание, но дальнейшие эксперименты доказали, что в моем случае виновата была программа. Скорее всего, у меня частный случай.
Я не утверждаю, что библиотека не рабочая.
С aRest’ом разобрались.
Вторая программа написана самостоятельно, использует всего одну подключаемую библиотеку #include . Программа проста и наглядно показывает, как управлять пинами через веб-запросы.
Данная программа умеет управлять только логическими состояниями на выводах D1-D4 и выводить информацию о времени работы программы в качестве тестового запроса. Если есть необходимость, можно дописать программу для остальных GPIO, «научить» ее выдавать ШИМ и т.д.
К выводу D4 подключен синий светодиод, находящийся на модуле ESP-12E. После мучений с зависаниями aRest’а я временно отсоединил реле 4 от D4 и в своей программе дописал пару строк для мигания этим светодиодом. Пришел домой после работы смотрю – мигает, значит, работает. Проверил с мобильного – точно работает.
Программа отработала 8 дней без зависаний, отработала бы и дольше, но NodeMCU у меня один, поэтому я продолжил его изучение и выполнение программы пришлось остановить.
Код программы.
После компиляции и загрузки программы в монитор последовательного порта программа сообщит о состоянии подключения и IP адрес, который платформа получит от точки доступа.
Для управления блоком реле для этих двух программ было создано приложение на мобильный с ОС Android. Приложение очень простое, создавалось в App Inventor 2. Процесс создания приложения я опишу позже. Сначала третий вариант решения управления реле.
Третий вариант комплексный. Прошивка платформы и программа для Android от одного разработчика. Я использовал сервис Blynk. Он представляет собой облачный сервис для создания графических пультов управления и подходит для широкого спектра микрокомпьютеров и микроконтроллеров.
Для создания собственного проекта с управлением через Blynk нужно совсем немного: установить приложение (доступны версии для iOS и Android) или воспользоваться веб-формой. Тут потребуется регистрация в один шаг — ввод e-mail и пароля. Дело в том, что Blynk — облачное решение, и без регистрации контроль над железкой может получить любой пользователь.
Желающие могут установить сервер локально. В таком случае доступ в интернет не нужен.
NodeMCU (ESP8266) для начинающих: что такое, как подключить
Рассматриваем плату NodeMCU, знакомимся с ее характеристиками и способом подключения.
Плата NodeMCU
Для чего нужна NodeMCU?
NodeMCU — это платформа на основе модуля ESP8266. Плата предназначена для удобного управления различными схемами на расстоянии посредством передачи сигнала в локальную сеть или интернет через Wi-Fi.
Возможности применения этой платы ограничивается лишь вашей фантазией.
К примеру, на базе Node MCU можно создать «умный дом», настроив управление светом или вентиляцией через телефон, регистрацию показаний датчиков и многое другое.
Характеристики NodeMCU
Размер платы NodeMCU — 6 * 3 см. Плата довольно компактная, это позволяет использовать ее в большем количестве проектов. «Ноги» NodeMCU расположены так, что ее без проблем можно установить в макетную плату (breadboard).
На лицевой части платы разъем Micro USB, с помощью которого в контроллер заливают скетчи или подают питание от powerbank-а или компьютера.
Рядом с разъемом располагаются две кнопки: «Flash» и «Reset». Кнопка «Flash» используется для отладки, а кнопка «Reset» для перезагрузки платы.
Больше всего места на плате занимает чип ESP8266,на котором уставлен микропроцессор с тактовой частотой 80 МГц (можно разогнать до 160 МГц). Плата имеет 4 мегабайта Flash-памяти.
Для питания на плату можно подавать напряжение от 5 до 12 В, но рекомендуется от 10 В. Можно питать как от Micro USB, так и от контакта Vin (от 5В.). Также существуют дополнительные платы расширения для удобного питания модулей.
Плата для питания NodeMCU
Плата потребляет небольшое количество энергии. Это позволяет использовать ее с автономным питанием.
NodeMCU имеет 11 портов ввода-вывода общего назначения.
Некоторые из портов имеют дополнительные функции:
D9, D10 — UART
D1, D2 — I²C/TWI
D5–D8 — SPI
D1–D10 — выходы с ШИМ (PWM)
A0 — аналоговый вход с АЦП.
Подключение NodeMCU
Подключаем плату NodeMCU к компьютеру с помощью USB кабеля:
заходим в раздел «инструменты» -> «плата» -> «менеджер плат», где выбираем «esp8266» и скачиваем последнюю версию,
заходим в раздел «инструменты» -> «плата» и находим Node MCU,
необходимо в том же разделе зайти в раздел «порт» и выбрать тот, в который подключена плата,
установить в разделе инструменты: Upload speed (115200 bouad).
Arduino сейчас – это один из главных трендов в интернете вещей, поскольку данные платы позволяют быстро и без особых затруднений реализовывать проекты по управлению умным домом.
Но у этих плат есть один большой минус – отсутствие беспроводной коммуникации в большинстве дешёвых версий. Раньше это решалось дополнительными модулями, такими как приёмники-передатчки на 433 МГц или модули NRF24.
Сейчас, с появлением дешёвого WI-FI модуля ESP8266, проблема беспроводной коммуникации перешла в разряд задачи, с которой можно справится, изучив несколько руководств.
Однако, ESP8266 – это не просто WI-FI транссивер – это настоящий программируемый контроллер с выходами, который может полностью заменить плату Arduino. Даже больше – во многих случаях связка Arduino + ESP8266 просто избыточна.
В этой статье будет рассмотрена настройка данного контроллера для работы со средой Arduino IDE с целью как можно более лёгкого вхождения в написание программ для этой платформы.
Железо и его подключение
Существуют разные вариации модулей ESP8266, в зависимости от форм-фактора, объёма памяти и некоторых других возможностей. Поэтому, при подключении модуля, можно столкнуться с различными затруднениями. Чтобы их избежать, мы привели наиболее часто встречающиеся проблемы в списке ниже.
ПРОБЛЕМА: Модули питаются от 3.3В, вместо более распространённого питания в 5В. Так же они требуют 250 мА тока для стабильной работы.
РЕШЕНИЕ: Первый вариант решения – использовать модуль, где уже есть регулятор питания. Это позволит Вам запитать его от стандартных 5В (которые живут в USB). Тока тоже должно хватить, так как USB у компьютера выдаёт 500 мА. Второй вариант решения – использование отдельного источника тока на 3.3В, к примеру через стабилизатор AMS1117 на 3.3В.
ПРОБЛЕМА: Модули используют логику 3.3В, а у большинства устройств логика 5В.
РЕШЕНИЕ: Использование преобразователей уровней логики TTL, либо универсальных преобразователей на 4 или 8 каналов.
ПРОБЛЕМА: Версия ESP8266-01 имеет разъём, который нельзя запихнуть в обычную макетную плату.
РЕШЕНИЕ: Провода папа-мама наше всё, в данном случае.
ПРОБЛЕМА: Многие модули ESP имеют шаг между контактами в 2.0мм, вместо обычных 2.54мм
РЕШЕНИЕ: Вот такой переходник для ESP позволит легко разместить модуль на любой макетной плате.
Настройка среды Arduino
Теперь перейдём, собственно, к настройке среды Arduino. В ранних версиях среды этот процесс занял бы много времени, но сейчас вы можете просто выкачать нужные библиотеки и компиляторы через саму среду.
Первым шагом, является запуск среды.
После запуска через Файл -> Настройки добавляем ссылку на данные о модулях ESP8266.
Для стабильной ветки: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Для самых последних версий: http://arduino.esp8266.com/staging/package_esp8266com_index.json
Теперь заходим в Инструменты -> Плата -> Менеджер плат
Ждём, пока обновятся данные и добавляем модули ESP8266. Чтобы добавить модуль, в поиске забиваем “ESP8266”, а затем жмём на появившийся модуль:
Появится кнопка “Установка”. Устанавливаем.
После выполнения этих действий, среди доступных для работы плат, появятся модули ESP8266:
В зависимости от используемого модуля, будут появляется разные дополнительные настройки при выборе (как и в случае с платами Arduino).
Прошивка модулей из среды Arduino
Рассмотрим, что нам необходимо сделать, чтобы загрузить прошивку для разных модулей.
Откроем один из базовых примеров:
Исходный код этого примера приведён далее:
#include<\p>
#include<\p>
#include<\p>
#include<\p>
// Настройки точки доступа для подключения
const char* ssid = “……..”;
const char* password = “……..”;
// Создаём WEB-сервер
ESP8266WebServer server(80);
// ID пина
const int led = 13;
// Функция, которая будет обрабатывать обращение к корневому элементу сревера, т.е. “/”
void handleRoot() {
digitalWrite(led, 1);
server.send(200, “text/plain”, “hello from esp8266!”);
The first time using a new microcontroller is what I call funstrating, especially if you don’t have clear instructions. We’ve done the hard work of figuring out the NodeMCU drivers and NodeMCU Arduino IDE setup for you. Read on for the two steps that have to be done only once. More helpful info at the end, too.
Installing NodeMCU drivers for USB
This part of the instructions are written for Windows. They’re very similar for OSX and Linux.
Mostly these days devices download and install drivers on their own, automagically. Unfortunately as of writing this post when I plug a brand new NodeMCU into a new Windows 10 installation with a micro USB cable I get a warning message that says “USB Device Not Recognized – Device Descriptor Request Failed”.
Windows doesn’t know how to talk to the USB driver on the NodeMCU so it can’t figure out that the board is a NodeMCU and proceed normally. You’ll need to download the official driver and install it yourself.
The official NodeMCU drivers are here.
Download and extract the files, then run the Windows 10 installer. NodeMCU should now appear as a COM port on your Windows 10 computer.
Please post OSX-specific instructions them in the comments below.
Upgrade Arduino Boards Manager
We’re almost done! This next bit is pretty easy. Arduino has a list of possible microcontrollers (boards) that it can support if you ask it to add support.
This does two useful things: it keeps the download smaller for them (less $) and it means new users are not swamped with lots of options they may never use.
We need to add NodeMCU to the list of possible microcontrollers and then tell Arduion “Please download and install support for NodeMCU.”
Fire up Arduino IDE and go to File > Preferences.
In the field that says “Additional Boards Manager URLs” add “http://arduino.esp8266.com/stable/package_esp8266com_index.json” and hit OK. Now your Arduino IDE knows that NodeMCU boards exist.
go to Tools > Boards > Boards Manager
There are a lot of boards here! In the search field type “esp8266”, which is the name of the Wifi module at the heart of the NodeMCU.
You can see in my copy I’ve already installed the plugin. Click once anywhere on the description text. A button labelled “install” will appear nearby.
The location is inconsistent, and IMHO the button should always be visible if the plugin has not been installed. Click it and the installation process will begin.
As of this writing it has to download ~150mb of data. Once it’s done, close the Boards Manager.
To back to Tools > Boards and you will find the list is now quite a bit longer.
Choose your flavor of NodeMCU (probably 1.0 ESP-12E Module) and start coding.
NodeMCU example sketches
Examples for any given board type should appear under File > Examples. Examples are tailored to the type of board that you have currently selected. If you don’t see any NodeMCU or ESP examples, double check that you have Tools > Boards > [your NodeMCU flavor] selected. One time I changed board type to UNO and all my NodeMCU examples vanished. So confusing!
Final thoughts
Sketch upload time is long compared to UNO or Mega. Still worth it!
When using digitalWrite(), use digitalWrite(D0) instead of digitalWrite(0) and so on. Pin mapping on the NodeMCU is weird.
Wifi sketches need the SSID and password of your local Wifi network in order to connect. In the top of most sketches you’ll find a field “….” that should be replaced with your wifi SSID and/or wifi password.