Mündəricat:
- Addım 1: 3D Çap - Stevenson Ekran
- Addım 2: Dövrə
- Addım 3: IoT - Blynk
- Addım 4: Kod - Arduino IDE -nin hazırlanması
- Addım 5: Kod - Blynk
- Addım 6: Kod - Google Cədvəllər
- Addım 7: Kod - Blynk və Google Cədvəllər
- Addım 8: Son Şərhlər
Video: Başqa bir IoT Hava İstasyonu: 8 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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 hədiyyəyə ilham verən ilkin təlimin köhnəldiyini və digər onlayn dərslərin bir çoxunda izahlarında əhəmiyyətli boşluqlar olduğunu çox tez anladım. Bu səbəbdən inşaatın başlanğıcından etibarən izlənməsi asan olacaq başqa bir IoT Hava İstasyonu yayımlamaq qərarına gəldim.
Əlavə olaraq bu təlimat, sensor oxunuşlarını izləmək və qeyd etmək üçün Blynk, Google Sheets və ya hər ikisini necə istifadə edəcəyinizi göstərir. Üstəlik, Google Cədvəl girişləri birbaşa vərəqə yazılır (üçüncü tərəf xidmətindən keçmədən).
Stevenson Ekranı ilə əlaqədar olaraq, 3D çap edilə bilən bir çox onlayn var. https://www.thingiverse.com/thing:1718334. Bu Təlimat üçün bunun üzərində quracağam.
Stevenson Ekranı "Alət sığınacağı, havanın ətrafda sərbəst dolaşmasına icazə verərkən, xarici mənbələrdən yağıntılara və birbaşa istilik radiasiyasına qarşı meteoroloji cihazların sığınacağı və ya bir yuvasıdır." (Vikipediya).
Hissələri
- Wemos LolIn - NodeMCU v3 (1.43 USD)
- BME280 (Temperatur, Təzyiq və Nəmlik Sensoru) (USD 2.40)
- 6V 1000mA Günəş Paneli (USD 9.96)
- 5V 1A Mikro USB 18650 Lityum Batareya Şarj Kartı Şarj Cihazı Modulu+Qoruma İkili Fəaliyyət TP4056 (USD 0.99)
- 4x 1.2V NiMH təkrar doldurulan batareyalar
- Batareya Tutacağı (4x AA, yan -yana və ucdan uca)
- Micro USB Kişi konnektoru
- Kabel bağları
- 3x Qanadlı Fındıq
- Qütb və ya süpürgə çubuğu
- Epoksi və/və ya super yapışqan (baxdıqda silikon daha yaxşı işləyə bilərdi)
Proqram təminatı
- Blynk Tətbiqi
- Google Cədvəllər (tarixi məlumatlara giriş əldə etmək istəyirsinizsə)
- EasyEDA (sxematik rəsm üçün)
- Arduino IDE
Alətlər
- Lehimleme dəmir
- Lehim
- İstilik Büzülmə Boruları
- 3D printer
- Yapışqan Tabancası
Addım 1: 3D Çap - Stevenson Ekran
Artıq qeyd edildiyi kimi, faylları https://www.thingiverse.com/thing:1718334 saytından yükləyin və lazım olan bitləri çap edin. Montaj təlimatları da yuxarıdakı linkdədir. Bəzi dəyişikliklər etdim (aşağıda qeydlərə baxın).
Çap olunan hissələr bunlardır:
- Top_Cover_for_m3_tapping.stl
- Middle_Ring.stl (x5)
- Middle_Ring_bottom.stl (x1, STL yuxarıda əlavə olunur)
- Solid_Plate.stl (x1)
- Solid_Plate_Base.stl (x1)
- Pole_Mount_1in_Round.stl
- Sensor_Grid.stl
- Electronics_Mount.stl
- My_Solar_Cell_Mount.stl (x2, STL yuxarıda əlavə olunur)
Montaj qaydası belədir:
- Delikləri yuvarlayın
- M3 çubuqlarını yivli yuvalara vidalayın
- Top_Cover
- Solid_Plate
- Middle_Rings
- Sensor_Grid -də sürüşdürün
- Electronics_Mount
- Solid_Plate_Bottom
- Pole_Mount
- My_Solar_Cell_Mounts Top_Cover -in üst hissəsinə epoksiyalaşdırılmışdır
Günəş Panelindəki şarj kabelinin şarj cihazına qoşulmasına icazə vermək üçün bərk plitələrdə deliklər qazdım və sonra kabelin nəzarətçidən Sensor_Grid üzərindəki sensora keçməsini təmin etmək üçün.
Tamamlandıqdan sonra, sensor hər 60 dəqiqədə aşağıdakı oxunuşları almaq üçün proqramlaşdırılmışdır:
- Temperatur
- Rütubət
- Təzyiq
Qeydlər
- Günəş batareyası qurğularını günəş batareyamı tutmaq üçün daha yaxşı uyğunlaşdırdım.
- Elektronikanı Pole_Mount və Solid_Plate arasına quraşdırdım. Bu, elektronikanın yaxşı qorunmasını təmin etmədi. Bu səbəbdən Solid_Plate -də modifikasiya etdim ki, sonra ətəyi olsun ki, bu boşluğu bağlasın və bununla da elektronikaya daha yaxşı qoruma versin. Yuxarıdakı şəkillərdən bəziləri bu dəyişikliyi etməzdən əvvəl çəkilmişdir.
- Epoksi günəş panelini tutmadığımdan sonra super yapışqanla yenidən bağladım. Silikon istifadə etmək məcburiyyətində qalacağımı düşünürəm.
Addım 2: Dövrə
Şəkildə göstərildiyi kimi LoLin və BME280-i 3D çaplı meshə montaj edərək sxemdə göstərildiyi kimi dövrə bağlayın.
BME280 -> LiLon
- VCC -> 3.3V
- GND -> GND
- SCL -> D1
- SDA -> D2
LiLon -> LiLon
D0 -> RST (bu, nəzarətçini dərin yuxudan oyatmaq üçün lazımdır, ancaq kod nəzarətçiyə yükləndikdən sonra qoşulmalıdır)
QEYD
Uyğun bir LiLon batareyası almaqda çətinlik çəkdim. Həm də nədənsə VIN vasitəsi ilə güc qazana bilmədim. Buna görə də aşağıdakı kimi güc verdim:
- TP4056 -dan çıxış Kişi USB konnektoruna qoşuldu, sonra onu gücləndirmək üçün lövhənin USB yuvasına qoşuldu.
- TP4056-dakı B- və B+, NiMH batareyalarını tutan AA batareya tutucusuna qoşuldu.
Addım 3: IoT - Blynk
"Blynk, fərdiləşdirilə bilən mobil tətbiqləri, özəl bulud, qaydalar mühərriki və cihaz idarə etmə analitikləri tablosuna malik bir hardware-agnostik IoT platformasıdır". Əsasən, İnternet vasitəsilə dünyanın hər yerindən uzaqdan idarə olunan sensorları etibarlı şəkildə idarə etməyə və izləməyə imkan verir. Ticarət xidməti olsa da, hər bir hesaba 2000 pulsuz kredit verilir. Kreditlər, fərqli ölçü cihazlarını, ekranları, bildirişləri və s. Abunə qiymətləri bir hobbiçinin büdcəsi xaricində olsa da, pulsuz kreditlər belə bir sadə layihə üçün kifayətdir.
Xidmətdən istifadə etməyə başlamaq üçün əvvəlcə telefonunuza/cihazınıza Blynk Tətbiqini yükləməlisiniz, yaratmalı və hesab yaratmalısınız (və ya mövcud hesabla daxil olmalısınız) və sonra aşağıdakı kimi yeni bir layihə yaratmalısınız:
- Avadanlığınızı seçin
- Layihənizə bir ad verin (bu halda "Hava İstasyonu" ndan istifadə etdim.
- "Yarat" düyməsini basın
- Bundan sonra e-poçtunuza bir Doğrulama Kodu alacaqsınız.
Lazımi vidjetləri əlavə etməyinizə ehtiyac olmayacaq. 2000 pulsuz kreditimlə aşağıdakıları əlavə etdim:
- 3 ölçü cihazı
- 1 Super Qrafik
Göstəricilər və cədvəllər, əlavə edilmiş fotoşəkillərə uyğun olaraq qurulmuşdur, hər birinə kodda sonuncu olaraq istifadə ediləcək öz virtual pin təyin edilmişdir.
Ayarlar edildikdən sonra, tarixin toplanmasına başlamaq üçün sağ üstdəki oyun düyməsinə basıla bilər.
Ətraflı məlumat üçün baxın
docs.blynk.cc/#getting-started.
Addım 4: Kod - Arduino IDE -nin hazırlanması
Bu layihəni tamamlamaq üçün Arduino IDE -yə aşağıdakı kitabxanaların əlavə edilməsi lazımdır:
- https://github.com/adafruit/Adafruit_BME280_Library (temperatur, təzyiq və rütubət sensoruna ehtiyac)
- https://github.com/adafruit/Adafruit_Sensor
- https://github.com/esp8266/Arduino (bu sizə ESP8266 lövhəsinə giriş imkanı verir)
- https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (Blynk kitabxanası)
- https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (Google Cədvəllərə qoşulmaq üçün HTTPSRedicect lazımdır)
Arduino IDE üçün kitabxanaların quraşdırılmasına dair təlimatlar üçün https://www.arduino.cc/en/guide/libraries saytına daxil olun.
Hardware parametrlərim burada:
- Lövhə: NodeMCU 1.0 (ESP-12E Modulu)
- Yükləmə Sürəti: 115200
Əlavə edilmiş kodu aşağıdakı addımlarda istifadə edərkən, aşağıdakıları əlavə etməklə bağlı olaraq həmişə koddakı şərhlərə müraciət edin:
- Wifi SID
- Wifi Şifrəsi
- Blynk icazə açarı
- Google Script ID
- Google Vərəq paylaşım açarı
Addım 5: Kod - Blynk
Aşağıdakı sətirdən ibarət bir nümunə tapana qədər BME280 sensorumun işləməsi üçün əsrlər boyu mübarizə apardım.
status = bme.begin (0x76); // İstifadə etdiyim sensorun I2C ünvanı 0x76 -dır
Sensor ünvanını təyin etməyim lazım olduğu görünür. Bunu etdikdən sonra hər şey yaxşı işləyir.
Blynk həqiqətən gözəl bir mobil istifadəçi interfeysinə malikdir, lakin aşağıdakı məhdudiyyətlərə malikdir:
- Yalnız 2000 pulsuz kredit, daha çox tələb edən layihələr bahalı aylıq abunə tələb edir (öz Blynk serverinizə ev sahibliyi etməsəniz).
- Öz Blynk serverinizə sahib olmadığınız halda, tarixi məlumatları ixrac edə bilməzsiniz.
Yuxarıda göstərilən səbəblərə görə məlumat toplama prosesimi Google Hesabına necə inteqrasiya edə biləcəyimə baxdım. Bu, növbəti hissədə müzakirə olunur.
Addım 6: Kod - Google Cədvəllər
Tarixi məlumatları daha sonra təhlil edə bilmək üçün oxunuşlarınızı qeyd etmək üçün bir növ verilənlər bazasına yazmalısınız. HTTPSRedirect kitabxanası, məlumatlarımızı Google Hesabına yazaraq bunu etməyə imkan verir.
Bu yanaşmanın əsas məhdudiyyətləri aşağıdakılardır:
- Gözəl mobil istifadəçi interfeysi yoxdur
- Google Cədvəli maksimum 400 000 hüceyrəyə sahib ola bilər. Bu layihə üçün bu böyük bir məsələ deyil, çünki bu həddə çatmaq üçün 11 ildən çox vaxt lazımdır.
Google Hesabatı aşağıdakı kimi qurulur.
İki vərəqdən ibarət bir Google Cədvəli yaradın.
Vərəq 1: Məlumat
Məlumat vərəqində 4 sütuna ehtiyac var: Tarix/Saat, Temperatur, Rütubət, Təzyiq (A -dan D -ə qədər sütunlar). Sütunları uyğun şəkildə formatlayın, məsələn. A sütunu "Tarix Saatı" olacaq ki, tarix və saat hüceyrələrdə göstərilsin.
Vərəq 2: Tablosuna
Aşağıdakı kimi düsturları daxil edərək əlavə edilmiş fotoşəkillərə uyğun olaraq İdarə Paneli vərəqi yaradın:
- B2: = counta (Məlumat! B: B) -1
- B3: = B1+ZAMAN DƏYƏRİ (BİRLEŞTİR ("00:", Mətn (G7, "0")))
- B6: = sorğu (Məlumat! A2: D, "A eniş limiti 1 ilə B sırasını seçin")
- C6: = sorğu (Məlumat! A2: D, "C sifarişini A enmə limiti 1 ilə seçin")
- D6: = sorğu (Məlumat! A2: D, "D sırasını A enmə limiti 1 ilə seçin")
- B8: = sorğu (Məlumat! A2: D, "B enmə limiti 1 ilə bir sifariş seçin")
- C8: = sorğu (Məlumat! A2: D, "C enmə limiti 1 ilə sifariş seçin")
- D8: = sorğu (Məlumat! A2: D, "D sifariş limiti ilə bir sifariş seçin")
- B9: = sorğu (Məlumat! A2: D, "B eniş limiti 1 ilə B sırasını seçin")
- C9: = sorğu (Məlumat! A2: D, "C enmə limiti 1 ilə C sifarişini seçin")
- D9: = sorğu (Məlumat! A2: D, "D sırasını D azalma limiti ilə 1 seçin")
- B11: = sorğu (Məlumat! A2: D, "B -nin B artım limiti 1 -ə görə sıfır sırası olmadığı A seçin")
- C11: = sorğu (Məlumat! A2: D, "C -nin C asc limiti 1 -ə görə sıfır əmri olmadığı A seçin")
- D11: = sorğu (Məlumat! A2: D, "D -nin D asc limiti 1 ilə sıfır sırası olmadığı A seçin")
- B12: = sorğu (Məlumat! A2: D, "B -nin B artım limiti 1 -ə görə sıfır sırası olmadığı B seçin")
- C12: = sorğu (Məlumat! A2: D, "C -nin C artım limiti 1 -ə görə sıfır sırası olmadığı C seçin")
- D12: = sorğu (Məlumat! A2: D, "D -nin D asc limiti 1 -ə görə sıfır sırası olmadığı D seçin")
- G3: = 4+B2*4+29+17
- G4: = (G2-G3)/G2
- G6: = G2/4 G8: = G7*G6
- G9: = (G8/60)/24
- G10: = G9/365
- G11: = ((((((G2-G3)/4)*G7)/60)/24/365)
Google Cədvəllərdə maksimum 400.000 hüceyrə ola bilər. Bu, hər oxunuşda 4 hüceyrədən istifadə edildiyi üçün nə qədər yer qaldığını və nə vaxt bitəcəyini hesablamaq üçün istifadə olunur.
Bu düsturların təkmilləşdirilməsi mümkün ola bilər. Burada iki şey edirdim, yəni sorğu düsturunu öyrəndim və sonra arxasındakı məntiqi xatırlamağıma kömək edəcək bir formul yazdım.
"Qrafik redaktoru" ekran görüntüsü, temperatur qrafiki üçün əsas quruluşu göstərir. Eyni quruluşdan istifadə edərək yaradılan digər qrafiklər. Qrafiklər arasındakı yeganə fərq, minimum şaquli ox dəyərləri idi (özelleştir sekmesinde tapıldı). Fərdiləşdirmə sekmesinde ayrıca giriş adları, qrafik başlıqları və s.
İndi bir URL çağıraraq məlumatlarımızı yazmağımızı təmin edəcək bir Google Scriptə ehtiyacımız var.
Ssenari yaradılır
Google Cədvəl URL -də "d /" və " / redaktə" arasındakı düyməni qeyd edin. Bu sizin -Google-Sheet-Paylaşım Açarınızdır və aşağıdakı kodda lazım olacaq.
Sonra Alətlər> Ssenari Redaktoruna gedin və kodu əlavə edilmiş GS faylına yapışdıraraq Google Tətbiq Skriptini yaradın. Var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit") yeniləyin; paylaşma açarını əks etdirmək.
İndi Nəşr et> Veb Tətbiqi olaraq Dağıtma bölməsinə gedərək skripti dərc edin.
GScriptID (-Sizin Google-Script-ID-nizi) çıxarmaq üçün Mövcud veb tətbiq URL-ni kopyalayın və ehtiyacınız olduğu yerdə saxlayın. GScriptID, "s /" və " / exec?" Arasındakı sətirdir. "Hər kəs, hətta anonim" in də tətbiqə daxil olmasını təmin edin. Bu proses zamanı sizdən bəzi icazələr verməyiniz tələb olunacaq. Bunları verməyiniz vacibdir.
Qeyd: Kodunuzu dəyişdirdiyiniz zaman "Yeni" Layihə versiyası yaratmalı və dərc etməlisiniz, əks halda yenə də eyni köhnə kodu vuracaqsınız.
İndi skriptə https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12 ünvanına baxaraq test edə bilərsiniz. Bu linki hər dəfə yenilədikdə, Google Cədvəlinə yeni bir giriş əlavə edilməlidir.
Bu yuxarıdakı dərslikdən götürülmüşdür: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Bu təlimat köhnədir və buna görə də növbəti hissədəki əlaqəli Arduino kodu ən son HTTPSRedirect kitabxanalarına uyğun olaraq dəyişdirildi.
Arduino kodu
Əlavə edilmiş koda baxın.
Addım 7: Kod - Blynk və Google Cədvəllər
Hər iki dünyadan da ən yaxşı şəkildə istifadə etmək üçün həm Blynk, həm də Google Sheets üçün kodu birləşdirə bilərsiniz.
Əlavə edilmiş koda baxın.
Addım 8: Son Şərhlər
Yuxarıda göstərilənlərin heç biri mənim fikirlərim deyil, əksinə başqalarının fikir və işləri üzərində qurulmuş bir layihədir. Bir yerə toplamaqdan zövq aldım. əyləncəli və praktik bir layihə üçün müxtəlif texnologiyalardan və vasitələrdən istifadə etmək. Oxuduqlarımı Google Cədvəlində necə saxlamağı öyrənməkdən zövq aldım. Bunun üçün ElectronicsGuy'a (Sujay Phadke) təşəkkür etmək istəyirəm.
Yeniləyin
Bu layihəni bitirdikdən sonra simsiz əlaqə parametrlərimi dəyişdirməli oldum. İndi fərqli bir kompüterdə işləyirdim. Dəyişiklikləri yüklədikdən sonra layihə işləməyi dayandırdı. Bir neçə problemi həll etdikdən sonra dərin yuxu funksiyasının uğursuz olduğu qənaətinə gəldim. Layihəni evə apardım və ora yüklədim (eyni kodu istifadə edərək) və işlədi. Buna görə də əlavə etdiyim kitabxanalarda bir şeyin dəyişdiyi qənaətinə gəldim. Buna görə də hazırda ev kompüterimdə olan kitabxanaları bu hissəyə qoşmuşam; yalnız kimsə bu problemlə qarşılaşarsa.
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ə
JAWS: Başqa bir Hava İstasyonu: 6 addım
JAWS: Başqa bir Hava İstasyonu: Məqsəd nədir? Kiçik yaşlarımdan bəri hava ilə çox maraqlanıram. İlk topladığım məlumatlar bayırda asılmış köhnə, civə dolu bir termometrdən alındı. Hər gün, aylarca ardıcıl olaraq temperaturu, tarixi və saatı yazdım
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