domenica 22 novembre 2015

Internet Relay Board v2

Questo post e' la continuazione del mio precedente post intitolato  Internet Relay Board v1

In questo post realizzo esattamente la Internet Relay Board ma su PCB anziche' su basetta millefori.




BoM

I componenti usati sono:

  • 1x modulo ESP8266 (nel mio caso ESP8266-01)
  • 1x modulo relay a 3V (SRD-03VDC-SL-C)
  • 4x resistenze da 1K ohm
  • 2x led
  • 1x diodo 1N4007
  • 1x transistor BC547 (NPN)
  • 1x 5V To 3.3V DC-DC Step-Down Power Supply Buck Module AMS1117 800MA
  • 2x morsetti screw-terminal
  • 1x switch a due posizioni
  • 1x pin header maschio (3 pin)
  • 4x file metallici per ponticelli
  • 1x basetta ramata
  • 1x flacone di acido muriatico
  • 1x flacone di acqua ossigenata 36 volumi
  • 1x paglietta per pentole
  • acetone per unghie

Per alimentare la board uso un caricatore riciclato 5V output 1A. 


Schema PCB


Come negli altri post ho utilizzato Fritzing per disegnare lo schematico del PCB
Ho inizialmente utilizzato il routing delle piste automatico e man mano che aggiungevo componenti e piste ho utilizzato il routing manuale per ridurre il numero di ponticelli



Come si vede dalla fiura ho anche aggiunto 4 punti di allineamneto che mi saranno utili nei passaggi successivi

Una volta terminato lo schema del PCB con Fritzing l'ho esportato in PDF e poi stampato con una stampante laser su un foglio di carta fotografica.

NOTA:
Per il procedimento che ho usato io per trasferire il PCB su piastrina ramata e' fondamentale stampare lo schema PCB tramite una stampante laser (NO ink jet) e su un supporto cartaceo poco assorbente (carta fotografica)

NOTA2: 
Ho provato la prima stampa su un foglio di carta trasparente oleata ma ha assorbito troppo il toner e ne ha impedito il corretto trasferimento su piastrina ramata

Qui sotto il circuito esportato da Fritzing 


NOTA:
Quando si esporta il PCB Fritzing genera molti file differenti.
Io ho usitlizzato (quello qui in figura) il file con nome XXXX-etch_copper_bottom.pdf


e qui il circuito stampato su carta fotografica tramite stampante laser




Preparazione PCB


Ci sono molti modi di realizzare un PCB. Ognuno puo' scegliere il metodo piu' adatto alle sue esigenze.
Qui descrivo brevemente il metodo che o usato io con successo.


Pulizia piastrina

Siccome la piastrina ramata si ossida facilmente ne ho pulito la superfice con una paglietta/spugnetta per la pulizia delle pentole




non abbiate paura se il rame si graffia un pochino, cio' sara utile dopo nel processo di corrosione.

Trasferimento stampa PCB


Una volta pulita la piastrina ho ritagliato il la stampa del circuito PCB seguendo il borod nero piu' esterno.

Successivamente ho capovolto la stampa e l'ho applicata sopra la piastrina ramata.

Ho applicato un paio di striscioline di scotch per tenere ferma la stampa sulla piastrina

A questo punto ho fatto riscaldare molto bene un comune ferro da stiro, impostandolo in modo che non generi vapore.

Una volta che il ferro ha raggiunto la massima temperatura ho applicato un panno sopra la stampa/basetta (un comune fazzoletto di cotone va benissimo).

A questo punto ho appoggiato il ferro caldo sopra il panno ed ho esercitato una moderata pressione per 3-4 minuti.

In questo modo il calore del ferro da stiro fa staccare il toner dalla carta fotografica e lo fa depositare sulla piastrina ramata.

A questo punto dopo aver rimosso il ferro da stiro, ho lentamente ed accuratamente rimosso lo scotch e la carta fotografica.

E' importante fare attenzione a non tirar via anche le piste di toner.

Si puo' anche fare questa operazione sotto l'acqua del rubinetto in modo che la carta si stacchi piu' facilmente

NOTA: La piastrina si scalda moltissimo, state attenti a non bruciarvi. Se preferite attendete qualche minuto in modo da farla raffreddare un po'.

Ci sono molti tutorial su Internet. Un esempio e' questo https://www.youtube.com/watch?v=yb7NOmOaXhg

Questo e' il risultato che ho ottenuto io




Come potete vedere alcune tracce non sono perfettamente stampate.

Nesusna paura: con l'ausilio di un pennarello indelebile (quello che si usava per scrivere su CD per chi si ricorda :) ) correggiamo le tracce incomplete in modo da avere un tratto il piu' continuo e coprente possibile




Chiaramente il risultato e' molto migliorabile, ma comunque per un semplice procedimento casalingo senza l'uso di particolari strumenti ritengo che sia piu' che buono. :)




Taglio basetta


In funzione delle dimensioni della basetta ramata utilizzata puo' essere necessaria ritagliarla o rifilarla.

Io ho utilizzato un traforo per legno. Un paio di seghetti si sono spezzati ma comunque sono riuscito a completare il taglio




PS: per essere onesti con queste parte prettamente meccaniche sono un po' scarso, quindi mi sono fatto aiutare da un maestro del traforo :) :)


Erosione PCB


A questo punto, se tutto e' andato bene, abbiamo una basetta delle dimensioni volute con su stampato le tracce del circuito

Adesso e' ora di erodere il rame in eccesso.

Per far cio' ho usato una semplicissima soluzione di acido muriatico ed acqua ossigenata (36 o piu' volumi)



Come notate questo metodo impiega strumenti ed elementi di facilissima reperibilita' e poco costosi.

Ho miscelato i sue liquidi al 50%. Meta' acido muriatico e meta acqua ossigenata

NOTA:  vi consiglio di utilizzare un paio di guanti in plastica per preparare e maneggiare questa soluzione. E' ALTAMENTE corrosiva


A questo punto ho messo la miscela in una vaschetta di plastica ed vi ho immerso la piastrina legata con un filo di ferro.



Il filo di ferro non e' obbligatorio. Io l'ho usato per recuperare la piastrina senza doverla toccare

Lasciate la piastrina nella soluzione per 2-3 minuti o comunque il tempo necessario per erodere tutto il rame non coperto dal toner nero. Se vuoi ogni tanto muovi la piastrina.

Una volta erosa completamente, estraete la piastrina e lavatela bene sotto un flusso d'acqua fredda e corrente

Se tutto ha funzionato bene avete adesso ottenuto il PCB correttamente eroso.



COme vedete tutto il rame e' stato rimosso (si vede il giallo del supporto di plastica) tranne sotto le piste  ricoperte di toner nero.

Come ultimo passo rimuovete il toner con un batuffolo di cotone imbevuto nell'aceto per unghie.
Il toner viene via facilmente e senza nessuno sforzo.

Rilavate nuovamente la piastrina sotto acqua corrente.

Foratura piastrina


A questo punto per completare la preparazione del circuito PCB e' necessario effettuare i fori con una punta da 1 mm di diametro.

Io ho utilizzato un trapano a colonna ma non e' strettamente necessario.
Si ottiene anche una buona foratura con un mini trapano da hobbista.







Montaggio componenti


A questo punto nonci resta che iniziare a montare i componenti sul PCB e ad effettuare le saldature a stagno.






Questo e' il risultato finale che ho ottenuto io





Sostituzione controllo remoto caldaia


A questo punto ho rrealizzato una basetta custom che mi permette di rimpiazzare completamente tutti i componenti usati per il mio  controllo remoto caldaia con raspberry pi come descritto nel post specifico.






In questa versione di controllo remoto con raspberry ho utilizzato una serie di componenti e in figura si vede lo spazio occupato nella scatola nel vano caldaia

Rimpiazzando il rasperry con il modulo ESP8266 ho implementato la stessa funzione ma in uno spazio nettamente inferiore, con un costo inferiore e con un consumo energetico inferiore





Conclusioni


Con questo post concludo il mio ciclo di post sulla realizzazione del controllo caldaia da remoto.

Ho raggiunto il mio obiettivo di poter controllare (ON/OFF) la mia caldaia da riscaldamento tramite il mio smart-phone o via web.

Ovviamente l'Internet Relay Board qui descritta puo' essere utilizzata in una serie variegata di situazione. In sostanza si puo' utilizzare in tutte le situazione in cui c'e'' un carico da controllare (ON/OFF).

Esempio: luci/lampadari di casa, motori elettrici, sistemi di riscaldamento o raffreddamento, etc

Come sempre ogni commento e miglioramento e' ben accetot.

Fatemi sapere se trovate utile queso post e se posso ulteriormente migliorarlo



domenica 20 settembre 2015

Internet Relay Board v1

In questo post descrivo come ho realizzato la mia Internet Relay Board version 1.
Questa e' una piccola board pilotabile via Internet che semplicemente mi permette di controllare l'accensione di un carico da remoto utile per il mio progettino di Caldaia Remota

Quest post e' la continuazione di due post precedenti:

- Test del modulo Wifi ESP8266
- 5V Relay controllato via Internet a basso costo

Rispetto agli articoli precedenti ho apportato delle piccole migliorie al circuito. In particolare questa volta alimento la scheda con un classico alimentatore stile smartphone.
Inoltre il relay e' a 3V e non piu' a 5V come negli articoli precedenti. In questo modo il circuito risulta piu' semplice e facile da realizzare.

Per questa prima versione della IRB ho utilizzato una basetta mille fori (perfboard)



BoM

I componenti usati sono:

  • 1x modulo ESP8266 (nel mio caso ESP8266-01)
  • 1x modulo relay a 3V (SRD-03VDC-SL-C)
  • 4x resistenze da 1K ohm
  • 2x led
  • 1x diodo 1N4007
  • 1x transistor BC547 (NPN)
  • 1x 5V To 3.3V DC-DC Step-Down Power Supply Buck Module AMS1117 800MA
  • 2x morsetti screw-terminal
  • 1x switch a due posizioni
  • 1x pin header maschio (3 pin)
  • 8x file metallici per ponticelli
  • 1x basetta mille fori (70x90 mm)
Per alimentare la board uso un caricatore riciclato 5V output 1A. 

Inoltre ho usato per la preparazione della basetta mille fori:
  • 1 righello
  • 2 pennarelli indelebili (rosso e nero)



Schema Elettrico




Come si vede lo schema e' piuttosto semplice. Ho rappresentato il modulo DC-DC step-down con tre piedini siccome questo componente non esiste in fritzing e non ne ho trovato uno su google.

Ho anche aggiunto tre piedini per poter programmare lo ESP8266 tramiter PC (USB-TTL)

Lo switch S1 e' stato introdotto per rendere la scheda programmabile quando e' installata.
In altre parole una volta che la scheda e' installata nella sua destinazione finale, se vogliamo aggiornare il codice che gira sullo ESP8266 non dobbiamo rimuoverla, ma basta riprogrammarla collegando il PC.
Quindi quando lo switch S1 collega il pin GPIO0 verso massa la scheda e' in modalita' programmazione. 
Al contrario quando collego il GIPO0 verso il led la scheda e' in modalita normale.


Breadboard


Prima di passare alla realizzazione finale su mille fori ho provato il tutto su breadboard











Mille Fori

Per realizzare le tracce del circuito ho usato sempre il software Fritzing con risultati decenti.



Alcuni componenti non sono presenti o anche nel caso in cui siano presenti non sono accurati nelle dimensioni quindi li ho sostituiti con delle semplice piazzole sul lato traccia.

Qui le tracce finali lato bottom e bottom-mirror. Quest'ultimo viene usato dopo per la realizzazione delle tracce sulla basetta mille fori





I piu' espeti potranno facilmente notare che il routing non e' ottimale e sicuramente il circuito puo' essere piu' compatto in termini di spazio.
In questo caso ho fatto il routing manuale siccome ho avcuto alcuni problemi con fritzing. 
Ho cercato di rendere il circuito compatto, ma non troppo altrimenti la realizzazione manuale delle tracce risulta troppo difficoltosa (almeno per le mie capacita' :) ).

Tracce su mille fori

Usando i pennarelli e il diagramma delle tracce (lato bottom-mirror) ho disegnato le singole tracce sulla scheda mille fori.

Ho fatto cosi' per avere una guida per effettuare le saldature e soprattutto la realizzazione con il saldatore delle tracce







Come si vede con il pennarello nero ho segnato le piazzole in cui verranno montati i componenti, mentre in rosso ho segnato le tracce da realizzare con il saldatore.

Ho anche segnato i principali punti (ponticelli) sul lato superiore della mille fori



A questo punto ho iniziato a montare i primi componenti e ad effettuare le saldature a stagno








Ho continuato a montare tutti i componenti fino all'ultimo inclusi i ponticelli. 

Le tracce le ho realizzate in due modi:
  • corte: stagnando la traccia
  • lunghe: usando dei fili da un punto all'atro della traccia per ridurre la stagnatura che e' comunque difficoltosa

Ed ecco infine il lato traccia completato






Guardando a queste saldature e tracce non sono soddisfatto al 100%, pero' dato lo scopo didattico ed amatoriale del progettino possono anche andare.

Comunque non ho problemi ha negare che il mio lato preferito e' il software. Con il saldatore sono sempre stato una schiappa :) :)


Infine ecco la basetta completa lato componenti







Come si vede la basetta usata 70x90 mm e' piu' grande del necessario. Se si vuole basta rifilarla prima di chiuderla in una scatola.

Software


Il software e' ovviamente quello degli articoli precedenti.
Chiaramente per il mio caso specifico l'ho reso piu' completo e resistente.
Lascio a voi l'implementazione della logica di controllo che meglio si adatta al vostro caso

Conslusioni


In conclusione con questo post riesco a rimpiazzare completamente il raspberry-pi usato come controllo caldaia.

Quindi ho raggiunto gli obiettivi iniziali di questo progettino percio' mi ritengo soddisfatto.

Ho gia in mente una versione 2 della IRB su circuito stampato, ma  questo sara' oggetto di un nuovo post.



martedì 1 settembre 2015

5V Relay controllato via Internet a basso costo






Nel mio post precedente ho fatto una panoramica su come iniziare ad usare il modulo ESP8266-01 [http://mancusoa74.blogspot.it/2015/08/test-del-modulo-wifi-esp8266.html]

In due miei vecchi post [Controllo Remoto per Caldaia - Raspberry e Client SW] e [Controllo Remoto per Caldaia - HW] descrivevo la realizzazione HW e SW per un controllo per caldaia via Internet realizzato con Raspberry Pi.
Il tutto e' installato e funzionante a casa mia con molta soddisfazione.

Ovviamente fin dal primo prototipo non ero soddisfatto di usare una risorsa preziosa e costosa come Raspberry Pi per attivare e deattivare un semplice relay.
Finalmente con il modulo ESP8266 posso rimpiazzare completamente il rasperry in questo progetto.

Per chi non lo sapesse il modulo ESP8266 include un microcontrollore e mette a disposizioni dei piedino di GPIO. Funzinalmente esattamente uguale ad Arduino.
Quindi questo modulo Wifi posso collegarlo ad Internet e con un GPIO pilotare il relay collegato alla mia caldaia esattamente come ho fatto con il raspberry pi.

I vantaggi principali sono:

  • uso di un modulo da 3 Euro rispetto al Raspebbry 30 Euro
  • minor consumo energetico (4 batteria AA)
  • minor ingombro 
  • infine cosa a me cara: uso del miglior strumento per la soluzione del problema (tutti possiamo uccidere una mosca con un bazooka ma non e' il modo migliore) 


Dal lato software come vedrete utilizzero gli stessi strumenti usati su raspberry ed in particolar modo il mio client PubNub che gia' ho usato tutto l'anno con successo. Dovro' solo apportare banali modifiche legati alle chiavi PubNub.




Sicuramente ci sono metodi ancora piu' ottimali e chi ha voglia si faccia avanti, sono sempre curioso nell'imparare cose e soluzioni nuove.

Qui sotto una breve descrizione del piccolo progettino




Relay Internet HW

BoM


I componenti sono:




  • 2x resistenze da 1K
  • 1x resistenza da 2K (io ne uso 2 da 1K in serie siccome non ho quella da 2K)


  • 4x pile AA
  • 1x porta batterie AA (riciclato da una vecchia macchinina telecomandata)

 Schema 



Come si puo' vedere lo schema e' molto molto semplice ed i componenti necessari sono pochissimi






Alimentazione

Come si deve della figura il porta batterie AA e' modificato in quanto ha tre fili di uscita. 




Il motivo principale e' che il modulo relay che ho e' a 5V e lo ESP8266 e' alimentato a ~3.3V.
Quindi in questo progettino ho bisogno di due alimentazioni 5V e 3.3V che ricavo dalle 4x batterie AA da 1m5V ciascuna.

Quindi tra il filo azzurro ed il filo nero all'estrema sinistra del porta batterie misuro con il tester circa 5V (le batterie non sono mai essattamente 1,5V)
Tra il filo azzurro e il filo nero in centro misuro circa 3V (2 batterie AA) in ogni caso abbastanza per alimentare stabilmente lo ESP8266.

Chiaramente e' piu' a scopo didattico che altro. Per impieghi piu' seri le 4x AA potrebbero scaricarsi velocemente e quindi e' necessario un circuito di alimentazione adatto. Comunque la sostanza non cambia questo circuito va alimentato a 3V e 5V.



Funzionamento

In questo post non analizzo i collegamenti tra lo ESP8266 e il modulo TTL-USB in quanto sono esattamente gli stessi del post precedente




Come si vede dallo schema (qui un dettaglio) il GPIO2 dello ESP8266 controllo il relay. Siccome il rele necessita' di un controllo a 5V e il GPIO2 e' a 3.3V ho bisogno di un piccolo transistor.

Il collettore del transistor e' collegato a +5V tramite una resistenza e' un led (il led e' opzionale).

La base del transistor e' pilotata dall'uscita GPIO2 dello ESP8266.
Come notate ho anche inserito un resistenza di pull-up (2K).Questo e' dovuto al funzionamento del fimrware dello ESP8266 [http://www.esp8266.com/viewtopic.php?f=13&t=1730] e [https://zoetrope.io/tech-blog/esp8266-bootloader-modes-and-gpio-state-startup]

L'emettitore del transistor e' collegato al piedino di controllo del modulo a relay.

Tutto molto semplice dal punto di vista del circutio. Se usassi un relay a 3V (che non ho) questa parte del circuito non sarebbe necessaria e nemmeno la doppia alimentazione, ma cosi' e' piu' divertente.



Relay Internet SW

Come spiegato nei post lagati al controllo caldaia io adotto un meccanismo non molto comune sui forum che tipicamente e' di far girare il web server su raspberry o arduino.
Lo trovo di stampo vecchio, mi obbliga ad aprire la mia rete all'esterno e a fare un port forwarding.
Ma soprattutto e' architturalmente non corretto. Immaginate se anziche' avere un modulo relay ne hai 50.000.

Comunque architettura software a parte io uso un servizio molto buono e gratuito che si chiama PubNub e quindi anche con il modulo EPS8266 voglio continuare ad usare questo servizio in modo da non dover riscrivere il mio client.

Al momento non c'e' un client PubNub per ESP8266 e quindi usiamo un altro stratagemma.
PubNub fornisce un bridge per client MQTT [http://www.pubnub.com/blog/mqtt-now-supported-by-pubnub/] che sfrutto.

In sostanza io posso avere un sensore che "parla" MQTT  (il releay Internet/EPS8266) ed un client che "parla" PubNub. Il servizio cloud PubNub fa da bridge tra questi due protocolli.

Per me questo e' fantastico in quanto c'e' una buona libreria MQTT per ESP8266 ed il mio client PubNub che usavo con Raspberry [http://mancusoa74.blogspot.it/2014/11/controllo-remoto-per-caldaia-raspberry.html] funziona anche con EPS8266 senza modifiche.


EPS8266 e Arduino IDE

Come visto nell'articolo precedente il modulo ESP8266 e caricato con un firmware che mette a disposizione un'interfaccia AT. Questo e' comodo per semplici test, ma puo' diventare tedioso per cose piu' complicate.

Quindi esistono varie possibilita' tra cui caricare firmware alternativi [https://github.com/nodemcu/nodemcu-firmware] oppure come ho fatto io programmare lo EPS8266 direttamente con l'IDE Arduino [https://github.com/esp8266/Arduino].

In questo modo programmate lo ESP8266 in maniera molto simile se non identica ad Arduino. Molte se non tutte le maggiori librerie sono disponibili.

Per esempio la libreria Wifi [https://www.arduino.cc/en/Reference/WiFi] che normalmente si usa per lo shield Wifi di Arduino e' stata portata su ESP8266 con un API identica.


Sketch


// MQTT Internet Relay
//
// Antonio "monk" Mancuso - July 2015

#include <ESP8266WiFi.h>
#include <MQTT.h>
#include <PubSubClient.h>


const char* ssid = "YOUR_SSID"; //SSID della rete wifi
const char* pass = "YOUR_WIFI_PASSWORD"; //wifi password


//inizializza la connessione al server mqtt
IPAddress mqtt_server(5,153,35,162); //mqtt.pubnub.com che e' il bridge MQTT messo a disposizione da pubnub

//client wifi
WiFiClient wclient;

//mqtt client
PubSubClient client(wclient, mqtt_server);

//funzione di callback invocata quando riceviamo un messaggio MQTT
void callback(const MQTT::Publish& pub) {
  String command = "";
  Serial.print(pub.topic());
  Serial.print(" => ");
  command = pub.payload_string();
  Serial.println(command);

  //logica triviale: se riceviamo il comando ON allora facciamo scattare il relay portando GPIO2 a stato logico HIGH
  //viceversa per il comando OFF 
  // la logica puo' essere complessa a piacere. qui e' semplificata per scopo didattico
  if (command == "ON") {
    digitalWrite(2, HIGH);
    Serial.println("button ON");
  }  else if (command == "OFF") {
    digitalWrite(2, LOW);
    Serial.println("button OFF");
  }
}

//setup del programma che gira sul ESP8266
void setup()
{
  //inizializzazione console
  Serial.begin(115200);
  delay(10);
  Serial.println();
  Serial.println();

  //definizione della callback del client mqtt
  Serial.println("set callback");
  client.set_callback(callback);

  //connessione alla rete wifi
  WiFi.begin(ssid, pass);
  Serial.println("wifi begin");


  //verifichiamo che siamo effettivamente connessi al wifi
  int retries = 0;
  while ((WiFi.status() != WL_CONNECTED) && (retries < 10)) {
    retries++;
    delay(500);
    Serial.print(".");
  }
  
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("Cannot connect to WiFi network");
  }
  else {
    //ok siamo connessi al wifi e ad Internet (con questo metodo non dobbiamo aprire nessuna porta, nessun port forwarding o simili)
    Serial.println("");
    Serial.println("WiFi connected");    

    //stabilimo la connessione mqtt
    if (client.connect("PUBNUB_PUBLISH_KEY/PUBNUB_SUBSCRIBE_KEY/UNIQUE_CLIENTI_ID")) { 
      Serial.println("MQTT connect"); // a questo punto siamo connessi al server mqtt

      //facciamo il subscribe del topic(canale) che vogliamo
      client.subscribe("PUBNUB_PUBLISH_KEY/PUBNUB_SUBSCRIBE_KEY/MQTT_TOPIC"); //adesso il nostro modulo ESP8266 e' pronto per ricevere i comandi dal nostro client via Internet

      Serial.println("CHECKING MQTT CONNECTION");
      if (client.connected() == true) {
        Serial.println("MQTT connected");
      } else  {
        Serial.println("MQTT NOT connect");
      }
  } else {
      Serial.println("Error in MQTT connection");
  } 
 } 
}

void loop()
{
  //il loop e' banalissimo. il client mqtt rimane in ascolto sul canale/topic specificato
  //quando un messaggio viene ricevuto la callback registrata viene invocata
  client.loop();
}

 


Come vedete ho mantenuto lo sketch semplice appositamente per questo articolo che e' rivolto a principianti.
In un caso piu' reale si dovranno implementare nello sketch una serie di controlli di errore in caso di disconnessione dal server mqtt ed implementare la logica voluta.

Tuttavia questo esempio dimostra come sia facilissimo implementare un moderno controllo remote per relay via Internet.

L'unica nota dolente e che lo ESP8266 non e' potente abbastanza per supportare SSL quindi al momento la connessione a MQTT e' in chiaro quindi richiede qualche stratagemma addizionale per rendere la comunicazione un minimo piu' sicura.

In ogni modo mi pare che qualcuno sta provando ad implementare SSL su EPS8266. Quindi anche se queste prime versioni dei moduli non lo supportano sono fiducioso che future versioni avranno una potenza sufficiente a supportare SSL.

Test

Passiamo ora ad un semplice test.

Carichiamo lo sketch tramiter l'IDE arduino




Adesso proviamo a mandare un messagio allo EPS8266. Per comodita' uso la console di PubNub [http://www.pubnub.com/console/] che mi permette di inviare messaggi al mio ESP8266.








Imposto le chiavi di PUBLISH e SUBSCRIBE e il Canale come spiegato prima.

Poi compongo il messaggio da spedire come in figura:

{"mqtt": "ON", "channel":"PUBNUB_PUBLISH_KEY/PUBNUB_SUBSCRIBE_KEY/MQTT_TOPIC"}

Quindo quando premo il pulsante con la freccia in figura (invio) un messaggio MQTT con body ON viene inviato ad uno specifico topic (canale).
Siccome lo ESP8266 e' in ascolto (subscribe) sullo stesso topic il messagio ON viene ricevuto




siccome alla ricezione del comando ON il GPIO2 viene messo a HIGH la il transistor va in saturazione quindi il led rosso si accende ed il rerlay scatta




Allo stesso modo se inviamo il comando OFF.





il GPIO2 viene messo a LOW e quindi il transistor e' interdetto, il led si spegne ed il relay torna nella posizione originale




Come menzionato in precedenza ora ho tutti gli elementi per rimpiazzare il mio controllo remoto per caldaia basato su raspberry con un piccolo modulo ESP8266 ottenendo la stessa funzionalita' ad una frazione del costo e con un consumo energetico minore.

Ovviamente questo relay controllato via Internet puo' essere usato in mille modi diversi.

Se avete delle idee sul come usarlo e dei suggerimenti fatemi sapere. Come sempre sono aperto a nuovi spunti