Förslutbara mat skålen med Twitter anmälan (4 / 5 steg)
Steg 4: Koden
Gå nu till din Arduino skiss och klistra in denna kod, se till att ändra din IP-adress på koden från min, tillsammans med något annat som är specifik för datorn.
Ovanstående är twitter som anmäldes om min katt äta
Dessa tutorials hjälpa oerhört och jag rekommenderar starkt att läsa och studera dem.
http://tronixstuff.com/2013/12/04/Arduino-tutorial...
http://tronixstuff.com/2013/12/06/Arduino-tutorial...
(för att få din twitter token) https://dev.twitter.com/docs/auth/tokens-devtwittercom
och nu för koden:
#include < spi.h >< br > #include < ethernet.h >
#include < twitter.h >
#include < softwareserial.h >
SoftwareSerial RFID(2, 3); RX- och TX
byte [mac] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; skapa MAC-adress för Ethernet-shield
byte ip [] = {192,168,1,144}. Välj din egen IP för Ethernet-shield
Twitter twitter("2602202863-kZu53ICKT3Cx9VjgnG4R5O6XnHB0inzUTLFhOph"); ersätta min token med din token
char * säger [] = {"Dags för mat.", "Jag har ett mellanmål", "Jag är på min bowl", "vad är det? Mat tid! ","Lunch låter bra","Äta","Cooooool","Jag äter","Le Feeeding tid","Om nom nom","Le Noms","Tid för utfodring","Mat tid!","Mat!","Tid till Pig Out"}; < /softwareserial.h >< /twitter.h >< /ethernet.h >< /spi.h >< /p >< p > int data1 = 0;
int ok = -1;
int ja = 13.
int inga = 12. < /p >< p > / / Använd första skiss i < en href = "http://wp.me/p3LK05-3Gk" rel = "nofollow" > http://wp.me/p3LK05-3Gk < /a > att få din tagg nummer
int tag1 [14] = {2,48,51,48,48,52,70,52,70,50,50,50,49,3}.
int tag2 [14] = {2,52,48,48,48,56,54,67,54,54,66,54,66,3}.
int newtag [14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0}; används för Läs jämförelser < /p >< p > void setup()
{
RFID.begin(9600); Starta följetong till RFID-läsare
Serial.BEGIN(9600); Starta följetong till PC
pinMode (Ja, produktionen); för status lysdioder
pinMode (nej, produktionen);
Delay(5000);
Ethernet.BEGIN (mac, ip);
Serial.BEGIN(9600);
} < /p >< p > boolean comparetag (int aa [14], int bb[14])
{
booleska ff = false;
int fg = 0;
för (int cc = 0; cc < 14; cc ++)
{
om (aa [cc] == bb[cc])
{
FG ++;
}
}
om (fg == 14)
{
FF = sant;
}
returnera ff;
} < /p >< p > void checkmytags() / / jämför varje tagg mot etiketten bara läsa
{
OK = 0; Denna variabel hjälper beslutsfattande,
om det är 1 vi har en match, är zero en läsa men ingen match,
-1 är ingen Läs försöket
om (comparetag (newtag, tag1) == true)
{
OK ++;
}
om (comparetag (newtag, tag2) == true)
{
OK ++;
}
} < /p >< p > void tweet (char msg[])
{
Serial.println ("ansluta...");
om (twitter.post(msg))
{
Ange & Serial output fick svar på följetong.
Om ingen utgång krävs, kan du bara utesluta argumentet, t.ex.
int status = twitter.wait();
int status = twitter.wait();
om (status == 200)
{
Serial.println("OK.");
}
annat
{
Serial.Print ("misslyckades: koden");
Serial.println(status);
}
}
annat
{
Serial.println ("Anslutning misslyckades.");
}
}
< /p >< p > void readTags()
{
OK = -1; < /p >< p > om (RFID.available() > 0)
{
Läs etiketten nummer
Delay(100); behövs för att ge tid för data att komma från den seriella buffert. < /p >< p > för (int z = 0, z < 14, z ++) / / Läs resten av etiketten
{
Data1 = RFID.read();
newtag [z] = data1;
}
RFID.flush(); stoppar flera läsningar < /p >< p > / / matchar taggarna?
checkmytags();
}
nu göra något utifrån taggtyp
om (ok > 0) / / om vi hade en match
{
Serial.println("Accepted");
digitalWrite(yes, HIGH);
Delay(1000);
digitalWrite (Ja, låg);
lång randNumber = random(15);
Tweet(saying[randNumber]);
Delay(10000);
OK = -1;
}
annars om (ok == 0) / / om vi inte hade en match
{
Serial.println("Rejected");
digitalWrite(no, HIGH);
Delay(1000);
digitalWrite(no, LOW); < /p >< p > ok = -1;
}
}
void loop()
{
readTags();
}