lunedì 4 gennaio 2016

Recenti battaglie con ESP8266


Dopo una lunga inattività blogghereccia, provo a ricominciare a documentare alcune delle esperienze che ho fatto in questo lungo periodo di assenza dai social.
Una delle ultime fide alle quali ho dedicato  del tempo, è stata quella di domare la scheda ESP8266-01, il modulo riportato in foto qui a fianco.
Grande come un francobollo (forse meno!) la schedina monta un microcontrollore a 40Mhz di tutto rispetto e consente (dopo che sarai riuscito a domarla!!) di avere semplicemente una connessione internet ovunque tu abbia una seriale disponibile. Infatti puo' essere collegata a qualsiasi periferica o microprocessore, o computer, soltanto collegando GND TX ed RX, in questo modo si potra' accedere ad internet attraverso il WiFi standard per la quale questa meravigliosa scheda è stata progettata.

Purtroppo chi ha commissionato il progetto, doveva avere necessita' soltanto di un paio di PIN del microprocessore, magari e' stata utilizzata come interruttore remoto, oppure come controllo remoto della temperatura. Sta di fatto che, sebbene il microcontrollore ESP8266 che è il chip contenuto nella scheda, abbia a disposizione molti PIN, la circuiteria ne mette a disposizione solo 2, GPIO0 e GPIO2.

Sebbene molti blog riportano tanti esperimenti e circuiti dedicati, ho trovato in pochissimi Blog la descrizione  dettagliata di come fare la programmazione della schedina; Questo fatto mi fa pensare che la maggior parte dei blasonati blog in giro per la rete, in effetti sia soltanto online per produrre contenuti a cottimo, senza effettivamente testare quanto descritto nei tutorial pubblicati. Il lavoro maggiore per chi ha la passione del Maker, è proprio quello di mediare le tante ciarlonerie che si trovano in giro per ottenere il risultato desiderato.
Dico questo perchè dopo aver letto una diecina di blog e tutorial in giro, in nessuno ho trovato la semplice descrizione di come fare per programmare VERAMENTE la scheda. La maggior parte ti descrive come ricevere i dati, ma se prima non la programmi....c'è poco da ricevere!!!

Quindi come si fa?

Questo di seguito e' il circuito da montare per poter programmare la schedina. Vanno montati due pulsanti (ma si puo' fare anche facendo corto tra due fili, tanto serve soltanto per la fase di programmazione, se sei bravo col codice e ti funziona tutto alla "prima botta" puoi anche montare tutto volante e fare contatto tra due fili)
Per mettere il microcontrollore in modalità programmazione si deve mettere a GND in PIN  GPIO0 durante la fase di accensione oppure durante il Reset (secondo pulsante).
Quindi collegato il modulino e preparato lo sketch sulla IDE di Arduino, basta premere e tenere premuto il pulsante P1 (GPIO0 - GND) e poi premere P2 (RST - GND) - Rilasciare P2 e in fine  rilasciare P1 ma solo  dopo iniziato l'upload del binario

Questa notizia, direi quasi banale, e' fondamentale da conoscere per poter inserire il proprio codice nel microcontrollore, ma, controllate voi, nessuno lo spiega chiaramente, quindi per poterlo fare ho perduto giorni di prove senza risultato.
Adesso sappiamo come fare a inserire il codice nel modulo.
Alla prossima puntata, un esempio di come utilizzare il modulino in un progettino.
Ciao

venerdì 12 settembre 2014

Sensore di Corrente - progetto di sistema di analisi consumi elettrici


Confrontandomi con un amico proprio ieri sera, abbiamo parlato di un possibile sviluppo di un sistema che permetta l'analisi dei consumi elettrici di una abitazione (ma e' estendibile senza difficolta' anche ad una azienda medio-grande).

Il primo scalino da superare e' immaginarsi un sistema che non sia invasivo sul circuito elettrico pre-esistente, per evitare lunghi e costosi interventi tecnici, ma sperimentare un qualcosa di semplice ed il più possibile di immediato montaggio.
Per questo ci vengono in aiuto i nuovi sensori di corrente toroidali costruiti per  abbracciare letteralmente il conduttore di alimentazione da intercettare (possibilmente) all'altezza dei contatori.
Questi sensori funzionano come le pinze amperometriche molto note ad elettricisti ed impiantisti in generale, uno strumento che misura la corrente assorbita da un impianto, utilizzati, appunto, senza inserimento dello strumento nel circuito elettrico.
Come si puo' capire osservando la figura, il sensore si apre in modo da poter abbracciare il cavo sul quale effettuare la misura dell'assorbimento elettrico. Sul jack montato al sensore si troveranno i segnali ricevuti dal sensore stesso. Infatti, allo stesso modo di un tradizionale trasformatore di alimentazione,  il sensore sfrutta l'effetto magneticoelettrico di un cavo percorso da corrente elettrica, che sviluppa un sensibile campo magnetico intorno ad esso. Il campo magnetico viene intercettato dalla bobina costruita in modo da circondare il cavo, come si vede dalla figura sopra. Ai capi della bobina si potra' cosi rivelare una corrente elettrica, proporzionale a quella che scorre nel cavo da esaminare, e dipendente dalle modalita' costruttive della bobina stessa.
Per poter misurare questa corrente (la cui intensita' massima dipende dai dati costruttivi della bobina ed e' quindi nota a priori) possiamo convertirla in tensione in maniera che possa essere facilmente misurata da un sistema costruito, per esempio con Arduino, che e' dotato di una serie di ingressi analogici (che quindi puo' misurare grandezze di tensione diverse nel campo tra 0 e 5 Volt).
Dovremo  a questo punto pensare al circuito elettrico del nostro sistema.
Il problema che incontriamo subito e' che Arduino non puo' misurare tensioni negative, infatti come abbiamo detto, le sue porte analogiche possono misurare tensioni variabili da 0 a 5 Volts.
Possiamo percio' creare un partitore di tensione che elevi la soglia dello 0 Volt di riferimento per Arduino discriminata dalla porta Analogica alla quale verra' collegato il sensore.
Costruiremo quindi un circuito come questo 
Al centro del partitore di tensione potremo misurare 2,5 Volts , che verranno collegati ad un capo della resistenza di carico, mentre all'altro capo misureremo la tensione attraverso Arduino che sara' presente all'altro capo della resistenza di carico.
La Resistenza di Carico e' quel componente che, nel nostro circuito, avra' il compito di far scorrere la corrente prodotta dal sensore immerso nel campo magnetico prodotto dallo scorrere della corrente nel circuito che vogliamo misurare. Utilizzando il partitore di tensione, faremo sentire ad Arduino il valore di 0 Volts della tensione alternata prodotta dal sensore, ma lui (Arduino) leggera' 2,5 Volts rispetto al suo sistema di riferimento, mentre il valore negativo di tensione prodotto dal  sensore quando l'onda sinusoidale scorrera' in campo negativo, sara' un valore prossimo allo 0 Volts del sistema di riferimento di Arduino.
Sara' facile capire quanto sopra leggendo il grafico delle tensioni nella figura, dove l'onda Blu e' quella della tensione che raggiungera' il Pin Analogico di Arduino, mentre mentre l'onda Arancione rappresenta la tensione ai capi della Resistenza di Carico se misurata senza il riferimento GND di Arduino (cioe' solo sul sensore)