Mündəricat:

JAWS: Başqa bir Hava İstasyonu: 6 addım
JAWS: Başqa bir Hava İstasyonu: 6 addım

Video: JAWS: Başqa bir Hava İstasyonu: 6 addım

Video: JAWS: Başqa bir Hava İstasyonu: 6 addım
Video: Katil köpek Balığı Filmi korku Gerilim | Türkçe Dublaj İzle 2024, Iyul
Anonim
JAWS: Əşyalarımızı Hazırlayırıq
JAWS: Əşyalarımızı Hazırlayırıq
JAWS: Əşyalarımızı Hazırlayırıq
JAWS: Əşyalarımızı Hazırlayırıq
JAWS: Əşyalarımızı Hazırlayırıq
JAWS: Əşyalarımızı Hazırlayırıq

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ı

JAWS: Proqram təminatı
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:

  1. SPI.h: 4 telli protokol üçün Arduinodan orijinal kitabxana. TFT qalxanı üçün istifadə olunur
  2. 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.
  3. dht.h: DHT'lerimiz üçün: bu kitabxana DHT11 (mavi) və DHT22 üçün istifadə edilə bilər.
  4. Wire.h: Serial ünsiyyəti asanlaşdırmaq üçün Arduino kitabxanası. Saat və SD kart üçün istifadə olunur.
  5. SD.h: Yenə bir Arduino orijinal, SD kartdan yazmaq və oxumaq üçün.
  6. 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…

Daha çox Proqram…
Daha çox Proqram…
Daha çox Proqram…
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 …

Bəzi ekran görüntüləri…
Bəzi ekran görüntüləri…
Bəzi ekran görüntüləri…
Bəzi ekran görüntüləri…
Bəzi ekran görüntüləri…
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?

Bitdi?
Bitdi?
Bitdi?
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ə: