Gör en lätt knappen Tweet den hård väg (4 / 6 steg)

Steg 4: Arbetsflöde och kodmoduler



Main.c modulen innehåller arbetsflödet för projektet (se bilden). Efter initieringen microcontroller styrelsen skickas en begäran till nätverket DHCP-servern att få en IP-adress och nätverksinställningarna. Därefter skickas en begäran till en Simple Network Time Protocol server att få aktuell tid och datum. Koden kommer då in en loop som väntar på dig att bläddra till IP-adressen och ange Oauth parametrar. När parametern är inställd koden väntar den lätt knapp vara intryckt och sedan Tweets ett slumpmässigt meddelande från urvalet som tillhandahålls.

Den binära filen ligger för närvarande på strax under 35K i storlek. Koden är för närvarande inte optimerad så det borde vara möjligt att få binärfilen under 32K med lite arbete; Det beror naturligtvis på plattformen och kompilatorn.

Följande ger en översikt över källan kodmoduler för projektet. Tidsbegränsningen innebär koden inte är också kommenterade som jag brukar men förhoppningsvis med dokumentationen i detta instructable modulerna bör vara ganska lätt att följa.

Gemensamma
Dictionary.c

  • en användbar hjälpklass som styr en sorterad länkad lista över namn/värde-par.

Kryptering
SHA1.c
hmacsha1.c

  • För att skapa en hash av OAuth begäran och sedan krypterar den med konsumenten hemlighet och tillgång Token hemlighet.
  • Jag kan inte ta äran för dessa moduler; de kommer i stort sett oförändrat från AVR Crypto biblioteket (http://www.das-labor.org/wiki/Crypto-avr-lib).

base64.c

  • Base64 kodar och avkodar.

Förare
easybutton.c

  • Drivrutin för den modifierade Staples lätt knappen.

nokia5110.c

  • Nokia 5100 grafisk LCD-chaufför (SPI).

wiznet5100.c

  • WIZnet W5110 nätverksmodul drivrutin (SPI).

Protokoll
Transport
UDP.c
TCP.c

  • Modulen WIZnet hand tar om dessa två transport layer-protokoll så tekniskt dessa faller också under drivrutinsmoduler men de har skilts för tydlighetens skull.

Ansökan
http.c
formdata.c

  • HTTP-klient metoder för att göra GET och POST-begäran till en webbserver.
  • HTTP-servermetoder för att acceptera inkommande GET och POST samtal.

DHCP.c

  • Få en IP-adress, nätmask, gateway och DNS-server IP från nätverket DHCP-servern.

DNS.c

  • Matcha en viss URL en motsvarande IP-adress.

SNTP.c

  • OAuth kräver en korrekt tidsstämpel; Denna modul begär aktuell tid från en Simple Network Time Protocol server.

Webbserver
webserver.c

  • En avlyssnare för HTTP GET och POST-begäranden.
  • Kan ange OAuth konsumenten nyckel, konsumenten hemlighet, tillgång Token och tillgång Token hemlighet.

Twitter
Twitter.c

  • Genomförandet av Twitter API (för närvarande endast statusuppdatering används).
  • De flesta av grovjobbet hanteras av modulen OAuth.

OAuth.c

  • Core modulen av ramen för Twitter.
  • Generera en unik identifierare för begäran (nonce).
  • Generera tidsstämpeln för begäran.
  • Generera signaturen för OAuth begäran.
  • Beräkna en hash av signatur bas (SHA1).
  • Underteckna hash-värdet med hjälp av konsumenten hemlighet och tillgång Token hemlighet (HMAC-SHA1).
  • Skicka en undertecknad begäran till webbservern (HTTP GET eller POST).
Se Steg
Relaterade Ämnen

Partikel Core - Internet-knappen

I denna tutorial kommer jag för att visa dig hur du kommer igång med knappen partikel core internet internet-knappen är en partikel core sköld, som har -12 RGB lysdioder6 axlig accelerometerTryck-knapparTemperatursensorSummernDetta är en bra sköld at...

Att göra en dator Tweet när Internet har öppnat

i detta Instructable jag kommer att berätta hur man gör datorn tweet du när det framgångsrikt har loggat in och öppnade på internet. Detta skulle vara användbart eftersom det låter dig gå därifrån och inte behöva kontrollera om din dator är redo.Prog...

VHDL spel: LED - knappen Push spelet Instructable

Välkommen! Detta är en instructable att skapa en enkel VHDL spel med hjälp av lysdioder och knappar som vi kallade PushPace. Innan vi fortsätter, är här bakgrunden och inspirationen bakom spelet.Bakgrund Om du växte upp i 90-tal, är vi ganska säker p...

Knappen toppar (Mini Yo-Yos)

detta är egentligen en yopyo, dess mer som en boll på snöre, men du kan stil göra roliga tricks med den.Jag fick idén när jag kom över en riktigt bra Instructable om mini-yoyos, unfortientely, det var bara en slidshow så uppfann jag bara min på typ....

Om fastställande av en alltför ivrig DVD Drive Eject-knappen

jag älskar min nya Lenovo T530 Thinkpad Laptop förutom en sak, när jag ta tag i det på sidan och pensla på DVD Eject-knappen med mina fingrar, på dörren dyker öppen! Det är alldeles för känslig! Jag hittade en massa programvarulösningar som inaktiver...

DIY hals värmare (knappen Tricks!)

Halsen värmare är en av de saker jag inte kan leva utan under vintrarna! Det är lustigt hur jag har aldrig provat att sy en hals varmare tills nu, verkligen, instructables är inspirerande mig att göra saker varje dag! Jag gjorde 4 hals värmare med 4...

Enkel mjuk krets knappen

Någonsin ville ha en tålig och pålitlig mjuk krets knapp? Med bara en liten bit av ledande tråd, kan två bitar av tyg och några vadd du göra din egen.Det material du behöver:1/8 gården av icke-ledande tyg1/16 gården av oledande vadd36" av ledande trå...

Knappen halsband och armband

enkla halsband och armband med knappen.Steg 1: leverera 1. knappar - jag väljer pastell färg och transparent knappen2. lås och hoppa ring3. sträng för halsband - jag använder pu läder snöre. Kan också använda nylon snöre4. sträng för bracelete - elas...

DIY Vintage knappen halsband

Vintage tema hantverk inspirerar alltid mig. Att göra en vintage knappen halsband har varit på min "att-göra" lista länge men på grund av vintage knappar jag kunde aldrig göra en. Slutligen förra månaden började jag min egen "Vintage knappe...

Få den RBG LED krets från glödande isbitar

du kanske har sett dessa glödande isbitar innan. De lyser alla olika färger och har många lägen men de är ganska dyra ($4-$6 varje) och bara pågå i några timmar. Jag kommer att visa dig hur man extraherar kretsen och driva det med en annan källa.Dett...

Power-knappen halsband

jag först såg en power knappen halsband postat på Pinterest, det kallades ett iNecklace som finns på Adafruit, den är tillverkad av CNC frästa aluminium och ljuset försiktigt pulser. Men med en prislapp på $75 jag valde för att försöka göra en själv....

Netflix knappen! Arduino IR styra Xbox 360

Detta är en Arduino som skickar IR-signaler till vända på Netflix genom att trycka på en knapp. Det är ett bra exempel på att använda IR kontroll en TV, stereo, Xbox 360 eller något! Detta går också in i djupet om att använda RAW IR-koder, som använd...

Ultra Awesome LaptopGamers knappen!

Någonsin behövs en snabb källa av ljus? Väl är här svaret på dina böner!THELAPTOPGAMERS TEMA LJUS KNAPP!!!Slap bara knappen, och omedelbart din värld kommer att vara full av starkt ljus!Steg 1: Steg 1: skapa en bas Först öppna SolidWorks och skapa en...

Paracord armband med Monkey Fist knappen

jag såg paracord armband av Stormdrane ett par månader sedan, och var tvungen att göra vissa; en natt, medan insomniacking, jag blev inspirerad och hade en uppenbarelse: Varför inte göra ett paracord armband, med ett Monkey fist och loop som en nedlä...

Gongbutton: Stora knappen att styra din gonggongar

På Stripe kontoret finns det en tradition av ringer en gong vid måltiderna. När vi växte, byggde jag ett kluster av nätverksanslutna robotic gonggongar att hålla traditionen vid liv i hela kontoret (se instructable för Gongbot). Gongbutton sitter i k...

PANIK-knappen

Ok, lite förklaring först. Vi har en dator som en demokratisk jukebox på Hackspace Manchester. Tanken är att vem som helst kan sätta musik på det, och det spelar hela biblioteket på shuffle under vår hacka sessioner för lite bakgrundsmusik.Problemet...

Mjuka krets knappen Växla

jag har gjort och postat några mjuka krets projekt men jag har ofta funnit det svårt att få några av de komponenter som behövs eftersom det finns inga butiker (som jag känner till) i närheten och frakt till Kanada kan vara alltför dyrt. Så försöker j...

STICKA DEN | Ett interaktivt sätt att göra musik.

Titta på videon för att se den i aktion! Du kan se jag använde en anläggning för att göra olika toner, och även ett glas vatten för att göra nya ljud!Steg 1: Sticka den | Ett interaktivt sätt att göra musik.Första arduino projekt för ett skolprojekt...

Den fantastiska flygun tazer

#DISCLAIMER #ANVÄND INTE DETTA PÅ NÅGON MED PACEMAKER INKLUSIVE DIG SJÄLV. ÅTAR INTE DETTA PROJEKT OM SÅNT HÄR ÄR OLAGLIGT I DITT LAND ELLER DU ÄR ETT BARN OCH DU INTE HAR DIN FÖRÄLDRAR TILLÅTELSE. GÅ INTE RUNT ZAPPA FRÄMLINGAR MED DETTA EFTERSOM DE...