- Как подключить Wifi модуль к Ардуино — прошивка и настройка
- Описание ESP8266
- Особенности платы
- Сферы применения
- Распиновка
- Основные отличия Ардуино от ESP8266
- Программирование ESP8266 в Arduino IDE
- Использование ESP8266 для радиосвязи Ардуино по WiFi
- NodeMCU на базе esp8266
- WeMos на базе ESP8266
- Примеры использования и передачи данных с AArduino на AArduino или ПК по Wifi
- Элементы платы
- WiFi ESP-01 (esp8266). Урок 19. Ардуино
- Технические характеристики
- Принципиальная схема
- AT команды
- Заключение
- Где купить
Как подключить Wifi модуль к Ардуино — прошивка и настройка
ESP8266 — это популярный контроллер, способный организовать беспроводную связь при проектировании системы «Умный дом». Его «строение» позволяет ему обеспечивать обмен данными по стандартам Wifi. Это обеспечивает проектам, созданным на Arduino, доступ в интернет для дистанционного сбора и обмена информацией. На основе этого чипа созданы такие популярнейшие платы, как WeMos и NodeMcu, а также самодельные технологии. В этом материале будет разобрано, что такое Arduino Wifi ESP8266, как настроить Ардуино вайфай модуль и его взаимодействие с другими средствами.
Описание ESP8266
ESP8266 — это контроллер, работающий со стандартом беспроводной связи Wifi и способный исполнять код программ из встроенной flash-памяти. Чип был разработан и выпущен китайской компанией Espressif и моментально стал одним из популярнейших для данных целей.
Сам вай фай модуль для Ардуино Wifi достаточно дешев и содержит небольшое количество внешних элементов, имея следующие технические характеристики:
- Поддержка протоколов стандарта Wifi b/g/n с алгоритмами шифрования и защиты данных WEP, WPA, WPA2;
- Четырнадцать портов ввода и вывода, последовательного периферийного интерфейса SPI, I2C, UART и 10-битовый аналого-цифровой преобразователь;
- Поддержка внешней памяти до 16 Мб;
- Достаточное для питания напряжение от 2.2 до 3.6 Вольт и потребление тока до 300 мА, которое зависит от режима работы.
Важно! Микроконтроллер не обладает пользовательской энергонезависимой памятью. Все программы выполняются из внешних постоянных запоминающих устройств и загружаются динамическим образом. Доступ к внутренним интерфейсам осуществляется через API набор библиотек, а не с помощью документации. Количество оперативной памяти приблизительно равно 50 Кб.
Особенности платы
Контроллер обладает следующими особенностями:
- Удобство подключения к ПК через интерфейс порта USB. Через него же выполняется и питание;
- Встроенный преобразователь напряжения на 3.3 Вольта;
- 4 Мб flash-памяти;
- Наличие кнопок перезагрузки и перепрошивки;
- Порты выведены на контроллер в два ряда с шагом в 2.5 мм.
Сферы применения
Модуль часто применяют в различных проектах в связке с другими устройствами для:
- Автоматизации процессов;
- Создания систем «Умный дом» своими руками, которые включают управление условиями в доме (температура и свет), сигнализации и видеокамеры, беспроводное управление приборами;
- Мобильных приборов;
- Метки с помощью идентификаторов ID;
- Игрушек для детей;
- Сети Mesh типа.
Распиновка
Важно понять, что вариаций модуля существует немало. На рисунке в конце предыдущего подраздела представлены лишь некоторые из них. Особую популярность обрел контроллер ESP-01. Исполнение кода программы задается состоянием портов GPIO0, GPIO2 и GPIO15: включением и выключением подачи питания на них. Существует два важных режима работы:
- Код выполняется из универсального асинхронного приёмопередатчика (UART) с комбинацией GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0. Эти действия выполняются для перепрошивки flash-накопителя;
- Код выполняется из внешнего ПЗУ с комбинацией GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0 для работы в штатном режиме.
Приводится официальное описание всех контактов:
- 1 — заземление, а 8 — питание платы. Напряжение необходимо подавать до 3.6 В в отличие от Ардуино, в который подают 5В;
- 6 — кнопка Reset, необходимая для перезагрузки чипа;
- 4 — CP_PD — переводит чип в режим энергосбережения;
- 7 или 0 — RXD0 и TXD0 аппаратные пины для универсального асинхронного приёмопередатчика, необходимые для перепрошивки;
- 2 — TDX0, к которому подключают светодиод, срабатывающий в случае передачи данных по УАПП или при подключении на низком логическом уровне;
- 5 — GPI0, позволяющий осуществлять вход и вывод, а также переводить контроллер в режим программирования;
- 3 — GPIO2 — стандартный порт ввода/вывода.
Основные отличия Ардуино от ESP8266
От не менее популярного Arduino Wifi модуль ESP отличается следующими чертами:
- Наличием большего объема flash-памяти и отсутствием энергонезависимой памяти;
- Более быстрым процессором;
- Наличием Wifi модуля;
- Потреблением большей силы тока, чем Ардуино
Программирование ESP8266 в Arduino IDE
Для удобства программирования на микроконтроллере в комплекте идут:
- Компилятор кода программы типа GNU;
- Библиотеки для работы со стандартами Wifi и TCP/IP;
- Программные средства для загрузки данных в память чипа;
- Интегрированная среда разработки программ.
Важно! Стандартная прошивка модуля позволяет ему управлять модулем с другого контроллера и организовать работу с Wifi и модемом. Помимо заводской прошивки есть также масса других готовых решений, настраиваемых с помощью веб-интрефейса.
Программирование также возможно из среды разработки для Arduino. Она позволяет не только легко писать программы, но и загружать их в контроллер, прошивать его. Самое главное, что для этого не нужна сама плата Ардуино.
Функции, поддерживаемые микроконтроллером:
- Большинство функций языка программирования Wiring;
- Управление таймингом и delay’ем, позволяющие передать время, прошедшее со старта запуска чипа, завершить или приостановить выполнение кода;
- Функции Serial, Serial1, которые аналогично Ардуино работают с данными и блокируют их запись или чтение по необходимости;
- PROGMEM-макрос, позволяющий перемещать данные для чтения во flash-память;
- I2C шина, которую нужно выбирать с помощью функции Wire.pins(int sda, int scl);
- SPI и OneWire библиотеки.
Использование ESP8266 для радиосвязи Ардуино по WiFi
С помощью ESP можно устроить подключение Arduino или реле к Wifi. Важный момент связи состоит в том, что напряжение, подаваемое для этих микроконтроллеров, разное, и их соединение должно происходить через резистивные делители. Общая схема подключения выглядит так: пин на 3.3 Вольта от Ардуино подключается к CH_PD на ESP, а заземление с Ардуино подключается к заземлению на ЕSP. 0 на ТХ, а 1 на RХ.
Дальнейшее подключение выполняется по инструкции:
- Подключение USB-TTL к USB порту и ESP;
- Запуск среды разработки Arduino;
- Выбор в настройках необходимых параметров для памяти, порта и платы;
- Переход в Файл — Примеры — ESP — WifiServer;
- Запись SSID и защитного кода беспроводной сети;
- Запуск компиляции и загрузки;
- Ожидание завершения прошивки и отсоединение контакта GPI0 от заземления;
- Установка скорости в районе 115 200;
- Подключение и получение нового IP-адреса;
- Далее нужно открыть интернет-браузер и ввести в поиске строку Номер IP/gpio/1;
- Промониторить порт и проверить, загорелся ли светодиод, если он подключен.
NodeMCU на базе esp8266
NodeMCU — одна из наиболее популярных платформ, основанных на чипе ESP. Она чаще всего используется, чтобы управлять схемами на расстоянии с помощью беспроводной связи Wifi. Сама плата стоит недорого, весит мало и имеет порт USB. По бокам от него расположены кнопки для перезагрузки и отладки платформы. Питание лучше всего подавать до 12 В, но не менее 10.
Важно! Наиболее преимущество платы — ее низкое энергопотребление. Именно поэтому NodeMCU часто применяют в схемах на автономном питании от батареи. Более того, NodeMCU имеет набор API для ввода и вывода в аппаратном режиме, что позволяет минимизировать количество действий при настройке и работе.
WeMos на базе ESP8266
Второе популярное решение на базе ESP — WeMos. Он также поддерживает связь по WiFi, разработку на Arduino IDE и даже содержит разъем для внешней Wifi антенны. Максимальное напряжение составляет 3.3 В. На плате расположено 11 портов для ввода и вывода, поддерживающие стандартные для ESP и Arduino технологии. Как и в NodeMCU, в WeMos есть USB-порт. Чтобы работать c платформой, необходимо установить драйвер CH340 и настроить IDE от Ардуино на работу с ESP.
Примеры использования и передачи данных с AArduino на AArduino или ПК по Wifi
В качестве примера можно привести создание программы для NodeMCU в среде Ардуино. Для этого на ПК устанавливается ПО для модуля Arduino Wi fi, которое настраивается на работу с ESP8266.
Далее, например, плата NodeMCU подключается к аналоговому фоторезистору и отправляет данные на сервер по протоколу MQTT. Схема соединения представлена ниже.
Чтобы написать и запустить код, потребуется библиотека pubsubclient. Скачав ее, нужно поместить файлы из архива в папку библиотек IDE и открыть в среде скетч _2.ino. Чтобы все работало как надо, необходимо внести в код следующие изменения (SSID и пароль):
const char* ssid = «your_wifi_hotspot»;
const char* password = «your_wifi_password»;
Далее происходит загрузка программы на плату, открывается монитор последовательного порта и мониторится результат на картинке.
После всего этого плата подключится по Wifi к MQTT и он будет отображать данные фоторезистора.
Wifi сервер на Ардуино на базе ESP организовывается аналогичным образом. Для него можно использовать язык скриптов LUA. Скрипт, представленный ниже, создает простейший сервер, который отображает информацию при обращении устройств к плате:
connection:send(«HTTP/1.1 200 OK\nContent-Type: text/html\nRefresh: 10\n\n» ..
connection:on(«sent»,function(connection) connection:close() end)
Код сохраняется в файле server1.lua, после чего запускается. Чтобы проверить работу, можно подключиться к точке доступа и набрать в браузере IP-адрес http://192.168.4.1:
Элементы платы
Подробнее о функциях и составе контроллера было написано выше. Обобщенно модуль содержит следующие элементы:
- Сам чип WiFi ESP;
- Флэш-память;
- Кварцевый резонатор;
- Светодиодные индикаторы;
- Антенну для ловли Wifi.
В завершении можно сказать, что ESP, пожалуй, лучший Wifi модуль для Ардуино. Подключение Ардуино к Wifi процесс не самый простой, но и ничего сверхъестественного там нет. Современные платы и контроллеры позволяют Arduino выполнять передачу данных по Wifi без каких-либо проблем.
Подгорнов Илья Владимирович Всё статьи нашего сайта проходят аудит технического консультанта. Если у Вас остались вопросы, Вы всегда их можете задать на его странице.
Wi-Fi-адаптер своими руками: из USB-модема, телефона. Если беспроводной WiFi—модуль не совсем стандартный и требует для установки драйверы от сторонних производителей, удобно . Здесь следует заметить, что для персонального компьютера WiFi—модуль своими руками можно изготовить из аналогичного устройства от ноутбука. Для этого понадобится.
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 и подключили его к беспроводной сети. В следующий раз попробуем использовать модуль для отправки и получения данных через интернет.