Умная Wi-Fi розетка на модуле ESP8266


Wi-Fi розетки в настоящее время приобретают все большую популярность по мере того как системы "умного дома" становятся все более востребованными в современном мире. Подобные розетки выпускаются различными производителями (в основном китайскими, конечно же), но их цена в ряде случаев не такая "толерантная" как хотелось бы. К тому же никто не отменял чувство удовольствия от того, когда сделаешь что-либо полезное своими руками.

Поэтому в данной статье мы рассмотрим создание собственной умной Wi-Fi розетки на основе модуле ESP8266. Управлять данной розеткой можно будет со своего смартфона. Нашу Wi-Fi розетку можно будет включать в обычную розетку, а к другому концу нашей розетки можно будет подключать нагрузку переменного тока.

Внешний вид проекта Wi-Fi розетки на основе модуля ESP8266

Автор данного проекта (ссылка на оригинал приведена в конце статьи) устал от того, чтобы ему постоянно приходится перезапускать свой Wi-Fi роутер из-за проблем со связью (а живет он в Индии). Поэтому изначально данный проект Wi-Fi розетки рассматривался как устройство, позволяющее ему дистанционно, со своего смартфона, отключать и снова подавать питание на свой роутер, таким образом, перезапуская его.

Вы скажете каким образом будет работать Wi-Fi розетка если у роутера проблемы со связью? Здесь дело в том, что модуль ESP8266 может самостоятельно работать в качестве точки доступа, то есть выполнять функции роутера. Управлять его работой мы будем с помощью специальной веб-страницы, с которой мы сможем включать/выключать нашу Wi-Fi розетку.

Также на нашем сайте вы можете посмотреть другие рассмотренные проекты автоматизации дома.

Необходимые компоненты

  1. Модуль ESP8266 (купить на AliExpress).
  2. Link AC to DC Converter (3.3V) (конвертер 220 Вольт в постоянное напряжение 3.3V (купить на AliExpress).
  3. Реле на 3V.
  4. NPN транзистор BC547 (купить на AliExpress).
  5. FTDI плата (купить на AliExpress).
  6. Соединительные провода.

В данном проекте его автор для программирования модуля ESP8266 использовал специальный Arduino Wi-Fi Shield, который он ранее собрал и схему для его сборки можно посмотреть по следующему адресу. Но если у вас нет такого шилда, то для программирования модуля ESP8266 можно применить стандартный подход с помощью Arduino IDE.

Схема проекта

Схема Wi-Fi розетки на основе модуля ESP8266 представлена на следующем рисунке.

Схема Wi-Fi розетки на основе модуля ESP8266

Питание наша схема получает от сети переменного тока через конвертер 220 Вольта в 3,3 Вольта. Учтите, что на контактах GPIO0 и GPIO2 модуля необходимо поддерживать напряжение высокого уровня (while) во время загрузки модуля. Иначе модуль ESP перейдет в режим программирования и тогда код нашей программы работать не будет. Поэтому мы использовали резистор сопротивлением 10 кОм (можно использовать резистор в диапазоне от 3,3 кОм до 10 кОм) чтобы подать на эти контакты напряжение высокого уровня. Для ограничения тока через базу транзистора используется резистор 1 кОм.

Изготовление корпуса для проекта

Чтобы сделать проект Wi-Fi розетки на основе модуля ESP8266 максимально компактным его автор решил напечатать его корпус на 3D принтере. Он использовал дизайн корпуса, представленный на следующем рисунке.

Дизайн корпуса для Wi-Fi розетки

STL файлы для печати на 3D принтере данного корпуса можно скачать по следующей ссылке с thingiverse.

Подготовка модели корпуса розетки для печати на 3D принтере

После печати корпуса автор закрепил в нем электронную часть проекта с помощью болтов как показано на следующем рисунке.

Закрепление электронной части проекта с помощью болтов в корпусе WiFi розетки

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции WiFi розетки

После сборки автор проекта подключил к нему свой роутер, но вы можете подключить к нему любую другую нагрузку переменного тока (лишь бы по мощности реле выдержало).

Объяснение программы для модуля ESP8266

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

Далее у нас идет достаточно длинный HTML код для нашей веб-страницы. На ней у нас будет 3 экрана, которые мы назвали Home screen (домашний экран), On screen (экран включения) и Off screen (экран выключения).

Внешний вид этих экранов показан на следующем рисунке.

Внешний вид различных экранов веб-страницы для нашего проекта

Разумеется, вы можете по своему желанию настроить вид этой веб-страницы.

Далее в функции void setup мы сконфигурируем модуль ESP для работы в качестве точки доступа (Access point), которой дадим имя “ESP_Smart_Plug”. Когда какой-нибудь пользователь будет подключаться к этой сети Wi-Fi он будет перебрасываться на нашу веб-страницу, которую мы настроили ранее.

Если на домашнем экране нашей веб-страницы пользователь нажмет на кнопку ON (включения), то будет показан экран включения и на контакт GPIO 2 будет подан уровень high.

Аналогичным образом, если пользователь нажмет на кнопку OFF, то произойдет переход к экрану выключения и на контакт GPIO 2 будет подан уровень LOW.

Полный код программы вместе со всеми необходимыми библиотеками можно скачать по этой ссылке. Также он приведен в конце статьи.

Тестирование работы проекта

Те, кто имеют специальный Wi-Fi шилд (показан на рисунке ниже), могут загрузить программу в модуль ESP8266 с его помощью. Те же, кто такого шилда не имеет, могут использовать стандартный способ с помощью Arduino IDE.

Программирование модуля ESP8266 с помощью специального WiFi шилда

Когда код программы будет загружен в модуль, выполните на своем смартфоне поиск доступных Wi-Fi сетей, среди них вы должны обнаружить сеть с именем “ESP_Smart_Plug”. Подключитесь к ней и вас перебросит на веб-страницу, которую мы настроили в коде нашей программы. На этой веб-странице если вы нажмете кнопку выключения (off), то светодиод на нашей Wi-Fi розетке выключится, а если вы нажмете кнопку включения, то светодиод включится.

Тестирование работы проекта

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
2 450 просмотров

Комментарии

Умная Wi-Fi розетка на модуле ESP8266 — 4 комментария

  1. Отличная подробная статья. Я только начинаю изучать данный вопрос. хочу заменить все выключатели в квартире. Конечно, все давно продается, но хочу сам освоить.
    На каждый выключатель надо свой адрес ip прописать? Какие параметры нужно заменить в шапке программы или оставить как есть?

    • Здесь ip адрес сервера используется, с веб-страницы которого вы осуществляете управление, а не адрес реле, с помощью которого вы включаете/выключаете розетку, поэтому новых ip адресов вам не понадобится. Нужно просто на веб-страницу, с которой осуществляется управление, добавить больше кнопок. Ну и если управляемых розеток у вас будет много (больше 2) и управлять ими всеми вы будете с помощью одного модуля ESP8266, то тогда вам контактов общего назначения модуля ESP8266-01, использованного в данной статье, не хватит для этого и нужно будет использовать модификацию данного модуля с большим числом контактов, например NodeMCU ESP8266.
      Если же у вас для каждой розетки будет свой отдельный модуль ESP8266, то тогда для каждого модуля нужен будет свой ip адрес

  2. Нужно бы параллельно реле поставить диод, либо транзистор может выйти из строя.

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

Ваш адрес email не будет опубликован.