Innholdsfortegnelse:
- Trinn 1: Deler og materialer
- Trinn 2: Elektrisk design
- Trinn 3: Mekanisk design
- Trinn 4: Rammemontering: Ansikt og base
- Trinn 5: Elektronikk og sensormontering
- Trinn 6: Twitter -konfigurasjon
- Trinn 7: Programvare og konfigurasjon
- Trinn 8: Bidra til sensorlageret
Video: Tweeting værstasjon: 8 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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
Andre premie i Intel® IoT Invitational
Anbefalt:
NaTaLia værstasjon: Arduino solcelledrevet værstasjon gjort den riktige måten: 8 trinn (med bilder)
NaTaLia værstasjon: Arduino solcelledrevet værstasjon gjort på riktig måte: Etter 1 års vellykket drift på 2 forskjellige steder deler jeg mine solcelledrevne værstasjonsprosjektplaner og forklarer hvordan det utviklet seg til et system som virkelig kan overleve over lang tid perioder fra solenergi. Hvis du følger
Komplett DIY Raspberry Pi værstasjon med programvare: 7 trinn (med bilder)
Komplett DIY Raspberry Pi værstasjon med programvare: I slutten av februar så jeg dette innlegget på Raspberry Pi -nettstedet. http://www.raspberrypi.org/school-weather-station-…De hadde opprettet Raspberry Pi værstasjoner for skoler. Jeg ville helt ha en! Men på det tidspunktet (og jeg tror fremdeles i skrivende stund
Mini værstasjon med Attiny85: 6 trinn (med bilder)
Mini Weather Station With Attiny85: I en nylig instruerbar Indigod0g beskrev en mini værstasjon som fungerer ganske bra, ved hjelp av to Arduinos. Kanskje ikke alle ønsker å ofre 2 Arduinos for å få fuktighets- og temperaturavlesninger, og jeg kommenterte at det burde være mulig å
Værstasjon med Arduino, BME280 og display for å se trenden i løpet av de siste 1-2 dagene: 3 trinn (med bilder)
Værstasjon Med Arduino, BME280 og display for å se trenden i løpet av de siste 1-2 dagene: Hei! Her på instruksjonsbare værstasjoner har allerede blitt introdusert. De viser gjeldende lufttrykk, temperatur og fuktighet. Det de manglet så langt var en presentasjon av kurset i løpet av de siste 1-2 dagene. Denne prosessen vil ha en
Værstasjon med datalogging: 7 trinn (med bilder)
Værstasjon med datalogging: I denne instruksen vil jeg vise deg hvordan du lager værstasjonssystem selv. Alt du trenger er grunnleggende kunnskap innen elektronikk, programmering og litt tid. Dette prosjektet er fremdeles under utvikling. Dette er bare første del. Oppgraderinger blir