Innehållsförteckning:

Tweeting väderstation: 8 steg (med bilder)
Tweeting väderstation: 8 steg (med bilder)

Video: Tweeting väderstation: 8 steg (med bilder)

Video: Tweeting väderstation: 8 steg (med bilder)
Video: Bruden spyr, blir nerbajsad och svimmar på bröllop 2024, Juli
Anonim
Tweeting väderstation
Tweeting väderstation

Har du någonsin velat övervaka din stads nuvarande väderförhållanden, koldioxidavtryck, buller och föroreningsnivåer? Vill du vara en korsfarare för klimatförändringar eller skapa en egen Tweeting-väderstation och dela dina lokala väderförhållanden med världen?

Möt Tweeting Weather IoT Station aka TWIST - en DIY, öppen källkod för miljöövervakning och meteorologisk datainsamlingsplattform. Syftet med TWIST är så att individer och samhällen kan samla in data om vad som faktiskt händer i sin miljö och dela denna data på sociala medier som Twitter.

  • TWIST är en Internet of Things (IoT) -driven plattform.
  • Hjärnan hos TWIST är en Intel Edison Board.
  • TWIST är kompatibel med en mängd olika sensorer.
  • All kod, designfiler (scheman och PCB-layout) är öppen källkod. Detta innebär att vem som helst kan bidra till TWIST -plattformen genom att dela kod och scheman för olika sensorer.

TWIST består av tre tekniska lager:

Det första lagret är en hårdvarukort som innehåller alla väder- och miljösensorer som kallas 'Sensor Board'. Som namnet antyder bär den sensorer som mäter luftkomposition, temperatur, luftfuktighet, regn. Ytterligare sensorer som seismisk aktivitet, UV -index, barometertryck, höjd, lux (ljusstyrka), ljudnivåer, vindhastighet och riktning, etc. kan också läggas till. När det väl är installerat kan sensorkortet strömma data som mäts av sensorerna till det andra lagret. Det andra lagret är Intel Edison Board som tar emot data från Sensor Board, bearbetar det och skickar det till nästa lager. Det tredje lagret ansluter ditt Edison Board till Internet via Wi-Fi med hjälp av den trådlösa modulen på Edison-kortet och Tweet's Current Weather & Environmental conditions.

Ström till enheten kan tillhandahållas av en solpanel eller en nätadapter.

Versionsstyrda förråd

Alla tre tekniska lager av TWIST är Open-Source, och därför är alla filer vi använder för kod, PCB-utveckling, mekanisk design, etc. tillgängliga på vårt Github-arkiv.

Tävlingsbidrag

Intel IoT Invitational

Jag vill tacka Intel+Instructables för att de gav mig Intel Edison Board. Jag planerar att göra många fler IoT -relaterade instruktioner med hjälp av Edison -kortet.

#iotweatherstn

Om du gör TWIST, glöm inte att twittra vädret med #iotweatherstn. #iotweatherstn kan vara en hashtag som används av alla IoT -drivna Tweeting -väderstationer.

Steg 1: Delar och material

Delar och material
Delar och material
Delar och material
Delar och material
Delar och material
Delar och material

QuantityPartDetails 1

Intel Edison

med Arduino Breakout Board

1

MQ2 brännbar gassensor

1

YL-83

Regnsensor

1

SL-HS-220

Temperatur- och luftfuktighetssensor

1

Motstånd

32K

4,7K

3 Metal Standoff 1 tum

1

Motstånd

32K

4,7K

2

Träark A4 -storlek

Kan senare klippas i storlek

3

Metal Standoff

1 tum

Steg 2: Elektrisk design

Kraft

Hela systemet drivs från en 5V 1A strömförsörjning. Sensorerna (temperatur, luftfuktighet, regn, gas) drar cirka 200 mA, Edison runt 500 mA, eftersom den totala strömstyrkan som krävs är mindre än 1 amp, bör en 1 A -strömförsörjning fungera bra. Den inbyggda gröna lysdioden på digital pin 13 på Edison Board används för att visa strömstatus.

Kontroll En Intel Edison driver showen för TWIST. Edison är monterad på en Arduino breakout board, vilket gör det enkelt att läsa de digitala och analoga signalerna från sensorerna. Edison är ansluten till 5V -skenan via en mikro -USB -kabel. Edison har en inbyggd Wi-Fi-radio, som gör det möjligt att ansluta till Twitter utan att behöva ytterligare hårdvara.

Realtidsklocka (RTC)

Eftersom tidsstämplingen automatiskt utförs av Twitter för varje tweet har en upplösning som är begränsad till antalet totala dagar sedan Tweetingens tid, används en realtidsklocka för att exakt stämpla datum och tid i timminuten- Andra formatet. Realtidsklockan som används i TWIST-plattformen är DS-1307 RTC-modulen.

Sensorer Den mest grundläggande installationen av detta system har fyra sensorer (temperatur, luftfuktighet, regn, gas) som ansluts till Edison. Ytterligare sensorer kan läggas till som buller, vind etc. Varje sensor drivs direkt från 5V -skenan och har sin signalstift ansluten respektive till analoga stift A0 till A2 och digital stift 2 på Edison -brytkortet. Sensorerna har också var och en en känslighetsjusteringspotentiometer monterad på varje sensorkort; MQ-2 är en brännbar gassensor (flytande petroleumgas, propan, väte och metan) som matar ut en analog spänning proportionell mot koncentrationen av gaser i delar per miljon. SL-HS-220 har en termistor som ger temperaturvärdet. Eftersom termistorns utsignal är olinjär, ges motsvarande temperaturtabell i sensorförvaret. Termistorn kräver en spänningsdelare när den är ansluten till Edison -kortet som visas i kretsschemat. SL-HS-220 har också en inbyggd hygrometer som mäter luftfuktighet och matar ut en analog spänning som motsvarar ett fast luftfuktighetsvärde. Luftfuktighetsspänningstabellen anges också i sensorförvaret. Ett vanligt substitut för SL-HS-220 är DHT11-sensorn. Regnsensorn/vattensensorn har en potentiometer som är justerad för att ge en digital utgång för en viss mängd regn vars känslighet kan justeras av användaren.

Weather Station.fzz

Steg 3: Mekanisk design

TWIST -kroppen består av två plattor av träplåt. Även om jag använde 1/4 "plywood kan designen monteras av valfritt arkmaterial eftersom avståndet (upprätthållet av 1" aluminiumavstånd) är det enda kritiska elementet. Jag har bifogat vektorfilerna för nedladdning ovan.

Laserskärning

För alla som vill laserskära de två plattorna har jag bifogat laserskärarfilerna för nedladdning nedan. Den innehåller också en extra luftkvalitetssensor i sin design. Så du kan antingen använda en MQ2 sensormodul eller luftkvalitetssensormodul beroende på ditt val.

Steg 4: Rammontering: Ansikte och bas

Frontplatta

Sensorerna passar in i deras matchande hål och utskärningar och kan fixeras med skruvar eller lim.

Basplatta

Edison -brädans distansskruvar skruvas fast på bottenplattan. Analog-till-digital-omvandlaren (ADC) som är ansluten till regnsensorn kan också skruvas fast på bottenplattan.

Ytterligare komponenter som summer eller spänningsregulatorkretsen för solingången kan också skruvas fast på bottenplattan.

Basplattan och frontplattan separeras båda med 1 avstånd.

Steg 5: Elektronik och sensormontering

Kraft

Strömförsörjningen till systemet tillhandahålls av en väggadapter med en standard fatuttag som är ansluten direkt till Edisons Barrel -kontakt. Systemet kan också drivas via USB -porten på Edison -kortet. Du kan också driva kortet från en extern solpanel.

Sensorer

Sensorerna är fästa på brytbrädor med hanrubriker och därmed kan de anslutas direkt till Edison via manliga till kvinnliga bygelkablar.

Steg 6: Twitter -konfiguration

Inorder to Tweet, vi använder en tredjepartsapp som utvecklats av NeoCat som får den Twitter-token du behöver för att tweeta med ditt Edison-kort. Tokens kan också hämtas från Twitters webbsida för utvecklare.

Så, för att komma igång, besök NeoCats webbplats, följ hans/hennes handledning för att få twitterbiblioteket och din twitter -token. Som NeoCat nämnde på deras webbplats, snälla missbruk inte tjänsten. Håll dina tweets glesa. Om du behöver något som tweets var 6: e sekund bör du skapa din egen server och twitter -app och därmed säkerställer koden som jag skrev att NeoCats server inte överbelastas (TWIST tweets var 6: e timme).

Biblioteket använder denna NeoCats webbplats som en proxyserver för OAuth -saker. Din tweet kanske inte tillämpas under underhåll av denna NeoCats webbplats. Twitter verkar avvisa upprepade tweets med samma innehåll (returnerar fel 403).

Twitter -token

Arduino Tweet Library

Steg 7: Programvara och konfiguration

Följ Intels installationsguide för Intel Edsion innan du börjar koda.

Programmet är en Arduino -skiss som körs på Edison. Jag har förklarat var och en av de viktigaste kodblocken nedan.

Koden innehåller några fördefinierade konstanter, stiftdeklarationer och ett par seriella utskriftsuttalanden som hjälper till vid felsökning.

Tweet Delay

Eftersom Twitter filtrerar bort tweets som har samma innehåll och tweetas inom korta tidsperioder mellan var och en av dem har en standardfördröjning på 3 timmar (10800000 milj sekund) mellan varje tweet ställts in.

tweetMessage ();

fördröjning (10800000);

Typ Gjutning

Många av avläsningarna vi får från sensorerna finns i datatypen 'int' eller 'float'. Men eftersom vi twittrar dessa värden måste vi konvertera dem till en "String" datatyp. För detta använder vi en speciell typgjutningsteknik.

char *dtostrf (dubbel val, signerad rödbredd, osignerad char prec, char *sout) {

röding fmt [100]; sprintf (fmt, "%%% d.%df", bredd, föregående); sprintf (sout, fmt, val); retur sout; }

Twitter -token

Twitter -token skapas på NeoCats webbplats och ska klistras in i tokenutrymmet här.

void tweetMessage () {

Twitter twitter ("ENTER TWITTER TOKEN HERE");

Tweeting sensorvärden

För att twittra sensorvärdet inkluderar vi först sensortypen; Exempel: "Luftfuktighet". Detta följt av en teckendeklaration och en kodrad som krävs för typecasting. Därefter lägger vi till ett uttalande för måttenheten; Exempel: "%RH". Vi kan fortsätta lägga till värden för andra sensorer också på ett liknande sätt.

fuktighet(); flyta fuktigt;

// Twitter -meddelande String stringMsg = "Luftfuktighet:"; char tmp [10]; dtostrf (fuktig, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";

Väderstationens placering och märkning

Därefter märker vi platsen (stad, ort, etc) och andra taggar som #iotweatherstn.

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

Realtidsklocka (RTC)

Som förklarats tidigare kan TWIST också twittra realtidsklockadata. Nedan är ett exempel på "dag" -parameterblocket med kod för RTC. Realtidsklockfunktionen är valfri i TWIST -plattformen eftersom modulen levereras separat. Därför finns det en separat gren skapad i TWIST -förvaret för koden och scheman för realtidsklockan.

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

140 Teckenbegränsning

Detta kodblock täcker strängmatrisen till 140 tecken matris redo att twittra.

char msg [140];

stringMsg.toCharArray (msg, 140);

Meddelande och anslutning Felsökning

Detta kodblock skriver ut ett par rader text i Serial Monitor för att hjälpa användaren att kontrollera meddelandet och tweeten.

// Tweet den där sugen!

if (twitter.post (msg)) {int status = twitter.wait (); if (status == 200) {Serial.println ("OK."); Serial.println ("Meddelande tweetat"); } annat {// Anslutningstest Serial.print ("misslyckades: kod"); Serial.println ("Meddelande ej tweetat"); Serial.println (status); }} else {Serial.println ("anslutningen misslyckades."); Serial.println ("Meddelande ej tweetat"); }

Alla andra kodblock omvandlar helt enkelt den analoga eller digitala avläsningen från sensorerna till användbar data.

Koden kan laddas ner härifrån eller från huvudförvaret:

Väderstation.ino

Steg 8: Bidra till sensorförvaret

Är du en programmerare, ingenjör eller designer som har en bra idé för en ny funktion i TWIST? Kanske har du en bra idé för en buggfix? Ta gärna vår kod, scheman och CAD -filer från Github och pyssla med den.

TWIST GitHub

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

Andra pris i Intel® IoT Invitational

Rekommenderad: