Stap 7: Parallax en Twitter
1. Haal een token om een bericht met behulp van OAuth. http://Arduino-Tweet.appspot.com
2. configureren de netwerkgegevens in de code, beginnen door te kijken naar de netwerkinstellingen van de computer. Op de Mac, ga naar systeem voorkeuren/netwerk, dan klikt u op de knop Geavanceerd en selecteer het tabblad TCP/IP.
3. voor de code gratis IP-adres, kunt u meestal gewoon nemen uw netwerkinstelling en het nummer van de laatste een beetje te verhogen. Als uw IP-adres was: 192.168.1.2, u konden uitproberen 192.168.2.12
4. download de bibliotheek Twitter http://www.arduino.cc/playground/Code/TwitterLibrary
5. Maak een nieuwe schets. In deze code plakken. Breng de gewenste wijzigingen:
#include < Wire.h > #define rxPin 2 byte r = 0, g = 0, b = 0; int count = 0; prog_char rode [PROGMEM] = "[uw RFID tag-nummer]"; PROGMEM const char * [colorTags_table] = {} char tags_buffer [12]; NewSoftSerial RFID = NewSoftSerial(rxPin,txPin); Booleaanse ctt = false; wijzigen van de laatste twee bytes-it kan van alles zijn het laatste nummer te wijzigen, zodat de ip uniek is Twitter twitter ("[uw token hier]"); Tekenreeks gedicht; lange randNum2; gedicht prog_char words2_0 [PROGMEM] = "wolken"; prog_char words3_0 [PROGMEM] = "lives."; prog_char words4_0 [PROGMEM] = "varkens zal vliegen maar mannen niet."; PROGMEM const char * [words1_table] = {} PROGMEM const char * [words2_table] = {} PROGMEM const char * [words3_table] = {} PROGMEM const char * [words4_table] = {} char word1_buffer [8]; /// Serial.begin(9600); lastColor = 7; Ethernet.begin (mac, ip); begint de Ethernet-verbinding }
#include < BlinkM_funcs.h >
#include < NewSoftSerial.h >
#include < avr/pgmspace.h >
#include < Ethernet.h >
#include < EthernetDNS.h >
#include < Twitter.h >
#define txPin 3
int blinkm_addr = 0x09;
lange pt;
prog_char groen [PROGMEM] = "uw RFID tag-nummer]";
prog_char blue [PROGMEM] = "uw RFID tag-nummer]";
rood, groen, blauw};
char testFN [80];
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xFF};
byte ip [] = {10,0,1,29};
int kleur = 7;
int lastColor = 7;
lange randNum3;
lange randNum4;
prog_char words1_0 [PROGMEM] = "Rood";
prog_char words1_1 [PROGMEM] = "Groen";
prog_char words1_2 [PROGMEM] = "Blue";
prog_char words1_3 [PROGMEM] = "Magenta";
prog_char words1_4 [PROGMEM] = "Cyaan";
prog_char words1_5 [PROGMEM] = "Geel";
prog_char words1_6 [PROGMEM] = "Wit";
prog_char words2_1 [PROGMEM] = "verzegeling";
prog_char words2_2 [PROGMEM] = "wolkenkrabbers";
prog_char words3_1 [PROGMEM] = "fly.";
prog_char words3_2 [PROGMEM] = "slaap.";
prog_char words3_3 [PROGMEM] = "omringen.";
prog_char words3_4 [PROGMEM] = "imploderen.";
prog_char words4_1 [PROGMEM] = "De rode roos slaat in de vergetelheid.";
prog_char words4_2 [PROGMEM] = "Levende legendes maar helden sterven.";
prog_char words4_3 [PROGMEM] = "Small talk is groot in de taal van het leven.";
words1_0,
words1_1,
words1_2,
words1_3,
words1_4,
words1_5,
words1_6};
words2_0,
words2_1,
words2_2
};
words3_0,
words3_1,
words3_2,
words3_3,
words3_4
};
words4_0,
words4_1,
words4_2,
words4_3};
char word2_buffer [12];
char word3_buffer [10];
char word4_buffer [44];
VOID Setup {}
BlinkM_begin();
RFID.begin(9600); / / RFID lezer Zuid pin aangesloten op seriële RX pin 9600 bps
BlinkM_setRGB (blinkm_addr, 0, 0, 0); //call die tot vervaagt gewenste kleur
delay(1000);
connectToTwitter();
if(CTT) {}
Serial.println ("start alles");
}
VOID connectToTwitter() {/ / print een lege regel, gebruikt voor foutopsporing
Serial.println ("aansluiten op Twitter..."); afdrukken, gebruikt voor foutopsporing
char testFN1[4]={int(random(1000,2000))};
Als (twitter.post(testFN1)) {/ / Twitter dat we gebruiksklaar zijn
int status = twitter.wait (& Serial); wacht op een antwoord van twitter
Als (status == 200) {/ / als Twitter reageert 200
Serial.println ("Tweet OK!"); afdrukken van succes / / print een lege regel, gebruikt voor foutopsporing
CTT = true;
} else {}
Serial.Print ("Tweet is mislukt: code");
Serial.println(status); foutcode afdrukken
connectToTwitter(); Print een lege regel, gebruikt voor foutopsporing
}
} else {}
Serial.println ("verbinding mislukt.");
connectToTwitter();
}
}
void loop {}
BlinkM_setRGB(blinkm_addr,r,g,b);
sendRead();
readTag();
}
ongeldig sendRead() {}
RFID.flush();
RFID.print("!RW");
RFID.print (0x0F, BYTE);
}
ongeldig readTag() {}
if(count<2) {}
byte-code [12];
int bytesread = 0;
Koord msg;
while(bytesread<12) {/ / lees 10 cijferige code
Dit blokkeert en moet idealiter een timeout
Als (RFID.available()) {}
code [bytesread] = RFID.read();
bytesread ++;
}
else {}
Dit vaste naar de werkstuk
BlinkM_fadeToRGB (blinkm_addr, r, g, b) //call die tot vervaagt gewenste kleur
}
if(bytesread == 12) {}
Als (code[0]==0x0A) {}
for (int i = 1; ik < 11; i ++) {}
Serial.Print (code [i], HEX);
msg = msg + code [i];
}
if(Count==0) {}
r = 0;
b = 0;
g = 0;
}
for (int i = 0; ik < 3; i ++) {}
strcpy_P (tags_buffer, (char *) pgm_read_word (&(colorTags_table[i])));
if(msg==tags_buffer) {}
switch(i) {}
Case 0:
r = 255;
breken;
Case 1:
g = 255;
breken;
Case 2:
b = 255;
breken;
}
}
} //end for-lus
} //end code [0] == 0x0A
} //end bytesread == 12
}
displayColor();
Als (millis ()-pt > 1500) {}
Graaf ++;
PT=Millis();
}
} //end als graaf
else {}
Graaf = 0;
}
}
ongeldig getString() {}
aaneengeschakeld gedicht
gedicht = strcpy_P (word1_buffer, (char *) pgm_read_word (&(words1_table[color])));
gedicht = gedicht + strcpy_P (word2_buffer, (char *) pgm_read_word (&(words2_table[randNum2])));
gedicht = gedicht + strcpy_P (word3_buffer, (char *) pgm_read_word (&(words3_table[randNum3])));
gedicht = gedicht + strcpy_P (word4_buffer, (char *) pgm_read_word (&(words4_table[randNum4])));
gedicht = gedicht + "-Lukas";
}
ongeldig getPoem() {}
randNum2 = random(3);
randNum3 = random(5);
randNum4 = random(4);
getString();
Tweet(Poem);
lastColor = kleur;
}
ongeldig displayColor() {}
Als (r == 255 & & g == 0 & & b == 0) {}
kleur = 0;
}
anders als (r == 0 & & g == 255 & & b == 0) {}
kleur = 1;
}
anders als (r == 0 & & g == 0 & & b == 255) {}
kleur = 2;
}
anders als (r == 255 & & g == 0 & & b == 255) {}
kleur = 3;
}
anders als (r == 0 & & g == 255 & & b == 255) {}
kleur = 4;
}
anders als (r == 255 & & g == 255 & & b == 0) {}
kleur = 5;
}
anders als (r == 255 & & g == 255 & & b == 255) {}
kleur = 6;
}
anders als (r == 0 & & g == 0 & & b == 0) {}
kleur = 7;
}
if(Color!=lastColor) {}
getPoem();
BlinkM_fadeToRGB (blinkm_addr, r, g, b);
}
}
VOID tweet (String gedicht) {}
poem.toCharArray (testFN, 80);
Serial.println(Poem);
---voor twitter---
Serial.println ("aansluiten op Twitter..."); afdrukken, gebruikt voor foutopsporing
Serial.println(); Print een lege regel, gebruikt voor foutopsporing
Als (twitter.post(testFN)) {/ / tweet het voltooide datastring van woorden
Serial.Print ("Tweeting--"); afdrukken, gebruikt voor foutopsporing
int status = twitter.wait();
Als (status == 200) {}
Serial.println("successful!");
Serial.println();
}
else {}
Serial.Print ("Tweet is mislukt: code"); foutcode afdrukken
Serial.println(status); foutcode afdrukken
}
}
else {}
Serial.println ("verbinding met Twitter is mislukt."); foutcode afdrukken
delay(500);
Tweet(Poem);
}
digitalWrite (statusPin, laag); Zet de status LED uit
Serial.println("Ready"); afdrukken, gebruikt voor foutopsporing
Serial.println(); Print een lege regel, gebruikt voor foutopsporing
---voor twitter---
}
5. Sluit de voeding en de Ethernet-kabel, en spiegelen van de schakelaar. Het lampje moet komen op, en in een paar seconden, de status van het netwerk LED, ook. De code tweets een "Up en Running" bericht aan u laten weten dat alles OK is. U kunt een USB-kabel aansluiten op de Arduino en luisteren op de seriële poort voor wat het zuiveren.