Schritt 7: Software & Konfiguration
Folgen Sie Intels Setup-Anleitung für die Intel Edsion, bevor Sie mit dem Codieren beginnen.
Das Programm ist ein Arduino-Skizze auf der Edison ausgeführt. Ich habe die wichtigsten Bausteine der Code unten beschrieben.
Der Code enthält einige vordefinierten Konstanten, Pin Erklärungen und ein paar serielle print-Anweisungen, die helfen bei der Fehlersuche.
Tweet-Verzögerung
Da Twitter filtert Tweets, die den gleichen Inhalt und sind innerhalb kürzester Zeit zwischen jedem von ihnen, ein standard 3 Stunden twitterte (10800000 Milli zweite) Verzögerung zwischen jeder Tweet eingerichtet wurde.
tweetMessage(); delay(10800000);
Typumwandlung
Viele der Messwerte bekommen wir von den Sensoren sind in den 'Int' oder 'Float' Datentyp. Aber da wir diese Werte twittern, wir brauchen sie in einem 'String' Datentyp konvertieren. Dazu verwenden wir eine spezielle Type-Casting-Technik.
char *dtostrf (double val, signed char width, unsigned char prec, char *sout) { char fmt[100]; sprintf(fmt, "%%%d.%df", width, prec); sprintf(sout, fmt, val); return sout; }
Twitter-Token
Das Twitter-Token wird auf NeoCat Website erstellt und sollte in den token Raum hier eingefügt werden.
void tweetMessage() { Twitter twitter(" ENTER TWITTER TOKEN HERE ");
Tweeting Sensorwerte
Um den Sensorwert tweet gehören wir zunächst den Sensortyp; Beispiel: "Luftfeuchtigkeit". Es folgten eine Charakter-Erklärung und eine Zeile Code für Typumwandlung erforderlich. Als nächstes fügen wir eine Erklärung für die Maßeinheit; Beispiel: "% RH". Halten wir auf Werte von anderen Sensoren auch in ähnlicher Weise hinzufügen.
humidity(); float humid; //Twitter message String stringMsg = "Humidity:"; char tmp[10]; dtostrf(humid, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";
Wetterstation Standort & Tagging
Als nächstes markieren wir die location(City,Locality,etc) und andere Tags wie #iotweatherstn.
stringMsg += " #Mumbai #Bandra #iotweatherstn ";
Real Time Clock (RTC)
Wie bereits erwähnt kann TWIST auch die Real-Time Clock Daten Tweet. Es folgt ein Beispiel für den "Tag" Parameter Codeblock der RTC. Die Real Time Clock-Funktion ist optional in der TWIST-Plattform, da das Modul separat kommt. Daher gibt es einen separaten Zweig im TWIST Repository für den Code und die Schaltpläne der Real Time Clock Zweigangelegt.
TwistDateTime();<br> DateTime now = rtc.now(); int twistday, twistmonth, twistyear, twisthour, twistmin, twistsec; String stringMsg = ""; char ds1307day[10]; dtostrf(twistday,1,0ds1307day); stringMsg += ds1307day; stringMsg += "/";
Maximal 140 Zeichen
Dieser Block Code Coverts Zeichenfolgenarray in 140 Zeichen-Array bereit um zu twittern.
char msg[140]; stringMsg.toCharArray(msg, 140);
Nachricht & Verbindung zu Problembehandlung
Dieser Codeblock druckt ein paar Zeilen des Textes in den Serial Monitor um den Benutzer die Nachricht und Tweet Status zu überprüfen.
//Tweet that sucker! if (twitter.post(msg)) { int status = twitter.wait(); if (status == 200) { Serial.println("OK."); Serial.println("Message Tweeted"); } else { //Connection Test Serial.print("failed : code "); Serial.println("Message not Tweeted"); Serial.println(status); } } else { Serial.println("connection failed."); Serial.println("Message not Tweeted"); }
Alle weiteren Bausteine der Code einfach wandelt die analoge oder digitale Lesung von den Sensoren in brauchbare Daten.
Der Code kann Dowloaded von hier oder von der Haupt-Depot: