1 db Arduino Nano
1 db DHT22 szenzor
1 db 4DIGIT TM1637 kijelző
Szükségünk lesz még a TM1637Display.h és a DHT.h könyvtárra
kapcsolási rajz:
Vázlat:
#include<TM1637Display.h> #include"DHT.h" #define DHTPIN 2 #define DIOPIN 8 #define CLKPIN 9 //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 //#define DHTTYPE DHT21 // DHT 21 const byte DEGREE = SEG_A | SEG_B | SEG_G | SEG_F; const byte CELSIUS = SEG_A | SEG_F | SEG_E | SEG_D; const byte O_SMALL = SEG_C | SEG_D | SEG_E | SEG_G; const byte HIBA[] = { SEG_B | SEG_C | SEG_E | SEG_F | SEG_G, SEG_B | SEG_C , SEG_C | SEG_D | SEG_E | SEG_F | SEG_G, SEG_A | SEG_B | SEG_C | SEG_E | SEG_F | SEG_G,}; DHT dht(DHTPIN, DHTTYPE); TM1637Display display(CLKPIN, DIOPIN); byte data[] = {0, 0, 0, 0}; void setup() { dht.begin (); display.setBrightness(0x0F); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(t) || isnan(h)) { display.setSegments(HIBA); delay(2000); }else { int tempC =int(t +0.5); int d1 = tempC%10; int d0 = (tempC/10)%10; data[0] =display.encodeDigit(d0); data[1] =display.encodeDigit(d1); data[2] = DEGREE; data[3] = CELSIUS; display.setSegments(data); delay(2000); int humidity =int(h +0.5); d1 = humidity%10; d0 = (humidity/10)%10; data[0] =display.encodeDigit(d0); data[1] =display.encodeDigit(d1); data[2] = DEGREE; data[3] = O_SMALL; display.setSegments(data); delay(2000); } }
Vázlat és kapcsolási rajz letöltése:
A programkód leírás alapján készült el.