Arduino nano wifi esp8266
Как подключить? Каждый из модулей имеет USB порт и может запитываться от компьютера, но рано или поздно им потребуется автономное питание. Надо решить эту задачу сразу.
Два варианта: у каждого модуля свой источник питания, или один на всех.
Подключил внешние 5 вольт на Vin обоих модулей, затем подключил USB к Arduino UNO. Пока все идет нормально.
Первое, что хотелось проверить, это соответствие уровней сигналов двух модулей.
Для первой программы я использовал пример использования библиотеки Software Serial
Исходный скетч для Arduino NANO
/* * RX is digital pin 10 (connect to TX of other device)
* TX is digital pin 11 (connect to RX of other device)
*/
#include
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() // Open serial communications and wait for port to open:
Serial.begin(57600);
while (!Serial) ; // wait for serial port to connect. Needed for native USB port only
>
Serial.println(«Goodnight moon!»);
// set the data rate for the SoftwareSerial port
// я изменил на 115200)
mySerial.begin(115200);
mySerial.println(«Hello, world?»);
>
void loop() < // run over and over
if (mySerial.available()) Serial.write(mySerial.read());
>
if (Serial.available()) mySerial.write(Serial.read());
>
>
Сначала я «залил» программу в ESP8266:
1 — подключив компьютер к модулю через USB.
2 — в Arduino IDE выбрал COM порт (скорость 11520) и модуль NodeMCU 1.0.
3 — отсоединил Rx и Tx от Arduino NANO.
4 — прошил свою программу R_ESP8266_Control.
Проверил работу модуля без связки с Arduino — все нормально.
Подключаю к компьютеру Arduino NANO:
1 — в Arduino IDE выбрал COM порт (скорость 57600) и модуль Arduino NANO.
2 — загрузил скетч, показанный выше.
Проверил работу модуля без связки с ESP8266 — все нормально.
Соединяю два модуля линиями Rx> Tx и Tx> Rx, как показано на рисунке выше. Подсоединяю компьютер только к USB порту Arduino NANO, и включаю питание.
Запускаю монитор последовательного порта на компьютере нажимаю кнопку RESET на DevKit ESP8266 модуле. Через пару секунд на мониторе получил отчет:
Теперь на любом устройстве, имеющим возможность работать в вашей сети, следует в браузере набрать IP адрес 192.168.0.101 и управлять модулями. На мониторе последовательного порта должны отображаться все передаваемые сообщения от DtvKit ESP8266 в Arduino NANO.
Объединить два модуля, имеющие свои «обвязки» из защитных и согласущих сопротивлений, оказалось делом очень простым. В других случаях надо быть внимательнее к общим цепям.
Для прошивки ESP8266 следует:
— преключатель sw1 перевести в положение «prog». При этом выводы Rx и Tx обоих модулей будут соединены напрямую;
— ключ Kn2 (RESET) замкнуть, чтобы вывод RST подключить к Gnd. Это позволит отключить микроконтроллер и использовать Arduino как прозрачный USB-TTL конвертер;
— ключ или перемычку Kn1 (GPIO0) замкнуть — подключить вывод GPIO0 ESP8266 к Gnd для записи программы;
— ключ или перемычку Kn2 (GPIO15) замкнуть на Gnd для записи программы;
— включить питание;
— подсоединить компьютер к USB;
— все готово для программирования ESP8266 через порт USB;
Для прошивки Arduino NANO следует:
— преключатель sw1 перевести в положение «connect»;
— ключ Kn2 (RESET) разомкнуть;
— ключ Kn1 (GPIO0) разомкнуть;
— подсоединить компьютер к USB;
— все готово для работы или программирования Arduino NANO;
По поводу согласования цепей модулей с питанием 3.3 вольта 5.0 вольт, много материала в Инете. Я испробовал способ, представленный на схеме. Работает стабильно!
ESP8266 и Arduino, подключение, распиновка
Привет Хабр. Тема ESP8266, как и IoT(интернет вещей), всё больше набирает популярности, и уже Arduino подхватывает инициативу — добавляя эти Wi-Fi модули в список поддерживаемых плат.
Но как же его подключить к ардуино? И возможно как-то обойтись вообще без ардуино? Сегодня именно об этом и пойдёт речь в этой статье.
Забегая наперёд, скажу, что будет вторая статья, уже более практическая, по теме прошивки и программирования модуля ESP8266 в среде разработки Arduino IDE. Но, обо всём по порядку.
Этот видеоролик, полностью дублирует материал, представленный в статье.
На данный момент, существует много разновидностей этого модуля, вот некоторые из них:
А вот распиновка ESP01, ESP03, ESP12:
* Данную картинку можно посмотреть в хорошем качестве на офф. сайте pighixxx.com.
Лично мне, больше всего нравится версия ESP07. Как минимум за то, что тут есть металлический экран (он защищает микросхемы от внешних наводок, тем самым обеспечивает более стабильную работу), своя керамическая антенна, разъём для внешней антенны. Получается, подключив к нему внешнюю антенну, например типа биквадрат, то можно добиться неплохой дальности. К тому же, тут есть немало портов ввода вывода, так называемых GPIO(General Purpose Input Output — порты ввода-вывода общего назначения), по аналогии с ардуино — пинов.
Давайте вернёмся к нашим баранам Wi-Fi модулям и Arduino. В этой статье, я буду рассматривать подключение ESP8266(модели ESP01) к Arduino Nano V3.
Но, данная информация будет актуальна для большинства модулей ESP8266 и так же разных Arduino плат, например самой популярной Arduino UNO.
Пару слов по ножкам ESP01:
Vcc и GND(на картинке выше это 8 и 1) — питание, на ножку Vcc можно подавать, судя по документации, от 3 до 3.6 В, а GND — земля (минус питания). Я видел, как один человек подключал этот модуль к двум AA аккумуляторам (напряжение питания в этом случае было примерно 2.7 В) и модуль был работоспособным. Но всё же разработчики указали диапазон напряжений, в котором модуль должен гарантированно работать, если вы используете другой — ваши проблемы.
Внимание! Этот модуль основан на 3.3 В логике, а Arduino в основном — 5 В логика. 5 В запросто могут вывести из строя ESP8266, потому на него нужно отдельно от ардуино подавать питание.
— На моей ардуинке есть ножка, где написано 3.3 В, почему бы не использовать её?
Наверное подумаете вы. Дело в том, что ESP8266 довольно таки прожорливый модуль, и в пиках может потреблять токи до 200 мА, и почти никакая ардуинка по умолчанию не способна выдать такой ток, разве что исключением является Arduino Due, у которой ток по линии 3.3 В может достигать 800 мА, чего с запасом хватит, в других же случаях советую использовать дополнительный стабилизатор на 3.3 В, например AMS1117 3.3 В. Таких валом как в Китае, так и у нас.
Ножка RST 6 — предназначена «железной» для перезагрузки модуля, кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Хоть и на видео я этим пренебрёг, но всё же вам советую «прижимать» данную ногу резистором на 10 кОм к плюсу питания, дабы добиться лучшей стабильности в работе модуля, а то у меня перезагружался от малейших наводок.
Ножка CP_PD 4(или по-другому EN) — служит, опять же, для «железного» перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова — не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питалова. На видео я тупо закоротил эту ногу на Vcc, потому как под рукой не оказалось такого резистора.
Ноги RXD0 7 TXD0 2 — аппаратный UART, который используется для перепрошивки, но ведь никто не запрещает использовать эти порты как GPIO(GPIO3 и GPIO1 соотвественно). GPIO3 на картинке почему-то не размечен, но в даташите он есть:
К стати, к ножке TXD0 2 подключен светодиод «Connect», и горит он при низком логическом уровне на GPIO1, ну или когда модуль отправляет что-то по UART.
GPIO0 5 — может быть не только портом ввода/вывода, но и переводить модуль в режим программирования. Делается это подключив этот порт к низкому логическому уровню(«прижав» к GND) и подав питание на модуль. На видео я делаю это обычной кнопкой. После перепрошивки — не забудьте вытащить перемычку/отжать кнопку(кнопку во время перепрошивки держать не обязательно, модуль при включении переходит в режим программирования, и остаётся в нём до перезагрузки).
GPIO2 3 — порт ввода/вывода.
И ещё один немаловажный момент, каждый GPIO Wi-Fi модуля может безопасно выдавать ток до 6 мА, чтобы его не спалить, обязательно ставьте резисторы последовательно портам ввода/вывода на… Вспоминаем закон Ома R = U/I = 3.3В / 0.006 А = 550 Ом, то есть, на 560 Ом. Или же пренебрегайте этим, и потом удивляйтесь почему оно не работает.
В ESP01 все GPIO поддерживают ШИМ, так что к нашим четырём GPIO, то есть GPIO0-3 можно подключить драйвер двигателя, аля L293 / L298 и рулить двумя двигателями, например катера, или же сделать RGB Wi-Fi приблуду. Да, да, данный модуль имеет на борту много чего, и для простеньких проектов скрипач Arduino не нужен, только для перепрошивки. А если использовать ESP07 то там вообще портов почти как у Uno, что даёт возможность уже уверенно обходиться без ардуино. Правда есть один неприятный момент, аналоговых портов у ESP01 вообще нет, а у ESP07 только один, ADC зовётся. Это конечно усугубляет работу с аналоговыми датчиками. В таком случае ардуино аналоговый мультиплексор в помощь.
Всё вроде как по распиновке пояснил, и вот схема подключения ESP8266 к Arduino Nano:
Видите на Arduino Nano перемычка на ножках RST и GND? Это нужно для того, чтобы ардуинка не мешала прошивке модуля, в случае подключения ESP8266 при помощи Arduino — обязательное условие.
Так же если подключаете к Arduino — RX модуля должен идти к RX ардуинки, TX — TX. Это потому, что микросхема преобразователь уже подключена к ножкам ардуино в перекрестном порядке.
Так же немаловажен резистивный делитель, состоящий из резисторов на 1 кОм и 2 кОм (можно сделать из двух резисторов на 1 кОм последовательно соединив их) по линии RX модуля. Потому как ардуино это 5 В логика а модуль 3.3. Получается примитивный преобразователь уровней. Он обязательно должен быть, потому что ноги RXD TXD модуля не толерантные к 5 В.
Ну и можно вообще обойтись без ардуино, подключив ESP8266 через обычный USB-UART преобразователь. В случае подключения к ардуино, мы, по сути, используем штатный конвертер интерфейсов usb и uart, минуя мозги. Так зачем тратиться лишний раз, если можно обойтись и без ардуино вообще? Только в этом случае, мы подключаем RXD модуля к TXD конвертора, TXD — RXD.
Если вам лениво заморачиваться с подключением, возится с резисторами и стабилизаторами — есть готовые решения NodeMcu:
Тут всё значительно проще, воткнул кабель в компьютер, установил драйвера и программируй, только не забывай задействовать перемычку/кнопку на GPIO0 для перевода модуля в режим прошивки.
Ну вот, с теорией наверное всё, статья получилась пожалуй довольно таки большая, и практическую часть, аля прошивка и программирование модуля, я опубликую немного позже.
Я, у себя на ютуб канале, открыл целый плейлист посвящённый моим видео по теме этого Wi-Fi модуля. В планах построили машинку, или лодку, на Wi-Fi управлении, где вместо пульта ДУ будет обычный смарт. Но пока что я к этому ещё не пришёл, так что это всего лишь планы на будущее.
By Сергей ПоделкинЦ ака MrПоделкинЦ.
Уже на подходе плата на базе esp32:
http://www.pighixxx.com/test/2015/12/esp32-pinout/
Которая значительно круче чем esp8266, так что нас скоро ждёт бум, как мне кажется, темы IoT(интернет вещей).