Направете този прост проект за метеорологична станция за домове и офиси

Опитайте Нашия Инструмент За Премахване На Проблемите





В тази публикация ще изградим интересен проект за метеорологична станция, базиран на Arduino, който може да ви покаже околната температура, влажността, налягането, качеството на въздуха и много повече данни от обкръжението ви, които могат да се използват за прогнозиране на времето от дома.



Ако се интересувате от метеорология, този проект може да бъде полезен за изучаване на местните метеорологични условия и краткосрочни промени. Предложеният проект е в твърдо състояние, което означава, че не съществуват движещи се части.

Този проект може да бъде поставен в закрити или полузатворени условия, където веригата е далеч от пряка слънчева светлина или силен вятър или влага, които могат да влошат сензорите на борда.



Дизайнът:

Предложеният проект за верига на мини метеорологична станция е изграден около Arduino, който е мозък на метеорологичната станция, който събира много данни от различни сензори и ги обработва и показва на 16x2 LCD екран.

Можете да изберете любимата си дъска за arduino за този проект. Веригата се състои от три сензора MQ-135, BMP180 и DHT11. Нека да видим какво прави всеки сензор в детайли.

MQ-135 сензор:

MQ-135 е сензор за измерване на качеството на въздуха, който може да открива въглероден диоксид, алкохол, бензен, дим, бутан, пропан и др. Ако химическата концентрация на тези газове е висока във въздуха, тогава можем да кажем, че въздухът е замърсен.

Сензорът може да открие промяна в концентрацията на замърсители във въздуха и издава подходящо ниво на напрежение. Изходното напрежение на сензора е право пропорционално на нивото на химическа концентрация във въздуха.

Промяната на напрежението от сензора се подава към Arduino, имаме предварително определени прагови нива в програмата. Когато премине праговото ниво, микроконтролерът ни казва дали въздухът е безопасен или не.

Електрическа схема

интерфейс MQ135 сензор с верига на метеорологична станция

Горната схема показва електрическата схема. Този сензор се нуждае от външно 5V захранване, тъй като има нагревателен елемент вътре в сензора, който консумира около 1 вата. Захранването от захранващия щифт на arduino не може да осигури по-висок ток.

Нагревателният елемент поддържа сензора топъл и спомага за вземането на подходящо количество химическа концентрация във въздуха. Сензорът отнема около няколко минути, за да достигне оптимална температура.

DHT11 сензор:

DHT11 сензорът е известен като сензор за температура и влажност. Той може да измерва температурата и влажността от околните, както подсказва името.

Това е 4-пиново устройство, но се използват само 3 от тях. Може да изглежда като много прост компонент, но има микроконтролер вътре в сензора, който предава данните в цифров вид на платката arduino.

Той изпраща 8 битови данни всяка секунда към arduino, за да декодира получения сигнал, трябва да включим библиотека в кода, който е предназначен да го обработва. Връзката към библиотеката е дадена по-късно в частта на статията.

Електрическа схема:

интерфейс DH11 с arduino

Свързването на веригата от сензор към arduino е много просто. Изходът на сензора е свързан към щифт A1 на arduino. Захранващите Vcc и GND са свързани към захранващи щифтове на arduino.

Забележка: Моля, уверете се, че вашият сензор има вграден резистор за изтегляне, ако няма такъв, свържете 4.7K издърпващ резистор на изходния щифт на сензора DHT11.

BMP180 сензор:

BMP180 е барометричен сензор, който може да измерва атмосферното налягане, надморската височина и температурата. Измерването на температурата от този сензор се пренебрегва, тъй като имаме специален сензор за измерване на околната температура.

Сензорът измерва надморската височина на настройката от морското равнище, а също така е един от параметрите, използвани в метеорологията.

Електрическа схема:

взаимодействие BM180 с Arduino
Той използва I2C комуникационен протокол, SDA щифтът отива към A4 от arduino, а SCL отива до A5 от arduino. Vcc и GND са свързани към захранващи щифтове на arduino.

LCD връзка:

сензор за влажност с помощта на Aduino


LCD дисплеят показва всички данни от сензорите. Връзката между LCD дисплея и arduino е стандартна, можем да намерим подобна връзка при много други LCD базирани проекти. Регулирайте 10K потенциометъра за оптимална видимост от LCD дисплея.

Авторски прототип:

изображение на прототип на метеорологична станция

Ето авторския прототип на верига за мини монитор на времето, където всички показани в схемите сензори са свързани към платката 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 минути, за да достигне оптимална работна температура.




Предишна: Как да изградим обикновена сушилня за дрехи за дъждовния сезон Напред: Верига за играчки за кола с игра