- Arduino: Mega & Nano автоматизация.
- Модуль Wi-Fi ESP8266 (ESP-01): подключение, прошивка и распиновка
- Видеообзор
- Общие сведения
- Работа с AT командами
- Подключение и настройка
- HardwareSerial
- SoftwareSerial
- HardwareSerial Mega
- Примеры работы
- Тестовая команда «AT»
- Настройка режима работы
- WiFi ESP-01 (esp8266). Урок 19. Ардуино
- Технические характеристики
- Принципиальная схема
- AT команды
- Заключение
- Где купить
Arduino: Mega & Nano автоматизация.
Первое надо помнить что WiFi модуль ESP8266 (esp-01) питается напряжением 3,3 Вольта. У меня он достаточно успешно работал и на 2,7 Вольта, пока не было AMS1117 3,3 В. Мой стенд питался от li-po аккумулятора 4.2 вольта, поэтому я просто взял два кремневых диода и соединив их последовательно получил 2,7-2,8 Вольта.
Конденсаторы и резистор нужны обязательно — зачем здесь объяснять не буду, нужно разъяснение, пишите в комментах. Если вы питаете модуль Arduino от 5 Вольт, то просто добавьте еще один диод.
Для общего развития: прямое падение на кремневом диоде 0,7 Вольта (можете померить тестером на прозвонке), поэтому два диода в последовательно это — 1,4 Вольта а три — 2,1 Вольта. Что соответственно делает из 4,2 — 1,4 = 2,8 Вольт и 5 — 2,1 = 2,9 Вольт.
Так как модули Arduino и модули ESP8266 (esp-01)
питаются от разных напряжений, то нам нужно и уровни сигналов согласовать. Для этого китайцы продают модули: 4-канальный IIC I2C логический уровень конвертер Bi-Directional модуль 5V 3,3V
- последовательный интерфейс подключаем так — TX->TX, а RX->RX;
- внимательно с полярностью, у меня один модуль продолжил работать после переполюсовки, только потом как то странно умер;
- по питанию 3,3 Вольта обязательно ставим кондеры: и электролит и керамику
- выводы RST И EN подтягиваем к +3,3 Вольта, иначе не заработает.
Модуль Wi-Fi ESP8266 (ESP-01): подключение, прошивка и распиновка
Модуль ESP-01 с чипом ESP8266 предназначен для связи устройства с беспроводными сетями по WiFi.
Видеообзор
Общие сведения
ESP-01 — плата-модуль WiFi на базе популярного чипсета ESP8266EX . На борту платы находится микросхема Flash-памяти объёмом 2 МБ, чип ESP8266EX, кварцевый резонатор, два индикаторных светодиода и миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Flash-память необходима для хранения программного обеспечения. При каждом включении питания, ПО автоматически загружается в чип ESP8266EX.
По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.
Но внутри чипа ESP8266 прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.
Работа с AT командами
Подключение и настройка
В стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART.
На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.
HardwareSerial
На управляющей плате Iskra JS и платах Arduino с микроконтроллером ATmega32U4 / ATSAMD21G18 данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART . Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1 .
Список поддерживаемых плат:
Для примера подключим модуль Wi-Fi к платформе Iskra Neo.
Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
SoftwareSerial
Некоторые платы Arduino, например Uno, прошиваются через пины 0 и 1 . Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Wi-Fi модулем. Решение проблемы — программный UART . Подключите пины TX и RX ESP-модуля к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.
Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 9 контакты управляющей платы. Прошейте управляющую платформу кодом ниже.
Код прошивки
// библиотека для работы программного Serial #include // создаём объект для работы с программным Serial // и передаём ему пины TX и RX SoftwareSerial mySerial(8, 9); // serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL mySerial void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
HardwareSerial Mega
На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0 , отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с Wi-Fi модулем и отладки по USB.
Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART:
Список поддерживаемых плат:
Подключите Wi-Fi модуль к объекту Serial1 на пины 18 и 19 на примере платы Mega 2560 Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
Примеры работы
Рассмотрим несколько примеров по работе с «AT-командами»
Тестовая команда «AT»
Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки — NL & CR . Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»: Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.
Настройка режима работы
Wi-Fi модуль умеет работать в трёх режимах:
WiFi ESP-01 (esp8266). Урок 19. Ардуино
Привет! Ну вот мы и подошли к самой интересной части работы с Ардуино. А именно wifi модуль и подключение устройств на Ардуино к беспроводной сети. В этом уроке мы настроим wifi модуль ESP-01 и попробуем подключиться к интернету с его помощью.
В предыдущих уроках мы уже говорили про подключение проводного интернета к Ардуино. Это также интересная тема, так что посмотрите тот урок, если уже забыли или пропустили.
Модуль представляет собой небольшую плату. На ней уже есть встроенная антенна и 8 контактов для подключения у Ардуино или другим устройствам.
Технические характеристики
- Wi-Fi 802.11 b/g/n
- Режимы WiFi: клиент, точка доступа
- Выходная мощность — 19,5 дБ
- Напряжение питания — 1.8 -3.6 В
- Ток потребления — 220 мА
- Портов GPIO : 4
- Тактовая частота процессора — 80 МГц
- Объём памяти для кода
- Оперативная память — 96 КБ
- Размеры — 13×21 мм
Принципиальная схема
Подключим модуль к Ардуино, чтобы получить доступ к АТ командам.
Обратите внимание, что модуль работает от 3.3 вольт. Контакт RX подключим к пину 0 на Ардуино. А контакт TX к 1 пину.
После подключения питания на модуле должна загореться красная лампочка. Если этого не произошло проверьте контакты питания и земли.
AT команды
После подключения Ардуино к компьютеру, нам понадобиться монитор последовательного порта. Скетч на саму плату Ардуино можно не загружать. А в мониторе переключиться на скорость 115200 и выбрать режим Both NL & CR.
Теперь мы можем отправить на модуль АТ команду и проверить его состояние. Введем в строку команду АТ и нажмем ввод. Если модуль успешно стартовал, то он отвечает «OK».
Переключить скорость на 9600 бод можно командой AT+UART=9600,8,1,0,0
Переключим режим модуля на клиент командой AT+CWMODE_CUR=1
И проверим, какие беспроводные сети есть в радиусе работы модуля командой AT+CWLAP
Эта команда выводит SSID, метод шифрования, силу сигнала, MAC адрес, номер канала. Типы шифрования: 0:Open, 1: WEP, 2:WPA_PSK, 3:WPA2_PSK, 4:WPA_WPA2_PSK. Моя сеть называется welcome.
Подключимся к сети выполнив команду AT+CWJAP_CUR =“welcome”,“password” И проверим ip адрес модуля командой AT+CIFSR
После этого мы можем увидеть модуль в сети или пропинговать его.
Заключение
Мы рассмотрели wifi модуль esp-01 и подключили его к беспроводной сети. В следующий раз попробуем использовать модуль для отправки и получения данных через интернет.