![Faire un bouton facile tweet la manière dure: 6 étapes Faire un bouton facile tweet la manière dure: 6 étapes](https://img.gwsigeps.com/img/circuits/make-an-easy-button-tweet-the-hard-way-7.jpg)
Table des matières:
- Provisions:
- Étape 1: Pièces
- Étape 2: Modifier le bouton Easy
- Étape 3: Schéma du matériel
- Étape 4: Modules de flux de travail et de code
- Étape 5: Créer une nouvelle application Twitter
- Étape 6: Opération
- Connectez-le à un ordinateur exécutant un script Python ou similaire.
- Connectez-le à un routeur piraté (gentil - vous savez qui vous êtes).
- Utilisation d'un serveur proxy tiers, par exemple ThingTweet, la bibliothèque Arduino de NeoCat, Arduino Tweet Library.
- Il ne nécessite pas d’ordinateur / routeur externe.
- Il n'a pas les risques de sécurité de la méthode trois. Passer des informations d'identification de sécurité sur un transport non sécurisé est risqué. Si vous utilisez un serveur proxy pour générer vos tweets, assurez-vous de bien comprendre les risques.
Le but de cette instruction est de donner aux autres un cadre autonome de base pour générer des Tweets à partir d’un microcontrôleur. L’application elle-même est assez simple; appuyez sur le bouton et il génère un Tweet semi-aléatoire.
Provisions:
Étape 1: Pièces
Quelques pièces seulement sont nécessaires pour ce projet
- STM32 Discovery Board ou similaire
- Module de réseau WIZnet W5100 -
- Ecran LCD graphique du Nokia 5110 -
- Breadboard Power Supply 5V / 3.3V -
- Staples® Easy ButtonTM -
Étape 2: Modifier le bouton Easy
- Retirez les quatre pieds en caoutchouc et les quatre petites vis situées sous eux.
- Dessouder les fils Vss et Vdd qui se connectent aux bornes de la batterie.
- Retirez les bornes de la batterie.
- Souder de nouveaux fils aux pads Vss et Vdd.
- Souder un fil au plot vide près du commutateur à bouton-poussoir (voir image).
- Percez un trou dans le compartiment à piles et passez les trois fils.
- Remontez le bouton.
- Vss - sol
- Vdd - tension d'alimentation positive (3V bien qu'il semble gérer assez facilement 3,3V)
- Sens du bouton - 0V passant à 3V lorsque le bouton est enfoncé.
Étape 3: Schéma du matériel
Le matériel est assez basique. Les contraintes de temps l'ont amenée à rester sur une planche à pain, mais je prévois de créer prochainement un circuit plus permanent avec toutes les pièces insérées dans une petite base située sous le bouton.
L’alimentation fournit au Discovery Board 5V, puis le régulateur intégré abaisse à 3,3V pour faire fonctionner tous les périphériques.
Le bouton modifié est connecté au PA1 du Discovery Board et alimenté en 3,3V, ce qui ne semble pas affecter son fonctionnement standard (la bande son "that was easy").
Le module réseau WIZnet W5100 est connecté au périphérique SPI1 (broches PA5, PA6 et PA7) avec des connexions supplémentaires pour / Reset (broche PA2) et / Slave Select (broche PA4).
Le module LCD graphique du Nokia 5110 est connecté au périphérique SPI2 (broches PB13 et PB15) avec des connexions supplémentaires pour / Réinitialiser (broche PB10), Données / Commande (broche PB11) et / Slave Select (broche PB12).
Un grand nombre de broches et de périphériques d’E / S universels restent dans Discovery Board pour des applications de Twitter plus avancées à l’avenir.
Étape 4: Modules de flux de travail et de code
Le fichier binaire est actuellement à un peu moins de 35K en taille. Le code n'est pas actuellement optimisé, il devrait donc être possible d'obtenir le binaire de moins de 32 Ko avec un peu de travail; bien sûr, cela dépend de la plate-forme et du compilateur.
Vous trouverez ci-dessous un aperçu des modules de code source du projet. Les contraintes de temps signifient que le code n'est pas aussi bien commenté que je le souhaiterais habituellement, mais avec la documentation de cette instruction, les modules devraient être assez faciles à suivre.
Commun
dictionnaire.c
- une classe d'assistance utile qui contrôle une liste chaînée de paires nom / valeur.
sha1.c
hmacsha1.c
- Utilisé pour créer un hachage de la demande OAuth, puis le chiffrer avec le secret du consommateur et le secret du jeton d'accès.
- Je ne peux pas prendre le crédit pour ces modules; ils proviennent en grande partie de la bibliothèque de cryptage AVR (http://www.das-labor.org/wiki/Crypto-avr-lib).
- Base64 encoder et décoder.
Les chauffeurs
easybutton.c
- Pilote pour le bouton Staples Easy modifié.
- Pilote LCD graphique Nokia 5100 (SPI).
- Pilote de module de réseau WIZnet W5110 (SPI).
Protocoles
Transport
udp.c
tcp.c
- Le module WIZnet prend en charge ces deux protocoles de couche de transport, donc techniquement, ils relèvent également des modules de pilotes, mais ils ont été séparés pour des raisons de clarté.
Application
formdata.c
- Méthodes client HTTP pour effectuer des requêtes GET et POST sur un serveur Web.
- Méthodes de serveur HTTP pour accepter les appels GET et POST entrants.
- Obtenez une adresse IP, un masque de sous-réseau, une passerelle et l'adresse IP du serveur DNS auprès du serveur DHCP du réseau.
- Résoudre une URL donnée en une adresse IP correspondante.
- OAuth exige un horodatage précis; Ce module demande l'heure actuelle à un serveur Simple Network Time Protocol.
Serveur Web
serveur web.c
- Un écouteur pour les requêtes HTTP GET et POST.
- Permet de définir la clé de consommateur OAuth, le secret de consommateur, le jeton d'accès et le secret de jeton d'accès.
Gazouillement
twitter.c
- Implémentation de l'API Twitter (seule la mise à jour de statut est actuellement utilisée).
- La majeure partie des charges lourdes est gérée par le module OAuth.
- Le module de base du cadre Twitter.
- Générez un identifiant unique pour la requête (nonce).
- Générez l'horodatage de la demande.
- Générez la base de signature pour la demande OAuth.
- Calcule un hachage de la base de signature (SHA1).
- Signez le hachage en utilisant le secret du consommateur et le secret du jeton d'accès (HMAC-SHA1).
- Envoyez la demande signée au serveur Web (HTTP GET ou POST).
Étape 5: Créer une nouvelle application Twitter
- La clé du consommateur
- Secret du consommateur
- Jeton d'accès
- Secret de jeton d'accès
Le jeton indique à Twitter quel utilisateur tweet.
Le secret du consommateur et le secret du jeton ne sont pas envoyés à l'API Twitter, mais servent à calculer un hachage cryptographique de la demande, utilisé comme signature pour empêcher toute falsification. La demande comprend un identifiant unique (nonce) et un horodatage qui doit être dans les cinq minutes suivant l'heure UTC. Une seule demande sera acceptée pour un appariement nonce / horodatage donné.
Pour obtenir ces clés / secrets, vous devez créer une nouvelle application Twitter.
Accédez à http://dev.twitter.com/apps - utilisez vos identifiants Twitter pour vous connecter.
Sélectionnez "Enregistrer une nouvelle application".
Entrez les détails de l'application
- Nom de l'application - tout ce que vous aimez
- Description - tout ce que vous aimez
- Site Web de l'application - (obligatoire) tout ce que vous aimez
- Organisation - tout ce que vous aimez (facultatif)
- Type d'application - Client
- Type d'accès par défaut - Lecture et écriture
- Icône de l'application - utilisez les valeurs par défaut ou téléchargez votre propre
Normalement, pour les applications, vous demanderiez un jeton d'accès et un secret de jeton pour chaque utilisateur. dans ce cas, il n'y aura qu'un seul utilisateur pour l'application, il y a un raccourci. Dans la page des paramètres de l'application, sélectionnez "Mon jeton d'accès" pour obtenir un jeton d'accès et un secret de jeton d'accès.
Félicitations, vous êtes maintenant prêt à faire votre premier tweet.
Étape 6: Opération
- Connectez la prise Ethernet à votre réseau / routeur.
- Vérifiez l'écran LCD pour voir quelle adresse IP a été attribuée.
- Dans un navigateur Web, accédez à l'adresse IP (par exemple,
- Entrez la clé du consommateur, le secret du consommateur, le jeton d'accès et le secret du jeton d'accès que vous avez obtenus, puis cliquez sur Définir.
- L'écran LCD affichera maintenant «Prêt» et le bouton sera armé.
- Tweetez jusqu'à ce que vous vous ennuyiez ou que vos amis cessent de vous suivre:)