Arduino - освоение WiFi модуля. |
Совсем немного времени прошло с освоения новых микроконтроллеров Ардуино, как мне на глаза попадется информация о модуле ESP8266, и я решаюсь окунуться в новый для себя мир: новый микроконтроллер и беспроводная сеть Wifi. Радовало то, что программировать такие модули можно через уже освоенную программу Arduino IDE. Но каждый шаг надо проверять.
С сайта https://www.arduino.cc/en/Main/Software я загрузил Aduino IDE последнюю версию/
ESP8266 EX-12E:
имеет 11 входов ввода-вывода (GPIO), что расширяет его возможности
только в этой версии есть вход АЦП
возможность SMD монтажа Подготовка к эксплуатации
Для работы модуля требуется:
подать логическую единицу на вход EN (CH_PD) для входа в режим прошивки перед включением модуля надо замкнуть на землю GPIO0
подать 3,3 v на VCC
Для первых шагов мне показалось несколько рискованным начинать работу с этим модулем, и я заказал комплект NodeMCU DevKit ESP8266 E-12 и макетную плату Motor shield ESP 8266 E-12 Я не собирался управлять двигателями, но меня привлекла возможность непосредственного подключения модуля к USB и согласование по питанию всех цепей.
Установил ARDUINO 1,6,6. Затем вписал в настройках программы http://arduino.esp8266.com/stable/package_esp8266com_index.json и в Инструментах отобразились платы, в том числе NodeMCU 1.0(ESP-12E Module) Загрузил пример WiFiClient и при компиляции получаю кучу сообщениий об ошибках. Обратился на форум ESP8266.ru, где мне посоветовали пользоваться предыдущей версией программы Arduino - 1.6.5. Для надежности я переустановил систему (восстановил с бэкапа) и установил Arduino 1.6.5. Проделал те же процедуры, чтобы подключить необходимые библиотеки. Делаю проверку, все отлично - ошибок нет!
Хватит лирики, теперь конкретно и с картинками, что я сделал.
1. Вписать путь к библиотекам (можно через запятую. На картинке один путь)
2. Выбрать в меню Boards Manadger
3. В самом низу открывшегося списка появится поле с новой библиотекой ESP8266. (Открыть пришлось два раза, так как менеджер еще не подхватил библиотеки). Необходимо выбрать мышкой это поле, чтобы появилась кнопка Install
4. Снова заходим в меню Интсрументы и выбираем плату NodeMCU 1.0(ESP-12E module)
Как правило, лучше программу перезапускать после нововведений.
Если плата подключена к компьютеру, то сразу стоит установить порт. Если компьютер не распознает новое устройсто, что можно увидеть в диспетчере устройств компьютера, то следует установить необходимый драйвер. Для моего модуля потребовался драйвер CP2102 USB.
Пришло время сообщить, что я задумал сделать. Дома на стене висит большая карта мира, на которой подсвечены светодиодами разных цветов места, где я побывал. Так, синие светодиоды подсвечивают порты и точки в океане - работа в институте Океанологии; желтые - армия, и так далее. Светодиоды меняют свою яркость и иногда перемигиваются. Всем этим управляет Arduino Nano. Теперь же я хочу, чтобы всем управлял модуль ESP8266 и можно было менять режимы со смартфона через wifi. Задача не сложная, когда знаешь, как делать, а когда в первый раз?!
Первое, что потребовалось проверить - какие выводы у ESP8266 я смогу использовать для вывода ШИМ сигналов, чтобы управлять яркостью цветных светодиодных каналов. Всего на карте мира четыре цветовых канала. В каждом канале около 20 светодиодов. Тщетно проведя поиски в Интернете, я стал методом перебора, изменяя в программе активность выводов GPIO, определил 4 вывода. Позже я нашел таблицу, карту ножек, модуля ESP8266, которая подходила под мой вариант.
IO index | ESP8266 pin | IO index | ESP8266 pin |
0 | GPIO16 | 7 | GPIO13 |
1 | GPIO5 | 8 | GPIO15 |
2 | GPIO4 | 9 | GPIO3 |
3 | GPIO0 | 10 | GPIO1 |
4 | GPIO2 | 11 | GPIO9 |
5 | GPIO14 | 12 | GPIO10 |
6 | GPIO12 |
Итак, первая часть программы работает. Я выбрал первые четыре вывода 0-3, то есть в программе это соответственно GPIO16, GPIO5, GPIO4, GPIO0, а на модуле DevKit ESP8266 E-12, это выводы D0-D3 соответсвенно.
Как задействовать wifi?
В поисках решения я вышел на сайт blynk.cc, с которого скачал и установил программу для смартфона (BLYNK FOR ANDROID) и библиотеку для Android IDE. Программа для смартфона устанавливается автоматом непосредственно с сайта blynk.cc без проблем.
Также без проблем я скачал библиотеку Blynk_v0.3.1.zip (275 Кб) и установил. Для этого следует запустить программу Arduino, выбрать в меню ADD .ZIP Library...
Библиотеки установились прямо из архива, это удобно.
Как правило, лучше программу перезапускать после нововведений.
Выбрал образец Blynk>BoardsAndShields>ESP8266_Standalone и на его базе написал свой скетч: скачать
Загрузка программы прошла успешно и подключенные светодиоды заморгали.
В смартфоне я подключил 4 больших слайдера, установив диапазон 0-1023 и одну кнопку переключающий режимы подсветки карты мира.
В правом нижнем углу карты размещен модуль DevKit ESP8266.
Схема достаточно простая. Единственно, что мне необходимо было сделать, это организовать питание и уровни управляющих сигналов. Основной блок питания на 12 вольт запитывает свтодиоды. На DevKit я подал 5 вольт через преобразователь
На рисунке показана одна группа светодиодов. Всего таких групп четыре и они отличаются цветом. Каждая группа может состоять из разного количества светодиодных линеек, соединенных параллельно, но в каждой линейке не больше 5 светодиодов, это определяется питающим напряжением 12 в. Если требуется меньшее количество светодиодов, то либо в цепь включается гасящее сопротивление, либо потенциометром канала добиваются необходимой яркости.