Мечтали ли вы когда-нибудь о том, чтобы включать и выключать гирлянду на новогодней ёлке, просто произнеся некие волшебные слова? Если так оно и есть — значит — эта статья написана специально для вас. Её автор хочет рассказать о том, как оснастить новогоднюю ёлку системой голосового управления.
,
Arduino Uno
, а в качестве метода подключения — WiFi
.Text Input
.Text Input
— появится экран, показанный ниже.Title
можно ввести всё что угодно. В поле OUTPUT
надо записать V0
. Поле HINT
оставим пустым, в поле CHARACTER LIMIT
установим ограничение на количество символов, равное 20. Create
. Теперь коснитесь кнопки Add
в поле If This
и найдите Google Assistant
. Коснитесь соответствующего значка и выберите в появившемся списке первый пункт — Say a phrase with text ingredient
— он позволяет настроить реакцию систему на фразу, содержащую ключевое слово.What do you want to say?
я ввёл Google turn $ the lights
. Символ $
— это ключевое слово. Если хотите — можете задать тут дополнительную фразу, но ключевое слово всегда должно быть одним и тем же. Затем надо указать ответ, который даст Google Assistant.English
). Теперь коснёмся Continue
и на появившемся после этого экране, в поле Then That
, коснёмся Add
и выполним поиск по ключевому слову Webhooks
. Далее, коснёмся соответствующего значка и займёмся настройками раздела Make a web request
.ping blynk-cloud.com
188.166.206.43
. Это — адрес Blynk-сервера для вашей страны.Make a web request
, в поле URL
, нужно ввести такую конструкцию:http://только что полученный IP-адрес/Токен аутентификации проекта Blynk/pin/V0
Method
надо выбрать PUT
.Content Type
надо выбрать application/json
.Body
надо поместить следующую конструкцию:["{{TextField}}"]
Continue
, задать заголовок действия и завершить настройку. После этого IFTTT будет готов к работе.#define BLYNK_PRINT Serial
#define EspSerial Serial1
#include <SoftwareSerial.h>
#include <SPI.h>
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
// Токен аутентификации надо получить в приложении Blynk.
char auth[] = "yourAuthToken";
// Данные для подключения к WiFi.
// Установите пароль в "" для открытых сетей.
char ssid[] = "YourSSID";
char pass[] = "YourPassword";
SoftwareSerial EspSerial(2, 3); // RX, TX ESP8266
String s; // для хранения получаемых ключевых слов
BLYNK_WRITE(V0) // будет запускаться каждый раз, когда приложение Blynk отправляет строку
{
s=param.asStr();
Serial.print(s); //Строка, отправленная приложением Blynk, будет выведена в Serial Monitor
if(s=="on")
{
digitalWrite(7, HIGH); //Пин 7 установлен в setup()
}
else if(s=="off")
{
digitalWrite(7, LOW);
}
else{
Serial.print("Say on or off");
}
}
// Скорость ESP8266 в бодах:
#define ESP8266_BAUD 9600
ESP8266 wifi(&EspSerial);
void setup()
{
// Отладочная консоль
Serial.begin(9600);
pinMode(7, OUTPUT); //Pin 7 установлен в режим вывода данных
// Установим скорость в бодах для ESP8266
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop()
{
Blynk.run();
}
if(s=="on")
…
else if(s=="off")
…
on
, а выключающее — туда, где сейчас находится строка off
.I am $
happy
, для выключения — слово sad
. Это значит, что вышеприведённый код нужно будет переписать так:if(s=="happy")
…
else if(s=="sad")
…
К сожалению, не доступен сервер mySQL