Sommario:

Tweeting stazione meteo: 8 passaggi (con immagini)
Tweeting stazione meteo: 8 passaggi (con immagini)

Video: Tweeting stazione meteo: 8 passaggi (con immagini)

Video: Tweeting stazione meteo: 8 passaggi (con immagini)
Video: Stazione meteo xSense mini - Installazione 2024, Dicembre
Anonim
Tweeting Stazione Meteo
Tweeting Stazione Meteo

Hai mai desiderato monitorare le condizioni meteorologiche attuali, l'impronta di carbonio, i livelli di rumore e inquinamento della tua città? Vuoi essere un crociato del cambiamento climatico o impostare la tua stazione meteorologica su Twitter e condividere le condizioni meteorologiche locali con il mondo?

Incontra Tweeting Weather IoT Station aka TWIST - una piattaforma di monitoraggio ambientale e acquisizione di dati meteorologici open-source fai-da-te. Lo scopo di TWIST è che gli individui e le comunità possano raccogliere dati su ciò che sta realmente accadendo nel loro ambiente e condividere questi dati sui social media come Twitter.

  • TWIST è una piattaforma basata su Internet of Things (IoT).
  • Il cervello di TWIST è una Intel Edison Board.
  • TWIST è compatibile con una varietà di sensori.
  • Tutto il codice, i file di progettazione (schemi e layout PCB) sono Open-Source. Ciò significa che chiunque può contribuire alla piattaforma TWIST condividendo codice e schemi per diversi sensori.

TWIST si compone di tre strati tecnologici:

Il primo strato è una scheda hardware che contiene tutti i sensori meteorologici e ambientali noti come "Scheda sensore". Come suggerisce il nome, trasporta sensori che misurano la composizione dell'aria, la temperatura, l'umidità, la pioggia. È inoltre possibile aggiungere sensori aggiuntivi come attività sismica, indice UV, pressione barometrica, altitudine, lux (luminosità), livelli sonori, velocità e direzione del vento, ecc. Una volta configurata, la Sensor Board è in grado di trasmettere i dati misurati dai sensori al secondo livello. Il secondo livello è la Intel Edison Board che riceve i dati dalla Sensor Board, li elabora e li invia al livello successivo. Il terzo livello collega la tua Edison Board a Internet tramite Wi-Fi utilizzando il modulo wireless sulla scheda Edison e Tweet le condizioni meteorologiche e ambientali attuali.

L'alimentazione al dispositivo può essere fornita da un pannello solare o da un adattatore CA.

Repository controllati dalla versione

Tutti e tre i livelli tecnologici di TWIST sono Open-Source e quindi tutti i file che utilizziamo per il codice, lo sviluppo PCB, la progettazione meccanica, ecc. sono prontamente disponibili sul nostro repository Github.

Partecipazioni al concorso

Intel IoT Invitational

Vorrei ringraziare Intel+Instructables per avermi fornito la Intel Edison Board. Ho intenzione di realizzare molti altri Instructables relativi all'IoT utilizzando la scheda Edison.

#iotweatherstn

Se fai TWIST, non dimenticare di twittare il meteo usando #iotweatherstn. #iotweatherstn può essere un hashtag utilizzato da tutte le stazioni meteo tweeting alimentate da IoT.

Passaggio 1: parti e materiali

Parti e materiali
Parti e materiali
Parti e materiali
Parti e materiali
Parti e materiali
Parti e materiali

QuantitàParteDettagli 1

Intel Edison

con Arduino Breakout Board

1

Sensore di gas combustibile MQ2

1

YL-83

Sensore di pioggia

1

SL-HS-220

Sensore di temperatura e umidità

1

Resistore

32K

4.7K

3 Distanziatori in metallo da 1 pollice

1

Resistore

32K

4.7K

2

Foglio di legno formato A4

Può essere successivamente tagliato a misura

3

Distanziatore in metallo

1 pollice

Passaggio 2: progettazione elettrica

Potenza

L'intero sistema è alimentato da un alimentatore 5V 1A. I sensori (temperatura, umidità, pioggia, gas) assorbono circa 200 mA, l'Edison circa 500 mA, poiché la corrente totale richiesta è inferiore a 1 amp, un'alimentazione da 1 amp dovrebbe funzionare bene. Il LED verde integrato sul pin digitale 13 della scheda Edison viene utilizzato per mostrare lo stato dell'alimentazione.

ControlAn Intel Edison gestisce lo spettacolo per TWIST. L'Edison è montato su una breakout board Arduino, che facilita la lettura dei segnali digitali e analogici dai sensori. L'Edison è collegato al binario 5V tramite un cavo micro USB. L'Edison ha una radio Wi-Fi integrata, che gli consente di connettersi a Twitter senza la necessità di hardware aggiuntivo.

Orologio in tempo reale (RTC)

Poiché la marcatura temporale eseguita automaticamente da Twitter per ogni tweet ha una risoluzione limitata al numero di giorni totali dall'ora del Tweet, viene utilizzato un orologio in tempo reale per marcare accuratamente la data e l'ora nel formato Ora-Minuto- Secondo formato. L'orologio in tempo reale utilizzato nella piattaforma TWIST è il modulo RTC DS-1307.

Sensori La configurazione di base di questo sistema ha quattro sensori (temperatura, umidità, pioggia, gas) che si collegano a Edison. È possibile aggiungere ulteriori sensori come Rumore, Vento, ecc. Ciascun sensore è alimentato direttamente dalla linea 5V e ha il suo pin di segnale collegato rispettivamente ai pin analogici da A0 ad A2 e al pin digitale 2 sulla scheda breakout Edison. I sensori hanno inoltre ciascuno un potenziometro di regolazione della sensibilità montato su ciascuna scheda sensore; L'MQ-2 è un sensore di gas combustibile (gas di petrolio liquefatto, propano, idrogeno e metano) che emette una tensione analogica proporzionale alla concentrazione di gas in parti per milione. L'SL-HS-220 ha un termistore che fornisce il valore della temperatura. Poiché l'uscita del termistore non è lineare, la tabella della temperatura corrispondente è fornita nell'archivio del sensore. Il termistore richiede un circuito divisore di tensione quando è collegato alla scheda Edison come mostrato nello schema elettrico. L'SL-HS-220 dispone anche di un igrometro integrato che misura l'umidità ed emette una tensione analogica che corrisponde a un valore di umidità fisso. La tabella umidità-tensione è presente anche nell'archivio dei sensori. Un sostituto comune all'SL-HS-220 è il sensore DHT11. Il sensore pioggia/sensore acqua ha un potenziometro che viene regolato per fornire un'uscita digitale per una certa quantità di pioggia la cui sensibilità può essere regolata dall'utente.

Stazione meteo.fzz

Passaggio 3: progettazione meccanica

Il corpo del TWIST è costituito da due lastre di fogli di legno. Anche se ho usato compensato da 1/4", il design può essere assemblato da qualsiasi materiale in fogli poiché la spaziatura (mantenuta da distanziatori in alluminio da 1") è l'unico elemento critico. Ho allegato i file vettoriali per il download sopra.

Taglio laser

Per tutti coloro che desiderano tagliare al laser le due lastre, ho allegato i file del taglio laser per il download qui sotto. Include anche un sensore di qualità dell'aria aggiuntivo nel suo design. Quindi puoi utilizzare un modulo sensore MQ2 o un modulo sensore della qualità dell'aria a seconda della tua scelta.

Passaggio 4: montaggio del telaio: faccia e base

Frontalino

I sensori si inseriscono nei rispettivi fori e ritagli e possono essere fissati con viti o colla.

Piastra di base

I distanziatori della scheda Edison sono avvitati sulla piastra di base. Il convertitore analogico-digitale (ADC) che è collegato al sensore pioggia può anche essere avvitato sulla piastra di base.

Sulla piastra di base possono essere avvitati anche componenti aggiuntivi come i cicalini o il circuito di regolazione della tensione per l'ingresso solare.

La piastra base e la piastra frontale sono entrambe separate da distanziatori da 1.

Passaggio 5: assemblaggio di componenti elettronici e sensori

Potenza

L'alimentazione del sistema è fornita da un adattatore a muro con un jack cilindrico standard che è collegato direttamente al connettore Barrel di Edison. Il sistema può essere alimentato anche tramite la porta USB della scheda Edison. Puoi anche alimentare la scheda da un pannello solare esterno.

Sensori

I sensori sono collegati a schede breakout con connettori maschio e quindi possono essere collegati direttamente a Edison tramite ponticelli maschio-femmina.

Passaggio 6: configurazione di Twitter

Per twittare, utilizziamo un'app di terze parti sviluppata da NeoCat che ottiene il token Twitter di cui avrai bisogno per twittare con la tua scheda Edison. I token possono anche essere reperiti dalla pagina Web degli sviluppatori di Twitter.

Quindi, per iniziare, visita il sito Web di NeoCat, segui il suo tutorial per ottenere la libreria di Twitter e il tuo token di Twitter. Come menzionato da NeoCat sul loro sito, per favore non abusare del servizio. Mantieni i tuoi tweet scarsi. Se hai bisogno di qualcosa che twitti ogni 6 secondi, dovresti impostare il tuo server e l'app di Twitter e quindi il codice che ho scritto assicura che il server di NeoCat non si sovraccarichi (TWIST tweets ogni 6 ore).

La libreria utilizza il sito Web di questo NeoCat come server proxy per materiale OAuth. Il tuo tweet potrebbe non essere applicato durante la manutenzione del sito Web di questo NeoCat. Twitter sembra rifiutare i tweet ripetuti con lo stesso contenuto (restituisce l'errore 403).

Gettone Twitter

Libreria Tweet Arduino

Passaggio 7: software e configurazione

Segui la guida all'installazione di Intel per Intel Edsion prima di iniziare a codificare.

Il programma è uno sketch Arduino in esecuzione su Edison. Di seguito ho spiegato ciascuno dei principali blocchi di codice.

Il codice include alcune costanti predefinite, dichiarazioni di pin e un paio di istruzioni di stampa seriale che aiutano nella risoluzione dei problemi.

Ritardo tweet

Poiché Twitter filtra i tweet che hanno lo stesso contenuto e vengono twittati entro brevi periodi di tempo tra ciascuno di essi, è stato impostato un ritardo standard di 3 ore (10800000 millisecondi) tra ogni tweet.

tweetMessage();

ritardo (10800000);

Tipo casting

Molte delle letture che otteniamo dai sensori sono nel tipo di dati "int" o "float". Ma poiché stiamo twittando questi valori, dobbiamo convertirli in un tipo di dati "Stringa". Per questo usiamo una speciale tecnica di Type-casting.

char *dtostrf (doppio val, larghezza del carattere con segno, prec del carattere senza segno, char *sout) {

char fmt[100]; sprintf(fmt, "%%%d.%df", larghezza, prec); sprintf(sout, fmt, val); tornare a sud; }

Token Twitter

Il token Twitter viene creato sul sito Web di NeoCat e deve essere incollato nello spazio token qui.

void tweetMessage() {

Twitter twitter(" INSERISCI QUI IL TOKEN TWITTER ");

Valori del sensore di tweeting

Per twittare il valore del sensore includiamo prima il tipo di sensore; Esempio: "Umidità". Questo seguito da una dichiarazione di carattere e una riga di codice richiesta per il typecasting. Quindi aggiungiamo una dichiarazione per l'unità di misura; Esempio: "%UR". Possiamo continuare ad aggiungere anche i valori di altri sensori in modo simile.

umidità(); galleggiare umido;

//Messaggio Twitter String stringMsg = "Umidità:"; carattere tmp[10]; dtostrf(umido, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";

Posizione e etichettatura della stazione meteorologica

Successivamente tagghiamo la posizione (Città, Località, ecc.) E altri tag come #iotweatherstn.

stringMsg += " #Mumbai #Bandra #iotweatherstn ";

Orologio in tempo reale (RTC)

Come spiegato in precedenza, TWIST può anche twittare i dati dell'orologio in tempo reale. Di seguito è riportato un esempio del blocco di codice del parametro "giorno" dell'RTC. La funzione Real Time Clock è opzionale nella piattaforma TWIST poiché il modulo viene fornito separatamente. Quindi c'è un ramo separato creato nel repository TWIST per il codice e gli schemi del ramo Real Time Clock.

TwistDateTime(); DateTime now = rtc.now(); int twistday, twistmonth, twistyear, twisthour, twistmin, twistsec; String stringMsg = ""; char ds1307day[10]; dtostrf(twistday, 1, 0ds1307day); stringMsg += ds1307day; stringMsg += "/";

Limite di 140 caratteri

Questo blocco di codice converte l'array di stringhe in un array di 140 caratteri pronto per twittare.

char msg[140];

stringMsg.toCharArray(msg, 140);

Messaggio e risoluzione dei problemi di connessione

Questo blocco di codice stampa un paio di righe di testo nel monitor seriale per aiutare l'utente a controllare il messaggio e lo stato del tweet.

//Twitta quel coglione!

if (twitter.post(msg)) { int status = twitter.wait(); if (stato == 200) { Serial.println("OK."); Serial.println("Messaggio twittato"); } else { //Test di connessione Serial.print("fallito: codice "); Serial.println("Messaggio non twittato"); Serial.println(stato); } } else { Serial.println("connessione fallita."); Serial.println("Messaggio non twittato"); }

Tutti gli altri blocchi di codice convertono semplicemente la lettura analogica o digitale dai sensori in dati utilizzabili.

Il codice può essere scaricato da qui o dal repository principale:

Stazione meteo.ino

Passaggio 8: Contribuire all'archivio dei sensori

Sei un programmatore, un ingegnere o un designer che ha una grande idea per una nuova funzionalità in TWIST? Forse hai una buona idea per una correzione di bug? Sentiti libero di prendere il nostro codice, schemi e file CAD da Github e armeggiare con esso.

TWIST GitHub

Intel® IoT su invito
Intel® IoT su invito
Intel® IoT su invito
Intel® IoT su invito

Secondo premio nell'Invito Intel® IoT

Consigliato: