How to Setup the ESP8266 Arduino IDE with the NodeMCU V3 (ESP8266 ESP12e)
The easy way to use the ESP8266 is with the Arduino IDE and this ESP8266 Arduino tutorial shows you how to install drivers into the Arduino IDE to program the ESP8266. It then shows you an example sketch using wifi.
The Lolin nodeMCU V3 breakout board is an ESP-12E style ESP8266 breakout board which makes it very easy to use an ESP8266 device — you justВ plug it into a micro USB connector and its ready.
Lolin nodeMCU V3 Board
The board includes its own 3V3 power supply regulator, a reset button, a Flash button and a USB-to-serial chip (CH340G on mine). You can just plug it into a USB port (micro USB connector) and start using it.
When you follow the instructions below, you can program the Lolin NodeMCU as if it were any other Arduino device. This is convenient since it uses the same familiar Arduino IDE programming environment.
Starting the nodeMCU
When you power up the nodeMCU for the first time you will see this message — when you connect a serial terminal on the PC — such as Tera Term — at 9600, 8 bits, 1 stop bit, no parity (8 1 N):
This is a LUA interface which is an interactive script system — you can type commands directly at the prompt to get the ESP8266 to perform. However the rest of this page shows you how to use the Arduino programming environment to program the board in C/C++ as you would with any other Arduino board.
If you continue past this point and Flash the Arduino sketch then the LUA environment will be overwritten. If you want to use LUA again you will need to re-flash the firmware.
ESP8266 Arduino Tutorial
Install USB To Serial Drivers
The first step in setting up the ESP8266 Arduino IDE is to plug in the NODEMCU and check the Windows device Manager for an entry in the Ports section.
If you don’t see the NodeMCU showing up as shown below then you will need to install drivers. The other possibility is that the NodeMCU is using too much power — I found it would not work from a powered hub but only from direct connection to the PC USB port. It needs 400mA!
External Power Source
Note: You can add an external power source to the Vin connection on the board with voltage >5V. Also connect ground labelled ‘G’ to complete the circuit.
ESP8266 Arduino IDE Boards Manager
To setup the board use the board manager:
Add the following text to the «Additional Boards Manager URLs»:
Now Install the nodeMCU Boards
Start the Boards manager dialogue. Click Boards Manager.
Search for and install the «esp8266 by ESP8266 community» Entry.
Now select the nodeMCU 1.0 (ESP-12E Module) entry — this is the base type for nodeMCU. nodeMCU is actually the firmware running on an ESP8266 ESP-12E.
Now check that you have similar information to the following — especially these:
- Board «nodeMCU 1.0 (ESP-12E Module)»
- Upload speed «115200baud»
- CPU frequency «80MHz»
- Flash Size «1M (3M SPIFFS)»
ESP8266 Arduino Example Sketch
Use the ESP8266 Arduino IDE to load the following sketch — just copy to white area of the IED and hit the upload button. This shows you a quick example of the ESP8266 Arudino wifi capability.
This example is from github.
ESP8266 Arduino Example Output
Here’s the typical output from the sketch using the serial monitor.
End of ESP8266 Arduino IDE tutorial showing how to flash an esp8266 with the Arduino IDE making it easy to create C/C++ based programs programmed into the ESP8266.
Настройка Arduino IDE для NodeMCU
NodeMCU — это популярная и очень удобная платформа на основе WiFi модуля ESP-8266. По сути, NodeMCU представляет собой плату, на которой размещены: сам модуль ESP-8266, стабилизатор напряжения и USB-UART мост.
Существуют разные версии ESP8266, но почти для всех используется один и тот же способ настройки среды разработки Arduino IDE. О том, как, собственно, сделать эту настройку и пойдет речь в статье.
Настройка ESP8266 в Arduino IDE
Для этой процедуры необходим доступ в интернет, так как Arduino IDE требуется скачать дополнительные пакеты.
В поле Дополнительные ссылки для Менеджера плат пишем такую ссылку:
В самом низу будет нужный нам пакет «esp8266 by ESP8266
Жмём кнопку Установить.
Спустя некоторое время пакет скопирует необходимые файлы и в Arduino IDE можно будет выбрать нужную нам плату.
Подключение светодиода к NodeMCU
В качестве примера, подключим к NodeMCU светодиод и напишем программу, которая будет включать и выключать его с периодом в одну секунду.
Для начала посмотрим на схемы выводов NodeMCU.
Плата имеет 13 цифровых выводов, обозначенных аббревиатурой GPIO. Можем подключить светодиод к любому из них. Пусть это будет вывод D7 (он же GPIO13).
Принципиальная схема
Внешний вид макета
NodeMCU работает с напряжением 3.3 Вольта, так что для подключения красного светодиода нам потребуется использовать токозадающий резистор с сопротивлением 65 Ом. Но подойдет и распространенный резистор 200 Ом.
Загрузка программы на NodeMCU с помощью Arduino IDE
Теперь, когда Arduino IDE умеет работать с NodeMCU и светодиод подключен, попробуем загрузить первую программу.
В меню «Инструменты/Плата» выбираем NodeMCU 1.0.
Загружаем программу на NodeMCU, смотрим на светодиод 🙂
Заключение
В следующей статье поговорим о том, как создать простейший веб-сервер на базе NodeMCU (да и вообще на любой ESP8266), который позволит нам через WiFi управлять любыми устройствами.
NodeMCU V3 (ESP8266) – подключение по I2C к Arduino Uno
В этой статье мы подробно рассмотрим подключение NODEMCU V3 к Arduino UNO по I2C, так как этот способ соединения двух контроллеров является самым простым и не требует дополнительных модулей согласования уровней логики.
I2C – последовательная асимметричная шина для связи между интегральными схемами внутри электронных приборов. Использует две двунаправленные линии связи (SDA и SCL).
Шина представляет собой два проводника, а для управления интерфейсом достаточно одного микроконтроллера. Удивительно, но подобная простота позволяет производить отключение микросхем в процессе работы. Специальный встроенный фильтр способен справляться с всплесками, гарантируя сохранность обрабатываемой информации.
Шина может работать в двух режимах: Master и Slave. В первом режиме устройство выполняет роль передатчика, во втором – приемника данных. В данном примере мы рассмотрим подключение NodeMCU в роли мастера, а Arduino Uno – в роли слейва, то есть принимающего устройства.
Пример подключения двух устройств между собой приведен на схеме ниже:
Программирование скетча основано на популярной библиотеке Wire.h, входящей в стандартный пакет библиотек Arduino IDE. Данная библиотека позволяет устройствам взаимодействовать по I2C / TWI.
Давайте передадим тестовое “Hello” с Master на Slave через I2C, а после получения данных слейвом, передадим “Hello” обратно.
В библиотеке Wire используется 7-ми битная адресация устройств. Адреса с 0 до 7 не используются, так как зарезервированы, поэтому первым адресом, который может быть использован, является 8. Мы будем использовать 2 адреса для подключения устройств: 8 и 13.
ESP8266 с чего начать или первый опыт
В этой статье я хочу поделиться опытом того, что делать, когда в руки впервые попадают платки ESP8266. Сразу оговорюсь, что ковыряние в таких железках, равно как и программирование, это моё хобби за мои деньги и в свободное от основной деятельности время. Поэтому прошу отнестись с определенной скидкой к степени критики данного материала.
Почему я это решил написать? Всё просто: я убил 3 недели времени на то, чтобы разобраться с чего начинать и как это работает. Кроме того, попробую собрать небольшой каталог ссылок по работе с ESP8266. Надеюсь, что эта информация поможет сэкономить вам хоть толику времени.
Итак, приступим!
Я заказал себе 3 варианта плат на известном китайском сайте:
- ESP8266 WIFI Serial Wireless Dev Test Board на основе ESP-12 (далее «Жёлтая плата») ($3.12)
- ESP8266 ESP-07 вместе с Adapter Plate For ESP8266 (далее ESP-07) ($2.30)
- LoLin V3 NodeMcu Lua на основе ESP-12 (далее «Лолин») ($3.12)
Причины, по которым я взял такой зоопарк:
- У Жёлтой платы уже встроены светодиодики, которыми можно сразу поморгать, для питания можно использовать не сказочные 3,3В, которые надо еще как-то добыть, а 3 батарейки типа АА или подключив 4,5В (что я и сделал).
- ЛоЛин меня подкупила тем, что подключается с помощью микро юсб кабеля и ей не нужны никакие UART конвертеры — в ней сразу он встроен на основе китайского чипа CH340, для которого можно легко найти драйвера как на win7x64 и на win10x64 (мои случаи), и, опять же питание от обычного адаптера с USB выходом, а не мудреные 3,3В.
- Конкретно эту ESP-07 я брал под метеостанцию. Ртутно-аналоговый градусник выцвел, прибивать новый лениво, да и врёт он нагреваясь от стены дома прилично. Для начинающих рекомендую брать сразу Adapter Plate — удорожание всего на 20 центов, а удобств намного больше.
Для начала — проверка модулей.
Во всех инструкциях по запуску пишут, что если Вы подключили питание и появилась WiFi сеть «AI-THINKER xxxxxxx», значит устройство работает. С моими устройствами так и вышло — они все создали WiFi сеть, к которой можно было подключиться. Ура! Заработало! Обрадовался я, но рано.
Для начала решил экспериментировать с Жёлтой платой. У продавца с лучшим показателем цена-рейтинг в описании товара были только картинки. И ни слова описания. На русскоязычных ресурсах были упоминания это платы, но конкретики именно про неё не нашёл. У некоторых продавцов я видел такую инструкцию:
1. Android phone installation IOT.APK, IOS client be released later
2. shorting cap connected to the power to enter the programming mode, enter the normal operating state removed
3. Replace the battery, mobile search network «AI-THINKER» router
4. join the router (the router module form) password is: ai-thinker
5. after the success can be added directly to the control module of the mobile phone.
6. Enter the home router «SSID» and «Password» in the «Configure Device», then click on the icon at the top of the router, wait a few moments after the jump to join the router, connect the phone router WiFi, again «discovered device» to achieve control in the LAN.
Мой вольный перевод:
1. На устройство с Wi-Fi работающим на ОС Андроид (не работает на версии 5.0 и старше!) установите IOT.APK, Клиент для IOS будет выпущен позже
2. На плате необходимо снять пермычку, активирующую режим прошивки.
3. Перезагрузите модуль (отключить и подключить питание) и через минуту ищите на андроид устройстве Wi-Fi сеть «AI-THINKER»
4. Подключитесь к этой сети с паролем «ai-thinker»
5. После этого запустите установленной приложение IOT и нажмите на лупу. Плата должна автоматически определиться. После этого перемещайте ползунки, щелкайте выключателями и наблюдайте светодиоды на плате.
Нестыковка была в том, что моя сеть «AI-THINKER хххххххх» не спрашивала пароль, а сразу телефон к ней подключался. И приложение в упор не «видело» ESP после подключения. RGB светодиод горел синим с установленной перемычкой или зеленым без неё.
Я догадывался, что, возможно, китайцы спаять — спаяли, а прошить забыли (или криво прошили). Поэтому решил шить сам. Для прошивки я использовал ESP8266 Flasher. И тут вылез второй сюрприз: ни одна программа плату не распознавала, на команды не отвечала, прошивка не заливалась. Подключал через Ардуино и через UART-конвертер — ничего. Две другие платы уже успел перепрошить и помигать светодиодом, а тут глухо. Пока не догадался прозвонить контакты.
На этой плате отдельно выведены три контакты для прошивки: TX, RX, GND. Так вот оказалось, что TX разведен на RX самой ESP-12, соответственно RX — на TX. Т.е. просто надо было поменять местами два провода: к отдельно вынесенным трём контактам подключаем UART-конвертер по схеме:
TX-TX
RX-RX
GND-GND
Или Ардуино:
TX-RX
RX-TX
GND-GND
После такого открытия модуль ожил, была найдена оригинальная прошивка для мигания светодиодами (AI-THINKER-IOT-2014-10-17 165528.bin) и прошита все тем же ESP8266 Flasher. Появился пароль на точку доступа, и приложение сразу увидело Жёлтую плату. Единственный нюанс: для перепрошивки надо установить перемычку, для всех остальных случаев снять. И не забывать перезагружать устройство после перепрошивки.
ESP8266 ESP-07 вместе с Adapter Plate
Инструкция подключения ESP-07 (ESP-12) через UART-конвертер:
- Красный — питание 3,3в;
- Черный — GND;
- Желтый — на стороне ESP8266 — RX, на стороне USB-TTL — TX;
- Зеленый — на стороне ESP8266 — TX, на стороне USB-TTL — RX;
- Оранжевый — CH_PD (CHIP ENABLE) — должен быть всегда подтянут к питанию;
- Синий — GPIO0 — подключен через выключатель к земле для включения режима перепрошивки модуля. Для обычного старта модуля GPIO0 можно оставить никуда не подключенным;
- Серый — GPIO15 (MTDO, HSPICS) этот пин необходимо притянуть к земле;
- Если подключаете к Ардуино, то RX-RX, а TX-TX.
С помощью паяльника были объединены ESP-07 и адаптер. Адаптер рекомендую поскольку он в дальнейшем облегчает соединение беспаечным методом с помощью макетной платы и проводов. В данном случае для питания я использовал понижающий DC-DC преобразователь из Китая. В наличии были датчики DS18B20, их и было решено подключать.
HomesSmart сразу ставить не хотелось и выбор пал на такой вот пример. Не буду перепечатывать схему и код — они практически такие же. Заработало не сразу, но с гуглом и бубном завелось и полетели данные на Народный мониторинг.
Загружал скрипт через ESplorer.
Жду компактный модуль питания 220AC — 3,3DC чтобы оптимизировать количество проводов.
LoLin V3 NodeMcu (Лолин)
Эту плату советовали сразу прошить прошивкой NodeMcu, что и было сделано через программу NodeMcu flasher. Сама прошивка собирается конструктором, что позволяет включить только самое необходимое.
Далее предполагалось подключение и управление 2-хканальным реле и управлять двумя бра в спальне. Тут хочу остановиться на одном ньансе. У китайского варианта такого реле есть перемычка JD-VCC — VCC — GND. По умолчанию она установлена на контакты JD-VCC — VCC.
Так вот, пермычку никогда нельзя устанавливать на VCC — GND — устроите КЗ! Эти три контакта используются для дополнительного питания реле, в случаях, когда управляющее может быть недостаточным для срабатывания реле. Присутсвие перемычки обозначает, что питание идет от «управляющих» контактов.
Скрипт был использован такой:
Я не смог повторно найти ссылку на первоисточник. Но схема проста: К Лолин подключаем на выходы D3 и D4 реле 1 и реле 2 (led1 = 3 led2 = 4). Дальше заходим на выданный нашим роутером IP адресс и видим страничку:
К моему огромному сожалению, я пока не разобрался как наводить красоту, например подключить файл CSS-стиля. Вопрос именно в задействовании отдельных файлов при выводе странички, а не в задании стиля.
Очень надеюсь что эта информация пригодиться хотябы одному человеку. И не судите строго за первую статью.