Kod verkställighet (3 / 8 steg)

Steg 3: Firmware

Denna firmware kommer att läsa inkommande twitter data så att om du tweet "feed me!" från användarnamn omnomnom arduino tänds upp två lampor kopplade till stift 2 och 3 i 1 sekund, orsakar mat leverans sekvensen att starta. Jag använder Arduino 1.0 för detta projekt, jag rekommenderar att ladda ner denna version (eller senare) för detta projekt. Om du inte vill använda den nya versionen, kontrollera att du har följande Arduino bibliotek (de är kombinerade med v1.0): - Ethernet (för Ethernet Shield) - EthernetDHCP (för självkonfigurerande IP-adressen är du använder DHCP hemma) slå på strömbrytaren på botten av mataren, LCD bör flash 12:00 och motorerna ska köras igenom sekvensen mat leverans en gång. Se manualen om du vill ställa in klockan eller ange ytterligare mat timers, detta kommer inte att vara nödvändigt för projektet. Tryck på rec-knappen och spela in ett personligt meddelande för ditt husdjur, detta kommer att spela i slutet av varje mat leverans sekvens. Här är Firmware:

/ * < Br > Ryckningen klienten med strängar

Denna skiss ansluter till Twitter med hjälp av en Ethernet shield. Analyserar det XML
återvänt, och ser för detta är en tweet

Du kan använda Arduino Ethernet shield eller Adafruit Ethernet shield,
antingen en fungerar, så länge som den har fått en Wiznet Ethernet modul ombord.

I detta exempel används DHCP-rutiner i Ethernet-biblioteket som är en del av den
Arduino kärna från version 1.0 beta 1

I detta exempel används strängen biblioteket, som är en del av Arduino kärnan från
version 0019.

Krets:
* Ethernet shield bifogas stift 10, 11, 12, 13

skapad 21 maj 2011
av Tom Igoe
ändrat av Amanda Ghassaei juni 2012

Denna kod är i public domain.

*/
#include
#include < p > //variable att förhindra övergödning
booleska justFed = 1; < /p >< p > / / Ange MAC-adress och IP-adressen för din controller nedan.
IP-adressen kommer att bero på ditt lokala nätverk:
byte [mac] = {
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x01};
IP-adress ip(190,298,34,132); <<< Ange din IP-adress här!!! < /p >< p > / / initiera bibliotek instans:
EthernetClient klient; < /p >< p > const int requestInterval = 60000; fördröjning mellan begäranden = 1min < /p >< p > char servernamn [] = "api.twitter.com"; Twitter URL < /p >< p > boolean efterfrågades; Om du har gjort en begäran sedan ansluter
lång lastAttemptTime = 0; förra gången du ansluten till servern, i millisekunder < /p >< p > String currentLine = ""; sträng till texten från servern
Sträng tweet = ""; sträng att hålla tweet
booleska readingTweet = false; Om du läser för närvarande tweet < /p >< p > void setup() {

pinMode (2, utgång);
pinMode (3, OUTPUT);

boka plats för strängarna:
currentLine.reserve(256);
Tweet.Reserve(150); < /p >< p > / / initiera följetong:
Serial.BEGIN(9600);
försök en DHCP-anslutning:
IF (!. Ethernet.BEGIN(Mac)) {
om DHCP misslyckas, börja med en hårdkodad adress:
Ethernet.BEGIN (mac, ip);
}
ansluta till Twitter:
connectToServer();

Testing();
} < /p >< p > void loop()
{
om (justFed) {
om (client.connected()) {
om (client.available()) {
Läs inkommande byte:
char inChar = client.read(); < /p >< p > / / Lägg till inkommande byte till slutet av raden:
currentLine += inChar;

Om du får en ny rad, avmarkera raden:
om (inChar == "\n") {
currentLine = "";
}
om den aktuella raden slutar med, kommer det att
följas av tweet:
om (currentLine.endsWith("")) {
tweet börjar. Rensa tweet strängen:
readingTweet = sant;
Tweet = "";
}
Om du läser för närvarande byten i en tweet,
lägga till dem i tweet sträng:
om (readingTweet) {
om (inChar! = ' <') {
Tweet += inChar;
}
annat {
Om du fick en "<" karaktär,
du har kommit till slutet av tweet:
readingTweet = false;
Serial.println(tweet);

om (tweet == "> mata mig!") {
digitalWrite (2, hög).
digitalWrite (3, hög).
Serial.println ("LED på!");
fördröjning (1000); //turn på för 1 SEK
digitalWrite (2, låg).
digitalWrite (3, låg).
justFed = 0;
}
om (tweet! = "> mata mig!") {
digitalWrite (2, låg).
digitalWrite (3, låg).
Serial.println ("LED OFF!");
}

stänga anslutningen till servern:
client.stop();
}
}
}
}
annars om (millis() - lastAttemptTime > requestInterval) {
Om du inte är ansluten, och två minuter har gått sedan
din sista anslutning, sedan försök att ansluta igen:
connectToServer();
}
}
annars om (millis() - lastAttemptTime > 14400000) {//if fyra timmar har gått sedan senaste utfodring
justFed = 1;
}
} < /p >< p > void testing() {
digitalWrite (2, hög).
digitalWrite (3, hög).
Delay(1000);
digitalWrite (2, låg).
digitalWrite (3, låg).

} < /p >< p > void connectToServer() {
försök att ansluta, och vänta en millisekund:
Serial.println ("ansluter till server...");
om (client.connect (servernamn, 80)) {
Serial.println ("att göra HTTP-begäran...");
göra HTTP GET begära Twitter:
client.println ("GET /1/statuses/user_timeline.xml?screen_name=nomnomnomfeeder & count = 1 HTTP/1.1");
client.println ("HOST: api.twitter.com");
client.println();
}
Obs tiden för detta Anslut försök:
lastAttemptTime = millis();
}
< /p >< p > du kommer att behöva göra en två redigeringar före denna firmware är redo att använda. < /p >< p > 1. Infoga din IP-adress på raden överst i firmware:
IP-adress ip(190,298,34,132); << Ange din IP-adress här!!!
Om du inte vet din IP-adress öppna filen >> exempel >> Ethernet >> DhcpAddressPrinter, ladda upp här koden till din arduino med Ethernet-shield inkopplad (och ethernet-kabel ansluten) och öppna seriell övervaka Tools >> SerialMonitor < /p >< p > 2. Ändra användarnamnet för ditt twitterkonto på raden (från funktionen connectToServer():
client.println ("GET /1/statuses/user_timeline.xml?screen_name=nomnomnomfeeder & count = 1 HTTP/1.1"); < /p >< p > uppladdning firmware på din arduino ombord, koppla in Ethernet-modem/router. Tweet "feed me!" från din twitter-konto och du bör se din sällskapsdjur mataren avstå från mat i en minut eller mindre. Mataren kommer inte få någon ytterligare tweets i fyra timmar (för att förhindra över utfodring), under denna tid, tweet ett annat budskap att ersätta "feed me!" ditt senaste meddelande. < /p >

Se Steg
Relaterade Ämnen

Testa din radar detektor eller laser jammer med denna trafik verkställighet LIDAR pistolen simulator

denna LIDAR pistolen simulator efterliknar elva olika trafik verkställighet vapen LIDAR. Varje LidarGun fungerar på 904nM våglängd med kort puls skurar, vissa vapen fungerar 100 pulser per sekund, några kanoner på 238 pulser per sekund, etc. Laser At...

Parasitiska vindkraftverk

detta byggdes som en lärka, en nyckfull försök att återta en del av hundratals dollar jag spenderar på luftkonditionering varje år. Det är ett vindkraftverk som drivs av kompressor fläkten på min luftkonditionering enhet.Men det är en vägbara förestä...

13 FOT HÖG AT-AT "FLYTA" FÖR JULPARAD.

we built an at-at for our chistmas parade, snowspeeder and xwing. Det var ganska söt. Detta är en Visa och berätta om hur vi gjorde det på-på. Detta projekt kostar mindre än $100.Du behöver:Släpvagn monteras12 2 x 4skruvarnasvart plasthäftpistol och...

OpenTrashCan: En Smart Internet ansluten papperskorg som talar

OpenTrashCan ansluter till ditt wifi-nätverk och skickar du ett mail när dess fullt, talar till dig, och kan även styras från OpenTrashCan App för Android-telefoner. Se den i aktion här:Vill köpa en? Registrera dig för preorder listan här: OpenTrashC...

Aquaponic balkong GARDEN

Aquaponic balkong trädgårdSakernas Internet (Internet of Things) kapabel om du är intresserad av denna aspekt av kretsloppsodling.DIY-projekt--köpa material lokalt och bygga--genom rik kretzingerMed alla intresse runt om i världen i kretsloppsodling...

Kul med PIC församling - episod 6

Då och då jag börjar med avsikt att göra något konkret och sedan få helt distraherad av annat. OK, så det händer en hel del. Den goda nyheten är att det har ingenting att göra med min framryckande ålder. Som jag brukar säga "Jag var ADD innan ADD var...

Förstå ICSP för PIC mikrokontroller

programmera mikrokontroller är inte svårt. Bygga en programmerare gör en bra första elektronik projekt. Målet med detta instructable är att förklara enkla 'i krets Seriell programmering' metod används med mikrochip bilder.Steg 1: Varför ICSP? Program...

Super Awesomeness och Super hjälte Justiceness

Hälsningar jordbor! Här kommer jag visa dig hur man bygger en super awesome arkad maskin med mestadels återvunna delar!Här är några av inslagen i denna arkad super awesomeness:Över 2000 klassiker, 9 emulatorer, 4 USB-portar för styrenheter, Bluetooth...

Gmail Buddy - smartare e-postmeddelanden

Vad är Gmail kompis?Det är en kamrat enhet som aldrig kan du missa någon viktig email. Det kontrollerar din inkorg (varje 15 sekunder) för ny e-post och meddelar dig med en söt glöd (röd färg). När du har kontrollerat du ny e-post, ljuset går automat...

Slutligen, jag är känns igen

detta Instructable är för en "osynlighet suit" (eller vad vi i konst-making biz kan kalla en metaforisk objekt) sliten i hopp om att hitta en balans mellan vårt privatliv och vårt skydd. Det imiterar tekniska lösningar till att bevara privatlive...

Arduino och 7 segment LED display dekoder

i detta instructable kommer jag att förklara hur man ansluta 7 segment display, dekoder och arduino. IT´s ganska lätt. Vid första har vi att lära sig om dekoder. I´m med BCD till 7 segment dekoder. Min är D147D, detta är gamla chip, men de nyare är l...

Praktiker Guide för Arduino som utförs på OIT

resurserAdafruit ARDX - v1.3 experimenterande Kit för ArduinoPraktiker Guide för Arduino (PDF)Bröd styrelsen layouter (PDF)Arduino Tutorial Bundle (Instructable)Denna Arduino handledning kommer att vara mycket liknar Arduino Tutorial bunt Instructabl...

Hur man gör en Arduino Ultra ljud bil parkering Sensor

Så detta projekt är ganska mycket exakt som anges i titeln, en parkering sensor. Vad var min inspiration för detta projekt? Det är en bra fråga, som sanningen att säga det ingen fanns. Jag var fumla runt med Ultra ljud ombord och se om jag kunde anvä...

Counter Strike spel spelare Assault Hoodie

Japp, görs denna xmas gåva för den samma ungen med TARDIS bokhylla och Halo M5AB gevär prop. Verkar hans senaste intresse är datorspelet Counter Strike och alltid ber om att få några ånga saker att göra i app inköp. Hur som helst, inspirerade från de...

El Wire och läder halsband

Jag älskar electroluminescent wire (el wire), och jag tror det är en mycket missförstådd material. Det blir ofta en dålig rap i wearable tech world eftersom det kan vara kinkig att arbeta med och kan se rörigt om inte placeras exakt. Men när den anvä...

Hur man gör en registreringsskylt hållare för motorcykel (från skrot)

jag hade en bra idé för en motorcykel registreringsskylt hållare, men jag ville också få min cykel på vägen innan jag hade tid måste göra vad jag hade i mitt huvud. Så, jag behövde en tillfällig lösning. Att vara tillfällig, jag egentligen vill inte...

Bygga en högtalare du vill piffa upp de gamla datorhögtalarna

Ok så först ut, ja det tog lite längre tid då jag trodde det skulle.För det andra, detta är min första instructable, det visade sig vara ganska kul.För Box utmaningen att göra något coolt från holiday lådor som du råkar ha liggandes, hade jag en idé...

Hur man gör en låda ugn sol termisk spis

många utvecklingsländer runt om i världen använder trä som sin främsta energikälla. Konkret använder över 3 miljarder människor trä som en resurs att laga mat till sina familjer. Men trä rök i deras hus inte bara förstör miljön på grund av över besko...

Armborst med trä stock och rotting bow

för ett tag sedan jag sökte kompatibel "för armborst och hittade främst K'nex thingys och sånt bygga alltför dåligt för att vara riktigt användbart för tagetshooting. (jag är verkligen ledsen om du gjort en som har inte passar här, behaga låta mig ve...