Uno + ESP8266 WiFi
Несколько лет назад я купил отдельный модуль ESP8266 WiFi, но так и не воспользовался им. За прошедшее время ситуация изменилась. Появились новые платы с встроенным WiFi и Bluetooth как из семейства Arduino, так и платформе ESP32. Но я решил спустя столько времени всё-таки завести этот модуль и посмотреть, как он работает.
Платы на ESP8266 – это не просто модули для связи по Wi-Fi. Чип является микроконтроллером со своими интерфейсами SPI, UART, а также портами GPIO, а это значит, что модуль можно использовать без Arduino. Существует около 11 официальных модификаций платы. Самая простая плата – ESP01, с которой и будем знакомиться.
Для начала его надо правильно соединить с Uno. Главная особенность — модуль работает на 3.3В, поэтому будьте аккуратны.
Начнём с платы Arduino Uno.
1. Соединяем вывод 3.3V с красной дорожкой на макетной плате (питание). Если вы будете подключать другие датчики, которые потребляют 5 Вольт, то соединяйте их с красной дорожкой питания на другой стороне макетной платы.
2. Соединяем GND с синей дорожкой макетной платы (заземление).
3. Соединяем вывод RESET с синей дорожкой макетной платы. В этом случае Arduino работает последовательно как USB и мы можем общаться с ESP8266.
4. Соединяем вывод RX с аналогичным выводом RX на ESP8266 (жёлтый провод на рисунке).
5. Соединяем вывод TX с аналогичным выводом TX на ESP8266 (зелёный провод на рисунке).
Обычно для общения двух устройств мы должны соединять вывод TX первого устройства с выводом RX второго устройства. Но в нашем случае общается компьютер.
Осталось соединить провода у ESP8266 WiFi.
6. Соединяем вывод GND с синей дорожкой и VCC с красной дорожкой.
7. Соединяем CH_PD с красной дорожкой.
При соединении на ESP8266 загорится светодиод. Скетч загружать не нужно. Достаточно открыть Serial Monitor, выбрать скорость 115200 и выбрать режим Both NL & CR. Далее вводим AT-команду.
Должен появиться ответ OK. При отправке команд загорается маленький синий светодиод. Если всё получилось, то самое сложное позади.
В примере мы использовали вывод CH_PD. Если нам нужно перепрошить ESP8266, то соедините вывод GPIO0 с синей дорожкой (заземление), тем самым мы включим режим FLASH.
Схема модуля ниже.
В текстовом формате.
Технические характеристики
- 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 пину.
После подключения питания на модуле должна загореться красная лампочка. Если этого не произошло проверьте контакты питания и земли.
● Проект 30: Беспроводная связь. Модуль Wi-Fi ESP8266
В этом эксперименте мы познакомимся с модулем ESP8266, с помощью которого можно подключить плату Arduino к сетям Wi-Fi, и напишем скетч для передачи данных датчика температуры на веб-сервис Народный мониторинг.
Необходимые компоненты:
После своего появления платы на базе Wifi чипа ESP8266 стали по-настоящему народными. Огромные возможности и минимальная цена сделали свое дело. Платы на ESP8266 – это не просто модули для связи по Wi-Fi. Чип, по сути, является микроконтроллером со своими интерфейсами SPI, UART, а также портами GPIO, а это значит, что модуль можно использовать автономно без Arduino и других плат с микроконтроллерами. Существует около 11 официальных модификаций платы. В нашем распоряжении самая простая плата – ESP01. Распиновка платы показана на рис. 30.1. Покажем, как использовать ее в качестве Wi-Fi модуля для Arduino.
Рис. 30.1. Распиновка модуля ESP-01
Модуль ESP8266 рассчитан только на 3,3 В. Поэтому нам необходим источник питания 3,3 В. Схема подключения модуля ESP-01 к плате Arduino показана на рис. 30.2. Общение с модулем с помощью AT-команд. Список основных AT-команд показан в табл. 30.1. Загрузим на плату Arduino скетч, показанный в листинге 30.1, и будем отправлять в модуль ESP-01 AT-команды. Результат выполнения команд показан на рис. 30.3.
Листинг 30.1
Порядок подключения:
Создадим скрипт отправки данных на сайт Народный мониторинг (http://narodmon.ru). Подключим к плате Arduino датчик температуры LM335 и каждые 10 минут будем отправлять данные. Схема соединений показана на рис. 30.4. Для отправки данных необходимо выполнить следующую последовательность действий:
1. Сброс ESP-01 и проверка готовности модуля (AT+RST).
2. Подключение к сети по Wi-Fi (AT+CWJAP=»»,»»).
3. Выбор режима одиночного соединения (AT+CIPMUX=0).
4. Создание TCP-соединения (AT_CIPSTART=»TCP»,»92.39.235.156″, 8283).
5. Отправка данных (AT+CIPSEND= и сами данные # n#n#n##).
6. Закрыть TCP-соединение (AT+CIPCLOSE).
7. Пауза 10 минут и переход к шагу 4.
Таблица 30.1
Необходимые материалы
1 модуль ESP8266.
1 плата Arduino Pro Mini 328 — 3.3V/8MHz. В данном гайде использовалась плата от Sparkfun Electronics.
1 цифровой датчик температуры DS18B20.
1 резистор 4.7 кОм.
1 источник питания (от 3.3 В до 12 В. В данном примере использовалось напряжение 9В).
Ссылки для заказа оборудования, которое использовалось в проекте из Китая
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
МНОГОПРОЦЕССОРНЫЙ МОБИЛЬНЫЙ ИНТЕРНЕТ-РОБОТ АНДРОИД
AT-Команды.
Для на чало мы проверим что все работает и отправим в терминале:
Для подключения Wi-Fi выберем режим модуля: доступны следующие режимы: 1 — STA, 2 — AP, 3 — Station+AP
Смотрим список точек доступа командой:
В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)
Подключаемся к нашей точке:
Посмотреть какой ip получил наш модуль:
Все настройки запоминаются во флешь память, сбросить настройки на заводские можно командой:
AT+RESTORE
Задать скорость UART :
Команды делятся условно на три части : системные, Wi-Fi,TCP. Полный список команд можно посмотреть в datasheep. Ну а мы перейдем к командам режима TCP-сервера. На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
Для запуска TCP-сервера выполним следующие команды:
0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента).
1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента).
Устанавливаем возможность множественных соединений:
0 — single connection.
1 — multiple connection.
Запускаем сервер на порту 80:
0 — to close server
1 — to open server
Теперь можно подключиться к ESP-01 и отправить-принять какие-нибудь данные. На потребуется telnet клиент, я использую PuTTY. При подключение модуль нам сообщает что подключился клиент и показывает нам id клиента.
Посмотреть список активных подключений к ESP-01 можно командой AT+CIPSTATUS
Пример:
Закрыть активное соединение можно командой
AT+CIPCLOSE=id или все соединения AT+CIPCLOSE без параметров.
Отправляем данные с ESP-01 на ПК. Для режима Single connectio n отправка идет так :AT+CIPSEND=length, для режима Multiple connection отправка идет так: AT+CIPSEND=id,length.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.