qualche giorno fa era in offerta su Amazon il Echo Dot a soli 19 euro, ovviamente ne ho approfittato e sto iniziando a studiarne un po’ il funzionamento, il primo interfacciamento è stato con i NodeMCU che già avevo usato per vari progetti
la prima applicazione è stata quella di comandare via voce o tramite APP le strisce led che prima erano manuali sparse qua e la per la casa, lo schema è semplicissimo:
Nota: il LM7805 è opzionale ma consigliato nel caso in cui si volesse alimentare il NodeMCU per lunghi periodi o con tensioni maggiori di 12VDC.
il funzionamento si basa sul sito web di https://sinric.com/ dove una volta registrati sarà possibile ottenere la propria API-KEY personale e creare tutti i dispositivi che vogliamo gestire da inserire poi nel programma (oltre ai dati della nostra rete WiFi).
Link del codice per NodeMCU:
Nota: nel sorgente sono anche inclusi i link delle librerie da scaricare per il corretto funzionamento
una volta programmato e acceso basta aprire l’app di Amazon Alexa, scaricare la skill “Sinric” e seguire la procedura guidata proposta dall’applicazione.
ciao, quando dico alexa colore bianco mi accende solo ilcolore verde e rosso…
solo quando dico celeste mi si accendono tutti e tre i colori e quindi mi da l’intensità bianca!
grazie
Ciao, prova dall’applicazione Alexa se ti fa uguale senza usare i comandi vocali, a me gestisce tranquillamente tutti i colori
Proprio con l’APP di alexa ho trovato il colore Celeste, che mi riproduce invece il colore bianco, in pratica anche vocalmente rispecchia tutti i colori che ritrovo su l’app di alexa.
Se dico “alexa dispositoX colore Bianco ” mi accende solo il led verde e rosso e nell’hyperterminal mi restituisce :
[WSc] get text: {“deviceId”:”*****************”,”action”:”SetColorTemperature”,”value”:4000}
ora mi chiedo perche mi usa il “SetColorTemperature” e non il normale “”SetColor””
se invece setto il colore rosso mi restituisce :
{“deviceId”:”*****************”,”action”:”setPowerState”,”value”:”ON”}[WSc]
get text: {“deviceId”:”***************”,”action”:”SetColor”,”value”:{“hue”:0,”saturation”:1,”brightness”:1}}
[WSc] hue: 0
[WSc] saturation: 1
[WSc] brightness: 1
potrebbe essere un problema dovuto a
io ho usato l’ultima versione visto che tu non hai specificato che versione usare ed ho dovuto fare giusto dei cambi per la versione 6… del tipo:
DynamicJsonDocument json(1024);
// get the root object is not necessary I left it here as an example
JsonObject root = json.to();
deserializeJson (json, (char*)payload);
e
DynamicJsonDocument root(1024);
root[“deviceId”] = deviceId;
root[“action”] = “setPowerState”;
root[“value”] = value;
serializeJson(root, Serial);
StreamString databuf;
webSocket.sendTXT(databuf);
PS. il tuo Progetto AlexaRGB V2 in che data l’hai fatto?
Il progetto è di qualche mese fa, non ricordo esattamente la data ma lo uso tuttora (ne ho due uguali in due punti della casa). Prova a ricontrollare di aver impostato su Sinric l’opzione della lampada RGB come tipo di dispositivo e che i cablaggi siano corretti, potrebbe essere che la tua striscia RGB sia a catodo comune invece che anodo comune o viceversa.
Finalmente ho capito il problema !
quanto si chiede ad Alexa di generare il colore “bianco” “luce calda” “luce fredda”
Corrispondono Hue : “4000” “2200” “7000”
il punto è che richiama la funzione “SetColorTemperature” e tu sul codice in questa funzione hai fissato il Asaturation a 1 invece per i colori bianchi nel Sistema HSV per avere un colore tendenzialmente sul bianco si deve avere la Saturazione a 0 … e quindi con qualunque valore di Hue si avrebbe il bianco… cmq ho sistemato il codice e mi sono fatto un Sketch pazzesco con RGB + Tasti + luci + Rele tutto su un modulo.
Grazie mille per le risposte mi hai fatto da base per un grande Codice!
Mi fa molto piacere che tu sia riuscito a sistemare, se ti fa piacere scriverne un breve articolo con il relativo codice lo pubblicherei a tuo nome nel blog senza problemi