Sadržaj:

Još jedna IoT meteorološka stanica: 8 koraka
Još jedna IoT meteorološka stanica: 8 koraka

Video: Još jedna IoT meteorološka stanica: 8 koraka

Video: Još jedna IoT meteorološka stanica: 8 koraka
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Srpanj
Anonim
Još jedna IoT meteorološka stanica
Još jedna IoT meteorološka stanica
Još jedna IoT meteorološka stanica
Još jedna IoT meteorološka stanica
Još jedna IoT meteorološka stanica
Još jedna IoT meteorološka stanica
Još jedna IoT meteorološka stanica
Još jedna IoT meteorološka stanica

Ovo je bio rođendanski poklon za mog tatu; inspiriran drugim Instructableom koji sam vidio i u početku namjeravao da mu se dokaže kao komplet za samostalnu izgradnju. Međutim, kad sam s njim počeo raditi na ovom projektu, vrlo brzo sam shvatio da je početni vodič koji je inspirirao dar zastario i da su mnogi drugi mrežni vodiči imali značajne praznine u objašnjenjima. Stoga sam odlučio objaviti još jednu IoT meteorološku postaju koju ćemo, nadamo se, lako pratiti od početka do kraja.

Nadalje, ove upute vam pokazuju kako koristiti Blynk, Google tablice ili oboje za praćenje i snimanje očitanja senzora. Štoviše, unosi u Google tablice zapisuju se izravno na list (bez potrebe za korištenjem usluge treće strane).

Što se tiče Stevensonovog zaslona, na internetu postoji mnogo dostupnih koji se mogu ispisati 3D, npr. https://www.thingiverse.com/thing:1718334. Na ovom ću se nadograditi za ovaj Instructable.

Stevensonov zaslon je "sklonište za instrumente sklonište je ili sklonište za meteorološke instrumente protiv oborina i izravnog toplinskog zračenja iz vanjskih izvora, dok još uvijek omogućuje slobodnu cirkulaciju zraka oko njih." (Wikipedia).

Dijelovi

  • Wemos LolIn - NodeMCU v3 (1,43 USD)
  • BME280 (osjetnik temperature, tlaka i vlažnosti) (2,40 USD)
  • Solarna ploča 6V 1000mA (9,96 USD)
  • 5V 1A Micro USB 18650 Litijeva baterija Modul za punjenje ploče za punjenje+zaštita Dvostruke funkcije TP4056 (0,99 USD)
  • 4x 1,2 V NiMH punjive baterije
  • Držač baterije (4x AA, jedan pored drugog i s kraja na kraj)
  • Utikač za mikro USB muški priključak
  • Kabelske veze
  • 3x krilne matice
  • Štap ili metla
  • Epoksid i/ili super-ljepilo (unatrag, silicij bi mogao djelovati bolje)

Softver

  • Blynk aplikacija
  • Google tablice (ako želite imati pristup povijesnim podacima)
  • EasyEDA (za crtanje sheme)
  • Arduino IDE

Alati

  • Lemilica
  • Lem
  • Termoskupljajuće cijevi
  • 3D pisač
  • Pištolj za ljepilo

Korak 1: 3D ispis - Stevenson Screen

3D ispis - Stevenson Screen
3D ispis - Stevenson Screen
3D ispis - Stevenson Screen
3D ispis - Stevenson Screen
3D ispis - Stevenson Screen
3D ispis - Stevenson Screen

Kao što je već spomenuto, preuzmite datoteke s https://www.thingiverse.com/thing:1718334 i ispišite potrebne bitove. Upute za sastavljanje također se nalaze na gornjoj poveznici. Napravio sam neke izmjene (vidi napomene u nastavku).

Ispisani dijelovi su:

  • Top_Cover_for_m3_tapping.stl
  • Srednji_Prstenje.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL gore priložen)
  • Solid_Plate.stl (x1)
  • Solid_Plate_Base.stl (x1)
  • Pole_Mount_1in_Round.stl
  • Mreža senzora.stl
  • Montaža elektronike.stl
  • My_Solar_Cell_Mount.stl (x2, STL priložen gore)

Redoslijed montaže je:

  • Provucite rupe
  • Uvrnite šipke M3 u utičnice s navojem
  • Gornji poklopac
  • Čvrsta_ploča
  • Srednji_Prstenovi
  • Klizite u Sensor_Grid
  • Elektronika_Montaža
  • Čvrsta_Pločica_Dno
  • Pole_Mount
  • My_Solar_Cell_Mounts su epoksidni do vrha Top_Cover

Izbušio sam rupe u čvrstim pločama kako bih omogućio da se kabel za punjenje sa solarne ploče poveže s punjačem, a zatim i jedan kako bi se omogućilo da kabel prolazi od kontrolera do senzora na Sensor_Grid.

Nakon što je dovršen, senzor je programiran da svakih 60 minuta uzima sljedeća očitanja:

  • Temperatura
  • Vlažnost
  • Pritisak

Bilješke

  • Prilagodio sam nosače solarnih ćelija kako bi bili prikladniji za držanje moje solarne ćelije.
  • Elektroniku sam instalirao između Pole_Mount i Solid_Plate. Čini se da ovo ne pruža dobru zaštitu elektronici. Stoga sam izmijenio Solid_Plate tako da je imao suknju koja bi tada zatvorila jaz i time osigurala bolju zaštitu elektronike. Neke od gore navedenih fotografija snimljene su prije nego što sam napravio ovu promjenu.
  • Moj epoksid se spustio ne držeći solarnu ploču koju sam zatim ponovno pričvrstio super ljepilom. Mislim da ću morati iskoristiti silicij.

Korak 2: Krug

Krug
Krug
Krug
Krug

Spojite krug kao što je prikazano na shemi, montirajući LoLin i BME280 na 3D ispisanu mrežu, kao što je prikazano na fotografiji.

BME280 -> LiLon

  • VCC -> 3.3V
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (ovo je potrebno kako bi se kontroler probudio iz dubokog sna, ali mora se povezati tek nakon što se kôd učita u kontroler)

BILJEŠKA

Imao sam problema s nabavkom odgovarajuće LiLon baterije. Također iz nekog razloga nisam imao uspjeha napajati putem VIN -a. Stoga sam pokrenuo kako slijedi:

  • Izlaz iz TP4056 bio je ožičen na muški USB priključak koji je zatim priključen u USB utičnicu ploče kako bi se napajao.
  • B- i B+ na TP4056 bili su spojeni na AA držač baterija koji je držao NiMH baterije.

Korak 3: IoT - Blynk

IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk

"Blynk je hardversko-agnostička IoT platforma s prilagodljivim mobilnim aplikacijama, privatnim oblakom, mehanizmom pravila i nadzornom pločom za analizu upravljanja uređajima". U osnovi, omogućuje vam sigurno upravljanje i nadzor udaljenih senzora s bilo kojeg mjesta u svijetu putem Interneta. Iako je komercijalna usluga, svaki račun ima 2000 besplatnih kredita. Krediti vam omogućuju povezivanje različitih mjerača, zaslona, obavijesti itd. Sa svojim senzorom ili senzorima. Iako cijene pretplate nisu u rasponu proračuna hobista, besplatni krediti dovoljni su za jednostavan projekt poput ovog.

Da biste počeli koristiti uslugu, prvo morate preuzeti aplikaciju Blynk na svoj telefon/uređaj, stvoriti i račun (ili se prijaviti s postojećim računom), a zatim izraditi novi projekt na sljedeći način:

  • Odaberite svoj hardver
  • Dajte imenu svom projektu (u ovom slučaju koristio sam "Weather Station").
  • Kliknite "Stvori"
  • Tada ćete putem e-pošte dobiti Auth kod.

Nećete morati dodavati potrebne widgete. Uz 2000 besplatnih kredita dodao sam sljedeće:

  • 3 mjerača
  • 1 Super grafikon

Mjerači i grafikoni postavljeni su prema priloženim fotografijama, a svakom je dodijeljen vlastiti virtualni pin koji će se kasnije koristiti u kodu.

Kada završite s postavkama, gumb za reprodukciju u gornjem desnom kutu možete pritisnuti za početak prikupljanja datuma.

Za više informacija pogledajte

docs.blynk.cc/#getting-started.

Korak 4: Kôd - Priprema Arduino IDE -a

Sljedeće knjižnice bit će potrebno dodati u Arduino IDE kako bi se dovršio ovaj projekt:

  • https://github.com/adafruit/Adafruit_BME280_Library (potreba za senzorom temperature, tlaka i vlažnosti)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (ovo vam daje pristup ploči ESP8266)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (biblioteka Blynk)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (HTTPSRedicect je potreban za povezivanje s Google tablicama)

Za upute o instaliranju knjižnica za Arduino IDE posjetite

Moje postavke hardvera su sljedeće:

  • Ploča: NodeMCU 1.0 (modul ESP-12E)
  • Brzina prijenosa: 115200

Kad koristite priloženi kôd u sljedećim koracima, uvijek se obratite komentarima u kodu u pogledu dodavanja sljedećeg:

  • SID za WiFi
  • Lozinka za WiFi
  • Blynk autorizacijski ključ
  • Google Script ID
  • Ključ za dijeljenje Google tablice

Korak 5: Kôd - Blynk

Godinama sam se borio da moj BME280 senzor radi dok nisam našao primjer koji sadrži sljedeći redak.

status = bme.begin (0x76); // I2C adresa senzora koji koristim je 0x76

Čini se da sam morao postaviti adresu senzora. Kad sam to učinio, sve je radilo sasvim u redu.

Blynk ima jako lijepo mobilno korisničko sučelje, ali ima sljedeća ograničenja:

  • Samo 2000 besplatnih kredita, projekti koji zahtijevaju više od toga zahtijevaju skupu mjesečnu pretplatu (osim ako ne ugostite i ne održavate vlastiti Blynk poslužitelj).
  • Osim ako ne ugošćujete vlastiti Blynk poslužitelj, ne možete izvesti povijesne podatke.

Iz gore navedenih razloga pogledao sam kako mogu integrirati proces prikupljanja podataka u Google tablicu. Ovo je obrađeno u sljedećem odjeljku.

Korak 6: Kôd - Google tablice

Kôd - Google tablice
Kôd - Google tablice
Kôd - Google tablice
Kôd - Google tablice
Kôd - Google tablice
Kôd - Google tablice

Da biste zabilježili svoja očitanja kako biste kasnije mogli analizirati povijesne podatke, morate ih zapisati u neku vrstu baze podataka. Knjižnica HTTPSRedirect to nam omogućuje pisanjem podataka u Google tablicu.

Glavna ograničenja ovog pristupa su sljedeća:

  • Nema lijepo mobilno korisničko sučelje
  • Google tablica može imati najviše 400 000 ćelija. Za ovaj projekt ovo nije veliki problem jer će proći nešto više od 11 godina prije nego što se dosegne ova granica.

Google tablica postavlja se na sljedeći način.

Izradite Google tablicu s dva lista.

List 1: Podaci

Tehnički list treba 4 stupca, tj. Datum/vrijeme, temperaturu, vlažnost, tlak (stupci A do D). Formatirajte stupce na odgovarajući način, npr. Stupac A treba biti "Datum i vrijeme" tako da se datum i vrijeme prikazuju u ćelijama.

List 2: Nadzorna ploča

Izradite tablu nadzorne ploče prema priloženim fotografijama, unoseći formule navedene u nastavku:

  • B2: = counta (Podaci! B: B) -1
  • B3: = B1+VRIJEME (CONCATENATE ("00:", Tekst (G7, "0")))
  • B6: = upit (Podaci! A2: D, "Odaberite B poredak prema ograničenju desc. 1")
  • C6: = upit (Podaci! A2: D, "Odaberite C poredak prema ograničenju desc. 1")
  • D6: = upit (Podaci! A2: D, "Odaberite D poredak prema ograničenju desc. 1")
  • B8: = upit (Podaci! A2: D, "Odaberite red prema B desc ograničenju 1")
  • C8: = upit (Podaci! A2: D, "Odaberite red prema C desc limit 1")
  • D8: = upit (Podaci! A2: D, "Odaberite red prema D desc limit 1")
  • B9: = upit (Podaci! A2: D, "Odaberite B poredak prema B desc limit 1")
  • C9: = upit (Podaci! A2: D, "Odaberite C red prema C desc limit 1")
  • D9: = upit (Podaci! A2: D, "Odaberite D poredak prema D opisu granica 1")
  • B11: = upit (Podaci! A2: D, "Odaberite A gdje B nije nula prema B asc limit 1")
  • C11: = upit (Podaci! A2: D, "Odaberite A gdje C nije nula prema C asc limit 1")
  • D11: = upit (Podaci! A2: D, "Odaberite A gdje D nije nulti poredak prema D uzlaznoj granici 1")
  • B12: = upit (Podaci! A2: D, "Odaberite B gdje B nije nula po B asc limit 1")
  • C12: = upit (Podaci! A2: D, "Odaberite C gdje C nije nula prema C asc limit 1")
  • D12: = upit (Podaci! A2: D, "Odaberite D gdje D nije nula prema D uzlaznoj granici 1")
  • 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 tablice mogu imati najviše 400 000 ćelija. To se koristi, zajedno s činjenicom da svako očitanje koristi 4 ćelije, za izračunavanje koliko je prostora preostalo i kada će mu ponestati.

Možda je moguće poboljšati ove formule. Ovdje sam radio dvije stvari, tj. Učio o formuli upita, a zatim i napisao neku formulu na takav način da mi pomogne da se sjetim logike koja stoji iza njih.

Snimka zaslona "Uređivač grafikona" prikazuje osnovno postavljanje za grafikon temperature. Ostali grafikoni stvoreni su istim postavkama. Jedina razlika između grafikona bila je minimalna vrijednost okomite osi (nalazi se na kartici prilagođavanja). Kartica za prilagodbu ima i druge postavke poput naziva pristupa, naslova grafikona itd.

Sada nam je potreban Google Script koji će nam omogućiti pisanje naših podataka pozivanjem URL -a.

Izrada skripte

U URL -u Google tablice zapišite ključ između "d /" i " / edit". Ovo je vaš -Vaš-Google-ključ-za dijeljenje lista-i bit će potreban u donjem kodu.

Zatim idite na Alati> Uređivač skripti i izradite skriptu Google aplikacije, zalijepivši kôd u priloženu GS datoteku. Ažurirajte var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); da odražava vaš ključ za dijeljenje.

Sada objavite skriptu tako da odete na Publish> Deploy as Web App.

Kopirajte trenutni URL web-aplikacije i spremite ga negdje jer će vam trebati za izdvajanje GScriptID-a (-Vaš-Google-ID skripte-). GScriptID je niz između "s /" i " / exec?". Provjerite ima li pristup aplikaciji "Svatko, čak i anoniman". Tijekom ovog procesa od vas će se tražiti da dodijelite neka dopuštenja. Važno je da ih odobrite.

Napomena: Kad god izmijenite kôd, morate stvoriti "novu" verziju projekta i objaviti je, u protivnom ćete i dalje pogađati isti stari kôd.

Sada možete testirati skriptu pregledavanjem stranice https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. Svaki put kad osvježite ovu vezu, novi unos treba dodati u Google tablicu.

Ovo gore uzeto je iz sljedećeg vodiča: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Ovaj je vodič, međutim, zastario pa je pridruženi Arduino kôd u sljedećem odjeljku promijenjen kako bi odgovarao najnovijim knjižnicama

Arduino kod

Pogledajte priloženi kod.

Korak 7: Kôd - Blynk i Google tablice

Kako biste izvukli najbolje iz oba svijeta, možete kombinirati kôd i za Blynk i za Google tablice.

Pogledajte priloženi kod.

Korak 8: Završni komentari

Završni komentari
Završni komentari
Završni komentari
Završni komentari

Ništa od navedenog nisu moje ideje, već je ovo projekt izgrađen na idejama i radu drugih. Uživao sam sve to staviti na jedno mjesto. koristeći različite tehnologije i alate za izvrstan zabavan i praktičan projekt. Posebno sam uživao u učenju spremanja svojih čitanja u Google tablicu. Na tome želim zahvaliti ElectronicsGuyu (Sujay Phadke).

ažuriranje

Nakon završetka ovog projekta morao sam promijeniti svoje bežične postavke. Sada sam radio na drugom računalu. Nakon učitavanja promjena, projekt je prestao raditi. Nakon rješavanja problema zaključio sam da funkcija dubokog sna nije uspjela. Odnio sam projekt kući i postavio ga tamo (koristeći isti kod) i uspio je. Stoga sam zaključio da se nešto moralo promijeniti u knjižnicama koje sam dodao. Stoga sam ovom odjeljku priložio knjižnice koje se trenutno nalaze na mojem kućnom računalu; za slučaj da netko drugi naiđe na ovaj problem.

Preporučeni: