Mostrare Temperatura & Umidità su uno schermo OLED 128x64 pi

Mostrare Temperatura ed Umidità su uno schermo OLED 128x64 pi

schermo LCD

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 + Schermo LCD + DHT11


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.

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:

Arduino + Schermo LCD + DHT11 wiring

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:


Arduino + Schermo LCD + DHT11 final


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:





Nella funzione dataShow() non facciamo altro che  impostare la grandezza, il colore per poi mostrare la temperatura e l'umidità con la funzione display.print() con update impostato ogni secondo.

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!



Arduino + Schermo LCD + DHT11 powered



Spero il tutorial vi sia piaciuto, lasciatemi qualche commento se trovate qualcosa che non va o se lo migliorate! 


E Non Dimenticare Di Iscriverti!😇


un noob come me





Commenti

  1. Semplice,pratico e ben fatto:Complimenti!

    RispondiElimina
  2. ciao! 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?

    RispondiElimina
    Risposte
    1. Ciao! sembra strano che questo avvenga... hai mica provato a rimuovere la funzione dataShow() e riportare le istruzioni nel loop()?

      Elimina
  3. Buongiorno, 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

    #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

    RispondiElimina

Posta un commento

Potrebbe interessarti anche:

Controllare un Relay con Arduino in base alla temperatura

Stazione Meteo Fatta in casa Con Arduino

Translate