Этот проект использует библиотеку Blynk и проект IFTTT для подключения к умной колонке Google Home. В этой статье, вы можете узнать, что такое Blynk. Ниже приведен список комплектующих, которые необходимы для реализации данного проекта:
- плата NodeMCU
- релейный модуль
- макетная плата (опционально)
Настройка Blynk

Следуем шагам со скриншотов выше. Сначала вы должны установить приложение на свой смартфон. Когда это приложение установлено, откройте его и создайте учетную запись. Если приложение спросит к какому серверу вы будете подключаться, выберите стандартный сервер Blynks. Когда ваша учетная запись будет создана, нажмите новый проект. Установите следующие настройки(1):
- Project name: name
- Choose device: NodeMCU
- Connection type: WiFi
- Theme: theme
Затем создайте проект. Теперь у вас есть большое рабочее пространство и три кнопки сверху. Нажмите на рабочую область, чтобы открыть окно виджета (widget box). Здесь вы должны выбрать кнопку. Вас автоматически перебросит обратно на рабочую область, и вы сможете увидеть виджет кнопки. Нажмите на виджет, чтобы открыть настройки кнопки. Настройте параметры следующим образом (2):
- Name: D1
- Output: Pin(D1) 1_0
- Mode: Push
- ON/OFF Labels: Standart settings
Когда вы закончите, нажмите кнопку ОК в верхнем правом углу. Снова, нажмите на рабочую область, чтобы открыть окно виджета, и выберите виджет кнопки. Нажмите на виджет, откройте кнопку настройки. Настройте параметры следующим образом (3):
- Name: Start / Stop
- Output: Pin(V1) 0_1
- Mode: Switch
- ON/OFF Labels: Standart settings
Когда вы закончите, нажмите кнопку ОК в правом верхнем углу. Снова нажмите на рабочую область, чтобы открыть окно виджета, и выберите виджет кнопки. Нажмите на виджет, откройте кнопку настройки. Настройте параметры следующим образом (4):
- Name: Restart
- Output: Pin(V2) 0_1
- Mode: Switch
- ON/OFF Labels: Standart settings
Когда вы закончите, нажмите кнопку ОК в правом верхнем углу. На этом мы закончили настройку, нажмите на кнопку Настройки (Settings, находится в верхнем правом углу рабочего пространства). Прокрутите вниз до Auth Token, здесь вы должны нажать E-Mail, и токен будет отправлен на ваш почтовый ящик. Затем нажмите кнопку ОК в верхнем правом углу. Затем справа от кнопки настроек вы должны нажать кнопку воспроизведения (Play), после чего появится сообщение «(Имя проекта) не в сети» (Project Name is offline).
Настройка IFTTT
Сначала мы идем на сайт IFTTT https://ifttt.com/my_applets. Нажимаем на New applet (Новый апплет). Затем кликаем на +this. Ищем помощника Google — «Google Assistant«. Выбираем триггер «Say a Simple Phrase» (Скажи простую фразу) и устанавливаем фразы как на картинке ниже:

Затем кликните на +that и ищем веб-хуки webhooks:

Затем открываем приложение CMD на вашем компьютере и вводим «ping blynk-cloud.com» (без кавычек). Запоминаем указанный IP-адрес. Затем снова переходим в браузер и настраиваем апплет Webhook:
- ***URL: http://IP:8080/TOKEN/update/V1?value=1
- Method: GET
- Content type: Application/json
- Body: Nothing
***вместо IP пишем запомненный выше IP-адрес
Перед следующим шагом убедитесь, что у вас в Arduino IDE установлены библиотеки NodeMCU и Blynk. Если нет, то установите их. Пример установки можно взять из статьи Как подключить библиотеку к Arduino?
Затем, откройте программное обеспечение Arduino, а затем в верхнем углу перейдите в Инструменты -> Плата -> NodeMCU 1.0 (модуль ESP-12E). У кого английский вариант — переходим сюда: Tools -> Board -> NodeMCU 1.0 (ESP-12E Module).
Теперь вы можете подключить NodeMCU к компьютеру (с помощью USB-кабеля). Затем откройте окно программы Device Manager и под портами найдите «Silicon Labs».
Затем снова откройте программное обеспечение Arduino и перейдите в: Tools -> Port -> Com port (выбор номер порта, соответствующий NodeMCU).
Листинг проекта
//links with Blynk Libaries for NodeMCU
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
//Authentication
char auth[] = "TOKEN"; //Your blynk token
char ssid[] = "SSID"; //Your wifi SSID
char pass[] = "PASS"; //Your wifi password
//On startup
void setup()
{
Serial.begin(9600); //starting the Debug com (Open it by clicking on Tools -> Serial Monitor)
Blynk.begin(auth, ssid, pass); //Authentication with Blynk
pinMode (D1, OUTPUT); //Enables Pin D1
digitalWrite(D1, !digitalRead(D1)); //Sets state of Pin D1 to the opposite on start *Remove if Relay is on, on start*
}
//Turn on script
BLYNK_WRITE(V1) { //Start of Script
if (param.asInt()==1){ //Checks if Virtual port V1 is active, and if it is, it will run the script
digitalWrite(D1, LOW); //Sets the state of port D1 to LOW
delay(300); //Delay for 3 miliseconds
digitalWrite(D1, HIGH); //Sets the state of port D1 to HIGH
Blynk.virtualWrite(V1, LOW); //Sets Virtual port V1 to be disabled
} //end of "if true" script
} //End of script
//Force turn off script
BLYNK_WRITE(V2) { //Start of Script
if (param.asInt()==1){ //Checks if Virtual port V2 is active, and if it is, it will run the script
digitalWrite(D1, LOW); //Sets the state of port D1 to LOW
delay(6000); //Delay for 3 miliseconds
digitalWrite(D1, HIGH); //Sets the state of port D1 to HIGH
Blynk.virtualWrite(V2, LOW); //Sets Virtual port V2 to be disabled
} //end of "if true" script
} //End of script
//When running
void loop()
{
Blynk.run(); //Start blynk connection
}
Обратите внимание, что есть три переменные, которые вы должны заполнить:
Строка 7 — Auth Code (код авторизации): замените TOKEN токеном, который был отправлен на ваш E-Mail на одном из шагов выше.
Строка 8 — SSID: замените SSID на свой WiFi SSID.
Строка 9 — Password (пароль): замените PASS своим WiFi-паролем.
Когда вы изменили переменные, вы можете нажать кнопку загрузки в левом углу Arduino IDE. Теперь вам нужно просто подождать, пока программа загрузится.
Сборка устройства
Теперь мы готовы подключить реле к Arduino. Убедитесь, что вы отключили Arduino, подключая пины. На NodeMCU нам нужны три контакта:
- Штырь 5 вольт — Vin
- Штырь заземления — GND
- Цифровой вывод — D1

Подключите контакт Vin к положительной клемме на реле (он, вероятно, будет помечен как VCC или +)
Подключите контакт GND к разъему заземления на реле (он, вероятно, будет помечен как GND или —)
Подключите контакт D1 к управляющей клемме на реле (он, вероятно, будет помечен как IN)
Теперь вы можете подключить контакты к выходу. Подключите кнопку вашего компьютера к NC (нормально замкнутый или закрытый) и COM (общий).
Итог
Теперь нужно подождать около 12-24 часа, а затем можно попытаться сообщить Google Home вашу команду. Если вы хотите иметь возможность принудительно отключить компьютер (эмуляция удерживает кнопку нажатой в течение 6 секунд), то Вы должны сделать еще один апплет. Единственное, что вы меняете, — это фразы и URL-адрес веб-хука:
http://IP:8080/TOKEN/update/V2?value=1