Cuprins:

O altă stație meteo IoT: 8 pași
O altă stație meteo IoT: 8 pași

Video: O altă stație meteo IoT: 8 pași

Video: O altă stație meteo IoT: 8 pași
Video: 32 de combinații secrete pe tastatura ta 2024, Iulie
Anonim
O altă stație meteo IoT
O altă stație meteo IoT
O altă stație meteo IoT
O altă stație meteo IoT
O altă stație meteo IoT
O altă stație meteo IoT
O altă stație meteo IoT
O altă stație meteo IoT

Următorul a fost un cadou de naștere pentru tata; inspirat de un alt Instructable pe care l-am văzut și intenționat inițial să i se demonstreze ca un kit de auto-construire. Cu toate acestea, la început să lucrez la acest proiect cu el, mi-am dat seama foarte repede că tutorialul inițial care a inspirat cadoul era depășit și că multe dintre celelalte tutoriale online aveau lacune semnificative în explicațiile lor. Prin urmare, am decis să public încă o stație meteo IoT, care sperăm că va fi ușor de urmărit de la început până la sfârșit.

În plus, acest instructiv vă arată cum să utilizați Blynk, Foi de calcul Google sau ambele pentru a monitoriza și înregistra citirile senzorilor. Mai mult, intrările din Foi de calcul Google sunt scrise direct pe foaie (fără a fi nevoie să treceți printr-un serviciu terță parte).

În ceea ce privește ecranul Stevenson, există multe disponibile online care pot fi tipărite 3D de ex. https://www.thingiverse.com/thing:1718334. Voi construi pe aceasta pentru acest instructabil.

Un ecran Stevenson este un „adăpost pentru instrumente este un adăpost sau o incintă pentru instrumentele meteorologice împotriva precipitațiilor și a radiației directe de căldură din surse exterioare, permițând totuși aerului să circule liber în jurul lor”. (Wikipedia).

Părți

  • Wemos LolIn - NodeMCU v3 (1,43 USD)
  • BME280 (senzor de temperatură, presiune și umiditate) (2,40 USD)
  • Panou solar 6V 1000mA (9,96 USD)
  • 5V 1A Micro USB 18650 Modul încărcător baterie litiu baterie litiu + Protecție duală funcții TP4056 (0,99 USD)
  • Baterii reîncărcabile 4x 1,2V NiMH
  • Suport baterie (4x AA, cot la cot și cap la cap)
  • Fișă conector micro USB tată
  • Legaturi de cablu
  • 3x Wing Nuts
  • Stâlp sau mătură
  • Epoxidic și / sau super-lipici (în retrospectivă, siliciu ar fi putut funcționa mai bine)

Software

  • Aplicația Blynk
  • Foi de calcul Google (dacă doriți să aveți acces la datele istorice)
  • EasyEDA (pentru desen schematic)
  • IDE Arduino

Instrumente

  • Ciocan de lipit
  • Solder
  • Tuburi termocontractabile
  • imprimantă 3d
  • Pistol de lipit

Pasul 1: Imprimare 3D - Ecran Stevenson

Imprimare 3D - Ecran Stevenson
Imprimare 3D - Ecran Stevenson
Imprimare 3D - Ecran Stevenson
Imprimare 3D - Ecran Stevenson
Imprimare 3D - Ecran Stevenson
Imprimare 3D - Ecran Stevenson

După cum sa menționat deja, descărcați fișierele de pe https://www.thingiverse.com/thing:1718334 și imprimați biții necesari. Instrucțiunile de asamblare se găsesc și în linkul de mai sus. Am făcut unele modificări (a se vedea notele de mai jos).

Piesele tipărite sunt:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL atașat mai sus)
  • 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 atașat mai sus)

Ordinea de asamblare este:

  • Filetați găurile
  • Înșurubați barele M3 în prizele filetate
  • Coperta
  • Solid_Plate
  • Middle_Rings
  • Glisați în Sensor_Grid
  • Electronics_Mount
  • Solid_Plate_Bottom
  • Pole_Mount
  • My_Solar_Cell_Mounts sunt epoxidate în partea de sus a Top_Cover

Am făcut găuri în plăcile solide pentru a permite cablului de încărcare de la panoul solar să se conecteze la încărcător și apoi unul pentru a permite cablului să ruleze de la controler la senzorul de pe Sensor_Grid.

Odată finalizat, senzorul a fost programat pentru a efectua următoarele citiri la fiecare 60 de minute:

  • Temperatura
  • Umiditate
  • Presiune

Note

  • Am personalizat suporturile pentru celule solare pentru a fi mai potrivite pentru a-mi păstra celula solară.
  • Am instalat componentele electronice între Pole_Mount și Solid_Plate. Acest lucru nu pare să ofere o protecție bună electronice. Prin urmare, am modificat pe Solid_Plate astfel încât să aibă o fustă care să închidă decalajul și astfel să ofere o protecție mai bună electronice. Unele dintre fotografiile de mai sus au fost făcute înainte de a face această modificare.
  • Epoxidicul meu a aterizat fără a ține panoul solar pe care l-am reașezat apoi cu super lipici. Cred că voi ajunge să folosesc siliciu.

Pasul 2: Circuitul

Circuitul
Circuitul
Circuitul
Circuitul

Conectați circuitul așa cum se arată în schemă, montând LoLin și BME280 pe ochiurile imprimate 3D așa cum se arată în fotografie.

BME280 -> LiLon

  • VCC -> 3,3V
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (acest lucru este necesar pentru a trezi controlerul din somn profund, dar trebuie conectat numai după ce codul a fost încărcat în controler)

NOTĂ

Am avut provocări în a obține o baterie LiLon adecvată. De asemenea, dintr-un anumit motiv, nu am avut succes în alimentarea prin VIN. Prin urmare, am alimentat după cum urmează:

  • Ieșirea de la TP4056 a fost conectată la conectorul USB tată care apoi a fost conectat la mufa USB a plăcii pentru a o alimenta.
  • B- și B + de pe TP4056 au fost conectate la suportul bateriei AA care deținea bateriile NiMH.

Pasul 3: IoT - Blynk

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

„Blynk este o platformă IoT hardware-agnostică cu aplicații mobile personalizabile, cloud privat, motor de reguli și tabloul de bord de analiză de gestionare a dispozitivelor”. Practic, vă permite să gestionați și să monitorizați în siguranță senzorii de la distanță de oriunde din lume prin Internet. În timp ce este un serviciu comercial, fiecare cont vine cu 2000 de credite gratuite. Creditele vă permit să asociați diferite ecartamente, afișaje, notificări etc. cu senzorul sau senzorii dvs. În timp ce prețul abonamentului este în afara bugetului unui pasionat, creditele gratuite sunt suficiente pentru un proiect simplu ca acesta.

Pentru a începe să utilizați serviciul, va trebui mai întâi să descărcați aplicația Blynk pe telefon / dispozitiv, să creați și să vă conectați (sau să vă conectați cu contul existent) și apoi să creați un nou proiect după cum urmează:

  • Alegeți hardware-ul dvs.
  • Dă-i proiectului un nume (în acest caz am folosit „Stația meteo”.
  • Faceți clic pe „Creați”
  • Apoi primiți un cod de autentificare prin e-mail.

Nu va trebui să adăugați widgeturile necesare. Cu 2000 de credite gratuite am adăugat următoarele:

  • 3 Calibre
  • 1 Super diagramă

Indicatoarele și diagramele au fost configurate conform fotografiilor atașate, fiecăruia i-a fost atribuit propriul pin virtual care ar fi folosit din urmă în cod.

După ce ați terminat setările, butonul de redare din dreapta sus poate fi apăsat pentru a începe colectarea datei.

Pentru mai multe informații, consultați

docs.blynk.cc/#getting-started.

Pasul 4: Cod - Pregătirea IDE Arduino

Următoarele biblioteci vor trebui adăugate la IDE-ul Arduino pentru a finaliza acest proiect:

  • https://github.com/adafruit/Adafruit_BME280_Library (necesitate pentru senzorul de temperatură, presiune și umiditate)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (acest lucru vă oferă acces la placa ESP8266)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (biblioteca Blynk)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (HTTPSRedicect este necesar pentru conectarea la Foi de calcul Google)

Pentru instrucțiuni despre instalarea bibliotecilor pentru Arduino IDE, vizitați

Setările mele hardware sunt după cum urmează:

  • Placă: NodeMCU 1.0 (modul ESP-12E)
  • Viteza de încărcare: 115200

Când utilizați codul atașat în pașii următori, vă rugăm să consultați întotdeauna comentariile din cod pentru a adăuga următoarele:

  • SID Wifi
  • Parola Wifi
  • Cheia de autorizare Blynk
  • ID-ul Google Script
  • Cheie de partajare Google Sheet

Pasul 5: Cod - Blynk

M-am luptat de-a lungul timpului pentru ca senzorul BME280 să funcționeze până când am găsit un exemplu care conținea următoarea linie.

status = bme.begin (0x76); // Adresa I2C a senzorului pe care îl folosesc este 0x76

Se pare că trebuia să setez adresa senzorului. Odată ce am făcut asta, totul a funcționat foarte bine.

Blynk are o interfață de utilizator mobilă foarte frumoasă, însă are următoarele limitări:

  • Doar 2000 de credite gratuite, proiectele care necesită mai mult decât atât necesită un abonament lunar scump (cu excepția cazului în care găzduiești și întreții propriul server Blynk).
  • Dacă nu vă găzduiți propriul server Blynk, nu puteți exporta date istorice.

Din motivele de mai sus, am analizat modul în care aș putea integra procesul de colectare a datelor într-o foaie Google. Acest lucru este prezentat în secțiunea următoare.

Pasul 6: Cod - Foi de calcul Google

Cod - Foi de calcul Google
Cod - Foi de calcul Google
Cod - Foi de calcul Google
Cod - Foi de calcul Google
Cod - Foi de calcul Google
Cod - Foi de calcul Google

Pentru a vă înregistra citirile, astfel încât să puteți analiza datele istorice la o dată ulterioară, trebuie să le scrieți într-un fel de bază de date. Biblioteca HTTPSRedirect ne permite să facem acest lucru scriind datele noastre pe o foaie Google.

Principalele limitări ale acestei abordări sunt următoarele:

  • Nu există o interfață de utilizator mobilă frumoasă
  • O foaie Google poate avea maximum 400 000 de celule. Pentru acest proiect, aceasta nu este o problemă importantă, deoarece va dura puțin peste 11 ani până la atingerea acestei limite.

Foaia Google este configurată după cum urmează.

Creați o foaie Google cu două foi.

Fișa 1: Date

Foaia tehnică are nevoie de 4 coloane, adică Data / Ora, Temperatura, Umiditatea, Presiunea (coloanele A-D). Formatați corespunzător coloanele, de ex. Coloana A trebuie să fie „Data și ora”, astfel încât data și ora să fie afișate în celule.

Foaia 2: Tablou de bord

Creați foaia de bord conform fotografiilor atașate, introducând formulele enumerate mai jos:

  • B2: = counta (Date! B: B) -1
  • B3: = B1 + TIMEVALUE (CONCATENATE ("00:", Text (G7, "0")))
  • B6: = interogare (Date! A2: D, „Selectați ordinea B după A desc limită 1”)
  • C6: = interogare (Date! A2: D, „Selectați ordinea C după A desc limită 1”)
  • D6: = interogare (Date! A2: D, „Selectați ordinea D după A desc limită 1”)
  • B8: = interogare (Date! A2: D, „Selectați o comandă după limita B desc 1”)
  • C8: = interogare (Date! A2: D, "Selectați o comandă după limita C desc 1")
  • D8: = interogare (Date! A2: D, „Selectați o comandă după limita D desc 1”)
  • B9: = interogare (Date! A2: D, „Selectați ordinea B după limita B desc 1”)
  • C9: = interogare (Date! A2: D, "Selectați ordinea C după limita C desc 1")
  • D9: = interogare (Date! A2: D, „Selectați ordinea D după limita D desc 1”)
  • B11: = interogare (Date! A2: D, „Selectați A, unde B nu este o ordine nulă de B asc limită 1”)
  • C11: = interogare (Date! A2: D, „Selectați A unde C nu este o ordine nulă de C asc limită 1”)
  • D11: = interogare (Date! A2: D, „Selectați A unde D nu este ordine nulă de D limită asc 1)”
  • B12: = interogare (Date! A2: D, „Selectați B unde B nu este ordonare nulă după limita B asc 1”)
  • C12: = interogare (Date! A2: D, „Selectați C unde C nu este o ordine nulă de limita C asc 1”)
  • D12: = interogare (Date! A2: D, „Selectați D unde D nu este o ordine nulă de D limita 1 asc.”)
  • 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)

Foi de calcul Google poate avea maximum 400 000 de celule. Aceasta este utilizată, împreună cu faptul că fiecare citire folosește 4 celule, pentru a calcula cât spațiu a rămas și când se va epuiza.

Este posibil să se îmbunătățească aceste formule. Făceam două lucruri aici, adică învățam despre formula de interogare și apoi scriau o formulă în așa fel încât să mă ajute să-mi amintesc logica din spatele lor.

Captura de ecran a „Editorului de diagrame” arată setarea de bază pentru graficul de temperatură. Celelalte grafice au fost create folosind aceeași setare. Singura diferență dintre grafice a fost valoarea minimă a axelor verticale (găsite în fila Personalizare). Fila de personalizare are și celelalte setări, cum ar fi numele de acces, titlurile graficelor etc.

Acum avem nevoie de un script Google care să ne permită să ne scriem datele apelând o adresă URL.

Crearea scriptului

În URL-ul Google Sheet, notați cheia dintre „d /” și „/ edit”. Aceasta este cheia dvs. de partajare a foilor dvs. Google și va fi necesară în codul de mai jos.

Apoi accesați Instrumente> Editor de scripturi și creați Google App Script, lipind codul în fișierul GS atașat. Actualizați var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); pentru a reflecta cheia de partajare.

Acum publicați scriptul accesând Publicare> Implementare ca aplicație web.

Copiați adresa URL curentă a aplicației web și salvați-o undeva, deoarece veți avea nevoie de ea pentru extragerea GScriptID (-D-dvs.-Google-Script-ID–). GScriptID este șirul dintre „s /” și „/ exec?”. Asigurați-vă că „Oricine, chiar și anonim” are acces la aplicație. În timpul acestui proces vi se va cere să acordați câteva permisiuni. Este important să le acordați.

Notă: Ori de câte ori vă modificați codul, trebuie să creați o versiune a proiectului „Nouă” și să o publicați în caz contrar, veți lovi în continuare același cod vechi.

Acum puteți testa scriptul navigând la https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. De fiecare dată când reîmprospătați acest link, ar trebui adăugată o nouă intrare în Foaia Google.

Acest lucru de mai sus a fost preluat din următorul tutorial: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Acest tutorial este totuși depășit, astfel încât codul Arduino asociat în secțiunea următoare a fost modificat pentru a găzdui cele mai recente biblioteci

Codul Arduino

A se vedea codul atașat.

Pasul 7: Cod - Blynk și Foi de calcul Google

Pentru a obține cele mai bune rezultate din ambele lumi, se poate combina codul atât pentru Blynk, cât și pentru Foi de calcul Google.

Vezi codul atașat.

Pasul 8: Comentarii finale

Comentarii finale
Comentarii finale
Comentarii finale
Comentarii finale

Niciuna dintre cele de mai sus nu este ideea mea, ci mai degrabă acesta este un proiect construit pe ideile și munca altora. Mi-a plăcut să-l trag cu totul într-un singur loc. folosind diferite tehnologii și instrumente pentru a crea un proiect distractiv și practic. Mi-a plăcut mai ales să învăț cum să-mi stochez lecturile într-o foaie Google. Pentru aceasta, doresc să mulțumesc ElectronicsGuy (Sujay Phadke).

Actualizați

După finalizarea acestui proiect, trebuia să-mi schimb setările wireless. Acum lucram la un alt computer. După încărcarea modificărilor, proiectul a încetat să funcționeze. După o depanare, am ajuns la concluzia că funcția deepsleep eșuează. Am luat proiectul înapoi acasă și l-am încărcat acolo (folosind același cod) și a funcționat. Prin urmare, am ajuns la concluzia că ceva trebuie să se fi schimbat în bibliotecile pe care le-am adăugat. Prin urmare, am atașat bibliotecile care se află în prezent pe computerul meu de acasă la această secțiune; doar în cazul în care altcineva întâlnește această problemă.

Recomandat: