Mostrare Temperatura & Umidità su uno schermo OLED 128x64 pi
Mostrare Temperatura ed Umidità su uno schermo OLED 128x64 pi
Mostrare Temperatura ed Umidità su uno schermo OLED 128x64 pi
Abitando su un isola sono abituato ad un tasso di umidità abbastanza elevato, sopratutto in estate, la sera è quasi insostenibile.
Ero curioso di sapere quanto fosse il tasso di umidità in casa mia, per poi in un futuro loggare i dati su una scheda SD per comparare i dati con il deumidificatore acceso e non.....una di questo parleremo in seguito!
Oggi parliamo di come mostrare dati su di uno schermo OLED delle dimensioni ridottissime di soli 0,96"
Prepariamo l'occorrente
Cosa serve:
- Arduino nano (o qualsiasi tu abbia a disposizione)
- Schermo OLED 0.96"
- DHT11
- Cavi preferibilmente tipo F-F
Collegamenti
Ora passiamo al collegare i moduli con il nostro Arduino nano.
Avendo a disposizione Pin maschi su Arduino e moduli non ho bisogno di una Breadboard in quanto i collegamenti saranno diretti.
Se nel tuo caso è diverso adattati di conseguenza.
Se nel tuo caso è diverso adattati di conseguenza.
Proseguiamo a collegare come di seguito:
- Arduino 3.3V --- OLED Vcc
- Arduino GND --- OLED GND
- Arduino A4 --- OLED SDA
- Arduino A5 --- OLED SCL
- Arduino D2 --- DHT11 Data
- Arduino 5V --- DHT Vcc
- Arduino GND --- DHT11 GND
O meglio graficamente sarà come segue:
Lo schermo OLED è di solito alimentato a 5V ma per comodità in questo circuito lo alimento con 3.3V in quanto con compromette di molto la luminosità dello schermo.
questo è il mio una volta collegato:
Coding Time!
Il codice è molto semplice, per l'OLED sfrutta la libreria Adafruit SSD1306 mentre essendo che ho un vecchio DHT11 acquistato su amazon da un kit Elegoo uso la loro libreria SimpleDHT (il file zip viene dal mio google drive).
A voi il codice:
Per il resto non c'è molto da dire se non di costruire un bel contenitore, di aggiungere qualche sensore in più e di giocare con le altre funzioni presenti negli esempi della libreria Adafruit.
Il risultato finale è un simpatico e piccolissimo strumento in grado di poterlo installare con una batteria in un piccolo box da tenere in scrivania!
Semplice,pratico e ben fatto:Complimenti!
RispondiEliminaGrazie mille! :)
Eliminaciao! premesso che sono un neofita e che ho eseguito il progetto come splendidamente descritto. Ho un problemino. La temperatura e l'umidità mostrata sul display rimangono fisse. Mi spiego. I valori di temperatura e umidità non si aggiornano ogni 1 secondo come indicato nel delay(1000); ma rimangono invariati a meno che non tolgo e rimetto la corrente. Stando alla regola se per esempio tengo tra le mani il sensore, dovrei vedere la temperatura/umidità cambiare e questo non avviene. il sensore sembra che funziona. chi ha dei suggerimenti?
RispondiEliminaCiao! sembra strano che questo avvenga... hai mica provato a rimuovere la funzione dataShow() e riportare le istruzioni nel loop()?
EliminaBuongiorno, premetto che sono un neofita, ho seguito questo codice alla lettera, quando vado a fare la verifica del codice mi da errore a questa riga
RispondiElimina#error("Height incorrect, please fix Adafruit_SSD1306.h!");
sullo schermo dove si visualizza gli errori appare questo:
OLED_128_64_I2C:11:2: error: #error ("Height incorrect, please fix Adafruit_SSD1306.h!");
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
^~~~~
exit status 1
#error ("Height incorrect, please fix Adafruit_SSD1306.h!");
cosa può essere
scusate l'ho corretto, adesso funziona
Elimina