Wifi модуль arduino: варианты устройств и их подключение

Arduino WiFi: обзор модулей и ESP8266 для работы с сетью

Привет! Эта статья должна была стать законченной точкой в ознакомлении с Wi-Fi модулями для Arduino или непосредственно Arduino со встроенными модулями, но получилась какая-то пеленка от чайника. Так что от чайника для чайников про Arduino WiFi.

Есть исправления, важные дополнения или хороший анекдот? Внизу статьи люди оставляют комментарии, можно написать и туда!

Для чего это нужно?

Вся суть сводится к тому, что неплохо бы стандартные платы Arduino было бы прошивать не по проводу, а на лету по воздуху. Да и приятно изменять код удаленно, или даже просто иметь доступ к Wi-Fi сетям. И тут начинается – вначале не было ничего хорошего, пока китайцы из Espressif не показали рынку свою ESP8266 – классный модуль с широким функционалом.

В видео выше не только про то, как подключить, но и общую информацию о плате со всеми ее фичами и информацией по всем вариантам прошивок – обязательно посмотрите, о таком в одном месте никто и не пишет. При этом рабочая версия – NodeMCU.

Остальным же рекомендуется искать свою распиновку и документацию в официальных источниках. Схема распиновки на примере ESP8266 12E:

WeMos

Вот и все. Задача нашего проекта освещать все Wi-Fi события, и платы для Arduino тоже находятся в этом поле. Но специфичные задачи по созданию классных домашних проектов лучше изучать уже на специализированных ресурсах. Здесь же только общий обзор и пара занимательных на наш взгляд видеороликов. Надеемся, что с возможностями этой платы и подключением к интернету задачи ваших проектов достигнут новых высот. Всем до связи, ваш WiFiGid.

Это видео недоступно.

Очередь просмотра

Очередь

  • Удалить все
  • Отключить

YouTube Premium

Arduino Uno WiFi — знакомый контроллер с чипом ESP8266 на борту. Железки Амперки

Хотите сохраните это видео?

  • Пожаловаться

Пожаловаться на видео?

Выполните вход, чтобы сообщить о неприемлемом контенте.

Понравилось видео?

Не понравилось?

Текст видео

По сути Uno WiFi — это старая добрая Arduino Uno, всё те же 14 цифровых входов/выходов, 6 аналоговых пинов и USB-коннектор, но на плате распаян wifi модуль ESP8266.

Теперь Arduino может обмениваться информацией с другими модулями в режиме точка-точка, подключаться к wi-fi сетям и даже выступать в качестве web-сервера. При этом, в отличие от дополнительных модулей или шилдов, все пины остаются доступными для использования.

Как работать с платой?

1) Для начала сконфигурируем плату на работу с сетями WiFi. Подадим питание на новенькую Uno WiFi и через несколько секунд в списке доступных сетей появится новая — с именем Arduino-WiFi и уникальным номером платы.

2) Подключимся к этой сети и зайдём по адресу 192.168.240.1 через браузер. Откроется web-интерфейс конфигурирования платы. На вкладке WiFi настроим подключение платы к существующей сети. На Uno WiFi можно зайти с любого устройства, подключённого к нашей сети. Достаточно знать IP-адрес устройства.

3) Плата готова к работе — теперь её можно прошить через IDE по WiFi. Здесь всё привычно — выбираем Uno WiFi, сетевой адрес вместо COM-порта и прошиваем плату.

Пусть Arduino Uno обрабатывает запросы в адресной строке и в соответствии с ними меняет значения на выходах. Зальём скетч с Rest-клиентом. Теперь, зададим состояние 13-го пина введя в адресной строке «/arduino/13/1» или «/arduino/13/0». В браузере отобразится состояние пина, а наш диод будет включаться и гаснуть.

Мы можем не только управлять пинами через браузер, но и получать информацию с сенсоров. Добавим к предыдущему девайсу пару датчиков и у нас получится простая система удалённого мониторинга для нашего цеха по производству #структора.

Беспроводная прошивка сильно облегчит отладку мобильных ботов. Например, если поставить плату в Робоняшу, менять поведение робота можно прямо «на лету».

Возможности подключения Wi-Fi модуля esp8266 к arduino

Передавать прошивки, обновления и прочие данные путём паяльника и проводов – не лучшее решение для Ардуино. Однако микроконтроллеры для arduino wi-fi стоят недёшево, да и нужда в них есть далеко не всегда, отчего пользователи предпочитают их не использовать в своих проектах без надобности.

Но вот очередной китайский продукт захватил рынок, wi-fi jammer esp8266 своими руками можно присоединить к плате Ардуино или другой системе, и вы получите стабильное соединение с рядом других преимуществ. Так давайте разберёмся с arduino uno wi-fi, и стоит ли покупать данный модуль, а также, что вообще собой представляет подобный микроконтроллер на wi-fi ардуино.

Доступные Wi-Fi модули для Arduino

Сейчас большая часть пользователей ардуино уже не беспокоится о цене подобных девайсов, хотя ещё 3 года назад arduino wi-fi модуль считался роскошью. Всё это благодаря wi-fi jammer esp8266, производители которого ввели на рынок совершенно новый продукт, поражающей своей функциональностью и, одновременно с тем, являющийся достаточно дешёвым, что внесло весомую лепту и создало конкуренцию в этом направлении.

Таким образом, arduino wi-fi esp8266 сейчас считается самым доступным модулем на рынке, как и все его собратья. Так, цена на зарубежных площадках стартует от 2-х долларов, что позволяет пачками закупать данные модули и не перепрошивать их тысячу раз, перепаивая контакты, чтобы сохранить работоспособность.

Варианты модулей ESP

Сначала данный wi-fi модуль ардуино использовался, в основном, как arduino wi-fi shield, так как являлся наиболее дешёвым вариантом и ничем не уступал оригинальному. Устройство действительно практически легендарное, ведь весомых минусов за его стоимость не найти. Имеется множество библиотек, в том числе и пользовательских, а также поддерживает работу через Serial шины и простейшие АТ и АТ+ команды. Благодаря этому никакой семантики пресловутого С99, как это часто бывает с другими сторонними микроконтроллерами, изучать не нужно.

Соответственно, даже новичок разберётся за секунды, а профессионал сможет применить уже заготовленные библиотеки. Среди других достоинств отмечается:

  1. Процессор на 160 МГц, однако он 32-битный, что накладывает определённый отпечаток на производительность. Но стоит помнить, что модуль всё же применяется в связке с платами Ардуино, которые сами по себе режут высокие частоты и съедают большую часть ресурсов неизвестно для чего.
  2. Производитель, выпустивший wi-fi модуль esp8266, интересные проекты на этом не закончил, и сейчас имеется целая линейка микроконтроллеров проверенного качества.
  3. Современные стандарты защиты сети. Конечно, WPA и WPA2 уже давно не столь безопасны, как хотелось бы, но их наличие не может не радовать в таком дешёвом контроллере.
  4. 16 портов вывода, в том числе 10-битный, позволяющий поэкспериментировать с платой.

Что ещё важнее, с коробки вас ждёт постоянная память до 4 мегабайт, в зависимости от типа платы, а это в разы упрощает работу с большими библиотеками и даже некоторыми медиа-файлами. Ведь на большинстве плат ардуино и 1 мегабайт считается непозволительной роскошью.

Характеристики esp8266 wi-fi безусловно радуют, особенно в сравнении с его более дорогими конкурентами, но у пользователя, не имевшего ранее опыта с данными платами, возникнет вопрос о том, как же его подключить. Дело в том, что модуль имеет гораздо больше пинов, чем привыкли видеть новички, а, соответственно, у тех начинается паника. Однако, если разобраться в ситуации, то на деле в этом нет ничего сложного. Достаточно запастись припоем и паяльником и просто почитать инструкцию.

Как подключить Wi-Fi модуль к Arduino

Давайте же рассмотрим подключение esp8266 esp 12e и что такое esp8266 мост wi-fi uart. Ведь именно подключение и настройка модуля вызывают больше всего вопросов.

Распиновка esp8266 esp 12e

В первую очередь определитесь, какая версия микроконтроллера у вас на руках. В первой встраиваются светодиоды около пинов, а на второй, которую стали выпускать совсем недавно, сигнальные огни находятся около антенны.

Перед подключением стоит подгрузить последнюю прошивку, позволяющую увеличивать скорость обмена пакетами до 9600 единиц информации в секунду. А проверять соединение мы будем через кабель usb-ttl и соответствующий терминал от CoolTerm.

Схема подключения ESP8266 к Arduino Nano

Пины для подключения вышеописанного кабеля стандартные, а вот питание идёт через 3.3 вольтовый пин с Ардуино. Важно помнить, что максимальную силу тока, которую подаёт плата, невозможно поставить выше 150 мА, а esp8266 esp 07 и esp8266 witty cloud wi-fi модуль для arduino требуют 240 Ма.

Однако, если другого источника тока нет, можете использовать и стандартный вариант от Ардуино, но мощность платы пострадает. Хотя, при не сильной загрузке, достаточно и 70 мА, будьте готовы к внезапным перезагрузкам микроконтроллера в пиковые моменты нагрузки и пишите софт соответственно, чтобы он фильтровал и разбивал файлы, не перегружая плату.

Вариант подключения модуля ESP и Ардуино Uno

Еще один вариант подключения ниже. Важно – контакты RX-TX соединяются перекрестием. Так как уровни сигналов модуля ESP8266 3.3В, а Arduino 5В, нам нужно использовать резистивный делитель напряжения для преобразования уровня сигнала.

Прописываем Wi-Fi модуль в Arduino

Как известно, при должном опыте можно и шилд esp8266 ex 12e сопрячь со смартфоном, но у новичков и прописка esp8266 esp 12 в системе Ардуино вызывает трудности. На деле достаточно подключить модуль и проверить его работоспособность, скинув несколько штатных команд АТ через меню отладки.

Например, можно добавить мигание штатным светодиодом (для схемы подключения выше):

Как только плата подтвердит, что видит микроконтроллер в системе, можно начинать полноценную работу с ним. Однако стоит отметить, что если сама плата ардуино используется в проекте лишь для подключения данного контроллера – это иррационально.

Достаточно USB-UART преобразователя, так как esp8266 не использует «мозги» ардуино, а своей флеш-памяти ему вполне хватит для хранения пары базовых библиотек и прошивок. Соответственно, тратиться лишний раз на вспомогательную плату нет никакого смысла, если вы можете просто подпаять его к преобразователю и дальше использовать в проекте. При этом, подключив вспомогательный источник питания и не беспокоясь, что данные перестанут передаваться в самый ответственный момент из-за недостатка мощности системы.

Важное замечание! Для последней схемы скетч загружаем в Arduino как обычно, но так как модуль ESP8266 подключен к контактам 0 и 1, программирование становится невозможным. Компилятор будет показывать ошибку. Отсоедините провода идущие к ESP8266 от контактов 0 и 1, произведите программирование, а после верните контакты на место и нажмите кнопку сброса в Arduino.

Сообщества › Arduino для автомобиля › Блог › Подключение WIFI модуля HLK-RM04 к Arduino Mega 2560.

Попал мне в руки WIFI модуль HLK-RM04.

Назначение ног можно найти на сайте производителя или в руководстве производителя — можно скачать по ссылке.
cyber-place.ru/attachment…d=1087&stc=1&d=1377545160
Есть еще один особенный разъем – разъем антенны. Он очень миниатюрный и требует специальной вилки желательно с кабелем и готовой антенной. Подходит антенна с разъемом от ноутбуков и роутеров…
Есть модификации со строенной антенной – маленький «кирпичек» рядом с разъемом антенны.

Для работы WIFI модуля HLK-RM04 совместно с Arduino написана библиотека WiFiRM04 – скачать ее можно здесь github.com/chunlinhan/WiFiRM04.
В ней в библиотеке уже есть некоторые готовые решения – скетч с помощью которого можно просканировать доступные WiFi сети… Соединиться с существующей сетью…
Особенностью данной библиотеки является то, что она использует два серийных порта и предназначена для работы c Arduino Mega 2560.
Существуют возможность адаптировать библиотеку для работы с другими моделями Arduino – см. например здесь:
http: //mysku.ru/blog/china-stores/27123.html
Мне по данным советам удалось адаптировать библиотеку под работу с Arduino Uno.

Подключение разъемов Arduino Mega 2560 и WIFI модуля HLK-RM04 указано ниже:
Разъемы
HLK-RM04Mega 2560
UART_RX (pin 20) — TX1 (pin 18)
UART_TX (pin 21) — RX1 (pin 19)
RXD (pin 22) — TX2 (pin 16)
TXD (pin 26) — RX2 (pin 17)
VCC (pin 1 или 28) — 5V out
ES/RTS (pin 10) — (pin 21)
GND (pin 2) — GND

Обратите внимание, что здесь также задействован разъем ES/RTS (pin 10) модуля WiFi – необходимо это для перевода модуля в командный режим, так как библиотека для своей работы использует АТ команды.
Для начала работы с WiFiRM04 необходимо установить единую скорость общения модуля WiFi и Arduiono. В библиотеке установлена скорость 38400 — такую же скорость нужно указать в Wifi модуле – см. пункт Подключение для настройки. Если нужна другая скорость соединения – ее можно поменять в библиотеке – см. пункт Возможные проблемы.

Возможные проблемы.
Поскольку полной информации о правильном подключении и настройке я сначала не нашел, у меня при соединении появились похожие строки:
[C:Users91072206DocumentsArduinolibrariesWiFiRM04utilityat_drv.cpp::119]-I-Echo No resp
[C:Users91072206DocumentsArduinolibrariesWiFiRM04utilityat_drv.cpp::119]-I-Echo No resp
[C:Users91072206DocumentsArduinolibrariesWiFiRM04utilityat_drv.cpp::119]-I-Echo No resp
[C:Users91072206DocumentsArduinolibrariesWiFiRM04utilityat_drv.cpp::119]-I-Echo No resp
[C:Users91072206DocumentsArduinolibrariesWiFiRM04utilityat_drv.cpp::119]-I-Echo No resp
[C:Users91072206DocumentsArduinolibrariesWiFiRM04utilityat_drv.cpp::119]-I-Echo No resp
[C:Users91072206DocumentsArduinolibrariesWiFiRM04utilityat_drv.cpp::936]-I-Can’t switch to at mode
Attempting to connect to SSID: MyWifi

Ответ был найден у зарубежных товарищей (github.com/chunlinhan/WiFiRM04/issues/34) — это может быть:
1. Не совпадением скорости WiFi модуля и скоростью в библиотеке WiFiRM04 – она должна быть одинаковой. Но по умолчанию в библиотеке она 38400, а в WiFi модуле, если вы ее не меняли — 115200.
Проверить скорость можно с помощью скетча DetectRM04Baud.ino, скачать который можно по ссылке drive.google.com/file/d/0…GZ08xdmc/edit?usp=sharing .
В случае если скорости не совпадают, варианта два:
А) Изменить скорость в WiFi – с помощью WEB интерфейса или в АТ команд.
В) Изменить скорость в библиотеке WiFiRM04 в файле at_drv.cpp.
Находится он, если вы правильно разместили библиотеку, в Arduino IDE по адресу:
C:Documents and SettingsAsusМои документыArduinolibrariesWiFiRM04utility
В зависимости от скорости которая установлена для соединения в WiFi необходимо поменять скорость в двух этих строчках – вместо 38400 установить необходимую:
#define DEFAULT_BAUD1 38400
#define DEFAULT_BAUD2 38400

2. В случае если вы не соеденили разъем Сброса «ES/RST» (10) модуля WiFi с разъемом Arduino — соедените разъем сроса «ES/RST» (10) с разъемом (21) Arduino – как прописано в библиотеке.
Есть вариант еще поменять библиотеку – опять же файл at_drv.cpp. В нем нужно найти #define USE_ESCAPE_PIN и установить необходимый разъем (pin).
Как видно – если сразу все сделать правильно – проблем быть не должно.

Настройка параметров WIFI модуля HLK-RM04.

Подключение для настройки через WEB интерфейс.
Модуль можно настроить, подключившись к нему как к точке доступа.
Для этого нужно подать питание на выводы модуля VCC (pin 1) и GND (pin 2).
Через 30-40 секунд модуль должен заработать как точка доступа – в сети он появится как HI-LINK_…, где последние символы соответствуют МАС адресу модуля, написанному у него на наклейке.
Подключаемся к нему и вводим пароль по умолчанию (12345678).
Вводим его в браузер адрес модуля по умолчанию – 192.168.16.254.
Вводим логин и пароль — adminadmin.
Проводим необходимые настройки.
ПРИМЕЧАНИЕ: Если IP адрес не меняли, то после входа он поменяется на 192.168.11.254.

Для сброса настроек к заводским необходимо выход ES/RTS (pin 10) модуля WiFi на время более 30 сек соединить с минусом питания GND.

Подключение для настройки через АТ команды.
Для настройки модуля с помощью командного режима – АТ команд, необходимо подключить модуль к компьютеру – это можно сделать через Arduino.
Для этого нужно подключить разъемы в следующем порядке:
Разъемы
HLK-RM04 — Mega 2560

UART_RX (pin 20) — RX (pin 0)
UART_TX (pin 21) — TX (pin 1)
VCC (pin 1 или 28) — 5V out
GND (pin 2) — GND
ES/RTS (pin 10) — GND — *кратковременно

Для перехода в командный режим (АТ) необходимо выход ES/RTS (pin 10) модуля WiFi на время не более 30 сек (согласно инструкции) соединить с минусом питания GND.
ПРИМЕЧАНИЕ: Из опыта рекомендуют — не больше 10 секунд.
Если выдержать дольше 30 секунд настройки модуля сбросятся к заводским.
Для работы с АТ командами можно использовать любой терминал RS232 – например Termite 3.2 или Ardino >Так же в руководстве HLK-RM04 user manual приведены АТ команды.
Обращаю внимание, что если вы ранее работали с АТ командами с Bluetooth, то здесь они отличаются — записываются по другому и для выполнения должны «заканчиваться» на rn – можно выбрать в терминале «добавление CR» и не добавлять окончание.
Пример настройки терминала Termite 3.2:

Как пример – АТ команда проверки версии прошивки модуля at+ver=?

Источники:

http://www.youtube.com/watch?v=_fcSqKr7T7k

http://arduinoplus.ru/podkluchenie-wi-fi-modulya-k-arduino/

http://www.drive2.ru/c/2783549/

http://drongeek.ru/obzory/wltoys/q222g

Ссылка на основную публикацию