Talaan ng mga Nilalaman:

Isa pang IoT Weather Station: 8 Hakbang
Isa pang IoT Weather Station: 8 Hakbang

Video: Isa pang IoT Weather Station: 8 Hakbang

Video: Isa pang IoT Weather Station: 8 Hakbang
Video: DR. VICKI BELO's TRANSFORMATION💖🤩#vickibelo #doctor #transformation #viral #trending 2024, Hulyo
Anonim
Isa pang IoT Weather Station
Isa pang IoT Weather Station
Isa pang IoT Weather Station
Isa pang IoT Weather Station
Isa pang IoT Weather Station
Isa pang IoT Weather Station
Isa pang IoT Weather Station
Isa pang IoT Weather Station

Ang sumusunod ay regalong kaarawan para sa aking Tatay; inspirasyon ng isa pang tagubilin na nakita ko at una na nilayon upang mapatunayan sa kanya bilang isang self-build kit. Gayunpaman sa pagsisimulang magtrabaho sa proyektong ito kasama ko siya napakabilis na napagtanto na ang paunang tutorial na nagbigay inspirasyon sa regalo ay hindi napapanahon at na marami sa iba pang mga online tutorial ay may mga makabuluhang puwang sa kanilang mga paliwanag. Napagpasyahan kong maglathala pa ng isa pang IoT Weather Station na sana ay madaling sundin ang form na nagsisimula hanggang matapos.

Dagdag dito itinuturo sa iyo kung paano gamitin ang Blynk, Google Sheets o pareho upang masubaybayan at maitala ang mga pagbabasa ng sensor. Ano pa, ang mga entry sa Google Sheets ay nakasulat nang direkta sa sheet (nang hindi kinakailangang dumaan sa isang serbisyo sa ika-3 partido).

Tungkol sa Stevenson Screen, maraming magagamit na online na maaaring naka-print na hal hal. https://www.thingiverse.com/thing:1718334. Itatayo ko ang isang ito para sa Instructable na ito.

Ang isang Stevenson Screen ay isang "instrumentong kanlungan ay isang kanlungan o isang enclosure sa mga meteorological instrumento laban sa pag-ulan at pagdirekta ng radiation ng init mula sa labas ng mga mapagkukunan, habang pinapayagan pa rin ang hangin na malayang mag-ikot sa paligid nila." (Wikipedia).

Mga Bahagi

  • Wemos LolIn - NodeMCU v3 (USD 1.43)
  • BME280 (Temperatura, Pressure & Humidity sensor) (USD 2.40)
  • 6V 1000mA Solar Panel (USD 9.96)
  • 5V 1A Micro USB 18650 Lithium Battery Charging Board Charger Module + Proteksyon Dalawang Pag-andar TP4056 (USD 0.99)
  • 4x 1.2V NiMH rechargeable na mga baterya
  • May-ari ng Baterya (4x AA, magkatabi at nagtatapos sa dulo)
  • Plug ng Micro USB Male connector
  • Mga Tali ng Cable
  • 3x Wing Nuts
  • Pole o walis-stick
  • Epoxy at / o sobrang pandikit (sa pag-iisip, maaaring gumana nang mas mahusay ang silikon)

Software

  • Blynk App
  • Google Sheets (kung nais mong magkaroon ng access sa makasaysayang data)
  • EasyEDA (para sa pagguhit ng eskematiko)
  • Arduino IDE

Mga kasangkapan

  • Panghinang
  • Panghinang
  • Heat Shrink Tubing
  • 3d printer
  • Pandikit Baril

Hakbang 1: Pag-print sa 3D - Stevenson Screen

3D Pagpi-print - Stevenson Screen
3D Pagpi-print - Stevenson Screen
3D Pagpi-print - Stevenson Screen
3D Pagpi-print - Stevenson Screen
3D Pagpi-print - Stevenson Screen
3D Pagpi-print - Stevenson Screen

Tulad ng nabanggit na, i-download ang mga file mula sa https://www.thingiverse.com/thing:1718334 at i-print ang kinakailangang mga piraso. Ang mga tagubilin sa Assembly ay matatagpuan din sa link sa itaas. Gumawa ako ng ilang mga pagbabago (tingnan ang mga tala sa ibaba).

Ang mga bahagi na nakalimbag ay:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL nakakabit sa itaas)
  • 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 nakakabit sa itaas)

Ang order ng pagpupulong ay:

  • I-thread ang mga butas
  • I-tornilyo ang mga M3 bar sa mga sinulatang socket
  • Top_Cover
  • Solid_Plate
  • Gitna_Rings
  • I-slide sa Sensor_Grid
  • Electronics_Mount
  • Solid_Plate_Bottom
  • Pole_Mount
  • Ang My_Solar_Cell_Mounts ay naka-epox sa tuktok ng Top_Cover

Nag-drill ako ng mga butas sa Solid plate upang payagan ang pag-charge ng cable mula sa Solar Panel upang kumonekta sa charger at pagkatapos ay isa upang payagan ang cable na tumakbo mula sa controller sa sensor sa Sensor_Grid.

Kapag nakumpleto, ang sensor ay nai-program upang gawin ang mga sumusunod na pagbabasa tuwing 60 minuto:

  • Temperatura
  • Humidity
  • Presyon

Mga tala

  • Pinasadya ko ang mga cell ng solar cell upang maging mas angkop na hawakan ang aking solar cell.
  • Na-install ko ang electronics sa pagitan ng Pole_Mount at Solid_Plate. Hindi ito lumitaw upang magbigay ng mahusay na proteksyon para sa electronics. Samakatuwid binago ko ang Solid_Plate upang mayroon itong palda na kung saan ay isasara ang puwang at sa gayong paraan ay magbibigay ng mas mahusay na proteksyon para sa electronics. Ang ilan sa mga larawan sa itaas ay kinunan bago ko ginawa ang pagbabagong ito.
  • Ang aking epoxy ay lumapag na hindi hawak ang solar panel na pagkatapos ay muling ikinabit ko ng sobrang pandikit. Sa tingin ko ay darating ako sa pagkakaroon ng paggamit ng silikon.

Hakbang 2: Ang Circuit

Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit

Ikonekta ang circuit tulad ng ipinakita sa eskematiko, i-mount ang LoLin at BME280 sa 3D-print mesh tulad ng ipinakita sa larawan.

BME280 -> LiLon

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

LiLon -> LiLon

D0 -> RST (kinakailangan ito upang gisingin ang taga-kontrol mula sa mahimbing na pagtulog ngunit dapat lamang na konektado pagkatapos na ma-upload ang code sa controller)

TANDAAN

Nagkaroon ako ng mga hamon sa pagkuha ng angkop na baterya ng LiLon. Gayundin para sa ilang kadahilanan na wala akong tagumpay sa pag-power sa pamamagitan ng VIN. Samakatuwid pinapagana ko ang mga sumusunod:

  • Ang output mula sa TP4056 ay naka-wire sa Male USB konektor na pagkatapos ay naka-plug sa USB socket ng board upang mapagana ito.
  • Ang B- at B + sa TP4056 ay konektado sa may hawak ng baterya ng AA na humawak ng mga baterya ng NiMH.

Hakbang 3: IoT - Blynk

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

Ang "Blynk ay isang platform na IoT na may hardware na agnostic na may napapasadyang mga mobile app, pribadong cloud, rules engine, at dashboard ng analytics ng pamamahala ng aparato". Karaniwan pinapayagan ka nitong ligtas na pamahalaan at subaybayan ang mga remote sensor mula sa kahit saan sa mundo sa pamamagitan ng Internet. Habang isang serbisyo sa komersyo, ang bawat account ay mayroong 2000 libreng kredito. Pinapayagan ka ng mga kredito na maiugnay ang iba't ibang mga gauge, display, notification atbp sa iyong sensor o sensor. Habang ang pagpepresyo ng subscription ay wala sa saklaw ng badyet ng isang libangan, ang mga libreng kredito ay sapat para sa isang simpleng proyekto na tulad nito.

Upang simulang gamitin ang serbisyo kakailanganin mong i-download muna ang Blynk App sa iyong telepono / aparato, lumikha at mag-account (o mag-log on sa mayroon nang account) at pagkatapos ay lumikha ng isang bagong proyekto tulad ng sumusunod:

  • Piliin ang iyong hardware
  • Bigyan ang iyong proyekto ng isang pangalan (sa kasong ito ginamit ko ang "Weather Station".
  • I-click ang "Lumikha"
  • Makakakuha ka ng isang Auth Code na e-mail sa iyo.

Hindi mo na kailangang idagdag ang kinakailangang mga widget. Sa aking 2000 libreng kredito idinagdag ko ang sumusunod:

  • 3 Mga pagsusukat
  • 1 Super Chart

Ang mga gauge at tsart ay na-set up ayon sa mga nakakabit na larawan, bawat isa ay nakatalaga sa sarili nitong virtual pin na gagamitin sa huli sa code.

Kapag tapos na sa mga setting, ang pindutan ng pag-play sa kanang tuktok ay maaaring mapindot upang simulan ang pagkolekta ng petsa.

Para sa karagdagang impormasyon tingnan

docs.blynk.cc/#getting-started.

Hakbang 4: Code - Paghahanda ng Arduino IDE

Ang mga sumusunod na aklatan ay kailangang idagdag sa Arduino IDE upang makumpleto ang proyektong ito:

  • https://github.com/adafruit/Adafruit_BME280_Library (kailangan para sa temperatura, presyon at sensor ng halumigmig)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (binibigyan ka nito ng pag-access sa board ng ESP8266)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (ang Blynk library)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (kailangan ng HTTPSRedicect para sa pagkonekta sa Google Sheets)

Para sa mga tagubilin sa pag-install ng mga aklatan para sa Arduino IDE, bisitahin ang

Ang aking mga setting ng hardware kung saan tulad ng sumusunod:

  • Lupon: NodeMCU 1.0 (Module ng ESP-12E)
  • Bilis ng Pag-upload: 115200

Kapag ginagamit ang naka-attach na code sa mga sumusunod na hakbang, mangyaring laging sumangguni sa mga komento sa code patungkol sa pagdaragdag ng sumusunod:

  • Wifi SID
  • Wifi Password
  • Susi ng pahintulot ng Blynk
  • Google Script ID
  • Key sa pagbabahagi ng Google Sheet

Hakbang 5: Code - Blynk

Nakipaglaban ako para sa mga edad upang magamit ang aking sensor na BME280 hanggang sa makahanap ako ng isang halimbawa na naglalaman ng sumusunod na linya.

katayuan = bme.begin (0x76); // Ang I2C address ng sensor na ginagamit ko ay 0x76

Lumilitaw na kailangan kong itakda ang sensor address. Sa sandaling nagawa ko ito lahat ay maayos lamang.

Ang Blynk ay may isang talagang magandang mobile user-interface mayroon itong mga sumusunod na limitasyon:

  • Tanging ang 2000 mga libreng kredito, mga proyekto na nangangailangan ng higit sa na nangangailangan ng isang mamahaling buwanang subscription (maliban kung mag-host ka at mapanatili ang iyong sariling server ng Blynk).
  • Maliban kung nagho-host ka ng iyong sariling server ng Blynk, hindi ka maaaring mag-export ng makasaysayang data.

Para sa mga nabanggit na kadahilanan tiningnan ko kung paano ko maisasama ang aking proseso ng pagkolekta ng data sa isang Google Sheet. Saklaw ito sa susunod na seksyon.

Hakbang 6: Code - Google Sheets

Code - Google Sheets
Code - Google Sheets
Code - Google Sheets
Code - Google Sheets
Code - Google Sheets
Code - Google Sheets

Upang maitala ang iyong mga pagbasa upang maaari mong pag-aralan ang makasaysayang data sa ibang araw kailangan mong isulat ito sa isang uri ng database. Pinapayagan kami ng HTTPSRedirect library na gawin ito sa pamamagitan ng pagsulat ng aming data sa isang Google Sheet.

Ang pangunahing mga limitasyon sa pamamaraang ito ay ang mga sumusunod:

  • Walang magandang mobile user-interface
  • Ang isang Google Sheet ay maaaring magkaroon ng maximum na 400 000 na mga cell. Para sa proyektong ito, ito ay hindi isang malaking isyu dahil tatagal ng higit sa 11 taon bago maabot ang limitasyong ito.

Ang Google Sheet ay na-set up tulad ng sumusunod.

Lumikha ng isang Google Sheet na may dalawang sheet.

Sheet 1: Data

Ang sheet ng Data ay nangangailangan ng 4 na haligi ibig sabihin Petsa / Oras, Temperatura, Humidity, Presyon (mga haligi A hanggang D). Angkop na mai-format ang mga haligi hal. Ang Hanay A ay magiging "Oras ng Petsa" upang ang petsa at oras ay ipinapakita sa mga cell.

Sheet 2: Dashboard

Lumikha ng sheet ng Dashboard alinsunod sa mga nakalakip na larawan, paglalagay ng mga formula tulad ng nakalista sa ibaba:

  • B2: = council (Data! B: B) -1
  • B3: = B1 + TIMEVALUE (CONCATENATE ("00:", Text (G7, "0")))
  • B6: = query (Data! A2: D, "Piliin ang B order ayon sa A desc limit 1")
  • C6: = query (Data! A2: D, "Piliin ang C order ayon sa A desc limit 1")
  • D6: = query (Data! A2: D, "Piliin ang D order ayon sa A desc limit 1")
  • B8: = query (Data! A2: D, "Pumili ng isang order ayon sa B desc limit 1")
  • C8: = query (Data! A2: D, "Pumili ng isang order sa pamamagitan ng C desc limit 1")
  • D8: = query (Data! A2: D, "Pumili ng isang order ayon sa D na limitasyon 1")
  • B9: = query (Data! A2: D, "Piliin ang B order ayon sa B desc limit 1")
  • C9: = query (Data! A2: D, "Piliin ang C order ayon sa C desc limit 1")
  • D9: = query (Data! A2: D, "Piliin ang D order ayon sa D desc limit 1")
  • B11: = query (Data! A2: D, "Piliin ang A kung saan ang B ay hindi null order ng B asc limit 1")
  • C11: = query (Data! A2: D, "Piliin ang A kung saan ang C ay hindi null order ng C asc limit 1")
  • D11: = query (Data! A2: D, "Piliin ang A kung saan ang D ay hindi null order ng D asc limit 1")
  • B12: = query (Data! A2: D, "Piliin ang B kung saan ang B ay hindi null order ng B asc limit 1")
  • C12: = query (Data! A2: D, "Piliin ang C kung saan ang C ay hindi null order ng C asc limit 1")
  • D12: = query (Data! A2: D, "Piliin ang D kung saan ang D ay hindi null order ng 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)

Ang Google Sheets ay maaaring magkaroon ng maximum na 400, 000 na mga cell. Ginagamit ito, kasama ang katotohanan na ang bawat pagbabasa ay gumagamit ng 4 na mga cell, upang makalkula kung magkano ang natitirang puwang at kung kailan ito mauubusan.

Maaaring posible na pagbutihin ang mga formula na ito. Gumagawa ako ng dalawang bagay dito ibig sabihin alamin ang tungkol sa formula ng query at pagkatapos ay nagsusulat din ng ilang pormula sa paraang matutulungan akong matandaan ang lohika sa likod nila.

Ipinapakita ng screenshot na "Chart Editor" ang pangunahing pag-set up para sa graph ng Temperatura. Ang iba pang mga graph kung saan nilikha gamit ang parehong set-up. Ang pagkakaiba lamang sa pagitan ng mga graph ay ang minimum na mga halaga ng patayong axis (matatagpuan sa ilalim ng tab na ipasadya). Ang tab na ipasadya ay mayroon ding iba pang mga setting tulad ng mga pangalan ng pag-access, mga pamagat ng grap, atbp.

Kailangan namin ngayon ng isang Google Script na magbibigay-daan sa amin upang isulat ang aming data sa pamamagitan ng pagtawag sa isang URL.

Paglikha ng iskrip

Sa Google Sheet URL, itala ang susi sa pagitan ng "d /" at "/ edit". Ito ang iyong -Your-Google-Sheet-Sharing-Key– at kakailanganin sa code sa ibaba.

Susunod na pumunta sa Tools> Script Editor at likhain ang Google App Script, i-paste ang code sa nakalakip na GS file. I-update ang var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); upang ipakita ang iyong key sa pagbabahagi.

I-publish ngayon ang script sa pamamagitan ng pagpunta sa I-publish> I-deploy bilang Web App.

Kopyahin ang Kasalukuyang web app URL at i-save ito sa isang lugar dahil kakailanganin mo ito para sa pagkuha ng GScriptID (-Your-Google-Script-ID–). Ang GScriptID ay ang string sa pagitan ng "s /" at "/ exec?". Tiyaking ang "Kahit sino, kahit na hindi nagpapakilala" ay may access sa app. Sa panahon ng prosesong ito hihilingin sa iyo na magbigay ng ilang mga pahintulot. Mahalaga na ibigay mo ang mga ito.

Tandaan: Kailanman binago mo ang iyong code, kailangan mong lumikha ng isang "Bago" na bersyon ng Proyekto at mai-publish ito kung hindi man ay mapupukpok mo pa rin ang parehong lumang code.

Maaari mo nang subukan ang script sa pamamagitan ng pag-browse sa https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. Sa tuwing nai-refresh mo ang link na ito, dapat na idagdag ang isang bagong entry sa Google Sheet.

Ang nasa itaas na ito ay kinuha mula sa sumusunod na tutorial: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Ang tutorial na ito ay hindi napapanahon at kung kaya ang nauugnay na Arduino code sa susunod na seksyon ay binago upang mapaunlakan ang pinakabagong mga aklatan na

Ang Arduino Code

Tingnan ang nakalakip na code.

Hakbang 7: Code - Blynk at Google Sheets

Upang makuha ang pinakamahusay sa parehong mundo, maaaring pagsamahin ng isa ang code para sa parehong Blynk at Google Sheets.

Tingnan ang nakalakip na code.

Hakbang 8: Huling Mga Komento

Pangwakas na Komento
Pangwakas na Komento
Pangwakas na Komento
Pangwakas na Komento

Wala sa nabanggit ang aking mga ideya ngunit ito ay isang proyekto na itinayo sa mga ideya at gawain ng iba. Nasisiyahan akong hilahin ito nang buo sa isang lugar. gamit ang iba't ibang mga teknolohiya at tool upang magaling ang isang masaya at praktikal na proyekto. Lalo akong nasiyahan sa pag-alam kung paano iimbak ang aking mga pagbabasa sa isang Google Sheet. Para sa mga ito nais kong pasalamatan ang ElectronicsGuy (Sujay Phadke).

Update

Matapos makumpleto ang proyektong ito kailangan kong baguhin ang aking mga setting ng wireless. Nagtatrabaho ako ngayon sa ibang computer. Matapos i-upload ang mga pagbabago, tumigil sa paggana ang proyekto. Matapos ang ilang pag-troubleshoot ay napagpasyahan kong bumagsak ang pagpapaandar ng deepsleep. Kinuha ko ang proyekto pabalik sa bahay at na-upload ito doon (gamit ang parehong code) at gumana ito. Napagpasyahan ko na dapat may nagbago sa mga aklatan na idinagdag ko. Samakatuwid ay ikinabit ko ang mga aklatan na kasalukuyang nasa aking computer sa bahay sa seksyong ito; kung sakali man may ibang tao na makaharap sa isyung ito.

Inirerekumendang: