Vediamo questa interessante scheda relé basata su ESP8266.
Il kit è fornito con un alimentatore di tensione a 220V, non preinstallato. La casa consiglia di installare il modulo, per sicurezza, in serie ad un fusibile da 3A.
Il relè, pur sopportando carichi di 10A, è fornito dal produttore della scheda per carichi non superiori a 3A a 220V, quindi poco più di 600W. Non è un relè a contatti puliti, ma è pronto per la connessione diretta di un carico a 220V: notare le lettere N-L-L in corrispondenza del connettore retè (dove N significa Neutral e L significa Line).
L’esecuzione dello sketch “ChackFlashConfig” fornito con il core ESP fornisce i seguenti risultati:
Flash ide size: 1048576
Flash ide speed: 40000000
Flash ide mode: QIO
La scheda ESP8622 montata ha 1Mb di flash memory.
Lo scopo dell’articolo è di mostrarne in funzionamento con Souliss, ma vediamolo prima con il firmware originale.
All’avvio, come di consueto per il core ESP8266, il sistema parte in modlità AP, infatti eseguendo la scansione wifi vedremo una rete che inizia per ESP…
Ci colleghiamo e poi visitiamo con il browser l’indirizzo http://192.168.4.1 Compariranno le pagine seguenti.
Nella scheda dedicata alla scansione delle reti wifi, scegliamo la nostra home wifi, inseriamo la password e salviamo (Pulsante Benutzen). Spegniamo e riaccendiamo la scheda relè, e procediamo alla ricerca dell’indirizzo IP fornito dal nostro router all’ESP8266. Questa potrebbe essere un’operazione fastidiosa, quindi muniamoci di un pizzico di pazienza.
Possiamo entrare sul nostro router di casa e cercare la lista dei dispositivi connessi, oppure usare l’App Android FING.
In questo caso basterà fare una scansione e cercare il dispositivo identificato come “Espressif”.
La scheda relè ex-store ESP8266 è fornita con firmware proprietario. E’ stato molto semplice avviarla e configurarla con la rete wifi di casa, purtroppo la gestione del relè a bordo non è stata proprio immediata. Per motivi a noi sconosciuti, inizialmente lo switch a video sembrava non avere effetto sul relè. Dopo un po’, invece, ha iniziato a funzionare.
Probabilmente sono problemi di ESP8266, il cui core, alla data attuale, a volte soffre di questo tipo di problemi. Molto interessante la possibilità di inserire a video pezzi di codice personale, e la possibilità di integrare immediatamente la scheda in un sistema domotico con il protocollo MQTT.
Per i test abbiamo con MQTT abbiamo inserito l’url del broker iot.eclipse.org (sulla porta di defaul 1883, senza nome utente e password) ed usando l’App Android My MQTT abbiamo sottoscritto il topic ESP8266/#
Vedere foto.
Fatta questa breve introduzione, veniamo al succo dell’articolo: usare questo prodotto ESP con Souliss.
Ci procuriamo un convertitore USB seriale (del tipo cp2102), e lo colleghiamo al connettore presente sulla scheda ESP8266 WiFi Relay V3. Sono sufficienti tre pin: 3.3V, TX, TR.
Vedere foto sotto.
Questi sono i GPIO disponibili sul connettore: GPIO0, GPIO2 (direttamente collegato al led blu), GPIO4, GPIO5 (rispettivamente pin 5 e 4. Si, invertiti.), GPIO14, GPIO16.
GPIO12 e GPIO13 non sono esposti, e vengono usati per attivare e disattivare il relè bistabile onboard.
Il relè bistabile non consuma nulla in fase di chiusura, e per cambiare posizione ha bisogno di un piccolo impulso sul GPIO12 per la chiusura e sul GPIO 13 per l’apertura.
Lo sketch Souliss proposto in questo articolo fornisce il supporto sulla scheda in prova per:
relè di bordo, interruttore bistabile, sensore di umidità e temperatura DHT22.
Ovviamente tutto è il controllabile da SoulissApp.
Un altro sketch fornisce invece anche il supporto al Cloud di Adafruit: io.adafruit.org.
E’ molto semplice configurarlo ed avere la propria dashboard con grafico di temperatura ed umidità ed un pulsante in grado di controllare il relè onboard.
Oltre al relè presente sulla scheda è possibile collegare altri relè esterni, basterà una economica scheda relè 5V (quelle per le quali è indicata la compatibilità con Arduino).
In tale caso sarà possibile disporre dei seguenti GPIO, presenti sul connettore:
GPIO0: pin 0, è lo stesso pin che deve essere portato a GND prima per fare entrare ESP in modalità programmazione;
GPIO2: pin 2, è collegato al LED BLU onboad;
GPIO4: pin 5;
GPIO5: pin 4;
GPIO14: pin 14, nell’esempio è usato come input, per commutare il relè ON/OFF;
GPIO16: pin 16, nell’esempio contrassegnato con MQTT è usato per la connessione del sensore di umidità e temperatura DHT22;
GPIO1: non usato;
GPIO12: pin 12, non presente sul connettore. E’ connesso internamente al pin ON del relè;
GPIO13: pin 13, non presente sul connettore. E’ connesso internamente al pin OFF del relè;
GPIO15, non usato.
NOTE:
– Nello sketch predisposto per funzionare con il portale io.adafruit.org, è necessario:
— inserire il proprio username e la propria key nel file user.h;
— se caricato su più di un nodi, è necessario modificare il nome dei feed (basta sbirciare un po’ nel codice per trovare le righe da modificare), per evitare comportamenti inaspettati;
– Ogni ESP8266 WiFi Relay V3 programmata con uno dei due sketch costituisce un nodo Souliss. Al primo avvio non è configurato, quindi parte in modalità AP (Acces Point), la rete wifi creata inizia per “ESP” e la pagina di configurazione si trova all’indirizzo 192.168.4.1;
– Il primo nodo deve essere configurato come Gateway;
– I nodi successivi dovranno essere configurati come Peer;
– Ad ogni aggiunta di un nodo il database di SoulissApp deve essere aggiornato.
– Tutti i nodi costituiranno una rete Souliss, e tutti potranno essere comandati con SoulissApp.
– Collegando il PIN0 a GND per almeno 15 secondi il nodo resetta la propria EEPROM. Al successivo riavvio potrà essere riconfigurato. E’ consigliabile accendere e configurare un nodo ESP8266 alla volta.
Il PIN 5 del connettore (GPIO14) è configurato come input e può essere collegato ad un interruttore classico (Vimar, BTicino etc…). Attenzione, non un pulsante, ma proprio un interruttore.
Se invece vi è necessità di usare un pulsante, allora basterà modificare la riga:
 DigIn2State(PIN_SWITCH, Souliss_T1n_ToggleCmd, Souliss_T1n_ToggleCmd, SLOT_RELAY_0);
in
DigIn(PIN_SWITCH, Souliss_T1n_ToggleCmd, SLOT_RELAY_0);
Ottima scheda, una delle poche soluzioni pronte da montare sulla linea 220V disponibili. I contatti connessi direttamente alla 220V sono molto vicini al bordo della scheda, e non sono protetti in alcun modo, Attenzione alle scosse.
Gli sketch proposti sono indicativi di un utilizzo tipico, ma in base al tipo di configurazione – ad esempio – del punto luce da comandare (switch, deviatore, pulsante) sarà necessario fare qualche modifica al codice. Per tali interventi rimanto al wiki ufficiale (https://github.com/souliss/souliss/wiki ed al gruppo ITA: https://groups.google.com/forum/#!forum/souliss-it, ENG: https://groups.google.com/forum/#!forum/souliss
Nota 11/04/2017.
Funziona l’upload degli sketch via OTA. Per il codice si rimanda agli esempi forniti con Souliss.
Per quanto riguarda il primo upload via cavo, nell’IDE Arduino occorre impostare:
Generic ESP8266 Module
Flash Mode DIO
Flash Frequency 80MHz
CPU Frequency 160MHz
Flash Size 1M (256K SPIFFS) [importante]
CODICE
https://github.com/fazioa/Souliss_sketch/tree/master/fazioa/LAB/ESP_OneRelay_exStore-sketches