Satura rādītājs:

Vēl viena IoT laika stacija: 8 soļi
Vēl viena IoT laika stacija: 8 soļi

Video: Vēl viena IoT laika stacija: 8 soļi

Video: Vēl viena IoT laika stacija: 8 soļi
Video: ЯЙЦА ВАРЕНЫЕ 8 ЧАСОВ. ХАМИН В КАЗАНЕ 10, 12, 24 ЧАСОВ ПРИГОТОВЛЕНИЯ. РЕЦЕПТ 2024, Jūlijs
Anonim
Vēl viena IoT laika stacija
Vēl viena IoT laika stacija
Vēl viena IoT laika stacija
Vēl viena IoT laika stacija
Vēl viena IoT laika stacija
Vēl viena IoT laika stacija
Vēl viena IoT laika stacija
Vēl viena IoT laika stacija

Tālāk bija dāvana manam tētim dzimšanas dienā; iedvesmojoties no cita Instructable, ko es redzēju un sākotnēji biju iecerējis viņam pierādīt kā pašbūves komplektu. Tomēr, sākot strādāt ar šo projektu kopā ar viņu, es ļoti ātri sapratu, ka sākotnējā apmācība, kas iedvesmoja dāvanu, bija novecojusi un ka daudzu citu tiešsaistes apmācību skaidrojumos bija ievērojami trūkumi. Tāpēc es nolēmu publicēt vēl vienu IoT meteoroloģisko staciju, kurai, cerams, būs viegli sekot no sākuma līdz beigām.

Tālāk šajā pamācībā ir parādīts, kā izmantot Blynk, Google izklājlapas vai abus, lai uzraudzītu un reģistrētu sensora rādījumus. Turklāt Google izklājlapu ieraksti tiek ierakstīti tieši lapā (neizmantojot trešās puses pakalpojumu).

Attiecībā uz Stīvensona ekrānu tiešsaistē ir pieejami daudzi, kurus var izdrukāt 3D formātā, piem. https://www.thingiverse.com/thing:1718334. Es būšu balstīts uz šo šo instrukciju.

Stīvensona ekrāns ir "instrumentu patversme ir patvērums vai iežogojums meteoroloģiskajiem instrumentiem pret nokrišņiem un tiešu siltuma starojumu no ārējiem avotiem, vienlaikus ļaujot gaisam brīvi cirkulēt ap tiem." (Wikipedia).

Daļas

  • Wemos LolIn - NodeMCU v3 (USD 1,43)
  • BME280 (temperatūras, spiediena un mitruma sensors) (USD 2,40)
  • 6V 1000mA saules panelis (USD 9,96)
  • 5V 1A Micro USB 18650 litija akumulatora uzlādes paneļa lādētāja modulis+dubultās aizsardzības funkcija TP4056 (USD 0,99)
  • 4x 1,2 V NiMH uzlādējamas baterijas
  • Akumulatora turētājs (4x AA, blakus un no gala līdz galam)
  • Micro USB vīriešu savienotāja spraudnis
  • Kabeļu saites
  • 3x spārnu uzgriežņi
  • Nūja vai slotas kāts
  • Epoksīdsveiksme un/vai superlīme (pagātnē var teikt, ka silīcijs varēja darboties labāk)

Programmatūra

  • Lietotne Blynk
  • Google izklājlapas (ja vēlaties piekļūt vēsturiskajiem datiem)
  • EasyEDA (shematiskai zīmēšanai)
  • Arduino IDE

Rīki

  • Lodāmurs
  • Lodēt
  • Termiski saraušanās caurules
  • 3D printeris
  • Līmes pistole

1. darbība: 3D drukāšana - Stīvensona ekrāns

3D drukāšana - Stīvensona ekrāns
3D drukāšana - Stīvensona ekrāns
3D drukāšana - Stīvensona ekrāns
3D drukāšana - Stīvensona ekrāns
3D drukāšana - Stīvensona ekrāns
3D drukāšana - Stīvensona ekrāns

Kā jau minēts, lejupielādējiet failus no vietnes https://www.thingiverse.com/thing:1718334 un izdrukājiet nepieciešamos bitus. Montāžas instrukcijas ir atrodamas arī iepriekš minētajā saitē. Es veicu dažas izmaiņas (skatīt piezīmes zemāk).

Drukātās detaļas ir:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL pievienots iepriekš)
  • 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 pievienots iepriekš)

Montāžas secība ir šāda:

  • Izgrieziet caurumus
  • Ieskrūvējiet M3 stieņus vītņotajās kontaktligzdās
  • Top_Cover
  • Solid_Plate
  • Vidējie_gredzeni
  • Bīdiet Sensor_Grid
  • Electronics_Mount
  • Solid_Plate_Bottom
  • Pole_Mount
  • My_Solar_Cell_Mounts tiek epoksēti augšējā seguma augšdaļā

Es izurbju caurumus cietajās plāksnēs, lai saules paneļa uzlādes kabelis varētu pieslēgties lādētājam, un pēc tam viens, lai vads varētu virzīties no kontroliera līdz sensoram Sensor_Grid.

Pēc pabeigšanas sensors tika ieprogrammēts veikt šādus rādījumus ik pēc 60 minūtēm:

  • Temperatūra
  • Mitrums
  • Spiediens

Piezīmes

  • Es pielāgoju saules bateriju stiprinājumus, lai tie būtu labāk piemēroti saules elementa turēšanai.
  • Es uzstādīju elektroniku starp Pole_Mount un Solid_Plate. Šķiet, ka tas nenodrošina labu elektronikas aizsardzību. Tāpēc es pārveidoju uz Solid_Plate tā, lai tam būtu svārki, kas pēc tam aizvērtu spraugu un tādējādi nodrošinātu labāku elektronikas aizsardzību. Dažas no iepriekš minētajām fotogrāfijām tika uzņemtas pirms šo izmaiņu veikšanas.
  • Mans epoksīds piezemējās, neturot saules paneļa, ko pēc tam atkal piestiprināju ar superlīmi. Es domāju, ka man būs jāizmanto silīcijs.

2. solis: ķēde

Ķēde
Ķēde
Ķēde
Ķēde

Pievienojiet ķēdi, kā parādīts shēmā, uzstādot LoLin un BME280 uz 3D drukātā sieta, kā parādīts fotoattēlā.

BME280 -> LiLon

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

LiLon -> LiLon

D0 -> RST (tas ir nepieciešams, lai pamodinātu kontrolieri no dziļā miega režīma, bet tas ir jāpievieno tikai pēc koda augšupielādes kontrolierī)

PIEZĪME

Man bija problēmas iegūt piemērotu LiLon akumulatoru. Arī kāda iemesla dēļ man nebija panākumu, izmantojot VIN. Tāpēc es darbinājos šādi:

  • Izeja no TP4056 tika pievienota vīriešu USB savienotājam, kas pēc tam tika pievienots tāfeles USB ligzdai, lai to darbinātu.
  • B- un B+ uz TP4056 bija savienoti ar AA bateriju turētāju, kurā bija NiMH baterijas.

3. darbība: IoT - Blynk

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

"Blynk ir aparatūras agnostiķu IoT platforma ar pielāgojamām mobilajām lietotnēm, privātu mākoni, noteikumu dzinēju un ierīču pārvaldības analīzes informācijas paneli". Būtībā tas ļauj droši pārvaldīt un uzraudzīt attālos sensorus no jebkuras vietas pasaulē, izmantojot internetu. Lai gan tas ir komerciāls pakalpojums, katram kontam ir 2000 bezmaksas kredītu. Kredīti ļauj ar sensoru vai sensoriem saistīt dažādus mērinstrumentus, displejus, paziņojumus utt. Lai gan abonēšanas cenas ir ārpus hobija budžeta budžeta, bezmaksas kredīti ir pietiekami vienkāršam projektam, piemēram, šim.

Lai sāktu izmantot pakalpojumu, vispirms lejupielādējiet lietotni Blynk savā tālrunī/ierīcē, izveidojiet un izveidojiet kontu (vai piesakieties, izmantojot esošo kontu) un pēc tam izveidojiet jaunu projektu šādi:

  • Izvēlieties aparatūru
  • Piešķiriet savam projektam nosaukumu (šajā gadījumā es izmantoju "Weather Station".
  • Noklikšķiniet uz "Izveidot"
  • Pēc tam jūs pa e-pastu saņemsit autentifikācijas kodu.

Jums nebūs jāpievieno nepieciešamie logrīki. Ar saviem 2000 bezmaksas kredītiem es pievienoju:

  • 3 mērinstrumenti
  • 1 Super diagramma

Mērinstrumenti un diagrammas tika iestatītas atbilstoši pievienotajām fotogrāfijām, katrai no tām tika piešķirta sava virtuālā tapa, kas pēdējā tiks izmantota kodā.

Kad esat pabeidzis iestatījumus, atskaņošanas pogu augšējā labajā stūrī var nospiest, lai sāktu vākt datumu.

Plašāku informāciju skat

docs.blynk.cc/#getting-started.

4. solis: kods - Arduino IDE sagatavošana

Lai pabeigtu šo projektu, Arduino IDE būs jāpievieno šādas bibliotēkas:

  • https://github.com/adafruit/Adafruit_BME280_Library (nepieciešams temperatūras, spiediena un mitruma sensors)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (tas dod jums piekļuvi ESP8266 plāksnei)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (bibliotēka Blynk)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (HTTPSRedicect nepieciešams savienojumam ar Google izklājlapām)

Norādījumus par Arduino IDE bibliotēku instalēšanu skatiet vietnē

Mani aparatūras iestatījumi ir šādi:

  • Plāksne: NodeMCU 1.0 (ESP-12E modulis)
  • Augšupielādes ātrums: 115200

Izmantojot pievienoto kodu, veicot tālāk norādītās darbības, lūdzu, vienmēr skatiet koda komentārus, lai pievienotu tālāk norādīto.

  • Wi -Fi SID
  • Wifi parole
  • Blynk autorizācijas atslēga
  • Google skripta ID
  • Google izklājlapas koplietošanas atslēga

5. solis: kods - Blynk

Es ilgi cīnījos, lai BME280 sensors darbotos, līdz atradu piemēru, kurā bija šāda rindiņa.

statuss = bme.begin (0x76); // Mana lietotā sensora I2C adrese ir 0x76

Šķiet, ka man bija jāiestata sensora adrese. Kad es to izdarīju, viss strādāja lieliski.

Blynk ir patiešām jauka mobilā lietotāja saskarne, taču tai ir šādi ierobežojumi:

  • Tikai 2000 bezmaksas kredīti, projekti, kas prasa vairāk par šo, prasa dārgu ikmēneša abonementu (ja vien jūs nerīkojat un neuzturat savu Blynk serveri).
  • Ja vien jūs neizvietojat savu Blynk serveri, jūs nevarat eksportēt vēsturiskos datus.

Iepriekš minēto iemeslu dēļ es apskatīju, kā es varētu integrēt savu datu vākšanas procesu Google izklājlapā. Tas ir aplūkots nākamajā sadaļā.

6. darbība. Kods - Google izklājlapas

Kods - Google izklājlapas
Kods - Google izklājlapas
Kods - Google izklājlapas
Kods - Google izklājlapas
Kods - Google izklājlapas
Kods - Google izklājlapas

Lai ierakstītu savus rādījumus, lai vēlāk varētu analizēt vēsturiskos datus, tie ir jāraksta kaut kādā datu bāzē. HTTPSRedirect bibliotēka ļauj mums to izdarīt, ierakstot savus datus Google izklājlapā.

Šīs pieejas galvenie ierobežojumi ir šādi:

  • Nav jauka mobilā lietotāja interfeisa
  • Google izklājlapā var būt ne vairāk kā 400 000 šūnu. Šim projektam tas nav liels jautājums, jo paies nedaudz vairāk kā 11 gadi, pirms tiks sasniegta šī robeža.

Google izklājlapa ir iestatīta šādi.

Izveidojiet Google lapu ar divām lapām.

1. lapa: dati

Datu lapā ir 4 slejas, t.i., datums/laiks, temperatūra, mitrums, spiediens (kolonnas no A līdz D). Atbilstoši formatējiet kolonnas, piem. A slejā jābūt "Datuma laiks", lai datums un laiks tiktu parādīts šūnās.

2. lapa: informācijas panelis

Izveidojiet informācijas paneļa lapu saskaņā ar pievienotajiem fotoattēliem, ievadot tālāk norādītās formulas:

  • B2: = skaitīšana (dati! B: B) -1
  • B3: = B1+TIMEVALUE (CONCATENATE ("00:", teksts (G7, "0")))
  • B6: = vaicājums (Dati! A2: D, "Atlasīt B secību pēc A apraksta ierobežojuma 1")
  • C6: = vaicājums (Dati! A2: D, "Atlasīt C secību pēc A desc limit 1")
  • D6: = vaicājums (Dati! A2: D, "Atlasīt D secību pēc A desc limit 1")
  • B8: = vaicājums (Dati! A2: D, "Atlasīt pasūtījumu pēc B apraksta ierobežojuma 1")
  • C8: = vaicājums (Dati! A2: D, "Atlasīt pasūtījumu pēc C desc limit 1")
  • D8: = vaicājums (Dati! A2: D, "Atlasīt pasūtījumu pēc D apraksta ierobežojuma 1")
  • B9: = vaicājums (dati! A2: D, "Atlasīt B secību pēc B apraksta ierobežojuma 1")
  • C9: = vaicājums (Dati! A2: D, "Atlasīt C secību pēc C apraksta ierobežojuma 1")
  • D9: = vaicājums (Dati! A2: D, "Atlasīt D secību pēc D apraksta ierobežojuma 1")
  • B11: = vaicājums (Dati! A2: D, "Atlasiet A, kur B nav nulles secība pēc B asc limits 1")
  • C11: = vaicājums (dati! A2: D, "Atlasiet A, kur C nav nulles secība pēc C asc limits 1")
  • D11: = vaicājums (Dati! A2: D, "Atlasiet A, kur D nav nulles secība pēc D asc limita 1")
  • B12: = vaicājums (dati! A2: D, "Atlasiet B, kur B nav nulles secība pēc B asc limits 1")
  • C12: = vaicājums (Dati! A2: D, "Atlasiet C, kur C nav nulles secība pēc C asc limita 1")
  • D12: = vaicājums (Dati! A2: D, "Atlasiet D, kur D nav nulles secība pēc D asc limita 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 izklājlapās var būt ne vairāk kā 400 000 šūnu. To izmanto kopā ar faktu, ka katrā lasījumā tiek izmantotas 4 šūnas, lai aprēķinātu, cik daudz vietas ir atlicis un kad tas beigsies.

Iespējams, būs iespējams uzlabot šīs formulas. Es šeit darīju divas lietas, ti, uzzināju par vaicājuma formulu un pēc tam arī uzrakstīju kādu formulu tā, lai palīdzētu man atcerēties to loģiku.

Ekrānuzņēmumā "Diagrammas redaktors" ir parādīta temperatūras diagrammas pamata iestatīšana. Pārējās diagrammas tika izveidotas, izmantojot to pašu iestatījumu. Vienīgā atšķirība starp grafikiem bija minimālās vertikālās ass vērtības (atrodamas cilnē pielāgošana). Cilnē Pielāgošana ir arī citi iestatījumi, piemēram, piekļuves nosaukumi, grafiku nosaukumi utt.

Tagad mums ir nepieciešams Google skripts, kas ļaus mums rakstīt savus datus, zvanot uz URL.

Skripta izveide

Google izklājlapas URL atzīmējiet taustiņu starp "d /" un " / edit". Šī ir jūsu-jūsu-Google-lapu koplietošanas atslēga-un tā būs nepieciešama zemāk esošajā kodā.

Pēc tam dodieties uz Rīki> Skriptu redaktors un izveidojiet Google lietotnes skriptu, ielīmējot kodu pievienotajā GS failā. Atjauniniet var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); lai atspoguļotu jūsu koplietošanas atslēgu.

Tagad publicējiet skriptu, dodoties uz Publicēt> Izvietot kā tīmekļa lietotni.

Kopējiet pašreizējās tīmekļa lietotnes URL un saglabājiet to kaut kur, kā tas būs nepieciešams, lai iegūtu GScriptID (-Jūsu-Google-Script-ID–). GScriptID ir virkne starp "s /" un " / exec?". Nodrošiniet, lai lietotnei “Ikviens, pat anonīms” būtu piekļuve lietotnei. Šī procesa laikā jums tiks lūgts piešķirt dažas atļaujas. Ir svarīgi, lai jūs tos piešķirtu.

Piezīme. Ikreiz, kad maināt savu kodu, jums ir jāizveido projekta jauna versija un jāpublicē, pretējā gadījumā jūs joprojām nokļūsit tajā pašā vecajā kodā.

Tagad varat pārbaudīt skriptu, pārlūkojot vietni https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. Katru reizi, atsvaidzinot šo saiti, Google izklājlapai jāpievieno jauns ieraksts.

Tas tika ņemts no šīs apmācības: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Tomēr šī apmācība ir novecojusi, un tāpēc nākamajā sadaļā esošais Arduino kods ir mainīts, lai iekļautu jaunākās HTTPSRedirect bibliotēkas.

Arduino kods

Skatiet pievienoto kodu.

7. darbība. Kods - Blynk un Google izklājlapas

Lai gūtu vislabāko no abām pasaulēm, var apvienot kodu gan Blynk, gan Google izklājlapām.

Skatiet pievienoto kodu.

8. darbība. Pēdējie komentāri

Noslēguma komentāri
Noslēguma komentāri
Noslēguma komentāri
Noslēguma komentāri

Neviens no iepriekš minētajiem nav manas idejas, bet drīzāk šis ir projekts, kura pamatā ir citu cilvēku idejas un darbs. Man patika to ievilkt vienā vietā. izmantojot dažādas tehnoloģijas un rīkus lieliskam un praktiskam projektam. Man īpaši patika iemācīties saglabāt savus lasījumus Google izklājlapā. Par to es vēlos pateikties ElectronicsGuy (Sujay Phadke).

Atjaunināt

Pēc šī projekta pabeigšanas man bija jāmaina bezvadu iestatījumi. Tagad es strādāju pie cita datora. Pēc izmaiņu augšupielādes projekts pārstāja darboties. Pēc dažām traucējummeklēšanām es secināju, ka deepsleep funkcija neizdodas. Es paņēmu projektu mājās un augšupielādēju to tur (izmantojot to pašu kodu), un tas strādāja. Tāpēc esmu secinājis, ka manis pievienotajās bibliotēkās kaut kas ir mainījies. Tāpēc šai sadaļai esmu pievienojis bibliotēkas, kas pašlaik atrodas manā mājas datorā; tikai gadījumā, ja kāds cits saskaras ar šo problēmu.

Ieteicams: