
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51

Авторы: Хазел Ян
Бұл жоба - бұл деректер ағынын басқаруға арналған Arduino UNO тақтасын, деректерді жинауға арналған DHT22 сенсоры мен деректерді көрсету үшін OLED экранын қолданатын метеостанция.
1 -қадам: Элементтер тізімі

1. Экран: OLED, 1,3 дюймдік дисплей SH1106, I2C ақ түсті ---- PID: 18283
2. Сенсор: Сандық ылғалдылық пен температура сенсоры DHT22 ---- PID: 7375
3. Қосады: Өтпелі сымдар ---- PID: 10316 немесе 10318 немесе 10312 (ұзындыққа байланысты) немесе сіз қатты сымды 22 AWG ---- PID: 22490 қолдануға болады
Нан тақтасы ---- PID: 10686 немесе 10698 немесе 103142 (өлшеміне байланысты)
4. Қуат: Бұл кабель тек компьютердің USB портына қосыла алады, сонымен қатар кабель IDE мен Arduino тақтасы арасында деректерді тасымалдау үшін қолданылады. USB кабелі, A-B, M/M, 0.5M (1.5FT) ---- PID: 29862
Немесе сіз мұны тақтаны қуаттандыру үшін пайдалана аласыз: 5V 2A AC/DC адаптері ---- PID: 10817.
2 -қадам: Салыстырмалы кіріспе


Экранға кіріспе: 1.3 «OLED дисплейі ақ
1. Сіз негізгі параметрлер мен сипаттамаларды көрсететін құжатты таба аласыз:
Сенсорды енгізу: Ылғалдылық пен температура сенсоры DHT22 1. Сіз сипаттамасы көрсетілген құжатты таба аласыз:
3 -қадам: тізбекті қосыңыз

DHT22 сенсоры 2 -ші істікке сериялық деректерді жібереді. Сонымен, екінші түйреуішті сол жақтан қосыңыз, «SDA» түйреуіші 2 -істікке қосылуы керек.
SSH1106 дисплейі үшін ол аналогты түйреуішті жібереді. Экранның схемасы Arduino -ның «A5» -іне «SCL» түйреуіші және «SDA» -нің Arduino -дің «A4» -іне қосылуы болады. Пиксельдің орналасу деректері үздіксіз берілсе де, бағдарламадағы дисплей функциясы сенсордан деректерді оқыған сайын команданы бір рет қана іске қосады.
Сенсор да, экран да 3.3V кернеуін Arduino -ны тұрақты ток кірісі ретінде қосуы мүмкін. Қуат беру үшін бізге «VCC» түйреуіштерін Arduino -ның «3.3V» -іне қосу керек. Ал «GND» түйреуіштерін Arduino тақтасындағы «GND» түйреуішіне қосуға болады.
USB A - B кабелін қолданыңыз, компьютерге Arudino қосыңыз.
4 -қадам: компиляцияға дайындалу
Olikraus -тан SSH1106 экраны үшін «u8glib».
Adafruit DHT22 сенсорына арналған «DHT сенсорлық кітапханасы». Сіз екі кітапхананы жүктеуіңіз керек: DHT22 сенсорлық кітапханасы:
U8glib:
Оларды ашу үшін IDE -де «кітапхананы басқару» пайдаланыңыз. Кітапханаларды басқарудың онлайн нұсқауы:
5 -қадам: DHT22 сенсорлық сериялық портына арналған тест коды
DHT22 сенсорының сериялық портына арналған тест коэффициенті (ол DHT22 кітапханасының ішінде >> мысалдары):
(Бұл бөлімді өткізіп жіберуге болады.)
Бұл DHT22 сенсорының деректерді қалыпты оқуын тексеру үшін
#қосу
#қосу
#қосу
#қосу
#қосу
#DHTPIN анықтаңыз 2
#DHTTYPE DHT22 анықтаңыз
DHT dht (DHTPIN, DHTTYPE);
жарамсыз орнату () {
Serial.begin (9600);
Serial.println (F («DHT22 сынағы!»));
dht.begin ();
}
void loop () {
// Өлшеулер арасында бірнеше секунд күтіңіз.
кешіктіру (2000);
// Оқу температурасы немесе ылғалдылығы шамамен 250 миллисекунд алады!
// Сенсордың көрсеткіштері 2 секундқа дейін болуы мүмкін (ол өте баяу сенсор)
float h = dht.readHumidity ();
// Цельсий бойынша температураны оқу (әдепкі)
float t = dht.readTemperature ();
// Температураны Фаренгейт ретінде оқу (isFahrenheit = true)
float f = dht.readTemperature (шын);
// Кез келген оқу сәтсіз болғанын тексеріп, ерте шығыңыз (қайталап көру үшін).
егер (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F («DHT сенсорынан оқу мүмкін болмады!»));
қайтару;
}
// Фаренгейт бойынша жылу индексін есептеңіз (әдепкі)
float hif = dht.computeHeatIndex (f, h);
// Цельсий бойынша жылу индексін есептеңіз (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F («Ылғалдылық:»));
Serial.print (h);
Serial.print (F («% Температура:»));
Serial.print (t);
Serial.print (F («° C»));
Serial.print (f);
Serial.print (F («° F Жылу индексі:»));
Serial.print (hic);
Serial.print (F («° C»));
Serial.print (hif);
Serial.println (F («° F»));
}
// Бағдарламаны құрастырғаннан кейін деректерді тексеру үшін TOOLS >> SERIAL MONITOR түймесін басыңыз.
// Тестілеу бағдарламасының аяқталуы.
6 -қадам: Жобаның коды
#қосу
#қосу
#қосу
#қосу
#қосу
#DHTPIN анықтаңыз 2
#DHTTYPE DHT22 анықтаңыз
#«U8glib.h» қосыңыз
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT сенсоры (DHTPIN, DHTTYPE);
жарамсыз жеребе (жарамсыз) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// Цельсий бойынша температураны оқу (әдепкі)
float t = sensor.readTemperature ();
// Кез келген оқу сәтсіз болғанын тексеріп, ерте шығыңыз (қайталап көру үшін).
егер (isnan (h) || isnan (t)) {
u8g.print («Қате.»);
үшін(;;);
қайтару;
}
u8g.setPrintPos (4, 10);
u8g.print («Температура (C):»);
u8g.setPrintPos (4, 25);
u8g.баспа (t);
u8g.setPrintPos (4, 40);
u8g.print («Ылғалдылық (%):»);
u8g.setPrintPos (4, 55);
u8g.баспа (сағ);
}
жарамсыз орнату (жарамсыз) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
жарамсыз цикл (жарамсыз) {
// сурет ілмегі
u8g.firstPage ();
істеу {
сурет салу ();
} while (u8g.nextPage ());
// біраз кешігуден кейін суретті қалпына келтіру (2000 ж.);
}
// Негізгі бағдарламаның соңы.
7 -қадам: Сипаттама

Содан кейін, Arduino тақтасының түйреуіш схемасын инициалдаңыз. Себебі сенсорлық кітапхана объектіні жариялау үшін деректерді қажет етеді.
Ал сенсорлық деректерді «Serial.print ()» деп аталатын функцияны қолдана отырып, 2 -ші цифрлық пин арқылы шығыс деректерін бақылау арқылы тексеруге болады. Деректерді беру жиілігі әр 2 секунд сайын шамамен 1 оқылымды құрайтындықтан (бұл 0,5 Гц), Arduino IDE -де бағдарламаланған кезде біз цикл функциясының кешігуін 2 секундтан артық етіп орнатуымыз керек. Сондықтан цикл функциясының ішінде «кешіктіру (2000)» бар. Бұл деректердің жиі жаңартылуын қамтамасыз етеді. «Draw» функциясында деректерді сериялық деректер портынан алыңыз және оларды «readHumidity» және «readTemperature» функциялары арқылы өзгермелі сандарға қойыңыз.
Ылғалдылық пен температураны «u8glib» файлындағы басып шығару функциясы арқылы басып шығарыңыз. Сіз «setPrintPos» функциясындағы нөмірді өзгерту арқылы орынды реттей аласыз. Басып шығару функциясы мәтін мен сандарды тікелей көрсете алады.
Жабдықты орнату үшін сериялық портқа 10 секундқа кідіріс беріңіз. Содан кейін сенсордың бастау функциясын шақырыңыз. Менің схемаға сәйкес, менің экран төңкерілген. Сонымен қатар мен дисплейді бұру үшін «setRot180» функциясын қостым.
Arduino тақтасының циклдық функциясы негізгі функция болып табылады. Ол сенсор жаңартылған сайын мәтін мен деректерді көрсету үшін Draw функциясын шақырады.
Экран келесідей көрінеді:
Сіз Arduino UNO -ны компьютерден ажыратып, оны 2,1 мм қуат ұясына қосылатын 5В тұрақты ток адаптері арқылы қуаттандыра аласыз. Ол бағдарламаны дискіде сақтайды және қуат қосылғаннан кейін бағдарламаны қайта жалғастыра алады.
Ұсынылған:
Arduino мен ThingSpeak қолданатын шағын ауа райы станциясы: 4 қадам

Arduino мен ThingSpeak қолданатын шағын ауа райы станциясы: бәріне сәлем. Бұл нұсқаулықта мен сізге жеке метеостанция жасау бойынша қадамдар бойынша нұсқаулық беремін. Сонымен қатар, біз ThingSpeak API көмегімен ауа райы туралы мәліметтерді олардың серверлеріне жүктеу үшін қолданамыз, әйтпесе ауа райы жағдайының мақсаты қандай
DIY ауа райы станциясы мен WiFi сенсорлық станциясы: 7 қадам (суреттермен)

DIY ауа райы станциясы мен WiFi сенсорлық станциясы: Бұл жобада мен сізге WiFi сенсор станциясымен бірге ауа райы станциясын қалай жасау керектігін көрсетемін. Сенсорлық станция жергілікті температура мен ылғалдылық деректерін өлшейді және WiFi арқылы метеостанцияға жібереді. Содан кейін метеостанция мыналарды көрсетеді
Arduino & BME280 қолданатын бөлмедегі ауа райы станциясы: 4 қадам

Arduino & BME280 қолданатын бөлмедегі ауа райы станциясы: Бұрын мен жергілікті жердің температурасы мен ылғалдылығын көрсететін қарапайым метеостанциямен бөлісетінмін. Мәселе жаңартуға уақыт қажет болатындығында болды және деректер дәл емес. Бұл оқулықта біз ауа -райының мониторын жасаймыз
Arduino қолданатын сыртқы ауа райы станциясы: 7 қадам

Сыртқы ауа райы станциясы Arduino арқылы: Қолданылатын материалдар: Бағалар шамамен және есте сақталады. NodeMCU V3 Lua - 3 € Сандық температура мен ылғалдылық DTH 22 - 2 € Фоторезистор (LDR) сенсор модулі Arduino үшін жарыққа сезімтал фотодиодты анықтайды - 0,80 € 1 жинақ/лот Қар/жаңбыр тамшыларын анықтау сенсоры
Ауа райы шамы - Ауа райы мен температура бір қарағанда: 8 қадам

Ауа райы шамы - Ауа райы мен температура бір қарағанда: Бұл сиқырлы шамды қолдана отырып, сіз ағымдағы температура мен жағдайды бірден біле аласыз