- Wi-Fi (Troyka-модуль): распиновка, схема подключения и программирование
- Видеообзор
- Общие сведения
- Подключение и настройка
- HardwareSerial
- SoftwareSerial
- HardwareSerial Mega
- Примеры работы AT-команд
- Тестовая команда «AT»
- Настройка режима работы
- Назначение выводов и схема модуля ESP-01/ESP-01S
- Назначение выводов
- Схема модуля
- Схема подключение модуля
- Добавление дополнительных портов ввода-вывода модуля
- Программы
- Телеграм канал
Wi-Fi (Troyka-модуль): распиновка, схема подключения и программирование
Wi-Fi (Troyka-модуль) на модуле ESP-12 с чипом ESP8266EX позволит передать данные по Wi-Fi сети.
Видеообзор
Общие сведения
По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.
Но под металлической крышкой прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.
Подключение и настройка
В стандартной прошивке Troyka Wi-Fi общается с управляющей платой через «AT-команды» по протоколу UART. Дополнительный сигнальный пин P служит для перевода модуля в режим сна или пониженного энергопотребления.
На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким-то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.
HardwareSerial
На управляющей плате Iskra JS и платах Arduino с микроконтроллером ATmega32U4 / ATSAMD21G18 данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART . Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1 .
Список поддерживаемых плат:
При подключении удобно использовать Troyka Shield. С Troyka Slot Shield можно обойтись без лишних проводов. Прошейте управляющую платформу кодом ниже.
Код прошивки
// 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 Troyka Wi-Fi к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.
Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 8 контакты управляющей платы.
При подключении удобно использовать Troyka Shield. Прошейте управляющую платформу кодом ниже.
Код прошивки
// библиотека для работы программного 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-командами» при подключении к Uno.
Тестовая команда «AT»
Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки — NL & CR . Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»: Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.
Настройка режима работы
Wi-Fi модуль умеет работать в трёх режимах:
Назначение выводов и схема
модуля ESP-01/ESP-01S
Wi-Fi модуль ESP-01/ESP-01S на чипе ESP8266 — не только самый популярный, но и самый дешевый модуль серии ESP.
Данный модуль, совместно с применением протокола ESP-NOW и sleep-режим, идеально подходит для для создания автономных устройств с питанием от батареек, аккумуляторов или ионисторов. Например: ИК-датчик движения, Выключатель освещения.
На фото ниже представлены три варианта модуля ESP-01. Вариант на синей плате на данный момент не выпускается.
Варианты исполнения модулей ESP-01
Основное отличие модулей ESP-01 и ESP-01S заключается в светодиодных индикаторах. На модуле ESP-01 установлено два светодиода: один по питанию 3.3В, второй на выводе GPIO1 (линия TX-связи). На модуле ESP-01S установлен один светодиод — на выводе GPIO2. Также, на модуле ESP-01S, добавлено несколько компонентов фильтрования внутрисхемного питания, не влияющих на общую производительность и функциональность. В остальном, модули ESP-01 и ESP-01S, полностью повторяют друг друга.
Достоинства модулей:
• малые размеры;
• низкая стоимость;
• монтажные отверстия обеспечивают удобное подключение.
К недостаткам следует отнести:
• отсутствие экрана для защиты от внешних наводок;
• установлен модуль Flash-памяти, размером 1 Мб;
• малое количество портов ввода-вывода;
• расположение монтажных отверстий для подключения не позволяет устанавливать модули в беспаечные макетные платы (для устранения этого недостатка можно приобрести соответствующий переходник).
Универсальная программа (прошивка) «Smacont-ESP» позволяет максимально использовать ресурсы модулей ESP-01 и ESP-01S. Малый размер программы (прошивки) «Smacont-ESP», обеспечивает возможность обновления прошивки модулей ESP-01 и ESP-01S с объемом памяти 1Мбайт по «воздуху» (поддержка OTA).
Все вопросы по программе «Smacont-ESP», можно задавать здесь:
• Telegram-канал: https://t.me/smacont_ru
• Telegram: @smacont
• VK: Smacont
• mail: smacont@ya.ru
Назначение выводов
Т.к. нет единой нумерации выводом модуля, ниже приведены некоторые комбинации нумерации.
Назначение выводов модулей ESP-01/ESP-01S
Назначение выводов модулей ESP-01/ESP-01S
• EXT_RSTB (RST, RESET) — контакт перезапуска модуля, активен при низкоуровневом сигнале
• CHIP_EN (CH_PD, CH_PU) — контакт включения модуля в рабочий режим. Активен при высокоуровневом сигнале
• GPIO0, GPIO1, GPIO2, GPIO3 — контакт общего назначения, ввод/вывод данных
• VCC — контакт питания модуля, напряжение 3.0-3.6 В
• GND — общий, заземление
Схема модуля
Схема подключение модуля
Схема подключения модуля ESP-01, при его питании от стабилизированного источника питания, показана на рисунке ниже.
Для питания модуля необходимо стабильное напряжение 3,0. 3,6 В. В схеме, для понижения входного напряжения, например, от адаптера питания от сотового телефона, используется линейный стабилизатор напряжения AMS1117 (3,3В). Стабилизатор AMS1117 имеет допустимое значение входного напряжения питания 20В. Т.к. ток потребления модулей ESP-01 доходит до 220мА, то желательно входное напряжение ограничить до 7В, иначе, на стабилизаторе напряжения будет выделяться слишком большое количества тепла.
В момент подачи питания на схему, следует выполнить ряд правил, а именно — не подавать низкий уровень на GPIO0 и GPIO2, иначе модуль ESP-01 перейдет в режим программирования и будет находиться в этом режиме до сброса напряжения питания.
Добавление дополнительных портов ввода-вывода модуля
Как уже было сказано выше, одним из недостатков модуля ESP-01 является наличие только четырех портов ввода-вывода. Данный недостаток можно устранить путем вывода необходимых портов, «подпаявшись» непосредственно к микроконтроллеру ESP8266EX.
Несколько вариантов добавления дополнительных портов ввода-вывода показано на рисунках ниже.
Добавление GPIO12, GPIO13, GPIO14 и GPIO15
Добавление GPIO4, GPIO5, GPIO12, GPIO13, GPIO14 и GPIO15
Добавление ADC (аналоговый порт)
Программы
Телеграм канал
Новости Обсуждение
Вопросы Предложения