Salve a tutti, vorrei chiedervi un aiuto riguardo a questo mio progetto-idea,
In pratica, il mio camino/stufa si accende/spegne tramite l'app dedicata o con il telecomando, ma non è stata minimante progettata per essere controllata anche da assistenti virtuali, quindi o apro l'app (estremamente lenta) o uso il telecomando per controllare il tutto, io vorrei fare in modo che con Arduino R4 Wifi ed un servomotore, quando dico "Alexa/Echo, accendi/spegni il camino" (tramite la skill che devo programmare) si possa azionare da remoto il servomotore connesso ad Arduino per cliccare sul telecomando per accendere il camino, in pratica vorrei fare una specie di SwitchBot in casa.
Per ora ho realizzato questo codice, ma non funziona...
`#include "WiFiS3.h"
#include <PWMServo.h>
#include <ArduinoCloudThing.h>
char ssid[] = "SSID WiFi";
char pass[] = "Passowrd";
bool servo_state;
PWMServo servo;
void setup() {
Serial.begin(9600);
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Errore");
while (true);
}
Serial.print("Connessione in corso a ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Connesso al WiFi.");
servo.attach(9);
}
void loop() {
ArduinoCloud.update();
if (servo_state) {
servo.write(180);
}
else {
servo.write(0);
}
}`
ho provato ad usare ArduinoCloud e con Arduino Agent ho attivato e connesso al mio account l'Arduino, ma il codice è ancora molto incompleto, devo farlo comunicare alla Skill Amazon (che ho scritto in parte ma anche quella è molto incompleta) e non riesco ad andare avanti, vi prego, aiutatemi.
Skill Alexa (Prototipo):
`const Alexa = require('ask-sdk-core');
const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
},
handle(handlerInput) {
const speakOutput = 'Benvenuto, chiedimi di accendere il camino.';
return handlerInput.responseBuilder.speak(speakOutput).getResponse();
}
};
const TurnOnFireplaceIntentHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'TurnOnFireplaceIntent';
},
async handle(handlerInput) {
const axios = require('axios');
await axios.get('http://indirizzo-ip-arduino/accendiCamino');
const speakOutput = 'Sto accendendo il camino per te.';
return handlerInput.responseBuilder.speak(speakOutput).getResponse();
}
};
exports.handler = Alexa.SkillBuilders.custom()
.addRequestHandlers(
LaunchRequestHandler,
TurnOnFireplaceIntentHandler
)
.lambda();`
Per favore, chiunque possa aiutarmi lo/la ringrazio moltissimo, se foste anche in grado di fornirmi una correzione o dei nuovi codici vi sarei infinitamente grato.
Grazie.