Show Temperate and Humidity on an OLED screen 128x64 pi
Show Temperate and Umidity on an OLED screen 128x64 pi
Show Temperate and Umidity on an OLED screen 128x64 pi
Living on an island I'm used to a fairly high humidity rate, especially in summer, the evening is almost unbearable.
I was curious to know how much moisture saturation (%) was in my house, then in the future logging data on an SD card to compare the data with the dehumidifier switched on and not ..... but we will talk about this later on!
Today we talk about how to display data on an OLED screen of the smallest size of just 0.96 "
Let's Prepare the Soup
What you need:
- Arduino nano (or any other you have available)
- OLED Screen 0.96"
- DHT11 module
- Cables F-F type (or M-M in case on Arduino UNO)
Wiring Up
Now let's connect the modules with our Arduino Nano.
Having Male Pin on Arduino and Modules I do not need a Breadboard as the links will be direct.
If in your case it is different adapt accordingly.
Having Male Pin on Arduino and Modules I do not need a Breadboard as the links will be direct.
If in your case it is different adapt accordingly.
Let's connect as following:
- 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
Or grafically better shown below:
The OLED screen is usually powered at 5V but for comfort in this circuit I'll feed it with 3.3V as it does not compromises the brightness of the screen.
This is mine once connected:
Coding Time!
The code is very simple, OLED uses the Adafruit SSD1306 library while I had an old DHT11 bought on Amazon from an Elegoo kit I use their SimpleDHT library (the zip file comes from my google drive).
To you the code:
To you the code:
In the dataShow () function we only set the size, color then show the temperature and humidity with the display.print () function with update set every second.
For the rest there is not much to say except to build a nice container, to add some more sensors, and to play with other features in the examples of the Adafruit library.
The end result is a cute and tiny tool that can be installed with a battery in a small box to keep in the desk!
I hope You enjoyed the Tutorial, leave some comments if you find something wrong or improve it!
This was just what I was looking for.
ReplyDeleteI made a few changes to suit myself.
I changed the text to 3 and modified the display slightly to make it easier to read.
I also added the readDht line into the void dataShow to update the temp every 1 second.
#include
#include
#include
#include
#include
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 32)
//#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
int pinDHT11 = 2;
SimpleDHT11 dht11;
byte temperature = 0;
byte humidity = 0;
byte data[40] = {0};
void setup() {
// put your setup code here, to run once:
if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
display.print("Read DHT11 failed");
return;
}
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
}
void loop() {
// put your main code here, to run repeatedly:
dataShow();
}
void dataShow(void) {
dht11.read(pinDHT11, &temperature, &humidity, data);
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(0,5);
display.clearDisplay();
// display.println("OLED DHT TEST");
display.print("Temp ");
display.println(temperature);
// display.println(" C");
display.print("Hum ");
display.println(humidity);
// display.println(" %");
display.display();
delay(1000);
}
Thanks for sharing the original code.
Greg
Im glad you found it useful!
DeleteThank you for sharing your modification! :)
Renato
would you give the code for reading temp humidity data from ble 33 sense as it has integrated sensor HTS
ReplyDelete