//Примерът показва управление на устройство на IoT с помощта на AI с платформата Sinric Pro
//И как да създадем връзка между гласовият асистент Alexa и Sinric Pro в нашето собствено Iot устройство
// Код за ESP32 с 1 пуш бутон и 2 светодиода
#include "SinricPro.h"
#include "SinricProSwitch.h"
#define WIFI_SSID "MyInternet" //Вашият интернет
#define WIFI_PASS "MyPassword" //Вашата парола за интернета
#define APP_KEY "1692579e-da90-4fb8-b35f-a0dde7ea2f0b" //Тук трябва да сложите вашите данни от Sinric
#define APP_SECRET "9fa7794a-5ec3-4845-9349-64dbb0420d32-6053a49a-f11a-42da-9aa2-15692b4d34ea" //Тук трябва да сложите вашите данни от Sinric
#define SWITCH1_ID "646b58fa929949c1da6e7d72" //Тук трябва да сложите вашите данни от Sinric
#define SWITCH2_ID "646b58fa929949c1da6e7d73" //Тук трябва да сложите вашите данни от Sinric
#define SWITCH3_ID "646b58fa929949c1da6e7d74" //Тук трябва да сложите вашите данни от Sinric
const int buttonPin = 2; // Пинът, към който е свързан пуш бутона
const int ledPin1 = 12; // Пинът, към който е свързан първия светодиод
const int ledPin2 = 13; // Пинът, към който е свързан втория светодиод
int ledState1 = LOW; // Състояние на първия светодиод
int ledState2 = LOW; // Състояние на втория светодиод
int buttonState; // Състояние на бутона
int lastButtonState = LOW; // Последно състояние на бутона
long debounceDelay = 50; // Време за дебаунс
unsigned long lastDebounceTime = 0; // Време на последна дебаунс проверка
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Задаваме пуш бутона като вход с вътрешно възстановяване (pull-up резистор)
pinMode(ledPin1, OUTPUT); // Задаваме първия светодиод като изход
pinMode(ledPin2, OUTPUT); // Задаваме втория светодиод като изход
}
void loop() {
// Четем състоянието на бутона с дебаунс проверка
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
// При натискане на бутона променяме състоянието на светодиодите
if (buttonState == HIGH) {
ledState1 = !ledState1;
ledState2 = !ledState2;
digitalWrite(ledPin1, ledState1);
digitalWrite(ledPin2, ledState2);
}
}
}
lastButtonState = reading;
}