Devices & Components
Arduino Nano
TM1637 Display
DHT11 Temperature & Humidity Sensor (4 pins)
Software & Tools
Arduino IDE
Project description
Code
Temperature and Humidity Monitoring on Dual 7-Segment Display using Arduino Nano and DHT11
cpp
/* Project Title: Temperature and Humidity Mon
1#include <DHT.h> 2#include <DHT_U.h> 3#include <TM1637Display.h> 4 5// ---------------- DHT11 ---------------- 6#define DHTPIN 2 // DHT11 signal pin connected to D2 7#define DHTTYPE DHT11 8DHT dht(DHTPIN, DHTTYPE); 9 10// ---------------- TM1637 Displays ---------------- 11#define CLK1 3 // First display CLK pin 12#define DIO1 4 // First display DIO pin 13#define CLK2 5 // Second display CLK pin 14#define DIO2 6 // Second display DIO pin 15 16TM1637Display display1(CLK1, DIO1); // For temperature 17TM1637Display display2(CLK2, DIO2); // For humidity 18 19// ---------------- Custom segment maps ---------------- 20// Segment encoding: 0b0GFEDCBA 21// Example for custom letters 22const uint8_t LETTER_C = SEG_A | SEG_F | SEG_E | SEG_D; // "C" 23const uint8_t LETTER_H = SEG_F | SEG_E | SEG_B | SEG_C | SEG_G; // "H" 24 25// -------------------------------------- 26void setup() { 27 dht.begin(); 28 display1.setBrightness(0x0f); // Max brightness 29 display2.setBrightness(0x0f); 30} 31 32void loop() { 33 float temp = dht.readTemperature(); // Read temp in Celsius 34 float hum = dht.readHumidity(); // Read humidity 35 36 if (isnan(temp) || isnan(hum)) { 37 // Error handling 38 display1.showNumberDecEx(0, 0, true); 39 display2.showNumberDecEx(0, 0, true); 40 delay(2000); 41 return; 42 } 43 44 // ---- Display Temperature: e.g. "28 C" ---- 45 int t = (int)temp; 46 uint8_t tempData[] = { 47 display1.encodeDigit((t / 10) % 10), // tens 48 display1.encodeDigit(t % 10), // ones 49 0x00, // space 50 LETTER_C // "C" 51 }; 52 display1.setSegments(tempData); 53 54 // ---- Display Humidity: e.g. "98 H" ---- 55 int h = (int)hum; 56 uint8_t humData[] = { 57 display2.encodeDigit((h / 10) % 10), // tens 58 display2.encodeDigit(h % 10), // ones 59 0x00, // space 60 LETTER_H // "H" 61 }; 62 display2.setSegments(humData); 63 64 delay(2000); // Update every 2s 65}
Comments
Only logged in users can leave comments