Mündəricat:
- Addım 3: JAWS: Proqram təminatı
- Addım 4: Daha çox proqram…
- Addım 5: Bəzi ekran görüntüləri …
- Addım 6: Bitdi?
Video: JAWS: Başqa bir Hava İstasyonu: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Belə bir JAWS etmək olduqca sadədir.
Sensorlarınızı alırsınız, lövhələrə yığırsınız və sensorlar ilə gələn kitabxanalardan istifadə etməyə başlayırsınız.
Proqramın qurulmasından başlayaq.
Holland dilində danışdığım üçün (ana dili), istifadə etdiyim bütün məlumatlar və dəyişənlərin çoxu Holland dilindədir. İndi başqa bir dil öyrənmək şansınız var …
JAWS -dən nə istəyirik?
Asan: Bizə əsl vaxtı, tarixi, efemeridləri (günəşin çıxışı, günəşin batması, günün uzunluğu və astronomik günorta) göstərən bir ekrana baxmaq istəyirik.
Bunun yanında daxili və xarici temperaturu, nisbi rütubəti və çiy nöqtəsini və hava təzyiqini görmək yaxşı olardı.
İşi asanlaşdırmaq üçün temperatur üçün santigrat, təzyiq üçün hPa (= mBar) istifadə edirəm. Buna görə heç kim Fahrenheitdən və ya hər kvadrat metr üçün funtdan geri hesablamaq məcburiyyətində deyil …
Hazırda yalnız bu məlumatlar mövcuddur…
Gələcəkdə hava sürəti, külək istiqaməti və yağıntı əlavə edəcəyəm.
Fikir xaricdə bir hava daxması olacağım və bütün məlumatların 2.4GHz üzərindən daxili qurğuya göndəriləcəyidir.
Addım 3: JAWS: Proqram təminatı
Proqramımıza daxil olmaq üçün çoxunu mövcud kitabxanalarda tapa bilərsiniz.
JAWS -də aşağıdakılardan istifadə edirəm:
- SPI.h: 4 telli protokol üçün Arduinodan orijinal kitabxana. TFT qalxanı üçün istifadə olunur
- Adafruit_GFX.h və MCUfriend_kbv.h: hər ikisi qrafik və ekran üçün istifadə olunur. Bunlar TFT ekranında mətn yazmağı, xətlər və qutuları çəkməyi çox asanlaşdırır.
- dht.h: DHT'lerimiz üçün: bu kitabxana DHT11 (mavi) və DHT22 üçün istifadə edilə bilər.
- Wire.h: Serial ünsiyyəti asanlaşdırmaq üçün Arduino kitabxanası. Saat və SD kart üçün istifadə olunur.
- SD.h: Yenə bir Arduino orijinal, SD kartdan yazmaq və oxumaq üçün.
- TimeLord.h: hər hansı bir coğrafi mövqedən günəşin batmasını və ya günəşin çıxmasını hesablamaq üçün istifadə etdiyim budur. DST (yay və ya qış) üçün saatı da təyin etdi.
Saatla başlayaq.
Bir saat oxuyarkən, saat modulundakı fərqli qeydlərdən əldə etdiyiniz dəyişənlərə ehtiyacınız var. Onları yalnız rəqəmlərdən daha çox etdikdə, aşağıdakı sətirləri istifadə edə bilərik:
const int DS1307 = 0x68; const char* gün = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char* ay = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};
n
TimeLord ilə bunu yerim üçün məlumat olaraq alırıq: (Lokeren, Belçika)
TimeLord Lokeren; Lokeren. Position (51.096, 3.99) qurmaq; uzunluq və enlik
Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 dəqiqə
Lokeren. DstRules (3, 4, 10, 4, 60); DST 3 -cü ay, 4 -cü həftə, 10 -cu ay, 4 -cü həftə, +60 dəqiqə
int jaar = il +2000;
bayt sunRise = {0, 0, 12, ay günü, ay, il}; hər gün 00 saatdan etibarən hesablamağa başlayın
bayt sunSet = {0, 0, 12, ay günü, ay, il}; yuxarıdakı kimidir
bayt maan = {0, 0, 12, ay günü, ay, il}; yuxarıdakı kimidir
üzmə mərhələsi;
Buradan hesablamalar aparılır.
mərhələ = Lokeren. MoonPhase (maan);
Günəşin doğması (günəşin doğması);
Lokeren. SunSet (gün batımı);
Lokeren. DST (günəş çıxışı);
Lokeren. DST (gün batımı);
int ZonOpUur = sunRise [tl_hour];
int ZonOpMin = sunRise [tl_minute];
int ZonOnUur = gün batımı [tl_hour];
int ZonOnMin = gün batımı [tl_minute];
TimeLord -da işlərin necə hesablandığının nümunəsidir. Bu kitabxana ilə gün batımı və günəşin çıxması (olduqca) dəqiq vaxtını əldə edirsiniz.
Sonda bütün proqramı bu Təlimatla birlikdə qoyacağam. Olduqca düzdür.
Addım 4: Daha çox proqram…
Proqram haqqında daha çox…
Proqramda üç böyük hissəmiz var.
1) Fərqli sensorlarımızdan bəzi məlumatlar əldə edirik: saatımızdan, DHT -lərdən və BMP180 -dən. Girişimiz budur.
2) Verilənləri (1 və 0) məntiqli bir şeyə çevirməliyik. Bunun üçün kitabxanalarımızdan və dəyişənlərimizdən istifadə edirik.
3) Verilərimizi oxumaq və saxlamaq istəyirik. Çıxışımız budur. Dərhal istifadə etmək üçün LCD-TFT-ə sahibik, daha sonra istifadə etmək üçün SD kartımızda saxladığımız məlumatları saxlayırıq.
Dövrümüzdə () çoxlu "GOTO" əldə edirik: fərqli kitabxanalara atlayırıq. Verilərimizi sensorlardan birindən alırıq, məlumatları alırıq və (əsasən) üzən məlumat dəyişənində saxlayırıq. Dəyişən adlarımızı ağılla seçirik, x və ya y ilə deyil, "tempOutside" və ya "təzyiq" kimi adlarla və ya belə şeylərlə. Onları daha oxunaqlı etmək üçün. Tamam, bu dəyişənlərin istifadəsini bir qədər ağırlaşdırır və daha çox yaddaş istehlak edir.
İşin hiyləsi gəlir: dəyişənlərimizi ekranda göründükdə, onları yalnız düzgün mövqedə yerləşdirməkdir.
Burada istifadə olunan iki kitabxana, Adafruit_GFX.h və MCUfriend_kbv.h, rənglərdən, şriftlərdən və xətt çəkmək qabiliyyətindən istifadə etmək üçün gözəl bir iş dəstinə malikdir. İlk növbədə, bu kitabxanalarda 12864 ekran istifadə etdim, sonra tft ekranında dəyişdim. Etməli olduğum şey, qutuları, düzbucaqları və xətləri yerləşdirmək və məlumatların doğru yerdə çıxdığından əmin olmaqdır. Bunun üçün setCursor və tft. Write əmrini istifadə edə bilərsiniz. Asan edir. Rənglər də dəyişən olaraq təyin edilə bilər, bu kitabxanalarda necə seçiləcəyinə dair bir çox nümunə var.
SD karta yazmaq üçün bəzi sadə fəndlərə də ehtiyacımız var.
Məsələn, saatlardakı məlumatlarımızı ayrı saat, dəqiqə və saniyə olaraq oxuyuruq. Daxili və ya açıq havanı fərqləndirmək üçün temperaturlar DHT.temperatur və DHTT.temperaturadır.
Onları SD karta qoymaq istədikdə bir sim istifadə edirik: hər döngəni boş simli olaraq başlayırıq:
variablestring = ""; Sonra bütün məlumatlarımızla doldura bilərik:
variablestring = variablestring + saat + ":" + dəqiqə + ":" + saniyə. Bu, ipi 12:00:00 kimi verir.
TXT faylı olaraq yazdığımız üçün (Arduino.cc-də SD.h-ə baxın), sonrakı dəyişənlər üçün bir nişan əlavə edirik, buna görə də Excel-də idxal etmək daha asandır.
Beləliklə, gəlirik: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
Və s.
Addım 5: Bəzi ekran görüntüləri …
Məlumat dəstlərimizi "çox yükləmədiyimizdən" əmin olmaq üçün məlumatları hər 10 dəqiqədə bir dəfə yazdım. Bizə gündə 144 giriş verirəm. Düşünürəm ki, pis deyil.
Əlbəttə ki, bu məlumatları emal etməyə davam edə bilərsiniz: ortalamalar edə bilərsiniz, maksimum və minimumları axtara bilərsiniz, keçmiş illərlə müqayisə edə bilərsiniz …
Met ofislər ümumiyyətlə gecə və gündüzün ortalamalarını temperatur üçün edirlər: gündüz səhər 8 -də başlayır və axşam 8 -ə qədər davam edir.
Külək, təzyiq və yağış üçün ortalamalar gecə yarısından gecə yarısına qədər alınır.
Addım 6: Bitdi?
Əslində deyil … Dediyim kimi, nəhayət JAWS-in qalan hissəsi ilə işləyən külək sürəti və külək istiqaməti sensorunu əldə etmək istərdim.
Hazırladığım kiçik tikilinin hündürlüyü 4 m -dir. Meteoroloq küləyin sürətini 10 metr yüksəklikdən alır. Mənim üçün bir az yüksək…
Ümid edirəm bunu oxumaqdan zövq aldınız!
Adafruit-GFX burada izah olunur:
MCUFRIEND_kbv.h burada tapa bilərsiniz:
BMP 120 haqqında daha çox (BMP085 ilə eyni):
DHT22 haqqında:
Tövsiyə:
NaTaLia Hava İstasyonu: Arduino Günəş Enerjili Hava İstasyonu Düzgün Edildi: 8 Addım (Şəkillərlə)
NaTaLia Hava İstasyonu: Arduino Günəş Enerjili Hava İstasyonu Düzgün Edildi: 2 fərqli yerdə 1 illik uğurlu əməliyyatdan sonra günəş enerjisi ilə işləyən hava stansiyası layihə planlarımı paylaşıram və uzun müddət ərzində həqiqətən də sağ qala biləcək bir sistemə necə çevrildiyini izah edirəm. günəş enerjisindən dövrlər. Təqib etsəniz
Başqa bir Ağıllı Hava İstasyonu, Amma : 6 Addım (Şəkillərlə)
Yenə Başqa Bir Ağıllı Hava İstasyonu, Amma …: Tamam, bilirəm ki, hər yerdə belə hava stansiyaları çoxdur, amma fərqi görmək üçün bir neçə dəqiqə çəkin … Aşağı gücə malik 2 elektron kağız ekranı … amma 10 fərqli ekranlar! ESP32 əsaslı akselerometr və temperatur / rütubət sensorları Wifi yeniləmə
Başqa bir IoT Hava İstasyonu: 8 addım
Başqa bir IoT Hava İstasyonu: Aşağıdakılar atam üçün ad günü hədiyyəsi idi; gördüyüm başqa bir Təlimatlandırıcıdan ilhamlanaraq əvvəlcə ona öz-özünə qurulmuş bir dəst kimi sübut olunmasını nəzərdə tutmuşdum. Ancaq onunla birlikdə bu layihə üzərində işləməyə başlayanda çox tez başa düşdüm ki
Raspberry Pi və Weewx istifadə edərək Acurite 5 -də 1 Hava İstasyonu (digər Hava İstasyonları Uyğundur): 5 Addım (Şəkillərlə)
Raspberry Pi və Weewx istifadə edərək Acurite 5 -də 1 Hava İstasyonu (digər Hava İstasyonları Uyğundur): Acurite 5 -i 1 hava stansiyasından alanda evdən kənarda olduğum zaman havanı yoxlamaq istəyirdim. Evə gəlib qurduqda ya ekranı kompüterə bağlamalı olduğumu, ya da ağıllı mərkəzini almalı olduğumu başa düşdüm
Başqa bir Hava İstasyonu (Y.A.W.S.): 18 Addım (Şəkillərlə)
Yenə Başqa Bir Hava İstasyonu (Y.A.W.S.): Bu layihə, hər zaman populyar olan Hava İstasyonu ilə bağlı fikirlərimdir. Mine bir ESP8266, a.96 ” OLED ekran və BME280 ətraf mühit sensoru dəsti. Hava İstasyonları çox populyar bir layihə kimi görünür. Mənimki digərlərindən fərqlənir