Schritt 6: Laden Sie den code
Die vier Bibliotheken in das Arduino Library-Verzeichnis kopiert werden müssen und dann importiert werden wie gezeigt.
WorldMood/WorldMood.pde (siehe unten) sollte in die Arduino Entwicklungsumgebung geöffnet werden.
Du musst dann korrigieren Sie die "[Ihr Netzwerk]" und "[Ihr Netzwerkkennwort]" Felder. zB.
#define Netzwerk ("Mynetwork")
#define Passwort ("meinkennwort")
Dann die Skizze (und Bibliotheken) zusammengestellt und auf das Arduino Board hochgeladen werden.
siehe arduino.cc/en/Hacking/LibraryTutorial
Die nächsten 5 Schritte nur Programmierung geben einen Überblick über die Komponenten und enthalten die wichtigsten Teile des Quellcodes...
Update ***
Wenn Sie eine neuere Board haben, dann Sie dies ändern müssen
Struct SPI_UART_cfg SPI_Uart_config = {0x50, 0 x 00, 0x03, 0 x 10};
dazu:
Struct SPI_UART_cfg SPI_Uart_config = {0x60, 0 x 00, 0x03, 0 x 10};
Hier finden Sie weitere Informationen:
http://Forum.SparkFun.com/viewtopic.php?f=13&t=21846&SID=24282242d4256db0c7b7e814d7ca6952&Start=15
http://www.SparkFun.com/Commerce/product_info.php?products_id=9367
Update Ende ***
LED-Setup - nur einige Pins bieten 8-Bit-PWM (Pulse-Width Modulation) / / Ausgabe mit der analogWrite()-Funktion. http://www.Arduino.CC/en/Main/ArduinoBoardDuemilanove / / PWM: 3,5,6,9,10,11 #defineredPin (3) #definegreenPin (5) #definebluePin (6) / / Verzögerung in ms zwischen verblassen Updates / / Max fade-Zeit = 255 * 15 = 3.825s #definefadeDelay (15) / / Wifi setup-#definenetwork ([Ihr Netzwerk]) #definepassword ([Ihr Netzwerkkennwort]) #defineremoteServer ("twitter.com") Constchar * MoodNames [NUM_MOOD_TYPES] = {"Liebe", "Freude", "Überraschung", "Anger", "Neid", "Traurigkeit", "Angst"}; Constchar * MoodIntensityNames [NUM_MOOD_INTENSITY] = {"Mild", "erheblich", "extreme"}; die langfristige Verhältnisse zwischen Tweets mit emotionalem Inhalt / / mithilfe entdeckt die folgenden Suchbegriffe über einen Zeitraum von Zeit. FloattempramentRatios [NUM_MOOD_TYPES] = {0.13f, 0.15f, 0.20f, 0.14f, 0.16f, 0.12f, 0.10f,}; Diese Zahlen können optimiert werden, um das System mehr oder weniger reaktiv / / mehr oder weniger anfällig für Rauschen oder kurzfristige emotionale Lichtpunkte wie Sport Ergebnisse / / oder größere Veranstaltungen, wie Welt Katastrophen #define EmotionSmoothingFactor (0.1f) #define MoodSmoothingFactor (0.05f) #define ModerateMoodThreshold (2.0f) #define ExtremeMoodThreshold (4.0f) / / außer Batterie, setzen die Wifly schlafen so lange zwischen sucht (in ms) #defineSLEEP_TIME_BETWEEN_SEARCHES (1000 * 5) / / Store-Suche strings im Flash (Programm) Speicher anstelle von SRAM. http://www.Arduino.CC/en/Reference/PROGMEM / / TWEETS_PER_PAGE zu bearbeiten, wenn die Rpp ändern prog_charstring_0 [] PROGMEM Wert = "GET /search.json?q=\"i+love+you\"+OR+\"i+love+her\"+OR+\"i+love+him\"+OR+\"all+my+love\"+OR+\"i'm+in+love\"+OR+\"i+really+love\"& Rpp = 30 & Result_type = den letzten"; prog_charstring_1 [] PROGMEM = "GET /search.json?q=\"happiest\"+OR+\"so+happy\"+OR+\"so+excited\"+OR+\"i'm+happy\"+OR+\"woot\"+OR+\"w00t\"& Rpp = 30 & Result_type = den letzten"; prog_charstring_2 [] PROGMEM = "GET search.json?q=\"wow\"+OR+\"O_o\"+OR+\"can't+believe\"+OR+\"wtf\"+OR+\"unbelievable\"& Rpp = 30 & Result_type = den letzten"; prog_charstring_3 [] PROGMEM = "GET search.json?q=\"i+hate\"+OR+\"really+angry\"+OR+\"i+am+mad\"+OR+\"really+hate\"+OR+\"so+angry\"& Rpp = 30 & Result_type = den letzten"; prog_charstring_4 [] PROGMEM = "GET /search.json?q=\"i+wish+i\"+OR+\"i'm+envious\"+OR+ \"i'm+jealous\"+OR+\"i+want+to+be\"+OR+\"why+can't+i\"+ & Rpp = 30 & Result_type = den letzten"; prog_charstring_5 [] PROGMEM = "GET /search.json?q=\"i'm+so+sad\"+OR+\"i'm+heartbroken\"+OR+\"i'm+so+upset\"+OR+\"i'm+depressed\"+OR+\"i+can't+stop+crying\"& Rpp = 30 & Result_type = den letzten"; prog_charstring_6 [] PROGMEM = "GET /search.json?q=\"i'm+so+scared\"+OR+\"i'm+really+scared\"+OR+\"i'm+terrified\"+OR+\"i'm+really+afraid\"+OR+\"so+scared+i\"& Rpp = 30 & Result_type = den letzten"; Achten Sie darauf, dies zu ändern, wenn Sie die Rpp-Wert über #defineTWEETS_PER_PAGE (30 bearbeiten) PROGMEMconstchar * SearchStrings [] = {string_0 string_1, string_2, string_3, string_4, string_5, string_6,}; voidsetup() {Serial.begin(9600); Delay(100); } voidloop() {/ / erstellen und Initialisieren der Teilsysteme WiFlywifly (Netzwerk, Passwort, SLEEP_TIME_BETWEEN_SEARCHES, seriell); WorldMoodworldMood (seriell, EmotionSmoothingFactor, MoodSmoothingFactor, ModerateMoodThreshold, ExtremeMoodThreshold, TempramentRatios); LEDled (seriell, RedPin, GreenPin, BluePin, FadeDelay); TwitterParsertwitterSearchParser (Serial, TWEETS_PER_PAGE); WiFly. Reset(); CharsearchString [160]; während die (wahre) {für (Inti = 0; ich < NUM_MOOD_TYPES; i ++) {twitterSearchParser.Reset(); Lesen Sie im neuen Such-String SRAM von Flash-Speicher Strcpy_P (SearchString, (Char *) Pgm_read_word (&(searchStrings[i]))); Boolok = False; Intretries = 0; einige Wiederherstellungs-Code unterlässt die Webanforderung während (! ok) {ok = Wifly. HttpWebRequest (RemoteServer, SearchString & TwitterSearchParser); Wenn ()! ok) {Serial.println ("HttpWebRequest fehlgeschlagen"); Wiederholungsversuche ++; Wenn (> 3 Wiederholungen) {Wifly. Reset(); Wiederholungen = 0; {}}} FloattweetsPerMinute = twitterSearchParser.GetTweetsPerMinute(); Debug-Code Serial.println(""); Serial.Print(moodNames[i]); Serial.Print (": Tweets pro Minute ="); Serial.println(tweetsPerMinute); worldMood.RegisterTweets (i, TweetsPerMinute); } MOOD_TYPEnewMood = worldMood.ComputeCurrentMood(); MOOD_INTENSITYnewMoodIntensity = worldMood.ComputeCurrentMoodIntensity(); Serial.Print ("The Mood der Welt ist... "); Serial.Print(moodIntensityNames[(int)newMoodIntensity]); Serial.Print(""); Serial.println(moodNames[(int)newMood]); führte. SetColor ((Int) NewMood, (Int) NewMoodIntensity); Speichern Sie die Batterie Wifly. Sleep(); warten Sie, bis es Zeit für das nächste Update delay(SLEEP_TIME_BETWEEN_SEARCHES) ist; Serial.println(""); } }