Cuprins:
- Pasul 1: Piese și materiale
- Pasul 2: Proiectare electrică
- Pasul 3: Proiectare mecanică
- Pasul 4: Ansamblul cadrului: față și bază
- Pasul 5: Asamblare electronică și senzor
- Pasul 6: Configurare Twitter
- Pasul 7: Software și configurare
- Pasul 8: Contribuția la depozitul senzorilor
Video: Tweeting stație meteo: 8 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Ați dorit vreodată să monitorizați condițiile meteorologice actuale ale orașului dvs., amprenta de carbon, nivelurile de zgomot și poluare? Doriți să fiți un schimbător de schimbări climatice sau să vă configurați propria stație meteo Tweeting și să împărtășiți condițiile meteo locale cu lumea?
Faceți cunoștință cu Tweeting Weather IoT Station aka TWIST - o platformă DIY, de monitorizare a mediului open-source și de achiziție de date meteorologice. Scopul TWIST este ca persoanele și comunitățile să poată colecta date despre ceea ce se întâmplă de fapt în mediul lor și să împărtășească aceste date pe rețelele sociale, cum ar fi Twitter.
- TWIST este o platformă bazată pe internetul obiectelor (IoT).
- Creierul TWIST este o placă Intel Edison.
- TWIST este compatibil cu o varietate de senzori.
- Toate codurile, fișierele de proiectare (schemă și aspect PCB) sunt Open-Source. Aceasta înseamnă că oricine poate contribui la platforma TWIST prin partajarea codului și schemelor pentru diferiți senzori.
TWIST constă din trei straturi tehnologice:
Primul strat este o placă hardware care conține toți senzorii meteorologici și de mediu cunoscuți sub denumirea de „Placă senzor”. După cum sugerează și numele, poartă senzori care măsoară compoziția, temperatura, umiditatea, ploaia. Se pot adăuga, de asemenea, senzori suplimentari, precum activitatea activă, indicele UV, presiunea barometrică, altitudinea, luxul (luminozitatea), nivelurile sonore, viteza și direcția vântului etc. Odată configurat, placa senzorului este capabilă să transmită datele măsurate de senzori către al doilea strat. Al doilea strat este placa Intel Edison care primește date de la placa senzorului, le procesează și le trimite la următorul strat. Cel de-al treilea strat vă conectează placa Edison la Internet prin Wi-Fi utilizând modulul wireless de pe placa Edison și Tweet-ul cu condițiile actuale de vreme și mediu.
Alimentarea dispozitivului poate fi asigurată de un panou solar sau de un adaptor de curent alternativ.
Depozite controlate de versiune
Toate cele trei straturi tehnologice ale TWIST sunt Open-Source și, prin urmare, toate fișierele pe care le folosim pentru cod, dezvoltare PCB, proiectare mecanică etc. sunt ușor disponibile în depozitul nostru Github.
Participări la concurs
Invitația Intel IoT
Aș dori să mulțumesc Intel + Instructables pentru că mi-ați furnizat placa Intel Edison. Plănuiesc să fac multe mai multe instructabile legate de IoT folosind placa Edison.
#iotweatherstn
Dacă faceți TWIST, nu uitați să tweetează vremea folosind #iotweatherstn. #iotweatherstn poate fi un hashtag utilizat de toate stațiile meteo Tweeting alimentate de IoT.
Pasul 1: Piese și materiale
QuantityPartDetails 1
Intel Edison
cu Arduino Breakout Board
1
Senzor de gaz combustibil MQ2
1
YL-83
Senzor de ploaie
1
SL-HS-220
Senzor de temperatură și umiditate
1
Rezistor
32K
4.7K
3 Metal Standoff 1 inch
1
Rezistor
32K
4.7K
2
Foaie de lemn Dimensiune A4
Poate fi tăiat ulterior în dimensiune
3
Metal Standoff
1 inch
Pasul 2: Proiectare electrică
Putere
Întregul sistem este alimentat de la o sursă de alimentare de 5V 1A. Senzorii (temperatură, umiditate, ploaie, gaz) atrag aproximativ 200 mA, Edison în jur de 500 mA, deoarece curentul total necesar este mai mic de 1 amp, o sursă de 1 amp ar trebui să funcționeze foarte bine. LED-ul verde încorporat pe pinul digital 13 al plăcii Edison este utilizat pentru a arăta starea de alimentare.
Un Intel Edison rulează spectacolul pentru TWIST. Edison este montat pe o placă de separare Arduino, ceea ce face ușoară citirea semnalelor digitale și analogice de la senzori. Edison este conectat la șina de 5V printr-un cablu micro USB. Edison are un radio Wi-Fi încorporat, care îi permite să se conecteze la Twitter fără a fi nevoie de hardware suplimentar.
Ceas în timp real (RTC)
Deoarece marcarea de timp efectuată automat de Twitter pentru fiecare tweet are o rezoluție limitată la numărul total de zile de la momentul tweet-ului, un ceas în timp real este utilizat pentru a marca cu exactitate data și ora în ora-minut- Al doilea format. Ceasul în timp real utilizat în platforma TWIST este modulul DS-1307 RTC.
Senzori Cea mai simplă configurare a acestui sistem are patru senzori (temperatură, umiditate, ploaie, gaz) care se conectează la Edison. Se pot adăuga senzori suplimentari precum zgomot, vânt etc. Fiecare senzor este alimentat direct de pe șina de 5V și are pinul de semnal conectat respectiv la pinii analogici A0 până la A2 și pinul digital 2 de pe placa de rupere Edison. De asemenea, senzorii au fiecare un potențiometru de reglare a sensibilității montat pe fiecare placă de senzori; MQ-2 este un senzor de gaz combustibil (gaz petrolier lichefiat, propan, hidrogen și metan) care emite o tensiune analogică proporțională cu concentrația de gaze în părți pe milion. SL-HS-220 are un termistor care dă valoarea temperaturii. Deoarece ieșirea termistorului este neliniară, tabelul de temperatură corespunzător este dat în depozitul senzorilor. Termistorul necesită un circuit divizor de tensiune atunci când este conectat la placa Edison, așa cum se arată în schema circuitului. SL-HS-220 are, de asemenea, un higrometru încorporat care măsoară umiditatea și emite o tensiune analogică care corespunde unei valori fixe de umiditate. Tabelul umiditate-tensiune este dat și în depozitul senzorilor. Un înlocuitor obișnuit al SL-HS-220 este senzorul DHT11. Senzorul de ploaie / senzorul de apă are un potențiometru care este reglat pentru a da o ieșire digitală pentru o anumită cantitate de ploaie a cărei sensibilitate poate fi reglată de utilizator.
Stația meteo.fzz
Pasul 3: Proiectare mecanică
Corpul TWIST este format din două plăci de foi de lemn. Deși am folosit placaj de 1/4 ", designul poate fi asamblat din orice material de tablă, deoarece spațiul (menținut de separatoare de aluminiu de 1") este singurul element critic. Am atașat fișierele vectoriale pentru descărcare de mai sus.
Taietura cu laser
Pentru toți cei care doresc să taie cu laser cele două plăci, am atașat fișierele de tăiere cu laser pentru descărcare mai jos. De asemenea, include un senzor suplimentar de calitate a aerului în design. Deci, puteți alege fie un modul senzor MQ2, fie un modul senzor pentru calitatea aerului, în funcție de alegerea dvs.
Pasul 4: Ansamblul cadrului: față și bază
Fațetă
Senzorii se încadrează în orificiile și decupajele potrivite și pot fi fixate cu șuruburi sau lipici.
Placă de bază
Distanțele plăcii Edison sunt înșurubate pe placa de bază. Convertorul analog-digital (ADC) care este conectat la senzorul de ploaie poate fi de asemenea înșurubat pe placa de bază.
Componente suplimentare, cum ar fi buzzerele sau circuitul regulatorului de tensiune pentru intrarea solară, pot fi, de asemenea, înșurubate pe placa de bază.
Placa de bază și placa frontală sunt ambele separate prin distanțe de 1.
Pasul 5: Asamblare electronică și senzor
Putere
Puterea sistemului este asigurată de un adaptor de perete cu mufă standard, care este conectat direct la conectorul Edison's Barrel. Sistemul poate fi alimentat și prin portul USB de pe placa Edison. De asemenea, puteți alimenta placa de pe un panou solar extern.
Senzori
Senzorii sunt atașați la plăcile de rupere cu anteturi masculine și, prin urmare, pot fi conectați direct la Edison prin fire jumper de la bărbat la femeie.
Pasul 6: Configurare Twitter
Pentru a trimite Tweet, folosim o aplicație terță parte dezvoltată de NeoCat care obține simbolul Twitter de care va trebui să trimiteți Tweet cu placa Edison. Jetoanele pot fi obținute și de pe pagina web a dezvoltatorilor Twitter.
Deci, pentru a începe, vizitați site-ul web NeoCat, urmați tutorialul acestuia pentru a obține biblioteca twitter și jetonul dvs. twitter. Așa cum NeoCat a menționat pe site-ul lor, vă rugăm să nu abuzați de serviciu. Păstrați tweeturile rare. Dacă aveți nevoie de ceva care să trimită tweets la fiecare 6 secunde, ar trebui să vă configurați propriul server și aplicația twitter și, prin urmare, codul pe care l-am scris asigură faptul că serverul NeoCat nu se supraîncarcă (TWIST tweets la fiecare 6 ore).
Biblioteca folosește site-ul web al acestui NeoCat ca server proxy pentru lucruri OAuth. Tweetul dvs. nu poate fi aplicat în timpul întreținerii site-ului web al acestui NeoCat. Twitter pare să respingă tweet-urile repetate cu același conținut (returnează eroarea 403).
Jeton Twitter
Biblioteca Tweet Arduino
Pasul 7: Software și configurare
Urmați ghidul de configurare Intel pentru Intel Edsion înainte de a începe codarea.
Programul este o schiță Arduino care rulează pe Edison. Am explicat fiecare dintre principalele blocuri de cod de mai jos.
Codul include câteva constante predefinite, declarații pin și câteva declarații de imprimare în serie care ajută la depanarea.
Întârziere Tweet
Deoarece Twitter filtrează tweet-urile care au același conținut și sunt tweeted în perioade scurte de timp între fiecare dintre ele, a fost stabilită o întârziere standard de 3 ore (10800000 milli secunde) între fiecare tweet.
tweetMessage ();
întârziere (10800000);
Tastați Casting
Multe dintre citirile pe care le obținem de la senzori sunt în tipul de date „int” sau „plutitor”. Dar, deoarece trimitem pe Twitter aceste valori, trebuie să le transformăm într-un tip de date „String”. Pentru aceasta folosim o tehnică specială de turnare tip.
char * dtostrf (val dublu, lățime de caractere semnată, precizare de caracter nesemnată, char * sout) {
char fmt [100]; sprintf (fmt, "%%% d.% df", lățime, prec); sprintf (sout, fmt, val); întoarceți sudul; }
Jeton Twitter
Jetonul twitter este creat pe site-ul NeoCat și ar trebui lipit în spațiul jetonului de aici.
void tweetMessage () {
Twitter twitter („ENTER TWITTER TOKEN AICI”);
Tweeting Valori senzor
Pentru a trimite pe Twitter valoarea senzorului, mai întâi includem tipul senzorului; Exemplu: „Umiditate”. Aceasta este urmată de o declarație de caractere și o linie de cod necesară pentru tipografiere. Apoi adăugăm o afirmație pentru unitatea de măsură; Exemplu: „% RH”. Putem continua să adăugăm și valori ale altor senzori într-un mod similar.
umiditate(); plutitor umed;
// Twitter message String stringMsg = "Umiditate:"; char tmp [10]; dtostrf (umed, 1, 2, tmp); stringMsg + = tmp; stringMsg + = "% RH";
Locația și etichetarea stației meteo
Apoi etichetăm locația (oraș, localitate etc.) și alte etichete precum #iotweatherstn.
stringMsg + = "#Mumbai #Bandra #iotweatherstn";
Ceas în timp real (RTC)
După cum s-a explicat mai devreme, TWIST poate, de asemenea, să trimită date de ceas în timp real. Mai jos este un exemplu al blocului de parametri „zi” al codului RTC. Funcția Ceas în timp real este opțională pe platforma TWIST, deoarece modulul vine separat. Prin urmare, există o ramură separată creată în depozitul TWIST pentru codul și schemele ramurii Ceas în timp real.
TwistDateTime (); DateTime acum = rtc.now (); int twistday, twistmonth, twistyear, twisthour, twistmin, twistsec; String stringMsg = ""; char ds1307day [10]; dtostrf (twistday, 1, 0ds1307day); stringMsg + = ds1307day; stringMsg + = "/";
140 Limita de caractere
Acest bloc de cod acoperă matricea de șiruri la matrice de 140 de caractere gata de tweet.
char msg [140];
stringMsg.toCharArray (msg, 140);
Depanarea mesajelor și conexiunii
Acest bloc de cod tipărește câteva rânduri de text în Serial Monitor pentru a ajuta utilizatorul să verifice starea mesajului și a tweetului.
// Trimite un tweet pe fraierul ăla!
if (twitter.post (msg)) {int status = twitter.wait (); if (status == 200) {Serial.println ("OK."); Serial.println („Mesaj trimis”); } else {// Test de conexiune Serial.print ("eșuat: cod"); Serial.println („Mesajul nu a fost trimis”); Serial.println (status); }} else {Serial.println ("conexiunea a eșuat."); Serial.println („Mesajul nu a fost trimis”); }
Toate celelalte blocuri de cod convertesc pur și simplu citirea analogică sau digitală de la senzori în date utilizabile.
Codul poate fi descărcat de aici sau din depozitul principal:
Stația meteo.ino
Pasul 8: Contribuția la depozitul senzorilor
Sunteți un programator, inginer sau designer care are o idee grozavă pentru o nouă funcție în TWIST? Poate aveți o idee bună pentru remedierea erorilor? Simțiți-vă liber să preluați codul, schemele și fișierele CAD de la Github și să vă ocupați de el.
TWIST GitHub
Premiul II la Invitația Intel® IoT
Recomandat:
Stație meteo profesională care utilizează ESP8266 și ESP32 DIY: 9 pași (cu imagini)
Stație meteo profesională care folosește bricolajul ESP8266 și ESP32: LineaMeteoStazione este o stație meteo completă care poate fi interfațată cu senzori profesioniști de la Sensirion, precum și cu unele componente ale instrumentului Davis (Rain Gauge, Anemometer)
Fanair: o stație meteo pentru camera ta: 6 pași (cu imagini)
Fanair: o stație meteo pentru camera ta: Există nenumărate modalități de a afla vremea actuală, dar atunci știi doar vremea afară. Ce se întâmplă dacă doriți să cunoașteți vremea din interiorul casei dvs., în interiorul unei camere specifice? Asta încerc să rezolv cu acest proiect. Fanair folosește mul
Stație meteo simplă folosind ESP8266 .: 6 pași (cu imagini)
Stație meteo simplă care folosește ESP8266. Numărul total de vizionări. și afișați datele pe monitorul serial și afișați-le pe ecranul LCD. Datele vor fi f
Stație meteo pentru echipament suspendat: 7 pași (cu imagini)
Stație meteo pentru echipament suspendat: În acest instructabil, vă voi arăta cum să vă construiți propria stație meteo pentru echipament suspendat, care este realizată din piese din MDF tăiate cu laser CNC. Un motor pas cu pas acționează fiecare treaptă de viteză și un Arduino ia măsurători de temperatură și umiditate folosind un DHT
Stație meteo DIY și stație senzor WiFi: 7 pași (cu imagini)
Stație meteo DIY și stație senzor WiFi: În acest proiect vă voi arăta cum să creați o stație meteo împreună cu o stație senzor WiFi. Stația senzorului măsoară datele locale de temperatură și umiditate și le trimite, prin WiFi, către stația meteo. Stația meteo afișează apoi t