В нашата къща LCD дисплея играе ролята на телевизор.
В това ръководство ще ви покажем как да направите той да се включва и изключва с гласови команди.
#define IO_USERNAME "твоето_потребителско_име"
#define IO_KEY "твоят_ключ"
#define WIFI_SSID "твоят_ssid"
#define WIFI_PASS "твоята_парола_за_wifi"
#include "AdafruitIO_WiFi.h"
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || defined(ADAFRUIT_PYPORTAL)
#if !defined(SPIWIFI_SS)
#define SPIWIFI SPI
#define SPIWIFI_SS 10
#define NINA_ACK 9
#define NINA_RESETN 6
#define NINA_GPIO0 -1
#endif
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS, NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
#else
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
#endif
#include LiquidCrystal_I2C.h>
// сложете скоба на "LiquidCrystal_I2C.h>"
// Правим връзка с config.h файла
#include "config.h"
int lcdColumns = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
// Правим връзка с feed TV
AdafruitIO_Feed *TV = io.feed("TV");
void setup() {
// инициализираме LCD дисплея
lcd.init();
// включваме светлините
// на LCD дисплея
lcd.backlight();
// Започване на серейна комуникация
Serial.begin(115200);
// изчакваме да се отвори серийния монитор
while(! Serial);
// свърваме се с io.adafruit.com
Serial.print("Connecting to Adafruit IO");
io.connect();
// Настройваме функцията handleMessage,
// която ще се извиква всеки път, когато
// получим нова информация от adafruit
TV->onMessage(handleMessage);
// Изчакваме да се свържим с adafruit
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
// Свързани сме
Serial.println();
Serial.println(io.statusText());
TV->get();
}
void loop() {
// io.run() е функция, която трябва
// да бъде винаги най-отгоре в loop,
// тя отговаря за обмяната на данни
// с adafruit
io.run();
}
// Тази функция се извиква всеки път когата,
// когата получим информация от adafruit
void handleMessage(AdafruitIO_Data *data) {
Serial.print("received <- ");
if(data->toPinLevel() == HIGH)
{
Serial.println("HIGH");
// Задаваме курсора на първата колона
// и на първи ред
lcd.setCursor(0, 0);
// Извеждаме съобщение
lcd.print("Watch now");
delay(1000000000000000000000000000000000000000000);
}
else
{
Serial.println("LOW");
// Задаваме курсора на първата колона
// и на първи ред
lcd.setCursor(0, 0);
// Извеждаме съобщение
lcd.print("TV is off");
delay(1000000000000000000000000000000000000000000);
}
}