반응형
조금 전 포스팅한 OLED 디스플레이와 DHT11 센서를 이용한 온습도계를 개선해 보았다. 글자가 너무 작아서 잘 안보이길래 텍스트 크기를 크게 했으며 (벌써 노안인가? ㅠㅠ) 기상청에서 퍼온 불쾌지수 구하는 공식을 활용하여 온도, 습도, 불쾌지수가 표시되게 하였다. 불쾌지수는 온도와 습도로 구할 수 있다. 불쾌지수 (Discomfort Index) 가 80을 넘으면 대부분의 사람이 불쾌감을 느끼게 되며 실제로도 80이 넘으면 폭력, 살인 등 강력사건이 늘어난다고 한다.
아두이노와 센서, OLED 디스플레이의 연결은 바로 전 포스팅과 같으며 소스만 수정이 되었다. 그러므로 소스 이외의 사항은 아래의 글을 참고하면 된다.
■ 소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | //** http://deneb21.tistory.com/431 #include <DHT11.h> #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> //DHT11 연결핀 #define DHT11_PIN 2 DHT11 dht11(DHT11_PIN); //Software SPI 연결핀 설정 #define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13 Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); void setup() { display.begin(); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); } void loop() { int err; float temp, humi; if((err=dht11.read(humi, temp))==0) //온도, 습도 읽어와서 표시 { display.setCursor(0,0); display.print("T : "); display.println(temp,0); display.print("H : "); display.println(humi,0); display.print("D : "); display.println(discomfortIndex(temp,humi),0); display.display(); } else //에러일 경우 처리 { display.setCursor(0,0); display.print("Error :"); display.print(err); display.display(); } delay(5000); //5초마다 측정 display.clearDisplay(); } //불쾌지수 구하기 (공식출처: 기상청) float discomfortIndex(float temp, float humi) { return (1.8f*temp)-(0.55*(1-humi/100.0f)*(1.8f*temp-26))+32; } | cs |
소스를 보면 display.setTextSize(1) 에서 display.setTextSize(2) 로 텍스트 크기를 1 증가 시켰으며 discomfortindex() 함수를 추가해서 불쾌지수를 표시해 주도록 하였다. 그리고 의미 없는 온도와 습도의 소수점 이하 자리를 잘라 버렸다.
개선 전
개선 후... 위로 부터 온도(T), 습도(H), 불쾌지수(D) 표시
훨씬 잘 보인다.
반응형
'아두이노' 카테고리의 다른 글
[아두이노] S4A(Scratch for Arduino) 를 설치해보자 (3) | 2016.11.25 |
---|---|
[아두이노] LED 밝기 조절 및 색의 혼합 (0) | 2016.10.24 |
[아두이노] DHT11과 OLED 디스플레이를 이용한 온습도계 (0) | 2016.08.04 |
[아두이노] 0.96인치 OLED LCD 모듈 텍스트 출력 (0) | 2016.08.03 |
[아두이노] DF Player Mini 모듈을 이용한 MP3 제어 #2 -초음파 센서 추가 (30) | 2016.07.13 |