Метеорологична станция с 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 година