Comprehensive Project: Arduino Uno Temperature and Humidity Meter

Comprehensive Project: Arduino Uno Temperature and Humidity Meter
Performance Parameters① Main Control Chip: ATmega328P② Digital Input/Output Pins: 14③ PWM Pins: 6④ Storage (Code Space) 32KB⑤ RAM (Runtime Storage) 2KB; EEPROM (Power-off Storage) 1KB⑥ Crystal Oscillator 16MHzOnline Simulation: https://wokwi.com/
Arduino Uno Tutorial ①: Install Arduino IDE
Arduino Uno Tutorial ②: Development Board and LED Testing Arduino Uno Tutorial ③: Button Control LED, with Practice Questions Arduino Uno Tutorial ④: Analog Quantity, Using ADC to Measure Voltage Arduino Uno Tutorial ⑤: External Interrupt, with Practice QuestionsArduino Uno Tutorial ⑥: Serial Communication, Sending and ReceivingArduino Uno Tutorial ⑦: 0.96 Inch OLED Screen Arduino Uno Tutorial ⑧: 0.96 Inch OLED Screen Chinese & Image DisplayArduino Uno Tutorial ⑨: DHT11 Temperature and Humidity SensorArduino Uno Tutorial ⑩: Comprehensive Project – Temperature and Humidity Meter
(1) IntroductionWe have previously learned about the OLED screen and DHT11 temperature and humidity sensor, so we can create a simple temperature and humidity meter project that displays DHT11’s temperature and humidity data through the OLED screen.OLED Tutorial: 【Arduino Uno Tutorial】 (VII) 0.96 Inch OLED Screen DHT11 Tutorial: 【Arduino Uno Tutorial】 (IX) DHT11 Temperature and Humidity Sensor(2) Program① Import Library Files
#include <dht11.h>#include <U8g2lib.h>#include <Wire.h>
② Define SCL Pin A5, SDA Pin A4 Set U8G2 Screen Library Pins, and Define DHT11 Sensor and Pins
#define BOARD_I2C_SCL   A5#define BOARD_I2C_SDA   A4   U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ BOARD_I2C_SCL, /* data=*/ BOARD_I2C_SDA, /* reset=*/ U8X8_PIN_NONE);  dht11 DHT11;//Define Sensor Type#define DHT11PIN 2//Define Sensor Connection Pin.
③ Define the Character Pattern for the Word “Temperature and Humidity”
uint8_t day[][32] ={{0x00,0x00,0xC4,0x1F,0x48,0x10,0x48,0x10,0xC1,0x1F,0x42,0x10,0x42,0x10,0xC8,0x1F,0x08,0x00,0xE4,0x3F,0x27,0x25,0x24,0x25,0x24,0x25,0x24,0x25,0xF4,0x7F,0x00,0x00},/*"Temperature",0*/{0x00,0x00,0xE4,0x1F,0x28,0x10,0x28,0x10,0xE1,0x1F,0x22,0x10,0x22,0x10,0xE8,0x1F,0x88,0x04,0x84,0x04,0x97,0x24,0xA4,0x14,0xC4,0x0C,0x84,0x04,0xF4,0x7F,0x00,0x00},/*"Humidity",1*/{0x80,0x00,0x00,0x01,0xFC,0x7F,0x44,0x04,0x44,0x04,0xFC,0x3F,0x44,0x04,0x44,0x04,0xC4,0x07,0x04,0x00,0xF4,0x0F,0x24,0x08,0x42,0x04,0x82,0x03,0x61,0x0C,0x1C,0x70},/*"Degree",2*/};
④ Initialize Function Set Serial Communication, Baud Rate 115200 Set U8G2 Initialization, and Set Font
void setup(){    Serial.begin(115200);    Serial.println("Init u8g2 ....");  u8g2.begin();  u8g2.setFont(u8g2_font_ncenB08_tr); //Set Font}
⑤ Loop Function Set temp and humi Two Integer Variables DHT11 Read Sensor Information Save DHT11 Sensor Data in Variables Each Time the Screen is Updated, Clear the Cache U8G2 Set Chinese and Variables, and Upload the Cache to the Screen
void loop() {  int temp = 0;  int humi = 0;  DHT11.read(DHT11PIN); //Update all sensor information    humi = DHT11.humidity;  temp = DHT11.temperature;   u8g2.clearBuffer();  //Clear Cache     u8g2.drawXBM(2,2,16,16,day[0]);  u8g2.drawXBM(18,2,16,16,day[2]);  u8g2.drawXBM(2,30,16,16,day[1]);  u8g2.drawXBM(18,30,16,16,day[2]);  u8g2.setCursor (50, 14);  u8g2.println(temp);  u8g2.setCursor (50, 42);  u8g2.println(humi);   u8g2.sendBuffer();   Serial.print("Current Temperature (℃): ");  Serial.println(temp);  Serial.print("Current Humidity (%): ");  Serial.println(humi);   delay(2000);}
⑥ Phenomenon Display

Comprehensive Project: Arduino Uno Temperature and Humidity Meter

⑦ Complete Code
#include <dht11.h>//Import DHT11 Library#include <U8g2lib.h>#include <Wire.h>#define BOARD_I2C_SCL   A5#define BOARD_I2C_SDA   A4   U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ BOARD_I2C_SCL, /* data=*/ BOARD_I2C_SDA, /* reset=*/ U8X8_PIN_NONE);  /********************###Define###********************/dht11 DHT11;//Define Sensor Type#define DHT11PIN 2//Define Sensor Connection Pin. uint8_t day[][32] ={{0x00,0x00,0xC4,0x1F,0x48,0x10,0x48,0x10,0xC1,0x1F,0x42,0x10,0x42,0x10,0xC8,0x1F,0x08,0x00,0xE4,0x3F,0x27,0x25,0x24,0x25,0x24,0x25,0x24,0x25,0xF4,0x7F,0x00,0x00},/*"Temperature",0*/{0x00,0x00,0xE4,0x1F,0x28,0x10,0x28,0x10,0xE1,0x1F,0x22,0x10,0x22,0x10,0xE8,0x1F,0x88,0x04,0x84,0x04,0x97,0x24,0xA4,0x14,0xC4,0x0C,0x84,0x04,0xF4,0x7F,0x00,0x00},/*"Humidity",1*/{0x80,0x00,0x00,0x01,0xFC,0x7F,0x44,0x04,0x44,0x04,0xFC,0x3F,0x44,0x04,0x44,0x04,0xC4,0x07,0x04,0x00,0xF4,0x0F,0x24,0x08,0x42,0x04,0x82,0x03,0x61,0x0C,0x1C,0x70},/*"Degree",2*/}; void setup(){    Serial.begin(115200);    Serial.println("Init u8g2 ....");  u8g2.begin();  u8g2.setFont(u8g2_font_ncenB08_tr); //Set Font} void loop() {  int temp = 0;  int humi = 0;  DHT11.read(DHT11PIN); //Update all sensor information    humi = DHT11.humidity;  temp = DHT11.temperature;   u8g2.clearBuffer();  //Clear Cache     u8g2.drawXBM(2,2,16,16,day[0]);  u8g2.drawXBM(18,2,16,16,day[2]);  u8g2.drawXBM(2,30,16,16,day[1]);  u8g2.drawXBM(18,30,16,16,day[2]);  u8g2.setCursor (50, 14);  u8g2.println(temp);  u8g2.setCursor (50, 42);  u8g2.println(humi);   u8g2.sendBuffer();   Serial.print("Current Temperature (℃): ");  Serial.println(temp);  Serial.print("Current Humidity (%): ");  Serial.println(humi);   delay(2000);}
This Arduino Uno Beginner Tutorial is complete.
END

Free Application Development Board

Comprehensive Project: Arduino Uno Temperature and Humidity Meter

Submission/Promotion/Cooperation/Add Group Please Scan to Add WeChat
(Please indicate your intention, if adding to the group, please indicate city-name-industry position information)
Comprehensive Project: Arduino Uno Temperature and Humidity Meter

DIY Activities in the Breadboard Community are Ongoing!👇

https://mbb.eet-china.com/forum/topic/147007_1_1.html

Community
Activity
Event
Ongoing
Comprehensive Project: Arduino Uno Temperature and Humidity Meter

Comprehensive Project: Arduino Uno Temperature and Humidity Meter

Share your DIY electronic designs on the Breadboard Community Blog/Forum, and add the 【DIY Electronics】 tag when publishing articles, no word limit, articles will be reviewed by the community, and rich rewards will be given to you!

↓ Scan to participate

Comprehensive Project: Arduino Uno Temperature and Humidity Meter

【Prize Settings】

First Prize (1 person): DJI Neo Drone, Xiaomi Redmi Note 13 Pro, Hikvision NAS Mage 20 PRO… (Choose one)Second Prize (Unlimited number): Fluke F15B PRO MAX Multimeter, Huawei WATCH FIT 2… (Choose one)Third Prize (Unlimited number): Xiaomi Mi Band 9 NFC Edition, Xiaomi Mini Fascia Gun 2C, Worth ¥300 Electronic Common Tool Gift Package… (Choose one)
Participation Prize: All participants can receive 500 E-Coin rewards!
Over Ten Thousand Reward: If a single article/video has over ten thousand views on MBB WeChat account, each article will receive1000 E-Coin rewards (E-Coin can be exchanged for prizes in the mall, data statistics deadline is 2025.2.28, limited to the first 20 articles, sorted by the time of publication in MBB community, personal cumulative cap of 10,000 E-Coin rewards)
E-Coin can be exchanged for commonly used tools and exquisite gifts in the E-Coin Mall (https://estore.eet-china.com/)!

Comprehensive Project: Arduino Uno Temperature and Humidity Meter

【Article Requirements】

1、Content RequirementsOriginal, must be related to the electronics industry, and first published on the internet

2、Content should include: design ideas, finished product display (such as circuit principles, function display, cost control plans or lists, code, etc.) Content involving core intellectual property may not be displayed.

3. During the event, the same ID can participate multiple times, and multiple works can accumulate scores under the same quality conditions.

Event Time: 2024.11.13 – 2025.02.13

Comprehensive Project: Arduino Uno Temperature and Humidity MeterClick to read the original text, learn about the event details!

Leave a Comment

×