(RISOLTO) comandare arduino da google assistant

ciao ragazzi, vi chiedo lumi in merito ad una scoperta che ho fatto pochi giorni fà:
ho visto dei tutorial sulle prese wireless "sonoff" in cui ci caricano il firmware custom tasmota su una scheda ESP8266 (presente all'interno del sonoff) tramite l'ide di arduino, quindi presumo che anche il resto della scheda sia una specie di arduino.
il tutto è comandabile da google assistant/goggle home/alexa ecc.

ora vi chiedo, se integro al mio impianto arduino un modulo ESP8266 caricando quel firmware (o qualcosa di simile), posso fare in modo di avviare il mio impianto tramite google assistant? al momento si attiva solo alla pressione di un tasto fisico.

grazie

Devi cercare con Google come controllare gli ESP8266 con l'assistant di Google ...
... ti dico subito che NON è banale, ti occorre un account su IFTTT, un altro su Adafruit-IO, devi mettere in comunicazione i vari pezzi, ecc. ecc.

Cerca "esp8266 google assistant" e troverai vari tutorial.

Guglielmo

*P.S.: T'assicuro che alla fine è molto più semplice e funzionale, prendere o i prodotti "Sonoff" o le schedine relè compatibili "Sonoff", che mettersi li a fare quel casino ... :smiley: :smiley: :smiley: *

gpb01:
Devi cercare con Google come controllare gli ESP8266 con l'assistant di Google ...
... ti dico subito che NON è banale, ti occorre un account su IFTTT, un altro su Adafruit-IO, devi mettere in comunicazione i vari pezzi, ecc. ecc.

Cerca "esp8266 google assistant" e troverai vari tutorial.

Guglielmo

mi hai smontato in 2 righe... e io che ero contentissimo!! :confused:
provo a dare un'occhiata, grazie

acuplush:
mi hai smontato in 2 righe... e io che ero contentissimo!! :confused:

L'ho fatto, mi sono divertito, l'ho chiuso in un cassetto e ho fatto quanto detto in P.S. :smiley: :smiley: :smiley:

Prodotti affidabli che funzionano bene e non danno problemi ... guarda QUI per i prodotti originali Sonoff o cerca su AliExpress "sonoff relay" e trovi di tutto e di più.

Guglielmo

gpb01:
L'ho fatto, mi sono divertito, l'ho chiuso in un cassetto e ho fatto quanto detto in P.S. :smiley: :smiley: :smiley:

Prodotti affidabli che funzionano bene e non danno problemi ... guarda QUI per i prodotti originali Sonoff o cerca su AliExpress "sonoff relay" e trovi di tutto e di più.

Guglielmo

son d'accordo, ma vuoi mettere la soddisfazione di farselo custom da soli?
son riuscito a fare un signor automatismo, questa sarebbe la chicca!
ho trovato una guida su google (non so se posso linkarla essendo un'altro sito) in cui spiegano passo passo cosa fare compreso codice da caricare per dare un impulso di 1sec ad un relè (più o meno quello che devo fare io)
loro utilizzano questo kit completo, io potrei usare solo la schedina collegando i sui pin direttamente ad arduino o è meglio usarlo intero e simulare il pusante con il relè?
https://it.aliexpress.com/store/product/ESP8266-ESP-01-5V-WiFi-Relay-Module-Things-Smart-Home-Remote-Control-Switch-for-Phone-APP/3221136_32880024822.html?spm=a2g0y.search0104.3.10.9fc92931OiHTaN&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_10843_10059_10884_10887_10696_100031_10084_10083_10103_10618_10304_10307_10820_10821_10302,searchweb201603_45,ppcSwitch_5&algo_expid=587409c5-6d2e-421f-9fe4-1c8ab1818a33-1&algo_pvid=587409c5-6d2e-421f-9fe4-1c8ab1818a33&priceBeautifyAB=0

acuplush:
son d'accordo, ma vuoi mettere la soddisfazione di farselo custom da soli?
son riuscito a fare un signor automatismo, questa sarebbe la chicca!
ho trovato una guida su google (non so se posso linkarla essendo un'altro sito) in cui spiegano passo passo cosa fare compreso codice da caricare per dare un impulso di 1sec ad un relè (più o meno quello che devo fare io)
loro utilizzano questo kit completo, io potrei usare solo la schedina collegando i sui pin direttamente ad arduino o è meglio usarlo intero e simulare il pusante con il relè?
https://it.aliexpress.com/store/product/ESP8266-ESP-01-5V-WiFi-Relay-Module-Things-Smart-Home-Remote-Control-Switch-for-Phone-APP/3221136_32880024822.html?spm=a2g0y.search0104.3.10.9fc92931OiHTaN&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_10843_10059_10884_10887_10696_100031_10084_10083_10103_10618_10304_10307_10820_10821_10302,searchweb201603_45,ppcSwitch_5&algo_expid=587409c5-6d2e-421f-9fe4-1c8ab1818a33-1&algo_pvid=587409c5-6d2e-421f-9fe4-1c8ab1818a33&priceBeautifyAB=0

edit: dato che sono in ballo avrei necessità di mandare 3 comandi(e magari ricevere 2 risposte), collegandolo direttamente ad arduino lo farebbe?

p.s. ho sbagliato, invece di modificare ho creato una risposta nuova... sorry

Hai letto il mio post #3? ... hai tutte le indicazioni che ti servono.

Guglielmo

gpb01:
Hai letto il mio post #3? ... hai tutte le indicazioni che ti servono.

Guglielmo

si si l'ho letto il tuo consiglio di prendere un sonoff e togliermi i pensieri.
solo che se riuscissi ad integrare l'esp-01 al mio arduino potrei eseguire più comandi senza occupare pin (che non ho).

acuplush:
solo che se riuscissi ad integrare l'esp-01 al mio arduino potrei eseguire più comandi senza occupare pin (che non ho).

... e allora vale il mio post #1 ... ci sono mille esempi con IFTTT e Adafruit-IO ...

Guglielmo

Ti chiedo solo una cosa che non riesco a capire dalle guide.. Tutti pubblicano un solo codice che da quello che capisco va caricato sull'esp01. Su Arduino non devo caricare niente?

acuplush:
Ti chiedo solo una cosa che non riesco a capire dalle guide.. Tutti pubblicano un solo codice che da quello che capisco va caricato sull'esp01. Su Arduino non devo caricare niente?

Arduino in tutto quel gioco NON c'entra nulla e non mi risulta che qualcuno abbia sviluppato qualche cosa ... ::slight_smile:
... è una cosa tra l'ESP <--> Adafruit-IO <--> IFTTT <--> Google. Alla fine tu hai solo un pin digitale ad 1 o 0 e leggi quello.

Guglielmo

Quindi posso avere solo un comando?
Non riesce tramite seriale a mandare vari comandi ad Arduino?
Ho visto dei video in cui mandano più comandi ma non spiegano cosa han fatto.

La parte da esp a Google l'ho capita. Mi manca come esp interagisce con Arduino per simulare i comandi chhe solitamente io do tramite pulsanti.

Certo che puoi avere più comandi ... ON/OFF di diversi pin ... :smiley:

Guglielmo

gpb01:
Certo che puoi avere più comandi ... ON/OFF di diversi pin ... :smiley:

Guglielmo

ti riferisci ai pin dell'esp o di arduino?

ti spiego come mi immagino la storia, poi dimmi se è così o no:

l'esp riceve il comando e lo invia ad arduino. poi quel comando io lo avrò integrato nel codice e farà quello che deve.

questo è un esempio che ho trovato di un codice da caricare su esp (allego solo la parte saliente):
openDoor è il comando che riceve da adafruit, doorpin è il pin0, quindi quello dell'esp.

void openDoor() {
  digitalWrite(DOOR_PIN, HIGH);
  delay(1000);
  digitalWrite(DOOR_PIN, LOW);

è possibile invece di attivare il pin, cambiare lo stato di una qualsiasi variabile da inviare ad arduino tramite TXe RX?

la mia idea per integrarlo nel codice di arduino è questo:

da:

if ((digitalRead(apertura) == HIGH) and (stato == 0))
  {
    stato = 1;
  }

a:

if (((digitalRead(apertura) == HIGH) or (openDoor == 1)) and (stato == 0))
  {
    stato = 1;
  }

così da dire: se premo il pulsante o arriva il comando: ESEGUI

acuplush:
...l'esp riceve il comando e lo invia ad arduino. poi quel comando io lo avrò integrato nel codice e farà quello che deve.

NO, non conosco applicazioni che funzionano così, l'ESP riceve il comando e LO ESEGUE ... quindi poi ciò che esegue, lo decidi tu, es. mandare alto un pin o inviare qualche cosa ad Arduino, ma l'interprete principale dei comandi è su ESP.

Guglielmo

gpb01:
es. mandare alto un pin o inviare qualche cosa ad Arduino, ma l'interprete principale dei comandi è su ESP.

Guglielmo

questo punto vorrei capire. inviare come? sempre con gli HIGH e LOW dei suoi pin verso i pin di arduino?
avendo bisogno di una decina di comandi come faccio con i pochi pin dell'esp? (e dovendoli avere liberi anche in arduino?

p.s. scusa se mille domande ma mi piace capire le cose :slight_smile:

ad esempio:
mandi semplicemente un byte alla seriale (software) collegata ad arduino e da arduino a seconda del valore esegui l'appropriato comando

Patrick_M:
ad esempio:
mandi semplicemente un byte alla seriale (software) collegata ad arduino e da arduino a seconda del valore esegui l'appropriato comando

ecco, dovrebbe essere esattamente quello che avevo in testa!
quindi tramite RXeTX invio ad arduino qualcosa tipo apertura=1
in arduino avrò già dichiarato la variabile "apertura"
e poi nel codice metterò if apertura=1 ecc...

corretto?
quindi con un esp01, un convertitore di segnale e l'adattatore per programmare l'esp dovrei essere al completo per comandare la mia scheda arduino, giusto?

io "apertura" non lo manderei :slight_smile:

semplicemente stabilisci il valore del byte per ogniuna delle azioni che devi controllare
per cui ad esempio
apertura -> 1
chiusura -> 2
accendi led1 -> 3
spegni led1 ->4
e così via

poi dall'esp invii semplicemente 1 oppure 2 oppure 3....

su arduino nel loop resti in attesa di qualcosa sulla seriale

void loop () {
  if (Serial.available()) {
    byte comando=mySerial.read()
    switch (comando) {
      case 1:
         apertura();
......
........

qualche cosa del genere

Patrick_M:
io "apertura" non lo manderei :slight_smile:

semplicemente stabilisci il valore del byte per ogniuna delle azioni che devi controllare
per cui ad esempio
apertura -> 1
chiusura -> 2
accendi led1 -> 3
spegni led1 ->4
e così via

poi dall'esp invii semplicemente 1 oppure 2 oppure 3....

su arduino nel loop resti in attesa di qualcosa sulla seriale

void loop () {

if (Serial.available()) {
    byte comando=mySerial.read()
    switch (comando) {
      case 1:
        apertura():
......
........



qualche cosa del genere

precisissimo!
e come hardware con quei 3 pezzi ho tutto l'occorrente, giusto?