Ruby 엔지니어가 Arduino에서 전자 공작 해 보았습니다 ~ 온습도 센서 편 ~
11728 단어 processing초보자ArduinoIoT센서
소개
여러분, 안녕하세요!
Toreta의 서버 사이드 엔지니어 겸 사쿠마 마유의 프로듀서 @ 히로키 _ 타나카입니다!
최근, 어려운 일로부터 전자 공작을 시작했기 때문에, 작성한 것을 정리·소개하고 싶고, 기사를 썼습니다.
Ruby 엔지니어가 Arduino에서 전자 공작 해봤다 ~ 초음파 거리 센서 편 ~의 속편에서 이번에는 온습도 센서를 사용했습니다.
사용한 센서
DHT11 은 온도와 습도를 캘리브레이션된 상태로 출하된 센서입니다. 신호는 디지털 신호입니다.
온도는 1℃ 정도의 오차, 습도는 4% 정도의 오차로 측정 가능하다고 되어 있습니다.
더 고성능 DHT22도 있습니다.
배선
만든 것
온습도로부터 실내의 불쾌지수를 산출해, 디스플레이에 표시합니다.
그리고 불쾌 지수에 따라 LED가 켜지거나 부저가 울립니다.
또한 스마트폰용 모바일 배터리와 연결하여 휴대할 수 있도록 했습니다.
불쾌 지수는 다음과 같습니다.
불쾌 지수 = 0.81*온도 + 0.01*습도 × ( 0.99*온도 − 14.3 ) + 46.3
60보다 작음: 추운 느낌 → 청색 LED가 켜집니다.
61~74: 보통 → 노란색 LED가 켜집니다.
75보다 크다: 뜨겁다고 느낀다 → 적색 LED가 켜지고 버저가 울린다.
참고 : https://ko.wikipedia.org/wiki/불쾌지수
소스 코드
DHT11을 조작하기 위해서 라이브러리를 사용해, include 합니다.
DHT-sensor-library: htps : // 기주 b. 코 m / 아다 f 루이 t / DHT - 전구 r-b 등 ry
#include <LiquidCrystal.h>
#include <dht.h>
dht DHT;
const int dht11_data = 6;
int temp=0;
int hum=0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int redLed = 10;
int greenLed = 9;
int blueLed = 8;
int buzzer = 7;
void setup() {
lcd.begin(16,2);
lcd.print("Welcome to");
lcd.setCursor(0,1);
lcd.print("Discomfort Check");
delay(2000);
lcd.clear();
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
DHT.read(dht11_data);
temp=DHT.temperature;
hum=DHT.humidity;
float discomfortIndex = 0.81 * temp + 0.01 * hum * (0.99 * temp - 14.3) + 46.3;
lcd.clear();
lcd.print("H=");
lcd.print(hum);
lcd.print("%");
lcd.setCursor(6,0);
lcd.print("T=");
lcd.print(temp);
lcd.write(0xDF);
lcd.print("C");
lcd.setCursor(0,1) ;
lcd.print("Discomfort=");
lcd.print(discomfortIndex);
if (discomfortIndex >= 75) {
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);
digitalWrite(blueLed, LOW);
digitalWrite(buzzer, HIGH);
} else if(discomfortIndex >= 60 && discomfortIndex < 75) {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
digitalWrite(blueLed, LOW);
digitalWrite(buzzer, LOW);
} else {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, LOW);
digitalWrite(blueLed, HIGH);
digitalWrite(buzzer, LOW);
}
delay(1000);
}
끝에
보다 다양한 센서를 사용하여 실생활에서 사용할 수 있는 하드웨어를 만들고 싶습니다!
다음 번은 인감 센서를 하려고 합니다(∩゚Д゚)∩
Reference
이 문제에 관하여(Ruby 엔지니어가 Arduino에서 전자 공작 해 보았습니다 ~ 온습도 센서 편 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiroki_tanaka/items/9a6602f763d29db1b9d8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
DHT11을 조작하기 위해서 라이브러리를 사용해, include 합니다.
DHT-sensor-library: htps : // 기주 b. 코 m / 아다 f 루이 t / DHT - 전구 r-b 등 ry
#include <LiquidCrystal.h>
#include <dht.h>
dht DHT;
const int dht11_data = 6;
int temp=0;
int hum=0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int redLed = 10;
int greenLed = 9;
int blueLed = 8;
int buzzer = 7;
void setup() {
lcd.begin(16,2);
lcd.print("Welcome to");
lcd.setCursor(0,1);
lcd.print("Discomfort Check");
delay(2000);
lcd.clear();
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
DHT.read(dht11_data);
temp=DHT.temperature;
hum=DHT.humidity;
float discomfortIndex = 0.81 * temp + 0.01 * hum * (0.99 * temp - 14.3) + 46.3;
lcd.clear();
lcd.print("H=");
lcd.print(hum);
lcd.print("%");
lcd.setCursor(6,0);
lcd.print("T=");
lcd.print(temp);
lcd.write(0xDF);
lcd.print("C");
lcd.setCursor(0,1) ;
lcd.print("Discomfort=");
lcd.print(discomfortIndex);
if (discomfortIndex >= 75) {
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);
digitalWrite(blueLed, LOW);
digitalWrite(buzzer, HIGH);
} else if(discomfortIndex >= 60 && discomfortIndex < 75) {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
digitalWrite(blueLed, LOW);
digitalWrite(buzzer, LOW);
} else {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, LOW);
digitalWrite(blueLed, HIGH);
digitalWrite(buzzer, LOW);
}
delay(1000);
}
끝에
보다 다양한 센서를 사용하여 실생활에서 사용할 수 있는 하드웨어를 만들고 싶습니다!
다음 번은 인감 센서를 하려고 합니다(∩゚Д゚)∩
Reference
이 문제에 관하여(Ruby 엔지니어가 Arduino에서 전자 공작 해 보았습니다 ~ 온습도 센서 편 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiroki_tanaka/items/9a6602f763d29db1b9d8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Ruby 엔지니어가 Arduino에서 전자 공작 해 보았습니다 ~ 온습도 센서 편 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiroki_tanaka/items/9a6602f763d29db1b9d8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)