Twitter dikt Box (4 / 8 steg)
Steg 4: Seeed och Twitter
1. Klipp ut hål för USB och Ethernet och kanske ett hål för ström-uttaget om du vill driva arduino ditåt.
2. skapa en 2.5 in av 2,5 tum av 2,5 i box av velum med 2,5 in av 5 in botten öppen
3. tejpa vellum till toppen av din box över BlinkM och säkra alla delar
4. data överför den TrueRandom http://code.google.com/p/tinkerit/wiki/TrueRandom,
NewSoftSerial http://arduiniana.org/libraries/newsoftserial/,
och Twitter http://www.arduino.cc/playground/Code/TwitterLibrary bibliotek
5. Ladda upp här koden till din Arduino
#include < TrueRandom.h > #include < SPI.h > #include < avr/pgmspace.h > #include < Wire.h > #include < BlinkM_funcs.h > #include < Client.h > #include < Ethernet.h > #include < Server.h > #include < Udp.h > #include < EthernetDNS.h > #include < Twitter.h > /* Sträng (tidigare TextString) bibliotek av Tom Igoe på-knappen Boolean tryckt = sant; int färg; flyktiga lång reader1 = 0; #define blå 57337134 lång prevTime; långa dec; int r = 0; #define addr 0x09 används för att lagra status för stift (6) lång randNum1; Sträng dataString; definiera den nätverk sättande för Ethernet Shield Detta kan göras upp får detta från inställningar, sedan ändra sista byte att få token: http://arduino-tweet.appspot.com/ prog_char words1_0 [PROGMEM] = "Röd"; prog_char words2_0 [PROGMEM] = "lights"; prog_char words3_0 [PROGMEM] = "sömn."; prog_char words4_0 [PROGMEM] = "Katter är awesome.";
baserat på Kittty Twitty katt leksak v1.0
av Marc de Vinck
Den 6 januari, 2010
KittyTwitty katt leksak projekt finns i göra, volym 22
http://www.Arduino.cc/en/tutorial/TextString
*/
#define pushBtn 6
flyktiga int reader1Count = 0;
#define röd 23773468
#define grön 23805695
int card1;
int card2;
int count = 0;
int g = 0;
int b = 0;
int var;
lång randNum2;
lång randNum3;
lång randNum4;
lång prevtime =-30000;
byte [mac] = {
0x1a, 0x6F, 0x99, 0xCD, 0xFF, 0xFF};
byte ip [] = {
10,0,1,197}.
Twitter twitter("[your_token_here]");
prog_char words1_1 [PROGMEM] = "Grön";
prog_char words1_2 [PROGMEM] = "Blå";
prog_char words1_3 [PROGMEM] = "Gult".
prog_char words1_4 [PROGMEM] = "Lila";
prog_char words1_5 [PROGMEM] = "Cyan";
prog_char words1_6 [PROGMEM] = "White";
prog_char words2_1 [PROGMEM] = "konst";
prog_char words2_2 [PROGMEM] = "gaser";
prog_char words2_3 [PROGMEM] = "cirklar";
prog_char words2_4 [PROGMEM] = "nålar";
prog_char words2_5 [PROGMEM] = "dörrhandtag";
prog_char words2_6 [PROGMEM] = "sirenerna";
prog_char words3_1 [PROGMEM] = "promenad.";
prog_char words3_2 [PROGMEM] = "live.";
prog_char words3_3 [PROGMEM] = "finnas.";
prog_char words3_4 [PROGMEM] = "uppfatta.";
prog_char words3_5 [PROGMEM] = "tror.";
prog_char words3_6 [PROGMEM] = "se.";
prog_char words4_1 [PROGMEM] = "Täcken smak som pepparkakor.";
prog_char words4_2 [PROGMEM] = "Metall är mycket interaktiv.";
prog_char words4_3 [PROGMEM] = "Light är strålning.";
prog_char words4_4 [PROGMEM] = "Ljud är vinden.";
prog_char words4_5 [PROGMEM] = "Klockor gör en bra säng.";
prog_char words4_6 [PROGMEM] = "Glas är ogenomskinlig.";
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, words2_3, words2_4, words2_5, words2_6};
PROGMEM const char * words3_table [] = {
words3_0, words3_1, words3_2, words3_3, words3_4, words3_5, words3_6};
PROGMEM const char * words4_table [] = {
words4_0, words4_1, words4_2, words4_3, words4_4, words4_5, words4_6};
char words1_buffer [7];
char words2_buffer [10];
char words3_buffer [10];
char words4_buffer [30];
void reader1One(void) {
reader1Count ++;
reader1 = reader1 << 1.
reader1 | = 1;
}
void reader1Zero(void) {
reader1Count ++;
reader1 = reader1 << 1.
}
void setup() {
kör den här koden en gång
BlinkM_beginWithPower();
definiera btn som indata så vi kan läsa det
pinMode (pushBtn, ingång);
börjar seriell kommunikation så kan du felsöka lättare
Serial.BEGIN(9600);
DATA0 till stift 2
attachInterrupt (0, reader1Zero, RISING);
Data1 till stift 3
attachInterrupt (1, reader1One, stiger).
för (int jag = 2; jag < 4; i ++) {
pinMode (i, matas);
digitalWrite i, hög. Aktivera inre dra upp orsakar en
digitalWrite (i, låg); Inaktivera inre dra upp orsakar noll och thus ett avbrott
pinMode (i, ingång);
digitalWrite i, hög. Aktivera inre dra upp
}
reader1 = 0;
reader1Count = 0;
börjar Ethernet-anslutningen från den lagrade informationen
Ethernet.BEGIN (mac, ip);
connectToTwitter();
Serial.println("Waiting"); skriva ut, för felsökning
}
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(4000,5000))};
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
} 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() {
kör om och om igen, sluta aldrig
readCard();
displayColor();
Kontrollera status för wire sensor
checkState();
}
void getString() {
sammanfogar dikt
dataString = strcpy_P (words1_buffer, (char *) pgm_read_word (&(words1_table[color])));
dataString = dataString + strcpy_P (words2_buffer, (char *) pgm_read_word (&(words2_table[int(randNum2)])));
dataString = dataString + strcpy_P (words3_buffer, (char *) pgm_read_word (&(words3_table[int(randNum3)])));
dataString = dataString + strcpy_P (words4_buffer, (char *) pgm_read_word (&(words4_table[int(randNum4)])));
dataString = dataString + "-1000000000";
}
void tweet() {
funktionen tweet, detta kallas om status = 1
char filnamn [88].
dataString.toCharArray (filnamn, 88).
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(filename)) {
Tweet den avslutade datastring av ord
Serial.Print ("Tweeting--"); skriva ut, för felsökning
Serial.println(dataString); skriva ut, för felsökning
Serial.Print ("--Status:"); 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
}
}
void readCard() {
IF(Count<2) {
om (reader1Count > = 26) {
int serialNumber = (reader1 >> 1) & 0x3fff;
int siteCode = (reader1 >> 17) & 0x3ff;
dec = (reader1 & 0xfffffff);
IF(Count==0) {
r = 0;
b = 0;
g = 0;
}
Serial.Print("dec=");
Serial.println(DEC);
Switch(DEC) {
fall röd:
r = 255;
bryta;
pärlemor grön
g = 255;
bryta;
fall blå:
b = 255;
bryta;
standard:
färg = 0;
Serial.Print ("nya tag");
Serial.Print(reader1& 0xFFFFFFF);
}
reader1 = 0;
reader1Count = 0;
tryckt = false;
} annat if(reader1Count == 0) {
}
om (millis ()-prevTime > 2000) {
greve ++;
prevTime=millis();
}
} annat {
Count = 0;
}
} //readCard()
void checkState() {/ / kontrollera status för wire funktion
IF(!printed) {
doStuff();
tryckt = sant;
}
}
void displayColor() {
om (r == 255 & & g == 0 & & b == 0) {
färg = 0;
} else om (r == 0 & & g == 255 & & b == 0) {
Färg = 1;
} else om (r == 0 & & g == 0 & & b == 255) {
färg = 2;
} else om (r == 255 & & g == 255 & & b == 0) {
färg = 3;
} else om (r == 255 & & g == 0 & & b == 255) {
färg = 4;
} else om (r == 0 & & g == 255 & & b == 255) {
färg = 5;
} else om (r == 255 & & g == 255 & & b == 255) {
färg = 6;
}
BlinkM_fadeToRGB(addr,r,g,b);
}
void doStuff() {
randNum2 = random(7);
randNum3 = random(7);
randNum4 = random(7);
getString();
Tweet();
}
5. Anslut din Arduino till ethernet
6. test.