Turinys:
- 1 žingsnis: 3D spausdinimas - „Stevenson“ekranas
- 2 žingsnis: grandinė
- 3 žingsnis: IoT - „Blynk“
- 4 žingsnis: kodas - „Arduino IDE“paruošimas
- 5 žingsnis: kodas - „Blynk“
- 6 veiksmas: kodas - „Google“skaičiuoklės
- 7 veiksmas: kodas - „Blynk“ir „Google“skaičiuoklės
- 8 žingsnis: paskutiniai komentarai
Video: Kita IoT orų stotis: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Toliau buvo mano tėčio gimtadienio dovana; įkvėptas kito „Instructable“, kurį aš mačiau ir iš pradžių ketinau jam įrodyti kaip savarankišką komplektą. Tačiau pradėjusi su juo dirbti su šiuo projektu, aš labai greitai supratau, kad pradinė pamoka, kuri įkvėpė dovaną, buvo pasenusi ir kad daugelio kitų internetinių vadovėlių paaiškinimai turėjo didelių spragų. Todėl nusprendžiau paskelbti dar vieną „IoT Weather Station“, kurią, tikiuosi, bus lengva sekti nuo pradžios iki pabaigos.
Be to, ši instrukcija parodo, kaip naudoti „Blynk“, „Google“skaičiuokles arba abu, kad būtų galima stebėti ir įrašyti jutiklių rodmenis. Be to, „Google“skaičiuoklių įrašai įrašomi tiesiai į lapą (nereikia naudotis trečiosios šalies paslauga).
Kalbant apie Stevensono ekraną, internete galima rasti daug, kuriuos galima atspausdinti 3D formatu, pvz. https://www.thingiverse.com/thing:1718334. Aš remsiuosi šia „Instructable“.
„Stevenson Screen“yra „prietaisų prieglauda - tai meteorologinių prietaisų prieglauda arba gaubtas nuo kritulių ir tiesioginės šilumos spinduliuotės iš išorinių šaltinių, tuo pačiu leidžiant orui laisvai cirkuliuoti aplink juos“. (Vikipedija).
Dalys
- „Wemos LolIn“- „NodeMCU v3“(1,43 USD)
- BME280 (temperatūros, slėgio ir drėgmės jutiklis) (2,40 USD)
- 6V 1000 mA saulės kolektorius (9,96 USD)
- 5V 1A mikro USB 18650 ličio baterijos įkrovimo plokštės įkroviklio modulis+dvigubos apsaugos funkcijos TP4056 (0,99 USD)
- 4x 1,2 V NiMH įkraunamos baterijos
- Baterijos laikiklis (4x AA, vienas šalia kito ir nuo galo iki galo)
- „Micro USB“vyrų jungties kištukas
- Kabeliai
- 3x sparnų veržlės
- Stulpas ar šluotos lazda
- Epoksidiniai ir (arba) superklijai (žvelgiant atgal, silicis galėjo veikti geriau)
Programinė įranga
- „Blynk“programa
- „Google“skaičiuoklės (jei norite turėti prieigą prie istorinių duomenų)
- „EasyEDA“(schemai piešti)
- „Arduino IDE“
Įrankiai
- Lituoklis
- Lituoklis
- Termiškai susitraukiantis vamzdis
- 3D spausdintuvas
- Klijų pistoletas
1 žingsnis: 3D spausdinimas - „Stevenson“ekranas
Kaip jau minėta, atsisiųskite failus iš https://www.thingiverse.com/thing:1718334 ir atsispausdinkite reikiamus bitus. Surinkimo instrukcijas taip pat rasite aukščiau esančioje nuorodoje. Aš padariau keletą pakeitimų (žr. Pastabas žemiau).
Atspausdintos dalys yra:
- Top_Cover_for_m3_tapping.stl
- Middle_Ring.stl (x5)
- Middle_Ring_bottom.stl (x1, STL pridedamas aukščiau)
- 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 pridedamas aukščiau)
Surinkimo tvarka yra tokia:
- Užveržkite skyles
- Į srieginius lizdus įsukite M3 strypus
- Top_Cover
- Solid_Plate
- Viduriniai_žiedai
- Slyskite „Sensor_Grid“
- „Electronics_Mount“
- Solid_Plate_Bottom
- Pole_Mount
- „My_Solar_Cell_Mounts“yra epoksiduojami „Top_Cover“viršuje
Aš išgręžiau skyles „Solid“plokštėse, kad įkrovimo kabelis iš Saulės skydelio galėtų prisijungti prie įkroviklio, o po to - kad laidas galėtų praeiti nuo valdiklio iki jutiklio „Sensor_Grid“.
Baigęs jutiklį, jis buvo užprogramuotas taip, kad kas 60 minučių imtų šiuos rodmenis:
- Temperatūra
- Drėgmė
- Slėgis
Pastabos
- Aš pritaikiau saulės elementų laikiklius, kad jie geriau atitiktų mano saulės elementą.
- Įdiegiau elektroniką tarp „Pole_Mount“ir „Solid_Plate“. Atrodė, kad tai nesuteikia geros elektronikos apsaugos. Todėl pakeičiau „Solid_Plate“taip, kad jis turėtų sijoną, kuris vėliau uždarytų tarpą ir taip geriau apsaugotų elektroniką. Kai kurios iš pirmiau minėtų nuotraukų buvo padarytos prieš man atliekant šį pakeitimą.
- Mano epoksidas nusileido nelaikydamas saulės kolektoriaus, kurį vėliau vėl pritvirtinau super klijais. Manau, kad turėsiu naudoti silicį.
2 žingsnis: grandinė
Prijunkite grandinę, kaip parodyta schemoje, pritvirtinkite „LoLin“ir BME280 ant 3D atspausdinto tinklo, kaip parodyta nuotraukoje.
BME280 -> LiLon
- VCC -> 3.3V
- GND -> GND
- SCL -> D1
- SDA -> D2
LiLonas -> LiLonas
D0 -> RST (tai reikalinga norint pažadinti valdiklį iš gilaus miego režimo, bet turi būti prijungtas tik po to, kai kodas buvo įkeltas į valdiklį)
PASTABA
Turėjau iššūkių gauti tinkamą „LiLon“bateriją. Taip pat dėl tam tikrų priežasčių man nepavyko įjungti maitinimo per VIN. Todėl maitinau taip:
- Išėjimas iš TP4056 buvo prijungtas prie vyriškojo USB jungties, kuri buvo prijungta prie plokštės USB lizdo, kad būtų galima jį maitinti.
- B- ir B+ ant TP4056 buvo prijungti prie AA baterijų laikiklio, kuriame buvo laikomos NiMH baterijos.
3 žingsnis: IoT - „Blynk“
„„ Blynk “yra aparatūros agnostinė daiktų interneto platforma su pritaikomomis programomis mobiliesiems, privačiu debesiu, taisyklių varikliu ir įrenginių valdymo analizės informacijos suvestine“. Iš esmės tai leidžia saugiai valdyti ir stebėti nuotolinius jutiklius iš bet kurios pasaulio vietos internetu. Nors tai yra komercinė paslauga, kiekvienoje sąskaitoje yra 2000 nemokamų kreditų. Kreditai leidžia su jutikliu ar jutikliais susieti skirtingus matuoklius, ekranus, pranešimus ir pan. Nors prenumeratos kainos nepatenka į mėgėjų biudžeto ribas, nemokamų kreditų pakanka tokiam paprastam projektui kaip šis.
Norėdami pradėti naudotis paslauga, pirmiausia turite atsisiųsti „Blynk“programą į savo telefoną/įrenginį, sukurti ir susikurti paskyrą (arba prisijungti naudodami esamą paskyrą), o tada sukurti naują projektą taip:
- Pasirinkite aparatūrą
- Suteikite savo projektui pavadinimą (šiuo atveju naudojau „Meteorologinė stotis“).
- Spustelėkite „Sukurti“
- Tuomet el. Paštu gausite autentifikavimo kodą.
Jums nereikės pridėti reikiamų valdiklių. Su 2000 nemokamų kreditų pridėjau:
- 3 matuokliai
- 1 super diagrama
Matuokliai ir diagramos buvo sudaryti pagal pridedamas nuotraukas, kiekvienam buvo priskirtas savo virtualus kaištis, kuris vėliau bus naudojamas kode.
Atlikę nustatymus, galite paspausti paleidimo mygtuką viršuje dešinėje, kad pradėtumėte rinkti datą.
Daugiau informacijos žr
docs.blynk.cc/#getting-started.
4 žingsnis: kodas - „Arduino IDE“paruošimas
Norint užbaigti šį projektą, prie „Arduino IDE“reikės pridėti šias bibliotekas:
- https://github.com/adafruit/Adafruit_BME280_Library (reikia temperatūros, slėgio ir drėgmės jutiklio)
- https://github.com/adafruit/Adafruit_Sensor
- https://github.com/esp8266/Arduino (tai suteikia prieigą prie ESP8266 plokštės)
- https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 („Blynk“biblioteka)
- https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (norint prisijungti prie „Google“skaičiuoklių reikia „HTTPSRedicect“)
Instrukcijas, kaip įdiegti „Arduino IDE“bibliotekas, rasite apsilankę
Mano aparatūros nustatymai yra tokie:
- Plokštė: NodeMCU 1.0 (ESP-12E modulis)
- Įkėlimo greitis: 115200
Kai naudojate pridėtą kodą atlikdami šiuos veiksmus, visada žiūrėkite kodo komentarus, kaip pridėti:
- „Wi -Fi“SID
- „Wi -Fi“slaptažodis
- „Blynk“autorizacijos raktas
- „Google“scenarijaus ID
- „Google“skaičiuoklės bendrinimo raktas
5 žingsnis: kodas - „Blynk“
Aš ilgai kovojau, kad mano BME280 jutiklis veiktų, kol radau pavyzdį, kuriame yra ši eilutė.
status = bme.begin (0x76); // Mano naudojamo jutiklio I2C adresas yra 0x76
Atrodo, kad man reikėjo nustatyti jutiklio adresą. Kai aš tai padariau, viskas veikė puikiai.
„Blynk“turi tikrai gražią mobiliojo vartotojo sąsają, tačiau ji turi šiuos apribojimus:
- Tik 2000 nemokamų kreditų, projektų, kuriems reikia daugiau nei reikia brangios mėnesinės prenumeratos (nebent priimate ir prižiūrite savo „Blynk“serverį).
- Jei nepriglobsite savo „Blynk“serverio, negalėsite eksportuoti istorinių duomenų.
Dėl aukščiau išvardytų priežasčių pažvelgiau, kaip galėčiau integruoti savo duomenų rinkimo procesą į „Google“lapą. Tai aptariama kitame skyriuje.
6 veiksmas: kodas - „Google“skaičiuoklės
Norėdami įrašyti savo rodmenis, kad vėliau galėtumėte analizuoti istorinius duomenis, turite juos įrašyti į tam tikrą duomenų bazę. „HTTPSRedirect“biblioteka leidžia mums tai padaryti rašant duomenis į „Google“lapą.
Pagrindiniai šio metodo apribojimai yra šie:
- Nėra gražios mobiliosios vartotojo sąsajos
- „Google“skaičiuoklėje gali būti ne daugiau kaip 400 000 langelių. Šiam projektui tai nėra didelė problema, nes prireiks šiek tiek daugiau nei 11 metų, kol bus pasiekta ši riba.
„Google“lapas yra nustatytas taip.
Sukurkite „Google“lapą su dviem lapais.
1 lapas: duomenys
Duomenų lape turi būti 4 stulpeliai, ty data/laikas, temperatūra, drėgmė, slėgis (stulpeliai nuo A iki D). Tinkamai suformatuokite stulpelius, pvz. A stulpelis turi būti „Data ir laikas“, kad data ir laikas būtų rodomi langeliuose.
2 lapas: prietaisų skydelis
Sukurkite prietaisų skydelio lapą pagal pridėtas nuotraukas, įvesdami toliau pateiktas formules:
- B2: = skaičius (duomenys! B: B) -1
- B3: = B1+TIMEVALUE (CONCATENATE ("00:", tekstas (G7, "0")))
- B6: = užklausa (Duomenys! A2: D, „Pasirinkite B eilę pagal A aprašymo apribojimą 1“)
- C6: = užklausa (Duomenys! A2: D, „Pasirinkite C eilę pagal A desc limit 1“)
- D6: = užklausa (Duomenys! A2: D, "Pasirinkite D tvarką pagal A desc limit 1")
- B8: = užklausa (Duomenys! A2: D, „Pasirinkite A užsakymą pagal B 1 aprašo limitą“)
- C8: = užklausa (duomenys! A2: D, „Pasirinkite užsakymą pagal C desc limit 1“)
- D8: = užklausa (duomenys! A2: D, "Pasirinkite užsakymą pagal D aprašo apribojimą 1")
- B9: = užklausa (Duomenys! A2: D, „Pasirinkite B eilę pagal B 1 aprašo limitą“)
- C9: = užklausa (duomenys! A2: D, „Pasirinkite C eilę pagal C aprašo limitą 1“)
- D9: = užklausa (Duomenys! A2: D, "Pasirinkite D tvarką pagal D aprašo limitą 1")
- B11: = užklausa (Duomenys! A2: D, "Pasirinkite A, kur B nėra nulinė tvarka pagal B asc limit 1")
- C11: = užklausa (duomenys! A2: D, „Pasirinkite A, kur C nėra nulinė tvarka pagal C asc limit 1“)
- D11: = užklausa (Duomenys! A2: D, "Pasirinkite A, kur D nėra nulinė tvarka pagal D asc limit 1")
- B12: = užklausa (Duomenys! A2: D, "Pasirinkite B, kur B nėra nulinė tvarka pagal B asc limit 1")
- C12: = užklausa (duomenys! A2: D, „Pasirinkite C, kur C nėra nulinė tvarka pagal C asc limit 1“)
- D12: = užklausa (duomenys! A2: D, "Pasirinkite D, kur D nėra nulinė tvarka pagal D asc limit 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“skaičiuoklėse gali būti ne daugiau kaip 400 000 langelių. Tai naudojama kartu su tuo, kad kiekvienam skaitymui naudojamos 4 ląstelės, kad būtų galima apskaičiuoti, kiek vietos liko ir kada ji baigsis.
Gali būti įmanoma patobulinti šias formules. Aš čia dariau du dalykus, ty sužinojau apie užklausos formulę ir tada taip pat parašiau formulę taip, kad padėtų man prisiminti jų logiką.
„Diagramos redaktoriaus“ekrano kopija rodo pagrindinius temperatūros grafiko nustatymus. Kitos diagramos buvo sukurtos naudojant tą pačią sąranką. Vienintelis skirtumas tarp grafikų buvo minimalios vertikalios ašies vertės (pateiktos skirtuke Tinkinti). Skirtuke Tinkinti taip pat yra kiti nustatymai, pvz., Prieigos pavadinimai, grafikų pavadinimai ir kt.
Dabar mums reikia „Google“scenarijaus, kuris leis mums rašyti savo duomenis paskambinus URL.
Scenarijaus kūrimas
„Google“lapo URL pažymėkite raktą tarp „d /“ir „ / edit“. Tai yra jūsų „Google-Sheet-Sharing-Key“ir jis bus reikalingas toliau pateiktame kode.
Tada eikite į Įrankiai> Scenarijų rengyklė ir sukurkite „Google App Script“, įklijuodami kodą pridėtame GS faile. Atnaujinkite var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); kad atspindėtų jūsų bendrinimo raktą.
Dabar paskelbkite scenarijų, eidami į Skelbti> Diegti kaip žiniatinklio programą.
Nukopijuokite dabartinės žiniatinklio programos URL ir išsaugokite kur nors, kaip jums reikės norint išgauti GScriptID (-Jūsų „Google-Script-ID–“). GScriptID yra eilutė tarp „s /“ir „ / exec?“. Įsitikinkite, kad programa „Visi, net anoniminiai“turi prieigą prie programos. Šio proceso metu jūsų bus paprašyta suteikti tam tikrus leidimus. Svarbu, kad jūs jiems suteiktumėte.
Pastaba: kai modifikuojate kodą, turite sukurti „naują“projekto versiją ir ją paskelbti, nes priešingu atveju vis tiek paspausite tą patį seną kodą.
Dabar galite išbandyti scenarijų apsilankę https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. Kiekvieną kartą, kai atnaujinate šią nuorodą, „Google“lape turėtų būti pridėtas naujas įrašas.
Tai buvo paimta iš šios pamokos: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Tačiau ši pamoka yra pasenusi, todėl kitame skyriuje susietas „Arduino“kodas buvo pakeistas, kad atitiktų naujausias „HTTPSRedirect“bibliotekas.
Arduino kodas
Žiūrėkite pridedamą kodą.
7 veiksmas: kodas - „Blynk“ir „Google“skaičiuoklės
Norint kuo geriau išnaudoti abu pasaulius, galima sujungti „Blynk“ir „Google“skaičiuoklių kodą.
Žiūrėkite pridedamą kodą.
8 žingsnis: paskutiniai komentarai
Nei vienas iš aukščiau išvardytų dalykų nėra mano idėjos, o greičiau projektas, paremtas kitų idėjomis ir darbais. Man labai patiko jį ištraukti į vieną vietą. naudojant įvairias technologijas ir įrankius puikiam ir smagiam projektui. Man ypač patiko išmokti saugoti savo rodmenis „Google“lape. Už tai noriu padėkoti „ElectronicsGuy“(Sujay Phadke).
Atnaujinti
Baigęs šį projektą turėjau pakeisti belaidžio ryšio nustatymus. Dabar dirbau prie kito kompiuterio. Įkėlus pakeitimus, projektas nustojo veikti. Po tam tikro trikčių šalinimo padariau išvadą, kad deepsleep funkcija neveikia. Aš parsinešiau projektą namo ir įkėliau ten (naudodamas tą patį kodą) ir jis veikė. Todėl padariau išvadą, kad mano pridėtose bibliotekose kažkas turėjo pasikeisti. Todėl prie šio skyriaus prijungiau bibliotekas, kurios šiuo metu yra mano namų kompiuteryje; tik jei kas nors susidurs su šia problema.
Rekomenduojamas:
Profesionali orų stotis naudojant „ESP8266“ir „ESP32 pasidaryk pats“: 9 žingsniai (su nuotraukomis)
Profesionali orų stotis, naudojant „pasidaryk pats“ESP8266 ir ESP32: „LineaMeteoStazione“yra visiška orų stotis, kurią galima sujungti su profesionaliais „Sensirion“jutikliais ir kai kuriais „Davis“prietaiso komponentais (lietaus matuoklis, anemometras)
„NaTaLia“orų stotis: „Arduino“saulės energija varoma oro stotis padaryta teisingai: 8 žingsniai (su nuotraukomis)
„NaTaLia“orų stotis: „Arduino Solar Powered Weather Station“padaryta teisingai: Po vienerių metų sėkmingo veikimo 2 skirtingose vietose dalinuosi saulės kolektorių projektų planais ir paaiškinu, kaip ji išsivystė į sistemą, kuri tikrai gali išgyventi ilgą laiką laikotarpius nuo saulės energijos. Jei sekate
IoT ESP8266 pagrįsta orų stotis: 6 žingsniai
IoT ESP8266 pagrįsta orų stotis: norite sukurti orų stoties projektą nenaudodami jokio jutiklio ir gauti informacijos apie orą iš viso pasaulio? Naudojant „OpenWeatherMap“, tai tampa tikra užduotimi
ESP8266 „NodeMCU + LM35 + Blynk“(IOT orų stotis/ skaitmeninis temperatūros jutiklis): 4 žingsniai
ESP8266 „NodeMCU + LM35 + Blynk“(IOT orų stotis/ skaitmeninis temperatūros jutiklis): Sveiki, vaikinai! Šioje instrukcijoje mokysimės susieti LM35 jutiklį su „NodeMCU“ir parodyti šią temperatūros informaciją internete išmaniajame telefone su „Blynk“programa. (Taip pat šiame projekte mes naudosime „SuperChart“valdiklį „Bl“
JAWS: Tiesiog kita orų stotis: 6 žingsniai
JAWS: Tiesiog kita orų stotis: koks tikslas? Nuo jaunystės metų mane labai domina orai. Pirmieji mano surinkti duomenys buvo iš seno, gyvsidabrio pripildyto termometro, kabėjusio lauke. Kiekvieną dieną, kelis mėnesius iš eilės, po truputį rašiau temperatūrą, datą ir valandą