Innholdsfortegnelse:

Tweeting værstasjon: 8 trinn (med bilder)
Tweeting værstasjon: 8 trinn (med bilder)

Video: Tweeting værstasjon: 8 trinn (med bilder)

Video: Tweeting værstasjon: 8 trinn (med bilder)
Video: 8 Excel -verktøy alle bør kunne bruke 2024, Juli
Anonim
Tweeting værstasjon
Tweeting værstasjon

Har du noen gang ønsket å overvåke byens nåværende værforhold, karbonavtrykk, støy og forurensningsnivåer? Vil du være en Climate Change Crusader eller sette opp din egen Tweeting værstasjon og dele dine lokale værforhold med verden?

Møt Tweeting Weather IoT Station aka TWIST - en DIY, åpen kildekode miljøovervåking og meteorologisk datainnsamlingsplattform. Hensikten med TWIST er at enkeltpersoner og lokalsamfunn kan samle inn data om hva som faktisk skjer i miljøet og dele disse dataene på sosiale medier som Twitter.

  • TWIST er en Internet of Things (IoT) drevet plattform.
  • Hjernen til TWIST er et Intel Edison Board.
  • TWIST er kompatibel med en rekke sensorer.
  • All kode, designfiler (skjemaer og PCB-layout) er åpen kildekode. Dette betyr at alle kan bidra til TWIST -plattformen ved å dele kode og skjemaer for forskjellige sensorer.

TWIST består av tre teknologiske lag:

Det første laget er et maskinvarekort som inneholder alle vær- og miljøsensorer kjent som 'Sensor Board'. Som navnet antyder, bærer den sensorer som måler luftsammensetning, temperatur, fuktighet, regn. Ytterligere sensorer som seismisk aktivitet, UV -indeks, barometrisk trykk, høyde, lux (lysstyrke), lydnivåer, vindhastighet og retning osv. Kan også legges til. Når det er konfigurert, er Sensor Board i stand til å streame data målt av sensorene til det andre laget. Det andre laget er Intel Edison Board som mottar data fra Sensor Board, behandler det og sender det til neste lag. Det tredje laget kobler Edison Board til Internett via Wi-Fi ved hjelp av den trådløse modulen på Edison-kortet og Tweet's Current Weather & Environmental conditions.

Strøm til enheten kan leveres av et solcellepanel eller en strømadapter.

Versjonskontrollerte depoter

Alle de tre teknologiske lagene i TWIST er åpen kildekode, og dermed er alle filene vi bruker til kode, PCB-utvikling, mekanisk design, etc. lett tilgjengelig på vårt Github-depot.

Konkurranseoppføringer

Intel IoT Invitational

Jeg vil takke Intel+Instructables for å ha gitt meg Intel Edison Board. Jeg planlegger å lage mange flere IoT -relaterte instrukser ved hjelp av Edison -brettet.

#iotweatherstn

Hvis du lager TWIST, ikke glem å tweet været med #iotweatherstn. #iotweatherstn kan være en hashtag som brukes av alle IoT -drevne Tweeting -værstasjoner.

Trinn 1: Deler og materialer

Deler og materialer
Deler og materialer
Deler og materialer
Deler og materialer
Deler og materialer
Deler og materialer

QuantityPartDetails 1

Intel Edison

med Arduino Breakout Board

1

MQ2 brennbar gassensor

1

YL-83

Regnsensor

1

SL-HS-220

Temperatur- og fuktighetssensor

1

Motstand

32K

4,7K

3 Metal Standoff 1 tommer

1

Motstand

32K

4,7K

2

Treplate A4 -størrelse

Kan senere klippes i størrelse

3

Metallavstand

1 tomme

Trinn 2: Elektrisk design

Makt

Hele systemet drives av en 5V 1A strømforsyning. Sensorene (temperatur, fuktighet, regn, gass) trekker omtrent 200 mA, Edison rundt 500 mA, Siden den totale strømstyrken som kreves er mindre enn 1 amp, bør en forsterker på 1 ampere fungere helt fint. Den innebygde grønne LED -en på digital pin 13 på Edison Board brukes til å vise strømstatus.

Kontroll En Intel Edison driver showet for TWIST. Edison er montert på et Arduino breakout -kort, som gjør det enkelt å lese de digitale og analoge signalene fra sensorene. Edison er koblet til 5V -skinnen via en mikro -USB -kabel. Edison har en innebygd Wi-Fi-radio, som lar den koble til Twitter uten behov for ekstra maskinvare.

Sanntidsklokke (RTC)

Siden tidsstemplingen automatisk utføres av Twitter for hver tweet har en oppløsning som er begrenset til totalt antall dager siden tidspunktet for tweetting, brukes en sanntidsklokke for å tidsstempler dato og klokkeslett nøyaktig i time-minutt- Andre format. Sanntidsklokken som brukes på TWIST-plattformen er DS-1307 RTC-modulen.

Sensorer Det mest grunnleggende oppsettet for dette systemet har fire sensorer (temperatur, fuktighet, regn, gass) som kobles til Edison. Ytterligere sensorer kan legges til, for eksempel støy, vind, etc. Hver sensor drives direkte fra 5V -skinnen og har sin signalpinne henholdsvis koblet til analoge pinner A0 til A2 og digital pinne 2 på Edison breakout -kortet. Sensorene har også hver et følsomhetsjusteringspotensiometer montert på hvert sensorkort; MQ-2 er en brennbar gassensor (flytende petroleumsgass, propan, hydrogen og metan) som sender ut en analog spenning proporsjonal med konsentrasjonen av gasser i deler per million. SL-HS-220 har en termistor som gir temperaturverdien. Siden utgangen til termistoren er ikke-lineær, er den tilsvarende temperaturtabellen gitt i sensorlageret. Termistoren krever en spenningsdelerkrets når den er koblet til Edison Board som vist i kretsdiagrammet. SL-HS-220 har også et innebygd hygrometer som måler fuktighet og gir ut en analog spenning som tilsvarer en fast fuktighetsverdi. Fuktighet-spenningstabellen er også gitt i sensorlageret. En vanlig erstatning for SL-HS-220 er DHT11-sensoren. Regnsensoren/vannsensoren har et potensiometer som er justert for å gi en digital utgang for en viss mengde regn hvis følsomhet kan justeres av brukeren.

Værstasjon. Fzz

Trinn 3: Mekanisk design

TWISTs kropp består av to plater med treplater. Selv om jeg brukte 1/4 "kryssfiner, kan designet settes sammen av et hvilket som helst arkmateriale, da avstanden (opprettholdt av 1" aluminiumsavstand) er det eneste kritiske elementet. Jeg har lagt ved vektorfilene for nedlasting ovenfor.

Laserskjæring

For alle som ønsker å laserskjære de to platene, har jeg lagt ved laserskjæringsfilene for nedlasting nedenfor. Den inkluderer også en ekstra luftkvalitetssensor i designet. Så du kan enten bruke en MQ2 sensormodul eller luftkvalitetssensormodul avhengig av ditt valg.

Trinn 4: Rammemontering: Ansikt og base

Frontplate

Sensorene passer inn i de matchende hullene og utskjæringene og kan festes med skruer eller lim.

Grunnplate

Stansene på Edison -kortet er skrudd fast på bunnplaten. Den analog-til-digitale omformeren (ADC) som er koblet til regnsensoren, kan også skrus på grunnplaten.

Ytterligere komponenter som summer eller spenningsregulator -kretsen for solinngangen kan også skrus på grunnplaten.

Baseplaten og frontplaten er begge atskilt med 1 avstand.

Trinn 5: Elektronikk og sensormontering

Makt

Strømmen til systemet leveres av en veggadapter med en standard fatkontakt som er koblet direkte til Edison's Barrel -kontakten. Systemet kan også drives via USB -porten på Edison -kortet. Du kan også drive kortet fra et eksternt solcellepanel.

Sensorer

Sensorene er festet til utbruddstavler med mannlige overskrifter, og derfor kan de kobles direkte til Edison via mannlige til kvinnelige hoppertråder.

Trinn 6: Twitter -konfigurasjon

Inorder to Tweet, vi bruker en tredjepartsapp utviklet av NeoCat som får Twitter-tokenet du trenger for å Tweet med Edison-brettet ditt. Tokens kan også hentes fra Twitters utviklerside.

Så for å komme i gang, besøk NeoCats nettsted, følg opplæringen for å få twitterbiblioteket og twittertokenet ditt. Som NeoCat nevnte på nettstedet deres, må du ikke misbruke tjenesten. Hold tweets sparsomme. Hvis du trenger noe som tweeter hvert 6. sekund, bør du sette opp din egen server og twitter -app, og derfor sørger koden som jeg skrev for at NeoCats server ikke overbelastes (TWIST tweets hver 6. time).

Biblioteket bruker dette NeoCats nettsted som en proxy -server for OAuth -ting. Det er ikke sikkert at tweeten din blir brukt under vedlikehold av dette NeoCats nettsted. Twitter ser ut til å avvise gjentatte tweets med samme innhold (returnerer feil 403).

Twitter -token

Arduino Tweet Library

Trinn 7: Programvare og konfigurasjon

Følg Intels oppsettguide for Intel Edsion før du begynner å kode.

Programmet er en Arduino -skisse som kjører på Edison. Jeg har forklart hver av hovedblokkene med kode nedenfor.

Koden inneholder noen forhåndsdefinerte konstanter, pin -deklarasjoner og et par serielle utskriftserklæringer som hjelper til med feilsøking.

Tweet Forsinkelse

Siden Twitter filtrerer bort tweets som har samme innhold og blir tweetet innen korte tidsrom mellom hver av dem, er det satt en standard forsinkelse på 3 timer (10800000 milli sekund) mellom hver tweet.

tweetMessage ();

forsinkelse (10800000);

Type støping

Mange av avlesningene vi får fra sensorene er i datatypen 'int' eller 'float'. Men siden vi tweeter disse verdiene, må vi konvertere dem til en 'streng' datatype. For dette bruker vi en spesiell Type-casting-teknikk.

char *dtostrf (dobbel val, signert røydebredde, usignert char prec, char *sout) {

røye fmt [100]; sprintf (fmt, "%%% d.%df", bredde, forut); sprintf (sout, fmt, val); retur sout; }

Twitter -token

Twitter -tokenet er opprettet på NeoCats nettsted og bør limes inn i tokenområdet her.

void tweetMessage () {

Twitter twitter ("ENTER TWITTER TOKEN HER");

Tweeting sensorverdier

For å tweet sensorverdien inkluderer vi først sensortypen; Eksempel: "Fuktighet". Dette etterfulgt av en tegnerklæring og en kodelinje som kreves for typecasting. Deretter legger vi til en uttalelse for måleenheten; Eksempel: "%RH". Vi kan fortsette å legge til verdier for andre sensorer også på lignende måte.

luftfuktighet(); flyte fuktig;

// Twitter melding String stringMsg = "Fuktighet:"; røyke tmp [10]; dtostrf (fuktig, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";

Værstasjonens plassering og merking

Deretter merker vi plasseringen (by, lokalitet, osv.) Og andre tagger som #iotweatherstn.

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

Sanntidsklokke (RTC)

Som forklart tidligere kan TWIST også tweet sanntids klokkedata. Nedenfor er et eksempel på "dag" -parameterblokken med kode for RTC. Real Time Clock -funksjonen er valgfri i TWIST -plattformen siden modulen kommer separat. Derfor er det opprettet en egen gren i TWIST -depotet for koden og skjemaene for klokken i sanntidsklokke.

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

140 Tegngrense

Denne blokkblokken dekker strengmatrisen til 140 tegn array klar til å tweet.

røyke melding [140];

stringMsg.toCharArray (msg, 140);

Melding og tilkobling Feilsøking

Denne blokkblokken skriver ut et par tekstlinjer i Serial Monitor for å hjelpe brukeren med å sjekke meldingen og tweetstatusen.

// Tweet den sukkeren!

if (twitter.post (msg)) {int status = twitter.wait (); if (status == 200) {Serial.println ("OK."); Serial.println ("melding tweetet"); } annet {// Tilkoblingstest Serial.print ("mislyktes: kode"); Serial.println ("Melding ikke tweetet"); Serial.println (status); }} else {Serial.println ("tilkobling mislyktes."); Serial.println ("Melding ikke tweetet"); }

Alle de andre kodeblokkene konverterer ganske enkelt den analoge eller digitale avlesningen fra sensorene til brukbare data.

Koden kan lastes ned herfra eller fra hovedlageret:

Værstasjon.ino

Trinn 8: Bidra til sensorlageret

Er du en programmerer, ingeniør eller designer som har en god idé for en ny funksjon i TWIST? Kanskje du har en god idé for en feilrettelse? Ta gjerne frem koden, skjemaene og CAD -filene våre fra Github og tinker med den.

TWIST GitHub

Intel® IoT Invitational
Intel® IoT Invitational
Intel® IoT Invitational
Intel® IoT Invitational

Andre premie i Intel® IoT Invitational

Anbefalt: