Arduino - освоение WiFi модуля.

Снова удивление

Совсем немного времени прошло с освоения новых микроконтроллеров Ардуино, как мне на глаза попадется информация о модуле ESP8266, и я решаюсь окунуться в новый для себя мир: новый микроконтроллер и беспроводная сеть Wifi. Радовало то, что программировать такие модули можно через уже освоенную программу Arduino IDE. Но каждый шаг надо проверять.

С сайта https://www.arduino.cc/en/Main/Software я загрузил Aduino IDE последнюю версию/

Подготовка

ESP8266 EX-12E:


esp12e_pin

 имеет 11 входов ввода-вывода (GPIO), что расширяет его возможности
 только в этой версии есть вход АЦП
 возможность SMD монтажа Подготовка к эксплуатации

Для работы модуля требуется:

 подать логическую единицу на вход EN (CH_PD)
 для входа в режим прошивки перед включением модуля надо замкнуть на землю GPIO0
 подать 3,3 v на VCC
devkit8266

Для первых шагов мне показалось несколько рискованным начинать работу с этим модулем, и я заказал комплект 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. Проделал те же процедуры, чтобы подключить необходимые библиотеки. Делаю проверку, все отлично - ошибок нет!

Хватит лирики, теперь конкретно и с картинками, что я сделал.

Подключение библиотек ESP8266

1. Вписать путь к библиотекам (можно через запятую. На картинке один путь)

2. Выбрать в меню Boards Manadger

3. В самом низу открывшегося списка появится поле с новой библиотекой ESP8266. (Открыть пришлось два раза, так как менеджер еще не подхватил библиотеки). Необходимо выбрать мышкой это поле, чтобы появилась кнопка Install

4. Снова заходим в меню Интсрументы и выбираем плату NodeMCU 1.0(ESP-12E module)

Как правило, лучше программу перезапускать после нововведений.

Подключение модуля

Если плата подключена к компьютеру, то сразу стоит установить порт. Если компьютер не распознает новое устройсто, что можно увидеть в диспетчере устройств компьютера, то следует установить необходимый драйвер. Для моего модуля потребовался драйвер CP2102 USB.

Выводы ESP-12E

Пришло время сообщить, что я задумал сделать. Дома на стене висит большая карта мира, на которой подсвечены светодиодами разных цветов места, где я побывал. Так, синие светодиоды подсвечивают порты и точки в океане - работа в институте Океанологии; желтые - армия, и так далее. Светодиоды меняют свою яркость и иногда перемигиваются. Всем этим управляет 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 соответсвенно.

BLYNK - облачный сервис

Как задействовать wifi?

В поисках решения я вышел на сайт blynk.cc, с которого скачал и установил программу для смартфона (BLYNK FOR ANDROID) и библиотеку для Android IDE. Программа для смартфона устанавливается автоматом непосредственно с сайта blynk.cc без проблем.
Также без проблем я скачал библиотеку Blynk_v0.3.1.zip (275 Кб) и установил. Для этого следует запустить программу Arduino, выбрать в меню ADD .ZIP Library...

add library

Библиотеки установились прямо из архива, это удобно.

Как правило, лучше программу перезапускать после нововведений.

Выбрал образец Blynk>BoardsAndShields>ESP8266_Standalone и на его базе написал свой скетч: скачать

Загрузка программы прошла успешно и подключенные светодиоды заморгали.

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

В правом нижнем углу карты размещен модуль DevKit ESP8266.

 

Общая схема

Схема достаточно простая. Единственно, что мне необходимо было сделать, это организовать питание и уровни управляющих сигналов. Основной блок питания на 12 вольт запитывает свтодиоды. На DevKit я подал 5 вольт через преобразователь

map

На рисунке показана одна группа светодиодов. Всего таких групп четыре и они отличаются цветом. Каждая группа может состоять из разного количества светодиодных линеек, соединенных параллельно, но в каждой линейке не больше 5 светодиодов, это определяется питающим напряжением 12 в. Если требуется меньшее количество светодиодов, то либо в цепь включается гасящее сопротивление, либо потенциометром канала добиваются необходимой яркости.

 

Hosted by uCoz