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:
Ehhez a tartalomhoz Bejelentkezés szükséges, és frissítés után látható