TWIST - DIY Tweeting väderstation (7 / 8 steg)
Steg 7: Programvara och konfiguration
Följa Intels Installationshandbok för Intel Edsion innan du börjar kodning.
Programmet är en Arduino skiss körs på Edison. Jag har förklarat varje huvudsakliga block av koden nedan.
Koden innehåller vissa fördefinierade konstanter, pin deklarationer och ett par seriell tryckta rapporter som hjälp vid felsökning.
Tweet dröjsmål
Eftersom Twitter filtrerar bort tweets som har samma innehåll och är tweeted inom korta tidsperioder mellan var och en av dem, en standard 3-timmars (10800000 milli andra) fördröjning mellan varje tweet har ställts in.
tweetMessage();
Delay(10800000);
Typ gjutning
Många av de avläsningar som vi får från sensorerna är i den "int" eller "float" datatypen. Men eftersom vi är tweeting dessa värden, vi måste omvandla dem till en "Sträng" datatyp. För detta använder vi en speciell Type-casting teknik.
char * dtostrf (dubbelt val, signerad char bredd, unsigned char prec, char * sout) {
char fmt [100].
sprintf (fmt, "%%% d.%df", bredd, prec);
sprintf (sout, fmt, val);
returnera sout;
}
Twitter Token
Twitter-token skapas på Neocats hemsida och ska klistras in i det token utrymmet här.
void tweetMessage() {
Twitter twitter ("Ange TWITTER TOKEN här");
Tweeting Sensor värden
För att tweet sensor värdet inkluderar vi först till sensortyp; Exempel: "fukt". Detta följs av en karaktär förklaring och en rad kod krävs för Type-Casting. Nästa vi lägga till en förklaring för måttenheten; Exempel: "% RH". Vi kan hålla på att lägga till värden för andra sensorer också på ett liknande sätt.
humidity(); float fuktigt;
Twitter-meddelande
String stringMsg = "luftfuktighet:";
char tmp [10].
dtostrf (fuktigt, 1, 2, tmp);
stringMsg += tmp;
stringMsg += "% RH".
Väderstation läge & märkning
Nästa tag vi i location(City,Locality,etc) och andra Taggar som #iotweatherstn.
stringMsg += "#Mumbai #Bandra #iotweatherstn";
Realtidsklocka (RTC)
Som vi förklarat tidigare kan TWIST också Tweet klocka realtidsdata. Nedan är ett exempel på "dag" parameter block av kod för RTC. Funktionen realtidsklocka är valfritt i TWIST-plattformen eftersom modulen kommer separat. Därför är det en separat gren skapad i TWIST databasen för kod och scheman i realtidsklocka gren.
TwistDateTime(); < br > DateTime nu = rtc.now();
int twistday, twistmonth, twistyear, twisthour, twistmin, twistsec;
String stringMsg = "";
char ds1307day [10];
dtostrf(twistday,1,0ds1307day);
stringMsg += ds1307day;
stringMsg += "/";
140 tecken
Detta block av kod gömslen Strängmatrisen till 140 tecken matris redo för att tweet.
char msg [140];
stringMsg.toCharArray (msg, 140);
Meddelande & felsökning av anslutning
Detta kodblock skriver ut ett par rader text i följetong bildskärmen för att hjälpa användaren att kontrollera status meddelande och tweet.
Tweet att sucker!
om (twitter.post(msg))
{
int status = twitter.wait();
om (status == 200)
{
Serial.println("OK.");
Serial.println ("meddelande Tweeted");
}
annat
{//Connection test
Serial.Print ("misslyckades: koden");
Serial.println ("meddelande inte Tweeted");
Serial.println(status);
}
}
annat
{
Serial.println ("Anslutning misslyckades.");
Serial.println ("meddelande inte Tweeted");
}
Alla andra block av kod helt enkelt omvandlar analog eller digital läsning från sensorerna till användbara data.
Koden kan laddas ner från här eller från viktigaste databasen:
Väder Station.ino