Een eenvoudige knop Tweet de harde manier maken (4 / 6 stap)

Stap 4: Workflow en codemodules


De main.c-module bevat de workflow voor het project (zie afbeelding). Na het initialiseren van de microcontroller-board wordt een aanvraag verzonden naar het netwerk DHCP-server om een IP-adres en de netwerkinstellingen. Vervolgens wordt een aanvraag verzonden naar een server Simple Network Time Protocol om de huidige tijd en datum. Vervolgens verschijnt de code een lus wacht op u om te bladeren naar het IP-adres en de Oauth parameters instellen. Zodra de parameters zo zijn ingesteld dat de code wacht op de Easy Button ingedrukt worden en dan Tweets een willekeurige bericht uit de selectie geboden.

Het binaire bestand staat momenteel op amper 35K in grootte. De code is niet momenteel geoptimaliseerd dus het moet mogelijk zijn om het binaire bestand onder 32K met een beetje werken; natuurlijk dat hangt af van het platform en de compiler.

Het volgende geeft een overzicht van de bron codemodules voor het project. Beperkte tijd betekent dat de code is niet zo goed gereageerd zoals ik meestal maar hopelijk met de documentatie in dit instructable de modules vrij makkelijk zitten moeten te volgen.

Gemeenschappelijk
Dictionary.c

  • een handig helper-klasse waarmee een gesorteerde gekoppelde lijst van naam/waarde-paren.

Codering
SHA1.c
hmacsha1.c

  • Gebruikt om een hash van het OAuth-verzoek te maken en vervolgens coderen met het geheim van de consument en Access Token Secret.
  • Ik kan geen krediet nemen voor deze modules; ze komen grotendeels ongewijzigd uit de AVR Crypto Library (http://www.das-labor.org/wiki/Crypto-avr-lib).

base64.c

  • Base64 coderen en decoderen.

Stuurprogramma 's
easybutton.c

  • Stuurprogramma's voor de gewijzigde Staples Easy Button.

nokia5110.c

  • Nokia 5100 grafisch LCD stuurprogramma (SPI).

wiznet5100.c

  • WIZnet W5110 netwerk Module stuurprogramma (SPI).

Protocollen
Vervoer
UDP.c
TCP.c

  • De WIZnet module ervoor zorgt dat deze twee transportprotocollen laag dus technisch gezien deze vallen ook onder de stuurprogramma-modules, maar ze zijn gescheiden uit voor de duidelijkheid.

Toepassing
http.c
formdata.c

  • HTTP client-methoden voor het maken van GET en POST-aanvragen naar een webserver.
  • HTTP server-methoden voor het accepteren van binnenkomende oproepen voor GET en POST.

DHCP.c

  • Krijg een IP-adres, het subnetmasker, de gateway en de DNS server IP van de DHCP-server van het netwerk.

DNS.c

  • Een bepaalde URL omzetten in een corresponderend IP-adres.

SNTP.c

  • OAuth vraagt een nauwkeurige timestamp; in deze module wordt de huidige tijd aanvraagt in een Simple Network Time Protocol-server.

Webserver
webserver.c

  • Een listener voor HTTP GET en POST vraagt.
  • Zorgt voor het instellen van de OAuth consument sleutel, Consumer Secret, Access Token en Access Token Secret.

Twitter
Twitter.c

  • Uitvoering van de Twitter API (momenteel alleen statusupdate wordt gebruikt).
  • De meeste van het zware werk wordt afgehandeld door de OAuth-module.

OAuth.c

  • De kern-module van de Twitter-kader.
  • Een unieke id voor de aanvraag (nonce) wordt gegenereerd.
  • Het genereren van de tijdstempel voor de aanvraag.
  • De basis voor de aanvraag OAuth handtekening te genereren.
  • Berekent een hash van de handtekening base (SHA1).
  • Meld u de hash met behulp van de consument Secret en Access Token Secret (HMAC-SHA1).
  • Verzenden de ondertekende aanvraag naar de webserver (HTTP GET of POST).

Gerelateerde Artikelen

Controle van een SaikoLED myki (of Arduino Leonardo) met een eenvoudige knop doos--met behulp van de header ICSP

Controle van een SaikoLED myki (of Arduino Leonardo) met een eenvoudige knop doos--met behulp van de header ICSP

Welkom! Vandaag gaan we uitleggen hoe het bouwen van een controller met 3 knopen die rechtstreeks verbinding met een Arduino Leonardo-compatibele board--in dit geval de myki licht van SaikoLED maakt. Meer informatie over het Leonardo is beschikbaar h
Maken van een eenvoudige knop Wireless

Maken van een eenvoudige knop Wireless

Ah, de alomtegenwoordige Staples "Easy Button."  Er zijn andere grote-dome-knoppen, maar de nietjes knop heeft het onderscheid van het niet nodig een panel te worden gemonteerd.  Het heeft gewoon een mooie platte voet.  Dus waarom niet vrij het
Hoe te maken van een eenvoudige knex Zie zag

Hoe te maken van een eenvoudige knex Zie zag

Hey dit is mijn eerste instructable dus wees niet te hard... Hoe dan ook, gewoon een eenvoudige Zie zag voor u te maken uit knex. Hebt u manieren die ik zou kunnen verbeteren mijn instructables, gewoon commentaar! Geniet van!Opmerking: Ik kan niet mi
Eenvoudige knop muzikale Interface

Eenvoudige knop muzikale Interface

dit project wijzigt een $5 nietje van Easy Button en een goedkope USB-toetsenbord, zodat ze kunnen worden gebruikt als een input device voor live muzikale optredens (of iets anders dat een knop of een voetschakelaar vereist). Het alllows goedkoop kno
Hoe maak je een eenvoudige PC game controller test programma

Hoe maak je een eenvoudige PC game controller test programma

In dit instructable, ik zal u tonen hoe te maken van een eenvoudig programma waarmee u de knoppen op uw spelbesturing PC testen zodat u weet dat ze nog steeds werken, of dat ze vervangen moeten worden.Ik moet je waarschuwen, dat dit instructable erg
Hoe maak je een eenvoudige luchtdrukgeweren

Hoe maak je een eenvoudige luchtdrukgeweren

Vandaag ga ik om een eenvoudige lucht pistool die iedereen kan makenStap 1: De mountIk gooide samen een bos van schroot hout had ik tot rondStap 2: ValveDit is een 1 inch schroefdraad om uit te lijnen in Kogelkranen met 1 inch PVC, vervolgens 1 inch
Maak een eenvoudige elektronisch slot met RFID met behulp van een RC522

Maak een eenvoudige elektronisch slot met RFID met behulp van een RC522

Dit is een eenvoudige stapsgewijze instructies over hoe te maken van een sluis instelbaar met behulp van RFID-tags. Ik Toon een paar eenvoudige vergrendeling mechanismen, en ook hoe te downloaden en instellen van de module RC522 RFID lezer. Alle info
Een eenvoudig protocol voor het maken van ijzer (II, III) oxide (magnesiet)

Een eenvoudig protocol voor het maken van ijzer (II, III) oxide (magnesiet)

Hallo.In mijn eerste Instructable, 'm I gonna beschrijven de synthese van ijzer (II, III) oxide (magnesiet).Ijzer (II, III) oxide is een verbinding die Ferrimagnetisme vertoont. Het heeft vele toepassingen en veel van hen zijn beschreven op het Inter
Sleutels toe te voegen aan een Arduino Synth de harde manier-het Blacklord: het Organ Donor Project deel 2

Sleutels toe te voegen aan een Arduino Synth de harde manier-het Blacklord: het Organ Donor Project deel 2

(Opmerking-Dit is mijn 20e instructable! Dank aan iedereen volgende en commenting.on mijn projecten en aan de medewerkers die dit mogelijk maken. Deze site heeft zeker maakte me brengen mijn A game aan de workbench.)De Auduino granulaire synth door P
Maken van een eenvoudige applicatie met behulp van de Win32 API

Maken van een eenvoudige applicatie met behulp van de Win32 API

vaak de gemakkelijkste manier om te leren hoe met een programmeer-interface is door codering van een eenvoudig voorbeeld. In dit geval zullen we moeten leren de Win32 API bij de programmering van een eenvoudig integer rekenmachine met behulp van Visu
Maken van een eenvoudige koperen Bowl

Maken van een eenvoudige koperen Bowl

Don't love u de kleur en de textuur van een handgemaakte koperen kom?Een eenvoudige, kleine ondiepe kom om verandering, paperclips of sleutels - te houden of gewoon om te mediteren over terwijl je op een conference call kunt u gemakkelijk maken.Stap
Hoe een eenvoudige database maken in Excel met behulp van Filters

Hoe een eenvoudige database maken in Excel met behulp van Filters

Lijst van stappen:Stap 1: twee manieren gegevens importeren(1.1) met behulp van kopiëren en plakkenOR(1.2) importeren van gegevens uit een bestandStap 2: uitvoering van de functie zoeken(2.1) instellen van de lookup()-functie(2.2) belangrijk: de gege
Een eenvoudige stalen Recorder voor kinderen om te maken.

Een eenvoudige stalen Recorder voor kinderen om te maken.

ik heb gebruikt dit project met mijn rang 7 kinderen voor een paar jaar nu. Zijn groot omdat het eenvoudig, leuk en heeft een ton van verpakt in leren. Ik zal instellen dit Instructable als een lesplan voor docenten dus hier het begin is...** update
Maken van een eenvoudige en gemakkelijke houtskool / kolen Forge

Maken van een eenvoudige en gemakkelijke houtskool / kolen Forge

In dit instructable leert u hoe te maken van een houtskool / kolen brandend forge van firebrick, een paar stalen sanitair onderdelen, een staalplaten, sommige cinder blokken en een blowerHelaas ik liep uit geld voordat ik kon afmaken de Smidse, in to