Innehållsförteckning:
- Steg 1: Delar och material
- Steg 2: Elektrisk design
- Steg 3: Mekanisk design
- Steg 4: Rammontering: Ansikte och bas
- Steg 5: Elektronik och sensormontering
- Steg 6: Twitter -konfiguration
- Steg 7: Programvara och konfiguration
- Steg 8: Bidra till sensorförvaret
Video: Tweeting väderstation: 8 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
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
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
Andra pris i Intel® IoT Invitational
Rekommenderad:
Professionell väderstation med ESP8266 och ESP32 DIY: 9 steg (med bilder)
Professionell väderstation med hjälp av ESP8266 och ESP32 DIY: LineaMeteoStazione är en komplett väderstation som kan anslutas till professionella sensorer från Sensirion samt en viss Davis Instrument -komponent (regnmätare, vindmätare) Projektet är avsett som en DIY väderstation men kräver bara
Enkel väderstation med ESP8266 .: 6 steg (med bilder)
Enkel väderstation som använder ESP8266 .: I den här instruktionsboken kommer jag att dela hur jag använder ESP8266 för att få data som temperatur, tryck, klimat etc. Och YouTube -data som prenumeranter och amp; Totalt antal visningar. och visa data på seriell bildskärm och visa dem på LCD. Uppgifterna kommer att vara
Komplett DIY Raspberry Pi -väderstation med programvara: 7 steg (med bilder)
Komplett DIY Raspberry Pi -väderstation med programvara: I slutet av februari såg jag det här inlägget på Raspberry Pi -webbplatsen. http://www.raspberrypi.org/school-weather-station-…They hade skapat Raspberry Pi väderstationer för skolor. Jag ville helt ha en! Men vid den tiden (och jag tror fortfarande från och med skrivande
Väderstation med Arduino, BME280 och display för att se trenden inom de senaste 1-2 dagarna: 3 steg (med bilder)
Väderstation Med Arduino, BME280 & Display för att se trenden under de senaste 1-2 dagarna: Hej! Här på instruerbara väderstationer har redan införts. De visar det aktuella lufttrycket, temperaturen och luftfuktigheten. Vad de saknade hittills var en presentation av kursen under de senaste 1-2 dagarna. Denna process skulle ha
Väderstation med dataloggning: 7 steg (med bilder)
Väderstation med dataloggning: I den här instruktören kommer jag att visa dig hur du gör väderstationssystem själv. Allt du behöver är grundläggande kunskaper inom elektronik, programmering och lite tid. Detta projekt är fortfarande på gång. Detta är bara första delen. Uppgraderingar kommer