Введение. Подключение к 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 с WI-FI на основе ESP8266
Плата Wemos D1 mini выполнена на основе ESP8266. Программировать можно в среде Arduino IDE.
В этой статье мы подключим плату Wemos D1 mini к стандартной среде разработки Arduino IDE а так же подключим пару скетчей для проверки работоспособности.Технические характеристики WeMos:
Входное напряжение 3,3В;
11 цифровых входов/выходов;
1 аналоговый вход;
Микро USB выход;
4 Мб флэш-памяти;
Наличие WiFi модуля;
Частота контроллера 80МГц/160МГц;
Рабочие температуры от -40°С до 125°С.Следует заметить, что нумерация цифровых выходов не соотвествует нумерации на плате. К примеру, физически светодиод подключен к D4 а на самом деле это D2.
расположение выходов (темно-зеленым отображаются выводы в среде Ардуино)
Для подключения к среде Arduino, Зайдите Файл — Настройки
В строке «дополнительные ссылки для Менеджера плат» ввести ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажать ОК.
Затем зайти в Инструменты — Плата: — Менеджер плат — в строку поиска ввести wemos и установить библиотеки esp8266 (у меня уже установлены)
После этого перезагружаем Arduino IDE, Идем в Инструменты — Плата — ESP8266 Boards — и из списка выбираем необходимую плату.
Устанавливаем нужный порт, и Wemos D1 mini готова к работе.
Зальем скетч блинка. Но не просто померцаем, а сделаем это с плавным затуханием.
// определяем встроенный светодиод
const int ledPin = BUILTIN_LED;// переменная яркости светодиода (0 = максимально яркий,
// 512 = половина яркости, 1023 = полностью погашен)
int brightness = 0;// переменная с шагом затухания/зажигания
int fadeAmount = 5;// небольшой интервал в каждом цикле
const int delayMillis = 10;void setup () // инициализируем светодиод на вывод
pinMode (ledPin, OUTPUT);
>void loop () // устанавливаем яркость светодиода
analogWrite (ledPin, brightness);// добавляем/уменьшаем яркость для следующего цикла
brightness = brightness + fadeAmount;// сверяем предел яркости (10-бит, значения 0-1023)
if (brightness < 0) brightness = 0;
if (brightness > 1023) brightness = 1023;// если предел достигнут, изменяем направление между затуханием/зажиганием
if (brightness == 0 || brightness == 1023) fadeAmount = -fadeAmount;
>// пауза, чтобы можно было рассмотреть уровень яркости
delay (delayMillis);
>Элемент video не поддерживается вашим браузером. Скачайте видео
Для проверки работы Wi-Fi загрузим скетч WiFiScan из примеров.
И просканируем своих соседей.
Настройка для Wemos (esp8266)
Wemos D1 Mini – плата на базе микроконтроллера esp8266. Работа с этой платой практически ничем не отличается от других Arduino – совместимых плат, большинство Arduino библиотек будут работать на этом микроконтроллере. Главное отличие самого микроконтроллера – наличие встроенного беспроводного интерфейса WiFi, более быстрое вычислительное ядро и огромный объём памяти, что позволяет создавать более тяжёлые и сложные проекты с выходом в Интернет.
Основные отличия от обычных Arduino, встроенные библиотеки и примеры можно изучить в официальной документации на английском, также есть вариант на русском. У меня тоже есть урок по особенностям работы с платами на базе esp8266 и отличиям от AVR Arduino.
Настройка Arduino IDE
Для работы с Wemos нужно установить Arduino IDE и драйвер CH340, как описано в предыдущих уроках. Далее:
- Запустить Arduino IDE, перейти в Файл/Настройки/
- В окошко “Дополнительные ссылки…” Вставить http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Нажать ОК
- Перейти в Инструменты/Плата/Менеджер плат… Начать вводить в поиске “ESP”. Выбрать и установить ESP8266 boards
- Теперь в списке плат Инструменты/Плата/ появится семейство плат на esp8266! Выбираем LOLIN (WEMOS) D1 & R2 mini
- На четвёртом скриншоте ниже показаны настройки платы по умолчанию, изменены только выделенные красным (плата и порт)
Драйвер FT232
На Wemos Mini в некоторых партиях (003) стоит преобразователь FT232. Для него нужен отдельный драйвер:
Скачать, распаковать архив и установить. Wemos отобразится как USB Serial Converter
Проверка работоспособности
Для проверки загружаем тестовую программу, которая будет мигать синим светодиодом на плате:
Если программа не загружается – переходим к следующему полному уроку Первая загрузка прошивки