В этом проекте мы будем использовать плату ESP8266-01 Wi-Fi, чтобы создать небольшое устройство интернета вещей (IoT) для домашней автоматизации, имеющего функции Wi-Fi. Система работает на локальном веб-сервере, и работать с ней легко даже новичкам. Благодаря этому проекту мы сможем управлять не боле чем двумя бытовыми устройствами переменного тока, лучше всего подходящими для небольших проектов IoT.
Компания Espressif разработала микросхему ESP8266 с поддержкой Wi-Fi, доказавшую свое удобство применения в области IoT. Это привело к появлению различных плат ESP с открытым исходным кодом, что позволяет даже новичку создавать приложения, использующие Wi-Fi (Рисунок 1).
![]() |
|
Рисунок 1. | ESP-01 версия 1 МБ (слева) и версия 0.5 МБ (справа). |
Для локального веб-сервера нам не требуется Интернет – управлять всем можно через Wi-Fi. Здесь мы будем манипулировать двумя выводами Входа/Выхода и переключать реле через веб страницу локального сервера. Бытовую технику мы можем подключить к Модулю Реле, который будет управляться ESP8266-01.
Материалы, необходимые для проекта IoT
- ESP8266-01: Эта плата будет «мозгом» нашего проекта (Рисунок 2).
![]() |
|
Рисунок 2. | Плата ESP8266-01. |
- Плата FTDI (преобразователь USB-TTL) для загрузки кода в ESP8266-01 (Рисунок 3).
![]() |
|
Рисунок 3. | Плата FTDI. |
- Два бытовых устройства переменного тока
- Один двухканальный Модуль Реле (Рисунок 4).
![]() |
|
Рисунок 4. | Двухканальный Модуль Реле. |
- Беспаечная макетная плата с проводами.
Шаги по настройке ESP8266 в Arduino IDE
(Если среда Arduino IDE уже установлена, пропустите этот шаг).
Для программирования ESP8266 нам понадобится Интегрированная Среда Разработки (IDE). В качестве такой среды мы будем использовать кросс-платформенное приложение Arduino IDE. Оно написано на языке Java, а в качестве языка программирования использует С/С++ с некоторыми специальными правилами. Загрузить последнюю версию Arduino IDE можно по ссылке в разделе Загрузки.
В Arduino отсутствует поддержка семейства ESP8266, поэтому для установки библиотеки для плат ESP8266 выполните следующие инструкции.
- Запустите Arduino IDE. Перейдите к Файл > Настройки (Рисунок 5).
![]() |
|
Рисунок 5. | Настройки в Arduino IDE. |
- В поле «Дополнительные ссылки для Менеджера плат» введите http://arduino.esp8266.com/stable/package_esp8266com_index.json. Нажмите на «OK».
- Перейдите к Инструменты > Плата >Менеджер плат (Рисунок 6).
![]() |
|
Рисунок 6. | Менеджер плат в Arduino IDE. |
- Прокрутите список плат вниз до ESP8266 и установите «esp8266 by Esp8266 community».
- В меню Инструменты > Плата > ESP8266 Boards выберите Generic ESP8266 Module (Рисунок 7).
![]() |
|
Рисунок 7. | Выбор платы в Arduino IDE. |
- Перезапустите Arduino IDE.
Исходный код проекта IoT
Скачайте исходный код можно по ссылке, указанной в разделе Загрузки, и откройте его в Arduino IDE. Перед загрузкой в плату необходимо внести некоторые изменения в код. Давайте разберемся, как он работает.
Поместите свои учётные данные (имя и пароль) сети Wi-Fi, заменив ими xxxx. Библиотека помогает запустить функции Wi-Fi в Aruino IDE (Листинг 1).
Листинг 1. Учетные данные Wi-Fi.
В void setup() мы помещаем одноразовые команды настройки. Все команды, записанные здесь, будут выполняться после Reset только один раз или после каждой перезагрузки.
Таким образом, здесь выводы GPIO0 и GPIO2 настраиваются как выходы, а также запускается сервер.
Void loop() – место для основных исполняемых команд. Здесь по запросу подключенного клиента изменяется состояние GPIO.
Этот запрос отображается через страницу HTML (Листинг 2).
Листинг 2. Веб-страница HTML в исходном коде.
Сохраните код. Для его загрузки в плату следуйте инструкциям, приведенным ниже.
- Соедините выводы FTDI с выводами ESP8266 как показано на Рисунке 8.
![]() |
|
Рисунок 8. | Прошивка ESP8266-01. |
- После подключения FTDI USB к компьютеру в меню Инструменты > Порт выберите свой COM порт.
- Также проверьте, поддерживает ли ваша ESP8266 скорость 9600 бод или какую-либо другую.
- Теперь в меню Скетч нажмите Загрузка
Загрузка программы в ESP8266 происходит в режиме Flash Mode, который активируется при заземлении вывода GPIO0.
Теперь для запуска программы нужно выйти из режима Flash Mode. Для этого просто отсоедините GPIO0 от земли и выполните сброс.
Для сброса ESP8266 достаточно на полсекунды соединить вывод Reset ESP8266 с землей (GND). При этом будет мигать синий светодиод.
Схема устройства IoT
Соберите схему устройства IoT как показано на Рисунке 9.
GPIO0 -> вход реле 1.
GPIO2 -> вход реле 2.
Для питания Модуля Реле будем использовать входное напряжение 5 В, а для питания ESP8266 – входное напряжение 3.3 В.
![]() |
|
Рисунок 9. | Схема устройства IoT. |
Подключение к сети с использованием IP-адреса
После загрузки программы откройте Инструменты > Монитор порта. ESP8266 будет пытаться подключиться к сети Wi-Fi и отобразить свой IP-адрес в Мониторе порта Arduino. Этот адрес нужен только при первом подключении. Дальше он остается неизменным, поэтому перед выполнением основных соединений этот адрес вам нужно знать.
Убедитесь, что роутер, к которому нужно подключиться, уже открыт. Введите IP адрес ESP8266 в браузере устройства, подключенного к той же сети Wi-Fi.
URL: http://192.168.xx.xx (ваш IP, отображенный в Мониторе порта Arduino).
После этого вы сможете увидеть веб-страницу HTML, описанную кодом программы (Рисунок 10).
![]() |
|
Рисунок 10. | Веб-страница HTML. |
Теперь, изменяя значения в URL, можно управлять бытовыми устройствами (Рисунок 11).
![]() |
|
Рисунок 11. | Тестирование проекта домашней автоматизации IoT. |
Попробуйте ввести:
http://< ваш IP адрес >/gpio1/0
http://< ваш IP адрес >/gpio1/1
http://< ваш IP адрес >/gpio2/0
http://< ваш IP адрес >/gpio2/1
![]() |
|
Рисунок 12. | Результат работы системы домашней автоматизации. |