Cuprins:

Tweeting stație meteo: 8 pași (cu imagini)
Tweeting stație meteo: 8 pași (cu imagini)

Video: Tweeting stație meteo: 8 pași (cu imagini)

Video: Tweeting stație meteo: 8 pași (cu imagini)
Video: What's UP - Taxi (Official Video) #uASAP 2024, Noiembrie
Anonim
Tweeting Station Meteo
Tweeting Station Meteo

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

Piese și materiale
Piese și materiale
Piese și materiale
Piese și materiale
Piese și materiale
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

Invitație Intel® IoT
Invitație Intel® IoT
Invitație Intel® IoT
Invitație Intel® IoT

Premiul II la Invitația Intel® IoT

Recomandat: