Mündəricat:

Gelgit və hava saatı: 9 addım (şəkillərlə birlikdə)
Gelgit və hava saatı: 9 addım (şəkillərlə birlikdə)

Video: Gelgit və hava saatı: 9 addım (şəkillərlə birlikdə)

Video: Gelgit və hava saatı: 9 addım (şəkillərlə birlikdə)
Video: Pərdə arxası #2 - Fahişə həyatı - uşaqlar baxmasın 2024, Iyul
Anonim
Gelgit və Hava Saatı
Gelgit və Hava Saatı

Gelgitin yüksək və ya aşağı olduğunu və ya arada bir yerdə olduğunu göstərən tək əli olan analoji gelgit saatları satın ala bilsəniz də, istədiyim şey aşağı gelgitin nə vaxt olacağını söyləyəcək bir şey idi. Açmaq, heç bir düyməyə basmamaq və ya gözləmək məcburiyyətində qalmadan tez baxa biləcəyim bir şey istədim. Və uzun bir batareya ömrü olan bir şey istədim. Beləliklə, TTL5110 çipinə qoşulan 2.13 e-kağız ekrana malik ESP32 əsaslı bir lövhə olan TTGO T5 lövhəsindən istifadə etdim. TPL5110 hər 2,5 saatda T5-i işə salır və T5 gündə bir dəfə gelgit məlumatlarını yükləyir. NOAA və OpenWeatherMap hava məlumatları, e-kağızdakı məlumatları göstərir, sonra TPL5110-a T5-i söndürməsini bildirir.

YENİLƏNİŞ (25 Fevral 2020) Tide Clock bir ildir işləyir və batareya 4.00 voltdur, buna görə də saat uzun illər işləyə bilər.

Addım 1: Avadanlıq siyahısı

TTGO T5 lövhəsi 17 dollar

Adafruit TPL5110 lövhəsi 5 dollar

Adafruit Perma-Proto Quarter ölçülü lövhə (isteğe bağlı) $ 0.71 (minimum sifariş $ 8.50)

Li-Poly batareya 1200 mAh $ 10 (və ya digər uyğun enerji mənbəyi)

JST PH 2-pinli kabel-Kişi başlığı $ 0,75

220 uF kondansatör

Addım 2: Alətlər

Lehimleme dəmir

Tel çıxarıcılar

Li-Po batareya şarj cihazı, bu kimi.

Addım 3: Avadanlıq yığın

Avadanlıq yığın
Avadanlıq yığın
Avadanlıq yığın
Avadanlıq yığın
Avadanlıq yığın
Avadanlıq yığın

Avadanlıqların yığılması sxematik şəkildə göstərildiyi kimi olduqca sadədir. Adafruit Perma-proto lövhəsindən istifadə etdim, ancaq adi bir protoboard kimi, çörək taxtası kimi qoyulub, çörək taxtası ilə eyni elektrik əlaqələri var, bu da gözəldir. Yalnız bir neçə əlaqəyə ehtiyacım olduğundan və bütün quruluşu kiçik bir qutuya sığdırmaq istədiyim üçün lövhələrdən birini Dremel kəsmə çarxı ilə dörddə birinə kəsdim.

220 uF kondansatör çox vacibdir. Onsuz, TPL5110 heç vaxt T5 -i açmayacaq. Niyə bir az aydın deyil, amma TPL5110 istifadə edən digər insanlar eyni problemlə üzləşdilər. Bəlkə ESP32, başlanğıcda TTL5110 -un təmin edə biləcəyindən daha çox cərəyan çəkir?

Batareyanı möhkəm bağlamayın. JST-PH kabelindən istifadə edin ki, şarj etmək üçün batareyanı ayırasınız. TPL5110 "açıq" olarsa, batareyanı T5 -dən TPL5110 vasitəsilə geri doldurmağın bir yolu ola bilər, amma bu texnikaya zəmanət verə bilmərəm.

Bir taxta bir qutu hazırladım, amma daxili ölçüləri 1,5 "x 2,75" x 1 "olan hər şey işləyəcək.

Addım 4: Zamanlamanı tənzimləyin

TPL5110 lövhəsində, TPL5110 -un oyandığı vaxt aralığını təyin edən trim potensiometr var. Kiçik bir tornavida istifadə edərək saat yönünün əksinə çevirin. Lövhəmdə bu aralığı 145 dəqiqəyə təyin etdi ki, bu da maksimum 120 dəqiqədən çoxdur, amma işləyir və ardıcıl idi və hər 120 dəqiqədə bir oyanmaqdan daha çox gücə qənaət edəcək, buna görə də istifadə etdim. Aralığı dəqiq bilməyinizə ehtiyac yoxdur, çünki məqsəd məlumatları təxminən gündə bir dəfə təxminən səhər 4 -də yükləməkdir. Env_config.h -də aralığı (məsələn, 145 dəqiqə) və oyanma vaxtını (məsələn, 4am) təyin edə bilərsiniz.

(Başqa bir layihə üçün vaxtın daha yaxşı idarə olunmasını istəyirsinizsə, TPL5110 lövhəsinin arxa tərəfində potensiometrini söndürmək üçün kəsə biləcəyiniz bir iz var. Sonra Gecikmə pininə bir rezistor bağlayırsınız və müqavimət uyğun olaraq aralığı təyin edir. bu qrafik.)

Addım 5: Proqram təminatı

ESP32 paketi olan Arduino IDE -yə ehtiyacınız olacaq. IDE -də lövhənizi "ESP32 Dev Modulu" olaraq təyin edin.

Eskiz https://github.com/jasonful/Tides saytında mövcuddur və 3 kitabxana tələb edir:

  1. "ESP8266 Hava İstasyonu", Arduino Kitabxana Menecerindən (və ya buradan) əldə edilə bilər. Yalnız bu 6 fayla ehtiyacınız olacaq: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h və qalanlarını silə bilərsiniz.
  2. "Json Streaming Parser" Arduino Kitabxana Menecerində mövcuddur (və ya burada)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Kod əsl kitabxana kimi paketlənməsə də, onu kitabxana qovluğunun altına kopyalayıb daxil edə bilərsiniz. o.

Addım 6: Proqramı konfiqurasiya edin

Env_config.h faylında təyin etməli olduğunuz bir neçə parametr var (və bəzilərini təyin etmək istəyə bilərsiniz), o cümlədən:

  • WiFi SSID və parol
  • NOAA stansiya id (başqa sözlə, haradasan)
  • Qeydiyyatdan keçməyiniz lazım olan OpenWeatherMap AppID (asan və pulsuzdur)
  • OpenWeatherMap LocationID (yenə haradasınız)
  • TPL5110 olmadan T5 istifadə etməyə imkan verən CONFIG_USE_TPL5110. Bunun əvəzinə proqram dərin yuxu rejiminə keçəcək. T5 lövhəsi dərin yuxuda təxminən 8 ma çəkir, buna görə batareyanın bir neçə gün dayanacağını gözləyərdim.

Addım 7: Proqramın Necə Çalışdığı

(Diqqət etməsəniz bu hissəni atlaya bilərsiniz.)

Məqsəd gündə bir dəfə oyanmaqdır, lakin TPL5110 -un maksimum aralığı cəmi 2 saat olduğu üçün T5 daha tez oyanmalıdır. Belə ki, gelgit və hava məlumatlarını yüklədikdən sonra bu səhər saat 4:00 arasında bu 2 saatlıq fasilələrin neçə olduğunu hesablayır. Bu, TPL5110-un T5-ə olan enerjisini tamamilə kəsməsi ilə əlaqədardır, bu da batareya üçün yaxşıdır, ancaq RAM və real vaxt saatını itiririk. Hər səhər amneziya ilə oyanmaq kimidir. İndi nə vaxt olduğunu anlamaq üçün NOAA -nın HTTP başlığından çıxarır. Və nə qədər 2 saatlıq fasilə qaldığını xatırlamaq üçün, uçucu olmayan saxlamanın əksinə yazır (flaş). Hər dəfə oyandıqda o sayğacı yoxlayır, azaldır, saxlayır və sıfırdan böyükdürsə dərhal onu yuxuya getməsini söyləyən TPL51110 ("Bitti") siqnalı göndərir. Sayğac sıfıra çatdıqda, kod yeni məlumatları yükləyir və sayğacı yenidən hesablayır və sıfırlayır.

Addım 8: Çalışdırın

Çalışdırın
Çalışdırın

T5 -in sol tərəfindəki açarın yuxarı (açıq) vəziyyətdə olduğundan əmin olun, eskizi T5 -ə yükləyin və bir neçə saniyə ərzində ekran gelgit və hava məlumatları ilə yenilənməlidir.

Proqramı ayıklamanız lazımdırsa, Tides.ino'nun üstündəki "#define DEBUG 0" ı "#define DEBUG 1" olaraq dəyişdirin. Bu, ardıcıl debug çıxışını açacaq və e-kağızın altındakı yeni məlumatları yükləməzdən əvvəl qalan yenidən başlamaların sayını və məlumatları son yükləmə vaxtını göstərəcəkdir.

Addım 9: Gələcək istiqamətlər

  1. TPL5110-un e-kağız displeyi ilə birlikdə istifadəsi, tez-tez dəyişməyən məlumatları əla batareya ömrü ilə göstərmək üçün əla bir yoldur.
  2. Bunu tərtib edərkən, üzərində TPL5111 olan ESP8266 lövhəsi olan TrigBoarddan istifadə etməyi düşündüm. Bunun üçün ayrı bir e-kağız ekranı və e-kağız sürücüsü lövhəsi almaq lazım olardı. Və ya belə bir sürücü+lövhə kombinasiyası. Kodu ESP8266-ya köçürmək üçün düşünürəm ki, SSL kodu sertifikatlar yerinə barmaq izlərindən istifadə etməli olacaq və uçmayan saxlama kodunun da EEPROM və ya RTC yaddaşından istifadə etməsi lazım olacaq.
  3. Bu yaxınlarda Lolin32 lövhəsinin dərin yuxu rejimində olduqca layiqli olduğunu eşitdim: təxminən 100uA. TPL51110 lövhəsi qədər yaxşı deyil (Adafruit görə 20uA), lakin kifayət qədər yaxşıdır.
  4. OpenWeatherMap, göstərdiyimdən daha çox hava məlumatlarını qaytarır. Bir yerdə monoxrom nişanlar tapmağı tələb edəcək simvol idləri də daxil olmaqla.

Tövsiyə: