Controllare un Servomotore a distanza con UNO R4 Wifi e Alexa

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.

:warning:
Ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato.
Grazie.

A quanto detto da UKHeliBob aggiungo ...

... cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento, fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Detto questo, come richiesto al punto 7 del succitato regolamento, per favore edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona <code/> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE).

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione e sistemato il codice come indicato, nel rispetto del regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.