» електроника » Arduino »Начало метеорологична станция, базирана на Arduino

Начало метеорологична станция, базирана на Arduino


Дълго исках да направя мини метеорологична станция, уморена да гледам през прозореца, за да гледам термометър зад стъклото. Това устройство ще замести хигрометъра, барометъра и термометъра и също така ще покаже текущото време. В тази публикация ще ви разкажа как бързо и лесно да сглобите малка метеорологична станция на базата на Arduino. Основата ще бъде дъската Arduino Nano може да използва други дъски - Arduino Uno, Arduino Pro mini). Ще получим данни за атмосферното налягане и температура от сензора BMP180, а влажността и външната температура от DHT11 сензора. Часовникът в реално време DS1302 ще показва текущото време. Цялата информация се показва на двуредов LCD1602 дисплей.

DHT11 предава информация по един проводник до ардуино. Захранва се от напрежение 5 V. Измерва влажността в границите от 20 до 80%. Температурни мерки в диапазона от 0 до 50заS.

Начало метеорологична станция, базирана на Arduino

Сензорът BMP180 измерва атмосферното налягане в интервала от 300-1100 hPa, температура в диапазона от -40 +85заВ. Захранващото напрежение е 3,3 V. Свързва се чрез протокола за комуникация I2C.

Часовникът в реално време DS1302 се захранва от 5 V и е свързан чрез протокола за комуникация I2C. Когато са инсталирани в съответния слот, CR2032 батериите поддържат часовника, когато основната мощност е изключена.

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

това домашно приготвени продукти направени на базата на готови дъски и сензори, така че може да се повтори на всеки начинаещ любител да работи с поялник. В същото време можете да получите основите на програмирането на Arduino. Програмирах тази метеорологична станция в програмата за визуално програмиране FLPROG за 15 минути. Няма нужда ръчно да скицирате с часове, тази програма помага на начинаещите (и не само) бързо да научат основите на програмните устройства, базирани на платформата Arduino.

Кой е твърде мързелив, за да се размине с програмата - скица (само ще е необходимо да настроите текущото време на часовника):
#include 
#include "DHT_NEW.h"
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
дълъг _bmp085P = 0;
дълъг _bmp085T = 0;
дълъг _bmp085A = 0;

LiquidCrystal_I2C _lcd1 (0x3f, 16, 2);
int _dispTempLength1 = 0;
boolean _isNeedClearDisp1;

DHT _dht1;

iarduino_RTC _RTC1 (RTC_DS1302, 7, 5, 6);

неподписан дълъг _dht1LRT = 0UL;
неподписан дълъг _dht1Tti = 0UL;
int _disp1oldLength = 0;
неподписан дълъг _bmp0852Tti = 0UL;
String _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
настройка за невалидност ()
{
Wire.begin ();
забавяне (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, вярно);
_RTC1.begin ();
_RTC1.period (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4);
_dht1LRT = millis ();
_dht1Tti = millis ();
}
void loop ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
ако (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltitude (& _ bmp085A);
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperature (& _ bmp085T);
}

// Такса: 1
ако (1) {
_dispTempLength1 = ((((((String ("T:")) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (String ("*")))) + ((String ( "P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*")) + (((String ("")) + ((_floatToStringWitRaz (_dht1 .humidity, 0))) + (String ("%")))). дължина ();
ако (_disp1oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 0);
_lcd1.print ((((((String ("T:")) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (String ("*"))) + (((String ("P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*"))) + (((String ("")) + ((_floatToStringWitRaz ( _dht1.humidity, 0))) + (String ("%")))));
} else {
ако (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}
ако (_isTimer (_dht1Tti, 2000 г.)) {
ако (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ()))) {
_dht1.readSensor ();
_dht1LRT = millis ();
_dht1Tti = millis ();
}
}
ако (1) {
_dispTempLength1 = ((((((String ("t:")) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*"))) + (_RTC1_GetTime2_StrOut)))) );
ако (_disp2oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 1);
_lcd1.print ((((((String ("t:"))) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*")))) + (_RTC1_GetTime2_StrOut)));
} else {
ако (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}
_RTC1_GetTime2_StrOut = _RTC1.gettime ("H: i: sD");

}
String _floatToStringWitRaz (float стойност, int raz)
{

връщащ низ (стойност, раз);
}
bool _isTimer (неподписан дълъг старт, време, неподписан дълъг период)
{
неподписан дълъг currentTime;
currentTime = millis ();
ако (currentTime> = startTime) {return (currentTime> = (startTime + период));} else {return (currentTime> = (4294967295-startTime + период));}
}

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

Цялата информация може да бъде получена, като погледнете видеото:


Списък на материали и инструменти

Arduino Nano Board
двуредов LCD1602 дисплей;
- часовник в реално време DS1302;
- сензор за атмосферно налягане и температура BMP180;
- сензор за температура и влажност DHT11;
-блокиране на зареждане от телефона;
- всеки подходящ корпус
-pintset;
ножици;
поялник;
-kembrik;
Тестер;
-свързване на проводници;
Четирижилен за дистанционен сензор.

Първа стъпка. Изработка на сграда за метеорологична станция

Взех пластмасова кутия от магазина Fix Price (общо 17p). Предварително изрязан прозорец за показване в капака. След това той частично изряза преградите в кутията, направи дупки за USB конектора на платката Arduino, отвора за сензора BMP180 BMP180 сензорът ще бъде разположен от външната страна на кутията, за да се предотврати прекомерното нагряване от електронен гарнитури отвътре. След като нарисувах тялото на домашния продукт отвътре, защото пластмасата е прозрачна. Кутията се затваря с капаче и в нея всички елементи се вписват добре.


Стъпка втора Монтажна схема на устройството.

Фото схема


След това трябва да свържете всички платки и сензори на метеорологичната станция според схемата. Правим това с помощта на монтажни проводници със съответните конектори. Не съм направил връзка за спойка, така че в бъдеще, когато един модул се повреди (или по други причини), можете лесно да го замените. На винтовия конектор е свързан кабелът на сензора DHT11 към улицата. Захранването може да се подава от USB конектора на платката Arduino към компютър или чрез захранване от напрежение 7-12V към щифта VIN и GND.

Първо сглобих веригата извън заграждението и я програмирах и отстраних грешки в програмата FLPROG.

Фотоблокова схема в програмата FLPROG.

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

Снимката е завършена

Добър домашен дизайн беше сглобен през уикенда. Беше вълнуващо да направите сами интересен и полезен уред. За да направите сами такова устройство, мисля, че дори и начинаещ може да го направи.Не изисква много време и пари. Можете да го приложите където искате в къща в селска вила. За цялата работа минаха две вечери през уикенда, заведох цялата електроника на Aliexpress. Останалите материали намерих на чопъра. Въз основа на платформата Arduino можете да сглобите голямо разнообразие от полезни устройства.

Благодаря на всички за вниманието, желая ви успех и късмет както в живота, така и в работата ви!
9.2
8.2
8.5

Добавете коментар

    • усмихвамусмивкиxaxaдобреdontknowYahooНеа
      шефдраскотинаглупакдаДа-даагресивентайна
      съжалявамтанцувамdance2dance3извинениепомощнапитки
      спиркаприятелидобърgoodgoodсвиркаприпадамезик
      димплясканеCrayдеклариратподигравателендон-t_mentionизтегляне
      топлинасърдитlaugh1MDAсрещаmoskingотрицателен
      not_iпуканкинаказвамчетаплашаплашитърсене
      присмехthank_youтоваto_clueumnikостърСъгласен
      лошоbeeeblack_eyeblum3изчервяванесамохвалствоскука
      цензурираншегаsecret2заплашвампобедаюsun_bespectacled
      ShokРеспектхахаprevedдобре дошълkrutoyya_za
      ya_dobryiпомощникne_huliganne_othodifludзабранаблизо

Съветваме ви да прочетете:

Предайте го за смартфона ...