WiFi Розетка на ESP8266 + Arduino

Разрабатывая и осваивая управление  в какой то момент приходится наращивать мощность, быстродействие и функционал устройств «Умного Дома». Сегодня я расскажу вам как сделать розетку с управлением по WiFi. Отличием от иных проектов будет то, что для управления будет использована связка WiFi модуля ESP8266  и загруженный в нее веб интерфейс и микроконтроллер Arduino NANO,  который будет ведомым устройством. Не совсем розетка да? Это скорее принцип управления любыми устройствами через веб интерфейс так называемыми устройствами IoT на базе доступного модуля ESP8266, так как открывается возможность управлять кучей устройств, а не ограничиваться количеством выводов WiFi модуля…

Модуль ESP-01 имеет всего 8 выводов и 512килобайт флеш памяти на борту. Немного, но для небольшого веб сервера с минималистическим интерфейсом и полезными функциями, такими как управление и обмен данными через последовательный порт достаточно. При особой надобности количество памяти можно увеличить до 16Мегабайт перепаяв чип памяти 25Q4 на 25Q128, чип ESP8266 его поддерживает, правда придется работать феном для монтажа SMD элементов, а не совсем паяльником…

И так последовательность действий следующая:

  1. Берем модуль ESP8266, соединяем его на макетной плате по нижеприведенной схеме:

там 2 схемы, левая, это если у вас TTL мостик на 3.3 вольта (модуль ESP8266 работает именно на таком напряжении, подав на него 5 вольт вы непременно его сожжете, я уже сжег парочку!), правая схема подключения через стабилизатор на 3.3 вольта, но я не рекомендую ее использовать, так как сигналы портов все равно будут 5и вольтовыми, их тоже надо будет согласовывать.

2. Скачиваем программу и прошивку и прошиваем модуль прошивкой малого сервера с небольшим дополнением от меня.

прошивка малого сервера:

firmware

прошивка вебморды:

WEBbin

Прошивальщик:

FLASH_DOWNLOAD_TOOLS_v0.9.6_150419

Для этого нужно сделать следующие действия:

а) Открыть программу ESP FLASH DOWNLOAD TOOL, Выбрать все части прошивки и выставить адреса так, как написано в файле readme.txt. Если у вас модуль с установленной флеш памятью 4 мегабита (512Килобайт) файлы вебморды загрузим позже! Иначе можете и их загрузить указав ей путь и адрес 0x80000

Не забудьте выставить галочки рядом с выбранными частями прошивки. Выберите порт и скорость. Выглядеть должно вот так:

b) Подключить USB-TTL к компьютеру

с) Отключить CH-PD от питания, подтянуть GPIO_0 к земле, подключить CH-PD к питанию снова. Модуль должен перейти в режим прошивки.

d)  Нажать на START в терминальном окне должна пойти загрузка прошивки, если этого не произошло, либо выдала ошибку, передерните питание, предварительно проверив правильность подключения.

У меня уже перепаянный модуль с 8и мегабайтами памяти, так что гружу и вебморду (6й пункт на фотке!)

После того, как прошивка успешно прошилась в модуль, отключаем питание, отключаем GPIO_0 от земли и подключаем питание обратно.

 

e)  Ищем сети WiFi. Должна появиться новая доступная точка ESP8266

Подключаемся к ней!

e1) Если у вас всего 512Кб памяти, то шьем вебморду, иначе пропускаем этот шаг!

файл прошивки:

WEBbin

Прошивальщик:

WEBFS22

выставив галочки вот так и выбрав файл прошивки жмем Upload!

f) Далее открываем браузер и набираем адрес 192.168.4.1

Должна открыться вот такая страничка:

Поздравляю вы удачно прошили вебморду в ваш модуль WiFi с размером в ноготь ))). Далее идем в WiFi Scan и подключаемся в вашу домашнюю сеть WiFi выбрав ее из списка и указав пароль, сохраните конфигурацию нажав на Set Config!

Далее идем в  меню WiFi settings и смотрим по какому адресу находится наш модуль в сети:

Она есть и подключена по адресу 192.168.1.116, у вас будет присвоен другой адрес!

Далее можно юзать настройки по локальной сети!

Нужно настроить встроенный TCP2UART мост, идем в соответствующее меню и выставляем вот так:

Подключаем нашу Ардуину по такой схеме:

и заливаем в нее вот эту прошивку через стандартный Arduino IDE.

 

Далее подключаем Реле, либо лед лампочку к цифровому порту 5 на Ардуино (не забудьте подключить лед через резистор 1кОм, иначе сожжете его) и набираем вот этот адрес в браузере: http://192.168.1.116/test.htm  вместо 192.168.1.116 должен быть ваш IP!

Попадаем вот на эту страничку:

и наслаждаемся управлением!

 

Вообще таким образом можно управлять всеми портами любого микроконтроллера, можно дописать вебстраницу любой сложности и загрузить в память WiFi модуля, ограничением лишь является количество файлов веб морды в 250 и количество памяти.

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

webfiles

WEBFS22

Упаковщик умеет загружать получившийся файл прошивки самостоятельно, но можно его прошить и используя вышеописанный метод в начале этой статьи по адресу 0x80000, только тут примечание, этот адрес справедлив, если у вас памяти установлено более 512Кбайт (не встречал еще ESP-01 с памятью более 512ти, нужно перепаивать!)

Далее, как развитие этой темы я попробую разобраться как принимать данные в веб интерфейс для обеспечения двусторонней связи с МК.

Спасибо сайту esp8266.ru и разработчику прошивки малого сервера pvvx.

Всем удачного дня!

WiFi Розетка на ESP8266 + Arduino: 3 комментария

  1. Zaur

    Для розетки с веб интерфейсом никакой дополнительный ардуино ненужен.
    ESP-01 без какихлибо переделок может управлять двумя розетками по вебинтерфейсу.
    Гениальная сборка TCP2UART это конечно отдельная тема! но она слишком много может для её использования в таких простых задачах. 🙂

  2. Уведомление: ESP8266 — ArduinoMEGA2560 управление через вебинтерфейс | www.voltrans.az

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo