가정과 사무실을위한 간단한 기상 관측소 프로젝트 만들기

문제를 제거하기 위해 도구를 사용해보십시오





이 게시물에서는 주변 온도, 습도, 압력, 공기질 및 주변의 훨씬 더 많은 데이터를 보여줄 수있는 흥미로운 Arduino 기반 미니 기상 관측소 프로젝트를 구성하여 집에서 날씨를 예측하는 데 사용할 수 있습니다.



기상학에 관심이 있다면이 프로젝트는 지역 기상 조건 및 단기 변화에 대해 연구하는 데 유용 할 수 있습니다. 제안 된 프로젝트는 솔리드 스테이트 설계이므로 움직이는 부품이 없습니다.

이 프로젝트는 회로가 직사광선이나 강한 바람 또는 습기가없는 실내 또는 반 실내 조건에 배치되어 내장 센서를 저하시킬 수 있습니다.



디자인 :

제안 된 미니 기상 관측소 회로 프로젝트는 다양한 센서로부터 많은 데이터를 수집하여 처리하고 16x2 LCD 화면에 표시하는 기상 관측소의 두뇌 인 Arduino를 중심으로 구축되었습니다.

이 프로젝트를 위해 좋아하는 arduino 보드를 선택할 수 있습니다. 회로는 3 개의 센서 MQ-135, BMP180 및 DHT11로 구성됩니다. 각 센서가 무엇을하는지 자세히 살펴 보겠습니다.

MQ-135 센서 :

MQ-135는 대기 질 측정 센서로 이산화탄소, 알코올, 벤젠, 연기, 부탄, 프로판 등을 감지 할 수 있습니다. 이러한 가스가 대기 중 화학 농도가 높으면 공기가 오염되었다고 말할 수 있습니다.

센서는 대기 중 오염 물질 농도의 변화를 감지하고 적절한 전압 수준을 제공합니다. 센서의 출력 전압은 공기 중 화학 물질 농도 수준에 정비례합니다.

센서의 전압 변화는 프로그램에서 미리 결정된 임계 값 수준이있는 Arduino에 공급됩니다. 임계 값 수준을 초과하면 마이크로 컨트롤러는 공기가 안전한지 여부를 알려줍니다.

회로도

기상 관측소 회로가있는 인터페이스 MQ135 센서

위의 다이어그램은 배선 다이어그램을 보여줍니다. 이 센서는 약 1W를 소비하는 센서 내부에 발열체가 있기 때문에 외부 5V 전원이 필요합니다. arduino의 전원 핀의 전력은 더 높은 전류를 공급할 수 없습니다.

가열 요소는 센서를 따뜻하게 유지하고 공기 중 적절한 양의 화학 농도를 샘플링하는 데 도움이됩니다. 센서가 최적의 온도에 도달하는 데는 몇 분 정도 걸립니다.

DHT11 센서 :

DHT11 센서는 일반적으로 온도 및 습도 센서로 알려져 있습니다. 이름에서 알 수 있듯이 주변 온도와 습도를 측정 할 수 있습니다.

4 핀 장치이지만 3 개만 사용됩니다. 매우 간단한 구성 요소처럼 보이지만 센서 내부에 마이크로 컨트롤러가있어 디지털 형식의 데이터를 arduino 보드에 전달합니다.

초당 8 비트 데이터를 arduino에 보내고 수신 된 신호를 디코딩하려면이를 처리하도록 설계된 코드에 라이브러리를 포함해야합니다. 라이브러리 링크는 기사 후반부에 제공됩니다.

회로도 :

arduino와 DH11 인터페이스

센서에서 arduino 로의 회로 연결은 매우 간단합니다. 센서의 출력은 arduino의 A1 핀에 연결됩니다. 공급 Vcc 및 GND는 arduino의 전원 공급 장치 핀에 연결됩니다.

참고 : 센서에 풀업 저항이 내장되어 있는지 확인하십시오.없는 경우 DHT11 센서의 출력 핀에 4.7K 풀업 저항을 연결하십시오.

BMP180 센서 :

BMP180은 대기압, 고도 및 온도를 측정 할 수있는 기압 센서입니다. 이 센서의 온도 측정은 주변 온도를 측정하는 전용 센서가 있으므로 무시됩니다.

센서는 해수면에서 설정의 고도를 측정하며 기상학에서 사용되는 매개 변수 중 하나이기도합니다.

회로도 :

Arduino와 BM180 인터페이스
I2C 통신 프로토콜을 사용하며 SDA 핀은 arduino의 A4로, SCL은 arduino의 A5로 이동합니다. Vcc와 GND는 arduino의 전원 공급 장치 핀에 연결됩니다.

LCD 연결 :

Aduino를 사용하는 습도 센서


LCD 디스플레이는 센서의 모든 데이터를 표시합니다. LCD 디스플레이와 arduino 간의 연결은 표준이며 다른 많은 LCD 기반 프로젝트에서 유사한 연결을 찾을 수 있습니다. LCD 디스플레이에서 최적의 가시성을 위해 10K 전위차계를 조정하십시오.

저자의 프로토 타입 :

기상 관측소 프로토 타입 이미지

다음은 회로도에 표시된 모든 센서가 arduino 보드에 연결된 미니 날씨 모니터 회로의 저자 프로토 타입입니다.

참고 : 각 센서 및 LCD 디스플레이의 회로 연결은 단일 arduino 보드에 연결해야합니다. 회로를 복제하는 동안 혼동을 피하기 위해 각 회로도에 개별 센서 연결을 제공했습니다.

코드를 업로드하기 전에 라이브러리 파일을 다운로드하십시오.

DHT11 라이브러리 : https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

BMP180 라이브러리 : github.com/adafruit/Adafruit_BMP085_Unified.git

프로그램 코드 :

#include
#include
#include
#include
#define DHTxxPIN A1
LiquidCrystal lcd(12,11,5,4,3,2)
dht DHT
Adafruit_BMP085 bmp
int ack
int input = A0
unsigned long A = 1000L
unsigned long B = A * 60
unsigned long C = B * 2
int low = 300
int med = 500
int high = 700
int x = 4000
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('Sensors are')
lcd.setCursor(0,1)
lcd.print('getting ready')
delay(C)
}
void loop()
{
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Temp(*C)= ')
lcd.print(DHT.temperature)
lcd.setCursor(0,1)
lcd.print('Humidity(%) = ')
lcd.print(DHT.humidity)
delay(x)
}
if(ack==1)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('NO DATA')
lcd.setCursor(0,1)
lcd.print('Check Sensor')
delay(x)
}
if (!bmp.begin())
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('BMP180 sensor')
lcd.setCursor(0,1)
lcd.print('not found')
while (1) {}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Pressure---- ')
lcd.setCursor(0,1)
lcd.print(bmp.readPressure())
lcd.print(' Pascal')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Altitude----')
lcd.setCursor(0,1)
lcd.print(bmp.readAltitude(101500))
lcd.print(' meter')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print(' Air Quality:')
if(analogRead(input)==0)
{
lcd.setCursor(0,1)
lcd.print(' Sensor Error')
delay(x)
}
if(analogRead(input)0)
{
lcd.setCursor(0,1)
lcd.print(' GOOD')
delay(x)
}
if(analogRead(input)>low && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' GETTING BAD')
delay(x)
}
if(analogRead(input)>=med && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' VERY POOR')
delay(x)
}
if(analogRead(input)>=high)
{
lcd.setCursor(0,1)
lcd.print(' WORST')
delay(x)
}
}

노트:

설명 된 미니 기상 관측소 회로는 센서의 판독 값을 표시하는 데 2 ​​분이 걸리며 '센서가 준비 중입니다'가 표시 될 때까지 표시됩니다. 이는 MQ-135 센서가 최적의 작동 온도에 도달하는 데 2 ​​분이 걸리기 때문입니다.




이전 : 장마철을위한 간단한 천 건조기를 만드는 방법 다음 : 박수 작동 장난감 자동차 회로