tempo fà ho realizzato con l'esp8266 ed un display OLED SSD1306 un monitor dell'energia, prelevata, consumata, scambiata ecc..
l' OLED SSD1306 è un 0.96 pollici con 8 linee con 16 cartteri
è possibile utilizzare un I2C 2004 che ha 4 linee con 20 caratteri
i due display si connettono tramite 4 fili - positivo, negativo, SDL. SDA
L'ESP8266 và programmato come dalla guida del modding sonoff (và utilizzato il giusto firm per la capacità dell'esp8266)
una volta programmato l'esp8266 e connesso al display (okkio che il display potrebbe alimentarsi ad una tensione differente dall'esp)
collegato le line + - SDA SCL
creare in var\www\MyScripts il file lcd.sh come di seguito
#!/bin/sh
### lcd
curl -s http://192.168.0.190/control?cmd=oledcmd,clear
# import live produzione
x1=`sudo pool123s power grep "^1\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
curl -s "http://192.168.0.190/control?cmd=oled,1,1,Produz.+$x1+w"
# import live consumi totali
x2=`sudo poolerconsumi 2 power grep "^2\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
curl -s "http://192.168.0.190/control?cmd=oled,2,1,Consumi+$x2+w"
# import live prelievi
x3=`sudo eflowlive whin grep "^3\(.*W\)" | egrep -o '[0-9]*(\.)'`
curl -s "http://192.168.0.190/control?cmd=oled,3,1,Preliev+$x3+w"
# import live immissioni
x4=`sudo eflowlive whout grep "^4\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
curl -s "http://192.168.0.190/control?cmd=oled,4,1,Immisio+$x4+w"
# import live autoconsumo
# x5=`sudo eflowlive selfc grep "^5\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
curl -s "http://192.168.0.190/control?cmd=oled,6,1,Autocons+$x5+w"
i 192.168.0.190 vanno modificati con il proprio indirizzo dell'esp che riceverà e visualizzerà i dati
le righe dopo le x interrogano i dati come nel commentato
la righa che inizia con curl - s invia il dato all'esp con il primo valore numerico è la linea il secondo è la colonna il successivo campo alfa compone un testo con il valore letto e il valore w
chiaramente si posso inserire e visualizzare i valori che più fanno comodo o addirittura fare due display...
in /etc/crontab inserire
*/1 * * * * root /var/www/MyScripts/lcd.sh
*/1 * * * * root sleep 20; /var/www/MyScripts/lcd.sh
*/1 * * * * root sleep 40; /var/www/MyScripts/lcd.sh
così come scritto fà l'aggiornamento ogni 20 secondi, per farlo ogni minuto lasciare solo la prima riga
questo è il risultato
volendo si può inserire anche un DHT22 per leggere la temperatura, solo che questa va inserita nel menù dell'esp come si legge qui
http://www.letscontrolit.com/wiki/index.php/OLEDDisplay
scusate se ho scritto in maniera molto stringata ma sono torato ora dal lavoro....
ciao