Направите овај једноставни пројекат метеоролошке станице за домове и канцеларије

Испробајте Наш Инструмент За Елиминисање Проблема





У овом посту ћемо створити занимљив пројекат мини временске станице заснован на Ардуину, који вам може показати температуру околине, влажност, притисак, квалитет ваздуха и много више података из ваше околине, који се могу користити за предвиђање времена од куће.



Ако сте заинтересовани за метеорологију, овај пројекат би вам могао добро доћи за проучавање локалних временских услова и краткорочних промена. Предложени пројекат је чврстог стања, што значи да не постоје покретни делови.

Овај пројекат се може сместити у унутрашње или полу-затворене услове, где је круг удаљен од директне сунчеве светлости или јаког ветра или влаге што може погоршати сензоре на броду.



Дизајн:

Предложени пројекат круга мини временске станице изграђен је око Ардуина, који је мозак метеоролошке станице који сакупља мноштво података са различитих сензора и обрађује их и приказује на ЛЦД екрану 16к2.

За овај пројекат можете одабрати своју омиљену ардуино плочу. Коло се састоји од три сензора МК-135, БМП180 и ДХТ11. Погледајмо шта сваки сензор ради детаљно.

МК-135 сензор:

МК-135 је сензор за мерење квалитета ваздуха, који може да детектује угљен-диоксид, алкохол, бензен, дим, бутан, пропан итд. Ако су хемијске концентрације ових гасова високе у ваздуху, онда можемо рећи да је ваздух загађен.

Сензор може да детектује промену концентрације загађивача у ваздуху и даје одговарајући напон. Излазни напон сензора је директно пропорционалан нивоу хемијске концентрације у ваздуху.

Варијација напона са сензора се доводи у Ардуино, у програму имамо унапред одређене нивое прага. Када пређе гранични ниво, микроконтролер нам каже да ли је ваздух сигуран или не.

Кружни дијаграм

интерфејс сензора МК135 са кругом метеоролошке станице

Горњи дијаграм приказује схему ожичења. Овом сензору је потребно спољно напајање од 5 В, јер у њему постоји грејни елемент који троши око 1 В. Напајање из ардуино пин-а за напајање не може да испоручи већу струју.

Грејни елемент одржава сензор топлим и помаже у узорковању одговарајуће количине хемијске концентрације у ваздуху. Сензору треба око неколико минута да постигне оптималну температуру.

ДХТ11 сензор:

ДХТ11 сензор је у народу познат као сензор температуре и влажности. Може да мери температуру и влажност из окружења како сугерише име.

То је 4-пински уређај, али се користи само 3 од њих. Можда изгледа као врло једноставна компонента, али има микроконтролер унутар сензора који податке у дигиталном облику преноси на плочу ардуино.

Шаље 8-битне податке сваке секунде на ардуино, да би декодирао примљени сигнал, морамо да уврстимо библиотеку у код који је дизајниран да њиме управља. Линк за библиотеку дат је у даљем делу чланка.

Шема кола:

интерфејс ДХ11 са ардуином

Веза кола од сензора до ардуина је врло једноставна. Излаз сензора повезан је на А1 пин ардуино-а. Вцц напајање и ГНД повезани су на пинове за напајање ардуина.

Напомена: Уверите се да је у ваш сензор уграђен пулл-уп отпорник, ако га нема, спојите 4.7К пулл-уп отпорник на излазни пин ДХТ11 сензора.

БМП180 сензор:

БМП180 је барометарски сензор који може да мери атмосферски притисак, надморску висину и температуру. Мерење температуре са овог сензора се занемарује, јер имамо наменски сензор за мерење температуре околине.

Сензор мери надморску висину уређаја од нивоа мора, такође је један од параметара који се користи у метеорологији.

Кружни дијаграм:

повезивање БМ180 са Ардуином
Користи И2Ц комуникацијски протокол, СДА пин иде на А4 ардуино, а СЦЛ иде на А5 ардуино. Вцц и ГНД су повезани на пинове за напајање ардуина.

ЛЦД веза:

сензор влажности помоћу Адуина


ЛЦД екран приказује све податке са сензора. Веза између ЛЦД екрана и ардуина је стандардна. Сличну везу можемо пронаћи и на многим другим пројектима заснованим на ЛЦД-у. Подесите 10К потенциометар за оптималну видљивост са ЛЦД екрана.

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

слика прототипа метеоролошке станице

Ево ауторовог прототипа кола за мини временски монитор где су сви сензори приказани у шемама повезани са плочом ардуино.

Напомена: Коначна веза са сваког сензора и ЛЦД екрана треба да буде повезана на једну ардуино плочу. Дали смо дискретни сензорски прикључак на свакој шеми како бисмо избегли забуну приликом дуплирања кола.

Преузмите датотеке из библиотеке пре отпремања кода:

ДХТ11 библиотека: хттпс://ардуино-инфо.викиспацес.цом/филе/детаил/ДХТ-либ.зип

БМП180 библиотека: гитхуб.цом/адафруит/Адафруит_БМП085_Унифиед.гит

Програмски код:

#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 минута да прикаже очитавања са сензора, а до тада се приказује „Сензори се припремају“. То је зато што МК-135 сензору треба 2 минута да постигне оптималну радну температуру.




Претходно: Како направити једноставну сушилицу за крпу за сезону киша Следеће: Кружни круг за играчке који управља клапом