Метеорологична станция с Arduino
/kn34pc.com/конструкции/...

Метеорологичната станция е реализирана въз основа на проект, публикуван на адрес [1]. Направих някои промени в зависимост от наличните елементи.

Необходими са:

1. Платка Arduino - използвах Arduino UNO (по-евтин вариант)
2. Модул с LCD дисплей, съвместим с базовите платки Arduino
3. BMP180 - барометричен сензор за налягане и температура
4. DHT11 - сензор за температура и влажност

В този проект DHT11 се използва само за измерване на влажност. Температурата се измерва от BMP180, тъй като има по-голяма точност.
Модулът с LCD дисплей е направен така, че се свързва директно с платката Arduino UNO с наличните щифтове, като се поставя върху него.

Сензорите BMP180 и DHT11 се свързват към модула с LCD дисплей по следната схема:

Arduino UNO

 

Модул с LCD дисплей

 

BMP180 - барометричен сензор за налягане и температура DHT 11 - сензор за температура и влажност


Връзка на BMP180:

Пиновата връзка на BMP180 е илюстрирана по-долу: SCL щифтът на сензора отива към SCL щифта на модула с LCD дисплей (съответно и към Arduino UNO), който е на щифт А5. По същия начин SDA щифтът отива към SDA щифта на модула с LCD дисплей (съответно и към Arduino UNO) - щифт А4.

BMP180 – модул с LCD дисплей
VCC – 3.3V
GND - GND
SCL – А5 (SCL)
SDA – А4 (SDA)


ВРЪЗКА на DHT11:

ПИН връзката на DHT11 към Модула с LCD дисплей (съответно и към Arduino UNO - щифт D2) е както е показано по-долу. Всички сензори DHT11 имат три основни функционални щифта. DHT типовете с четири щифта винаги имат празен щифт, който не е свързан никъде.

DHT11 - модул с LCD дисплей
VCC - 5V
ДАННИ - D2
GND – GND


Програма (скеч): sketch_jan07b.zip [zip,ino][27kb]
 

Трябва да се обърне внимание на използването на точните библиотеки за BMP180 и DHT11:

https://github.com/LowPowerLab/SFE_BMP180
https://github.com/winlinvip/SimpleDHT


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

1. За нивото над морското равнище съм поставил стойност, отговаряща на града в който живея - #define ALTITUDE 50.0 // Altitude in Burgas

2. Данните от DHT в моя проект са на пин D2 - #define DHTPIN 2 // what pin we're connected to DHT, а данните от BMP180 са на А4(SDA) и А5(SCL)

3. В масивите

char tempF[8];
char humF[8];
char pressF[6];

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

4. Премахнал съм корекцията + 10, която правят за стойността на влагата:

humidity = dht.readHumidity() + 10.0f;

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

Захранването на схемата е с адаптер за 6 V. Консумацията e 60 mA.

Всички елементи (без адаптера) са поместени в кутия, изработена от пластмаса във формата на къщичка с размери 13 х 14 х 9 см (14 см с покрива).

Сензорите са монтирани в близост до "отворения" страничен прозорец. Направен е и кръгъл отвор за да се получи циркулация на въздуха за по-реални показания на сензорите. Оцветяването е с цветен "магически" пясък.

Препратки:
1. Arduino Weather Station with DHT11 and BMP180

Петко Петков, Бургас
18 януари 2021 година