Twitter Mood Light - världens humör i en låda (6 / 13 steg)
Steg 6: Hämta koden
De fyra bibliotek måste kopieras till katalogen Arduino bibliotek och sedan de kan importeras som visas.
WorldMood/WorldMood.pde (se nedan) ska öppnas i utvecklingsmiljön Arduino.
Du behöva korrigera den "[ditt nätverk]" och "[ditt nätverkslösenord]" fält. t.ex.
#define nätverk ("mynetwork")
#define lösenord ("mittlösenord")
Sedan skissen (och bibliotek) bör sammanställas och laddas upp till Arduino styrelsen.
se arduino.cc/en/Hacking/LibraryTutorial
De nästa 5 programmering steg bara ger en överblick av varje komponent och innehåller mest anmärkningsvärda delar av källkoden...
Uppdatering ***
Om du har en nyare ombord så du kan behöva ändra detta
struct SPI_UART_cfg SPI_Uart_config = {0x50, 0x00, 0x03, 0x10};
till detta:
struct SPI_UART_cfg SPI_Uart_config = {0x60, 0x00, 0x03, 0x10};
Se här för mer information:
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
Slut på uppdatering ***
LEDDE setup - endast vissa stift ger 8-bitars PWM (Pulse bredd modulering) / / utgång med funktionen analogWrite(). http://www.Arduino.cc/en/main/ArduinoBoardDuemilanove / / PWM: 3,5,6,9,10,11 #defineredPin (3) #definegreenPin (5) #definebluePin (6) / / fördröjning i ms mellan fade uppdateringar / / max fade gång = 255 * 15 = 3.825s #definefadeDelay (15) / / Wifi setup #definenetwork ([ditt nätverk]) #definepassword ([ditt nätverkslösenord]) #defineremoteServer ("twitter.com") constchar * moodNames [NUM_MOOD_TYPES] = {"älskar", "glädje", "överraskning", "vrede", "avund", "sorg", "fear",}; constchar * moodIntensityNames [NUM_MOOD_INTENSITY] = {"mild", "betydande", "extrema"}; den långsiktiga kvoten mellan tweets med emotionellt innehåll / / som identifierats med hjälp av nedan söktermer under en tid. floattempramentRatios [NUM_MOOD_TYPES] = {0.13f, 0.15f, 0.20f, 0.14f, 0.16f, 0.12f, 0.10f,}; dessa siffror kan finjusteras för att få systemet att vara mer eller mindre reaktiv / / för att vara mer eller mindre mottagliga för buller eller kort sikt känslomässiga signaler, som sport resultat / / eller större händelser, som världen katastrofer #define emotionSmoothingFactor (0.1f) #define moodSmoothingFactor (0.05f) #define moderateMoodThreshold (2.0f) #define extremeMoodThreshold (4.0f) / / spara batteri, sätta wifly att sova så länge mellan sökningar (i ms) #defineSLEEP_TIME_BETWEEN_SEARCHES (1000 * 5) / / butik Sök strängar i flashminne (program) i stället för SRAM. http://www.Arduino.cc/en/reference/PROGMEM / / redigera TWEETS_PER_PAGE om ändra rpp värdesätter prog_charstring_0 [PROGMEM] = "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 = senaste"; 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 = senaste"; prog_charstring_2 [PROGMEM] = "GET search.json?q=\"wow\"+OR+\"O_o\"+OR+\"can't+believe\"+OR+\"wtf\"+OR+\"unbelievable\"& rpp = 30 & result_type = senaste"; 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 = senaste"; 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 = senaste"; 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 = senaste"; 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 = senaste"; se till att ändra detta om du redigerar rpp värdet ovan #defineTWEETS_PER_PAGE (30) PROGMEMconstchar * adresser [] = {string_0, string_1, string_2, string_3, string_4, string_5, string_6,}; voidsetup() {Serial.begin(9600); delay(100);} voidloop() {/ / skapa och initiera delsystemen WiFlywifly (nätverk, lösenord, SLEEP_TIME_BETWEEN_SEARCHES, Serial); WorldMoodworldMood (seriell, emotionSmoothingFactor, moodSmoothingFactor, moderateMoodThreshold, extremeMoodThreshold, tempramentRatios); LEDled (seriell, redPin, greenPin, bluePin, fadeDelay); TwitterParsertwitterSearchParser (serienummer, TWEETS_PER_PAGE); WiFly. Reset(); charsearchString [160]; medan (sant) {för (inti = 0; jag < NUM_MOOD_TYPES; i ++) {twitterSearchParser.Reset(); / / Läs i nya söksträng till SRAM från flash-minne strcpy_P (söktext, (char *) pgm_read_word (& (searchStrings[i]))); boolok = false; intretries = 0; / / viss återhämtning kod om webbegäran inte tag (! ok) {ok = wifly. HttpWebRequest (remoteServer, söktext, & twitterSearchParser); om (! ok) {Serial.println ("HttpWebRequest misslyckades"), återförsök ++; om (antal försök > 3) {wifly. Reset(); försök = 0; {}}} floattweetsPerMinute = twitterSearchParser.GetTweetsPerMinute(); debug-kod Serial.println(""); Serial.Print(moodNames[i]); Serial.Print (": tweets per minut ="); Serial.println(tweetsPerMinute); worldMood.RegisterTweets (i, tweetsPerMinute); } MOOD_TYPEnewMood = worldMood.ComputeCurrentMood(); MOOD_INTENSITYnewMoodIntensity = worldMood.ComputeCurrentMoodIntensity(); Serial.Print ("The stämningen i världen är... "); Serial.Print(moodIntensityNames[(int)newMoodIntensity]); Serial.Print(""); Serial.println(moodNames[(int)newMood]); ledde. SetColor ((int) newMood, (int) newMoodIntensity); Spara batteri wifly. Sleep(); vänta tills det är dags för nästa uppdatering delay(SLEEP_TIME_BETWEEN_SEARCHES); Serial.println("");}}