Twitter dikt Box (7 / 8 steg)
Steg 7: Parallax och Twitter
1. få en token att skicka ett meddelande med OAuth. http://Arduino-tweet.appspot.com
2. om du vill konfigurera nätverksinformationen i koden, starta genom att titta på datorns nätverksinställningar. På Mac, gå till System inställningar/nätverk, sedan klicka på Avancerat och välj fliken TCP/IP.
3. för kodens gratis IP-adress, kan du oftast bara ta din nätverken sättande och öka det sista numret lite. Om din IP-adress var: 192.168.1.2, du kan prova 192.168.2.12
4. Hämta Twitter bibliotek http://www.arduino.cc/playground/Code/TwitterLibrary
5. skapa en ny skiss. Klistra in denna kod. företa nödvändiga ändringar:
#include < Wire.h > #define rxPin 2 byte r = 0, g = 0 b = 0; int count = 0; prog_char röd [PROGMEM] = "[din RFID-taggen nummer]"; PROGMEM const char * colorTags_table [] = { char tags_buffer [12]. NewSoftSerial RFID = NewSoftSerial(rxPin,txPin); booleska ctt = false; ändra två sista byte-det kan vara något ändra det sista numret så ip är unik Twitter twitter ("[din token här]"); Sträng dikt; lång randNum2; Poem prog_char words2_0 [PROGMEM] = "moln"; prog_char words3_0 [PROGMEM] = "lives."; prog_char words4_0 [PROGMEM] = "svin kommer att flyga men män kommer inte.";
#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;
långa pt;
prog_char grön [PROGMEM] = "din RFID-taggen nummer]";
prog_char blå [PROGMEM] = "din RFID-taggen nummer]";
röd, grön, blå};
char testFN [80].
byte [mac] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xFF};
byte ip [] = {10,0,1,29};
int färg = 7.
int lastColor = 7.
lång randNum3;
lång randNum4;
prog_char words1_0 [PROGMEM] = "Röd";
prog_char words1_1 [PROGMEM] = "Grön";
prog_char words1_2 [PROGMEM] = "Blå";
prog_char words1_3 [PROGMEM] = "Magenta";
prog_char words1_4 [PROGMEM] = "Cyan";
prog_char words1_5 [PROGMEM] = "Gult".
prog_char words1_6 [PROGMEM] = "White";
prog_char words2_1 [PROGMEM] = "förseglar";
prog_char words2_2 [PROGMEM] = "skyskrapor";
prog_char words3_1 [PROGMEM] = "flyger.";
prog_char words3_2 [PROGMEM] = "sömn.";
prog_char words3_3 [PROGMEM] = "surround.";
prog_char words3_4 [PROGMEM] = "implodera.";
prog_char words4_1 [PROGMEM] = "De röda ros smashar i glömska.";
prog_char words4_2 [PROGMEM] = "Legender live men hjältar dö.";
prog_char words4_3 [PROGMEM] = "Small talk är stor i språket av liv.";
PROGMEM const char * words1_table [] = {
words1_0,
words1_1,
words1_2,
words1_3,
words1_4,
words1_5,
words1_6};
PROGMEM const char * words2_table [] = {
words2_0,
words2_1,
words2_2
};
PROGMEM const char * words3_table [] = {
words3_0,
words3_1,
words3_2,
words3_3,
words3_4
};
PROGMEM const char * words4_table [] = {
words4_0,
words4_1,
words4_2,
words4_3};
char word1_buffer [8],
char word2_buffer [12];
char word3_buffer [10];
char word4_buffer [44];
///
void setup() {
Serial.BEGIN(9600);
BlinkM_begin();
RFID.begin(9600); / / RFID-läsare SOUT pin ansluten till seriell RX stift på 9600bps
BlinkM_setRGB (blinkm_addr, 0, 0, 0); //call som bleknar till önskad färg
lastColor = 7.
Ethernet.BEGIN (mac, ip); börjar Ethernet-anslutning
Delay(1000);
connectToTwitter();
IF(CTT) {
Serial.println ("starta allt");
}
}
void connectToTwitter() {/ / skriva ut en tom rad, för felsökning
Serial.println ("ansluter till Twitter..."); skriva ut, för felsökning
char testFN1[4]={int(random(1000,2000))};
om (twitter.post(testFN1)) {/ / Twitter att vi är igång
int status = twitter.wait (& följetong); vänta på ett svar från twitter
om (status == 200) {/ / om Twitter svarar 200
Serial.println ("Tweet OK!"); skriva ut framgång / / skriva ut en tom rad, för felsökning
CTT = sant;
} annat {
Serial.Print ("Tweet misslyckades: koden");
Serial.println(status); skriva ut felkoden
connectToTwitter(); skriva ut en tom rad, för felsökning
}
} annat {
Serial.println ("Anslutning misslyckades.");
connectToTwitter();
}
}
void loop() {
BlinkM_setRGB(blinkm_addr,r,g,b);
sendRead();
readTag();
}
void sendRead() {
RFID.flush();
RFID.print("!RW");
RFID.print (0x0F, BYTE);
}
void readTag() {
IF(Count<2) {
byten koden [12].
int bytesread = 0;
Sträng msg;
While(bytesread<12) {/ / Läs 10-siffriga koden
Detta blockerar och bör helst ha en timeout
om (RFID.available()) {
koden [bytesread] = RFID.read();
bytesread ++;
}
annat {
Detta löste problemet
BlinkM_fadeToRGB (blinkm_addr, r, g, b), //call som bleknar till önskad färg
}
IF(bytesread == 12) {
om (code[0]==0x0A) {
för (int jag = 1; jag < 11; i ++) {
Serial.Print (kod [i], HEX).
MSG = msg + kod [i];
}
IF(Count==0) {
r = 0;
b = 0;
g = 0;
}
för (int jag = 0; jag < 3; i ++) {
strcpy_P (tags_buffer, (char *) pgm_read_word (&(colorTags_table[i])));
IF(MSG==tags_buffer) {
Switch(i) {
fall 0:
r = 255;
bryta;
fall 1:
g = 255;
bryta;
fall 2:
b = 255;
bryta;
}
}
} //end for-loop
} //end koden [0] == 0x0A
} //end bytesread == 12
}
displayColor();
om (millis ()-pt > 1500) {
greve ++;
PT=Millis();
}
} //end om greve
annat {
Count = 0;
}
}
void getString() {
sammanfogar dikt
dikten = strcpy_P (word1_buffer, (char *) pgm_read_word (&(words1_table[color])));
dikten = dikt + strcpy_P (word2_buffer, (char *) pgm_read_word (&(words2_table[randNum2])));
dikten = dikt + strcpy_P (word3_buffer, (char *) pgm_read_word (&(words3_table[randNum3])));
dikten = dikt + strcpy_P (word4_buffer, (char *) pgm_read_word (&(words4_table[randNum4])));
dikten = dikt + "-Lukas";
}
void getPoem() {
randNum2 = random(3);
randNum3 = random(5);
randNum4 = random(4);
getString();
Tweet(poem);
lastColor = färg;
}
void displayColor() {
om (r == 255 & & g == 0 & & b == 0) {
färg = 0;
}
annars om (r == 0 & & g == 255 & & b == 0) {
Färg = 1;
}
annars om (r == 0 & & g == 0 & & b == 255) {
färg = 2;
}
annars om (r == 255 & & g == 0 & & b == 255) {
färg = 3;
}
annars om (r == 0 & & g == 255 & & b == 255) {
färg = 4;
}
annars om (r == 255 & & g == 255 & & b == 0) {
färg = 5;
}
annars om (r == 255 & & g == 255 & & b == 255) {
färg = 6;
}
annars om (r == 0 & & g == 0 & & b == 0) {
färg = 7.
}
IF(Color!=lastColor) {
getPoem();
BlinkM_fadeToRGB (blinkm_addr, r, g, b);
}
}
{Ogiltig tweet (sträng dikt)
poem.toCharArray (testFN, 80);
Serial.println(poem);
---för twitter---
Serial.println ("ansluter till Twitter..."); skriva ut, för felsökning
Serial.println(); skriva ut en tom rad, för felsökning
om (twitter.post(testFN)) {/ / tweet den avslutade datastring av ord
Serial.Print ("Tweeting--"); skriva ut, för felsökning
int status = twitter.wait();
om (status == 200) {
Serial.println("successful!");
Serial.println();
}
annat {
Serial.Print ("Tweet misslyckades: koden"); skriva ut felkoden
Serial.println(status); skriva ut felkoden
}
}
annat {
Serial.println ("anslutning till Twitter misslyckades."); skriva ut felkoden
Delay(500);
Tweet(poem);
}
digitalWrite (statusPin, låg); framhäver status-LED
Serial.println("ready"); skriva ut, för felsökning
Serial.println(); skriva ut en tom rad, för felsökning
---för twitter---
}
5. koppla in strömförsörjningen och Ethernet-kabel, och dra i spaken. Power LED bör komma på och i några sekunder, network status-LED, alltför. Koden tweets felmeddelandet "Upp och kör" att du vet allt är OK. Du kan ansluta en USB-kabel till Arduino och lyssna på den seriella porten för vissa felsökning.