Faire un simple Tweet Button the Hard Way (4 / 6 étapes)

Étape 4: Flux de travail et les Modules de Code

Le module main.c contient le flux de travail pour le projet (Voir l’image). Après avoir initialisé le jury du microcontrôleur, une requête est envoyée au serveur DHCP pour obtenir une adresse IP et les paramètres réseau. Ensuite, une requête est envoyée à un serveur Simple Network Time Protocol pour obtenir la date et l’heure actuel. Ensuite, le code entre dans une boucle vous attend pour naviguer vers l’adresse IP et réglez les paramètres Oauth. Une fois que les paramètres sont définis le code attend du simple bouton à presser et Tweets ensuite un message aléatoire de la sélection fournie.

Le fichier binaire s’élève actuellement à un peu moins de 35K en taille. Le code n’est pas actuellement optimisé, il devrait être possible d’obtenir le binaire sous 32K avec un peu de travail ; bien sûr cela dépend de la plate-forme et le compilateur.

Ce qui suit donne un aperçu de la source des modules de code pour le projet. Contraintes de temps signifient que le code n’est pas commenté ainsi que je le tiens normalement, mais j’espère que tous les documents dans ce instructable les modules devraient être assez faciles à suivre.

Commune
dictionary.c

  • une classe d’assistance qui contrôle une liste chaînée triée de paires nom/valeur.

Cryptage
SHA1.c
HMACSHA1.c

  • Utilisé pour créer un hachage de la requête OAuth et de le chiffrer puis avec le Secret de la consommation et les accès jeton Secret.
  • Je ne peux pas prendre le crédit pour ces modules ; elles proviennent en grande partie inchangées de l’AVR Crypto Library (http://www.das-labor.org/wiki/Crypto-avr-lib).

base64.c

  • Base64 encoder et décoder.

Pilotes
easybutton.c

  • Pilote pour la mis à jour le Staples Easy Button.

nokia5110.c

  • Pilote Nokia 5100 LCD graphique (SPI).

wiznet5100.c

  • Pilote du Module de réseau pour le W5110 WIZnet (SPI).

Protocoles
Transport
UDP.c
TCP.c

  • Le module WIZnet prend soin de ces protocoles de couche deux transport donc techniquement elles relèvent également les modules des pilotes, mais ils ont été séparés pour plus de clarté.

Application
http.c
FormData.c

  • Méthodes HTTP client pour faire des requêtes GET et POST vers un serveur web.
  • Méthodes HTTP server pour accepter les appels entrants de GET et POST.

DHCP.c

  • Obtenir une adresse IP et masque de sous-réseau, passerelle IP du serveur DNS du serveur DHCP réseau.

DNS.c

  • Résoudre une URL donnée à une adresse IP correspondante.

SNTP.c

  • OAuth exige un horodatage précis ; ce module demande à l’heure actuelle d’un serveur Simple Network Time Protocol.

Serveur Web
webserver.c

  • Demande à un écouteur HTTP GET et POST.
  • Permet de fixation OAuth Consumer Key, Consumer Secret, jeton d’accès et accès jeton Secret.

Twitter
Twitter.c

  • Implémentation de l’API Twitter (actuellement uniquement mise à jour de statut est utilisé).
  • La plupart du gros du travail est gérée par le module OAuth.

OAuth.c

  • Le module de base du cadre de Twitter.
  • Générer un identificateur unique pour la demande (valeur unique).
  • Générer l’horodatage de la demande.
  • Générer la signature de la requête OAuth.
  • Calculer un hash de la base de signature (SHA1).
  • Signer le hachage à l’aide de la Consumer Secret et jeton accès Secret (HMAC-SHA1).
  • Envoyer la demande au serveur web (HTTP GET ou POST).

Articles Liés

Comment pirater un disque vinyle the Hard Way

Comment pirater un disque vinyle the Hard Way

Un de mes plus amusant à ce jour ! Je prends une réédition 7" vinyle de Johnny Cash et dupliquez-le avec un moule en caoutchouc de silicone et le plastique liquide. Pour être honnête, j'ai été surpris sur la quantité de détails le moule peut gérer co
Cidre, the Hard Way de presse pi ** ed !

Cidre, the Hard Way de presse pi ** ed !

J'ai un pommier dans mon dos jardin et beaucoup plus de temps sur mes mains que je le devrais. C'est pourquoi j'ai décidé que plutôt que de laisser tombent les pommes et les rot, id utiliser pour faire le cidre. Malheureusement, j'ai eu quelques obst
Motorized Bicycle DIY: The hard way

Motorized Bicycle DIY: The hard way

Empiète sur une Honda GXH50 dans un Huffy 24" garçon s Cranbrook Cruiser vélo.170 MPG - vraiment ?Réponse courte : non - pas pour moi, je roule à plein régime presque tout le temps (30 mi/h), et je me fais 110-130 mi/gal (selon le vent)Réponse longue
Le Wrapper folle de lenticulaire - the Hard Way à emballer les cadeaux

Le Wrapper folle de lenticulaire - the Hard Way à emballer les cadeaux

Noël chez nous, le Wrapper « anonyme » Mad met dons sous notre arbre. Les cadeaux à l'intérieur des paquets sont généralement banale et tout à fait ordinaire. Ce qui est extraordinaire c'est la méthode dans laquelle les dons sont enveloppés. Sous l'a
Contacts de l’iPhone - The Hard Way

Contacts de l’iPhone - The Hard Way

si vous avez un yay iphone tout comme le reste d'entre nous. Mais que se passe-t-il quand votre iphone se brise ou garde de s'écraser et vous voulez remplacer votre téléphone mais vos contacts ne sont pas tous enregistrés à la carte sim... Eh bien n'
LEGO Keychain (The Easy Way)

LEGO Keychain (The Easy Way)

veux faire un Lego Keychain ? Maintenant vous pouvez, avec les Lego trousseau Instructable, (The Easy Way) par Ninjaaa--aucun perçage requis ! Quelques briques Lego, les 3 étapes... et vous allez être sur aller !Étape 1: Vous avez assez de pièces ? V
Comment ouvrir un Hershey de Kiss The Right Way

Comment ouvrir un Hershey de Kiss The Right Way

Dans cette vidéo et alimentation hack Tutoriel, vous apprendrez comment ouvrir un Hershey Kiss The Right Way. La bonne façon d'ouvrir les baisers de Hershey est probablement pas ce que vous pensez.Étape 1: Maintenez Tag sortant de WrapperLa première
Comment écailler ail the Easy Way

Comment écailler ail the Easy Way

comment écailler ail the Easy WayÀ écailler l'ail, la méthode la plus simple consiste à utiliser un presse-citron. Ici j'ai utilisé un presse-citron en bois. Placer l'ail dans le presse-agrumes et la presse. C'est tout...
Comment faire une Simple lampe de poche LED

Comment faire une Simple lampe de poche LED

https://www.youtube.com/watch?v=QqlzWLRIZzU&feature=youtu.beÉtape 1: Faire une Simple torche LED vous devez ! Une cheville de vêtements, une ampoule à LED avec les longs fils de connecteur, une pile de montre 3 v et du ruban adhésif double face !Étap
Comment faire un simple organe de couleur || TUTORIAL || DIY

Comment faire un simple organe de couleur || TUTORIAL || DIY

Étape 1: Faire un simple organe de couleur vous devez!!! Dans d'aujourd'hui vidéo je vais vous montrer comment faire une musique d'orgue de couleur simple à la maison.Étape 2: Si vous avez des bandes de LED, du temps et patience, vous pouvez faire un
Comment faire un simple accessoire de MineCraft fait maison (pas cher)

Comment faire un simple accessoire de MineCraft fait maison (pas cher)

dans ce tutoriel, ces étapes vous guidera comment faire un minecraft maison bon marché et facile à prop.Vous aurez besoin :Mousse/cartonCiseauxPapier (tout type)ColleJe suggère aussi d'utiliser de carton épais. Prend plus de temps pour couper, mais s
Comment faire un simple générateur de pavées de Minecraft !

Comment faire un simple générateur de pavées de Minecraft !

Dans ce tutoriel, je vais vous montrer comment faire un simple générateur de pavées de Minecraft !Étape 1: matériaux *Stone* Un seau de lave* Un seau d'eauÉtape 2: Comment le faire ! * Faire un 5 de large par 5 long par 2 haut rectangle Pierre* faire
{LINDA} Comment faire un simple Wedding Shrug

{LINDA} Comment faire un simple Wedding Shrug

http://www.diyweddinggowns.com/Linda Shrug. Comment faire un simple Wedding Shrug. Il s'agit d'un simple tutoriel DIY sur comment créer un mariage haussement d'épaules à l'aide d'élastiques et tulle.
Comment faire une simple fleur quilling - Tutorial 1 (Fiori)

Comment faire une simple fleur quilling - Tutorial 1 (Fiori)

DIY Comment faire un simple de quilling fleurs - tutoriel 1 - pour les débutantsFlori - Quilling pentru incepatoriNous vous invitons à vous abonner à cette chaîne de regarder les vidéos futures !http://xlY.us/XI9s4N'oubliez pas de tout, de commenter