Введение. Подключение к WiFi
ESP8266 – мощный китайский микроконтроллер с WiFi на борту. Это позволяет делать на его основе проекты с доступом в Интернет!
- Если вы уже работали с Arduino и первый раз держите в руках плату на базе esp8266 (в наборе GyverKIT это плата Wemos Mini) – обязательно изучите урок по особенностям данного микроконтроллера и отличиям от обычных плат Arduino.
- Для работы с Wemos нужно установить поддержку данных плат в Arduino IDE: на сайте набора в блоке Начало работы есть отдельная инструкция по настройке.
Работать с платой через WiFi есть два способа:
- Подключить плату к домашнему WiFi роутеру (режим STA) – для работы в локальной сети или через Интернет
- Настроить плату как точку доступа (режим AP) и подключиться к ней со смартфона
Подключение к роутеру
- Подключаем в скетч встроенную библиотеку ESP8266WiFi.h
- Переводим режим работы в STA через WiFi.mode(WIFI_STA) – необязательно, если до этого режим работы не изменялся
- Инициируем подключение к WiFi роутеру:
- Вызываем WiFi.begin(WIFI_SSID) – с указанием названия незащищённой сети (без пароля)
- Вызываем WiFi.begin(WIFI_SSID, WIFI_PASS) – с указанием названия сети и пароля
- Для удобства настройки можно вынести логин и пароль в начало программы через #define
После успешного подключения можно вывести IP адрес платы в локальной сети роутера при помощи WiFi.localIP() .
#include #define WIFI_SSID «Alex» #define WIFI_PASS «pass» void setup() < Serial.begin(115200); WiFi.begin(WIFI_SSID, WIFI_PASS); while (WiFi.status() != WL_CONNECTED) < delay(500); Serial.print("."); >Serial.println(«Connected»); Serial.println(WiFi.localIP()); > void loop()
Скриншот со страницы конфигурации роутера. Плата есть в списке подключенных устройств:
Создание точки доступа
- Подключаем в скетч встроенную библиотеку ESP8266WiFi.h
- Переводим режим работы в AP через WiFi.mode(WIFI_AP)
- Создаём точку доступа:
- WiFi.softAP(AP_SSID) – сеть без пароля. Указываем только имя
- WiFi.softAP(AP_SSID, AP_PASS) – сеть с паролем
#include #define AP_SSID «ESP» void setup() < Serial.begin(115200); WiFi.mode(WIFI_AP); WiFi.softAP(AP_SSID); >void loop()
Теперь можно подключиться к плате со смартфона как к точке доступа WiFi. Примечание: по умолчанию в своей сети плата имеет IP адрес 192.168.4.1
Инструкция по Wemos D1 mini: вроде бы все тоже самое
Привет друзья, меня все еще зовут Алексей ;), и я решил написать небольшой курс статей, по использованию платы Arduino Nano и так называемой адресной ленты, на основе светодиодов ws 2812 b . На сегодня это уже седьмая статья. И, прежде чем браться за чтение конкретно этой статьи, я бы посоветовал прочитать предыдущие.
Сегодня мы поговорим о так называемой плате Wemos D 1 mini . Вообще видов плат Wemos несколько, при чем есть и другие платы с практически такой же конфигурацией, но называющиеся иначе. Тут замешаны и авторские права, и желание производителей выделиться. Возможно, вы сейчас находитесь в замешательстве, типа: «Изучали одно, а потом резко переключились на другое?», но не волнуйтесь, мы все еще находимся в одной большой теме, в той самой, с которой начинали. Я не менял вектор движения, и по-прежнему пытаюсь дать вам азы цифровой электротехники, просто не стоит зацикливаться на плате Arduino Nano , ведь есть другие решения. А так как задачи бывают совсем разные, то переключиться на другую плату будет очень даже полезно.
Разбираемся в вопросе
Для начала скажу, что с платой Wemos можно работать, как с обычной Arduino Nano , о которой мы говорили ранее. Иначе говоря, платформа Arduino поддерживает данную плату. Давайте посмотрим на нее, ниже два фото, как плата выглядит с двух сторон.
Со стороны USB разъема можно увидеть знакомую микросхему CH 340, которая позволяет «общаться» плате и компьютеру по USB проводу, также было и на Arduino Nano . Плата поставляется с различными гребенками контактов, чтобы была возможность удобного подключения к ней внешних устройств. Иногда гребенки уже впаяны, я покупал свою плату в интернет-магазине Giant 4, и у меня были 3 варианта гребенок в одном наборе.
Также на фото видно, что, в отличие от Arduino Nano , где стоял разъем USB — mini , на Wemos у нас уже расположен USB — micro . Это просто удобно, так как провода с этим разъемом более распространены, хотя они уже тоже постепенно выходят из обихода.
Понятное дело, что у данной платы немного другой форм фактор и количество пинов определенного назначения, оно отличается от того, что мы с вами видели на Arduino Nano . Но так как мы работаем с адресной лентой, нас по-прежнему интересуют выводы типа digital . Это цифровые выводы, которые подписаны буквой D и номером. Тут таких девять штук, конечно, немного меньше, чем на Nano , но все равно немало.
Но, пожалуй, главной особенностью данной платы является то, что на борту есть Wi — Fi приемник и Wi — Fi передатчик. То есть, эту плату можно подключить к домашней локальной сети и отправлять команды как на нее, то есть управлять платой, так и сама плата может отправлять команды на другие устройства. На данный момент уже все домашние локальные сети имеют доступ к мировой информационной паутине (у всех есть интернет), а это значит, что мы не ограничены рамками и при настройке определенной маршрутизации можем управлять данной платой из любой точки мира. На самом деле это просто фантастика. А что если я вам скажу, что делать это крайне просто? Наравне с тем, что плата может подключиться к вашей домашней сети, плата также может выступать в качестве источника данной сети. То есть Wemos сама раздаст свой собственный Wi — Fi , к которому смогут одновременно подключиться сразу несколько устройств. Я не буду долго обсуждать возможности данной платы, потому что на это уйдет очень много времени и тут уже вопросы даже не к плате, а к сетевым технологиям, но расскажу в общих чертах. Суть в том, что можно организовать TCP / IT сервер или же просто, как клиент, отправлять пакеты. Можно поднять FTP сервер (кстати на плате есть память под хранилище данных, немного, но для всяких «цифровых дел» с избытком). Можно организовать WEB сервер, хранить тут же свой сайт и через него управлять Wemos , к примеру, выводами. В общем, возможностей действительно много: почтовый сервер, сервер сайтов и можно даже проводить хакерские атаки, но, конечно же, для этого придется подучиться и в рамках данных статей мы этого делать не будем 😉 Мы организуем простое управление через интернет.
Но, справедливости ради, я хочу заметить, что все, что я перечислял выше, по возможностям платы, — это заслуга не Wemos . Если присмотреться к этой плате, то можно обратить внимание на то, что это «бутерброд». Так как на этой плате находится еще одна плата, на основе МК ESP 8266. И все перечисленные возможности – это заслуга именно этого микроконтроллера.
И получается, что Wemos – это не что иное, как просто удобная развязка. Она организует подключение с компьютера до МК. Она позволяет более удобно работать с выводами, тут уже предусмотрена кнопка Reset (хотя я лично не представляю ситуации, чтобы я побежал нажимать кнопку сброса на своей самоделке именно на плате, конечно же, ее необходимо выносить, поэтому обычно сброс происходит по питанию). Также имеются стабилизаторы питания и пара защит. Сказать, что Wemos бесполезна, конечно же, нельзя, она очень удобна, особенно для новичка, но лично я уже давно перешел на использование самой платы ESP 8266, она достаточно мала и позволяет сэкономить место, а также я вправе организовать только ту развязку, которая мне действительно необходима (то есть мое устройство может быть и проще, чем Wemos , но может быть и гораздо сложнее). Плат с ESP 8266, кстати, тоже огромное количество видов. Я, как правило, использую 12- E или 12- F . Посмотрите на фото, как это все выглядит.
И таких плат по типу Wemos , на самом деле, немало. Например, еще одна из них, под названием NodeMCU . Как обычно, такие платы бывают разных видов, но смысл от этого не меняется и всегда в основе лежит ESP 8266. Именно этот МК и объединяет все эти платы. На следующей иллюстрации Вы можете ее увидеть и понять, что выводов у нее больше, чем на Wemos , но цифровых входов и выходов такое же количество. При выборе нужно исходить от задачи, стоящей перед разработчиком. В рамках данной статьи, мой выбор пал на Wemos .
Также отмечу, что Arduino – это не единственная платформа, с помощью которой можно вести разработки под эти платы, как и не единственная платформа для разработки на Arduino Nano . Но на данный момент – это лучший выбор дня новичка.
Как это использовать? — Готовим IDE Arduino
Для начала придется кое-что настроить в самой IDE Arduino . Кстати, мы будем использовать тот скетч, который мы написали в прошлой статье.
Теперь заходим в Файл -> Настройки.
И у нас появляется следующее окно. В поле «Дополнительные ссылки на менеджера плат» необходимо вписать следующую ссылку: http://arduino.esp8266.com/stable/package_esp8266com_index.json
А затем нажать на кнопку « Ok ».
Теперь заходим в Инструменты -> Плата -> Менеджер плат.
Откроется менеджер плат. В появившемся окне нужно в поисковую строку вписать « Wemos ». И установить компонент под названием – « ESP 8266 Community ». После этого будет не лишним перезагрузить IDE Arduino .
Теперь осталось выбрать тип платы и порт, остальные настройки оставим без изменений.
На этом все. Если подключить плату и нажать кнопку записи скетча, то наша программа попадет в МК. Но перед тем, как мы перейдем к подготовке физической части, нам нужно немного изменить код. Данное изменение связанно с самой интеграцией платформы Arduino на ESP 8266. Не будем разбирать это подробно, это достаточно большая тема и сейчас говорить об этом еще рано. Просто примем как данность. В третей строке, где мы задаем номер управляющего вывода, нужно значение «5» заменить на « D 5». Думаю, дальнейшая логика самостоятельной работы уже понятна и останавливаться на этом я не буду.
С программной частью мы разобрались. Теперь необходимо подключить к плате Wemos блок питания и адресную ленту. Подключение будет происходить полностью по аналогии с Arduino Nano . Управление с D 5 (не забываем про токоограничивающий резистор), питание на 5 V и общий (тут необходимо поставить конденсатор). Схема подключения представлена ниже.
Смотрим итоговое фото. Также, как и в случае с Arduino Nano , я просто припаял провода.
После того, как все подключено и настроено, соединяем USB проводом компьютер с платой. Выставляем в настройках необходимый порт и записываем программу на Wemos . Если до этого все было сделано правильно, то в конце мы увидим надпись – «Загрузка завершена». Отключаем плату от USB и включаем блок питания в розетку. Как результат, видим на адресной ленте тот же эффект, что и в прошлой статье. Только в этот раз мы управляем цветами пикселей с помощью совершенно другого МК. Смотрим результат на видео.
Я понимаю, что в начале статьи очень много рассказывал про Wemos , Wi — Fi , ESP 8266 и возможности всего этого, а в заключении мы просто подключили ленту и построили такой же простой эффект, как и в прошлый раз. Но вы должны понимать: чтобы что-то реализовать, необходимо подготовить почву и получить хотя бы минимальные представления о предметной области. Этим мы сегодня и занимались. Но в следующей статье, которая скорее всего уже будет заключительной, мы займемся управлением ленты через интернет по средством смартфона.
Я хочу обратить Ваше внимание на то, что мы смогли с помощью одной и той же IDE , используя один и тот же программный код, запрограммировать два совершенно разных по архитектуре микропроцессора. При этом мы вообще ничего не знали про устройства этих МК. В этом и заключается сила платформы Arduino – простой одинаковый код и возможность работать с разными системами. На самом деле это дорогого стоит и это нужно ценить. Желаю вам удачи в ваших DIY проектах и встретимся в следующей статье.