Home > Technologie > Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

0
Advertisement

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Es gibt mehrere Möglichkeiten, um einen Mikrocontroller tweet. Die einfachen Methoden sind gut abgedeckt in anderen instructables.

  1. Verbinden Sie es mit einem Computer, auf dem ein Python-Skript oder ähnliches ausgeführt wird.
  2. Verbinden Sie es mit einem gehackten Router (nett - Sie wissen, wer Sie sind).
  3. Mit einem Drittanbieter-Proxy-Server zB ThingTweet, NeoCats Arduino-Bibliothek, Arduino Tweet Library.

Eine Methode, die nicht gut bedeckt ist die Handhabung der gesamten Prozess der Erzeugung eines Tweet mit dem Mikrocontroller nur. Diese Methode hat ein paar Vorteile gegenüber den anderen Methoden.

  • Es erfordert keinen externen Computer / Router.
  • Es hat nicht die Sicherheitsrisiken der Methode drei. Das Bestehen von Sicherheitseigenschaften für einen unsicheren Transport ist riskant. Wenn Sie einen Proxy-Server verwenden, um Ihre Tweets zu generieren, stellen Sie sicher, dass Sie die Risiken verstehen.

Natürlich hat dieses Verfahren auch Nachteile hinsichtlich der Codegröße und -komplexität; Weswegen ich es als "harten Weg" bezeichnet habe.

Die Absicht dieser instructable ist es, anderen eine einfache eigenständige Rahmen für die Erzeugung von Tweets aus einem Mikrocontroller.Die Anwendung selbst ist ziemlich einfach, Drücken Sie die Taste und es erzeugt eine semi-zufällige Tweet.

Schritt 1: Teile

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Ich habe das STM32 Discovery Board (STM32F103RG) für dieses Projekt verwendet, weil ich mit ihm vertraut bin und ich einen an der Hand hatte. Der Großteil des Codes über der Treiberebene (easybutton.c, nokia5110.c und wiznet5100.c) sollte plattformunabhängig sein, so dass der Code auf andere Mikrocontroller sollte einfach sein.

Für dieses Projekt werden nur wenige Teile benötigt

Schritt 2: Ändern der Easy-Taste

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Ändern des Staples Easy Button ist, einen Satz zu prägen, leicht.

  1. Entfernen Sie die vier Gummifüße und die vier kleinen Schrauben unter ihnen.
  2. Lösen Sie die Vss- und Vdd-Leitungen, die mit den Batterieklemmen verbunden sind.
  3. Entfernen Sie die Batterieklemmen.
  4. Neue Drähte an die Vss- und Vdd-Pads anlöten.
  5. Löten Sie einen Draht an das leere Pad in der Nähe des Drucktasters (siehe Abbildung).
  6. Bohren Sie ein Loch in das Batteriefach und führen Sie die drei Drähte durch.
  7. Den Knopf wieder zusammenbauen.

Sie haben nun einen Knopf mit drei Drähten ragen.

  • Vss - Masse
  • Vdd - positive Versorgungsspannung (3V, obwohl es scheint zu handhaben 3.3V ganz glücklich)
  • Taste Erkennung - 0V steigt auf 3V, wenn die Taste gedrückt wird.

Schritt 3: Hardware-Schema

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Die Hardware ist ziemlich einfach. Zeitbeschränkungen haben bedeutet, dass es noch auf einem Steckbrett ausgelegt ist, aber ich plane, in Kürze bilden eine dauerhafte Schaltung mit allen Teilen passend in eine kleine Basis unter dem Knopf.

Das Netzteil versorgt das Discovery Board mit 5V und das wird dann auf 3,3V durch den Onboard Regler heruntergefahren, um alle Peripherie zu betreiben.

Der modifizierte Button ist mit dem PA1 des Discovery Boards verbunden und wird mit 3.3V versorgt, was seine Standardbedienung nicht schafft (der "leichte" Soundtrack).

Das WIZnet W5100 Netzwerkmodul ist mit dem SPI1 Peripheriegerät (Pins PA5, PA6 und PA7) mit zusätzlichen Anschlüssen für / Reset (Pin PA2) und / Slave Select (Pin PA4)

Das Nokia 5110 Graphic LCD-Modul ist mit dem SPI2-Peripheriegerät (Pins PB13 und PB15) mit zusätzlichen Anschlüssen für / Reset (Pin PB10), Data / Command (Pin PB11) und / Slave Select (Pin PB12) verbunden.

Es gibt eine Vielzahl von universellen IO-Pins und Peripheriegeräten, die im Discovery Board für fortgeschrittene Twittering-Anwendungen in der Zukunft bleiben.

Schritt 4: Workflow- und Code-Module

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Das Modul main.c enthält den Workflow für das Projekt (siehe Abbildung). Nach dem Initialisieren der Mikrocontrollerplatine wird eine Anfrage an den Netzwerk-DHCP-Server gesendet, um eine IP-Adresse und die Netzwerkeinstellungen zu erhalten. Als Nächstes wird eine Anfrage an einen Simple Network Time Protocol Server gesendet, um die aktuelle Uhrzeit und das aktuelle Datum zu erhalten. Der Code gibt dann eine Schleife wartet auf Sie, um die IP-Adresse zu durchsuchen und stellen Sie die Oauth-Parameter. Sobald die Parameter eingestellt sind, wartet der Code darauf, dass die Easy-Taste gedrückt wird und Tweets eine zufällige Nachricht aus der Auswahl.

Die Binärdatei befindet sich derzeit bei knapp 35K Größe. Der Code ist derzeit nicht optimiert, so sollte es möglich sein, die binäre unter 32K mit ein wenig Arbeit zu bekommen; Das hängt natürlich von der Plattform und dem Compiler ab.

Nachfolgend erhalten Sie einen Überblick über die Quellcodemodule für das Projekt. Zeitliche Einschränkungen bedeuten, dass der Code nicht so gut kommentiert wird, wie ich es normalerweise möchte, aber hoffentlich mit der Dokumentation in diesem instructable die Module sollte ziemlich einfach zu folgen.

Verbreitet
Wörterbuch.c

  • Eine nützliche Helper-Klasse, die eine sortierte verknüpfte Liste von Namen / Wert-Paaren steuert.

Verschlüsselung
sha1.c
hmacsha1.c

  • Wird verwendet, um einen Hash der OAuth-Anforderung zu erstellen und ihn dann mit dem Consumer Secret und Access Token Secret zu verschlüsseln.
  • Ich kann nicht Kredit für diese Module; sie kommen weitgehend unverändert aus dem AVR Crypto Library ( http://www.das-labor.org/wiki/Crypto-avr-lib ).

base64.c

  • Base64 kodiert und decodiert.

Treiber
easybutton.c

  • Treiber für die modifizierte Staples Easy Button.

nokia5110.c

  • Nokia 5100 Grafik-LCD-Treiber (SPI).

wiznet5100.c

  • WIZnet W5110 Netzwerkmodultreiber (SPI).

Protokolle
Transport
udp.c
tcp.c

  • Das WIZnet-Modul kümmert sich um diese beiden Transportschicht-Protokolle, so dass technisch diese auch unter die Treibermodule fallen, sie wurden jedoch aus Gründen der Übersichtlichkeit getrennt.

Anwendung
http
formdata.c

  • HTTP-Client-Methoden zur Herstellung von GET- und POST-Anforderungen an einen Webserver.
  • HTTP-Server-Methoden zur Annahme eingehender GET- und POST-Aufrufe.

dhcp.c

  • Holen Sie sich eine IP-Adresse, Subnetzmaske, Gateway und DNS-Server-IP vom Netzwerk-DHCP-Server.

dns.c

  • Lösen Sie eine gegebene URL zu einer entsprechenden IP-Adresse.

sntp.c

  • OAuth verlangt einen genauen Zeitstempel; Fordert dieses Modul die aktuelle Uhrzeit von einem Simple Network Time Protocol-Server an.

Web-Server
Webserver.c

  • Ein Listener für HTTP GET und POST Anforderungen.
  • Ermöglicht das Festlegen des OAuth-Consumer-Schlüssels, des Consumer Secret, des Access Token und des Access Token Secret.

Twitter
twitter.c

  • Implementierung der Twitter-API (derzeit nur Status-Update verwendet wird).
  • Der Großteil des Hebens wird vom OAuth-Modul übernommen.

oauth.c

  • Das Kernmodul des Twitter-Frameworks.
  • Erstellen Sie einen eindeutigen Bezeichner für die Anforderung (nonce).
  • Generieren Sie den Zeitstempel für die Anforderung.
  • Generieren Sie die Signaturbasis für die OAuth-Anfrage.
  • Berechnen Sie einen Hash der Signaturbasis (SHA1).
  • Signieren Sie den Hash mit dem Consumer Secret und dem Access Token Secret (HMAC-SHA1).
  • Senden Sie die signierte Anforderung an den Webserver (HTTP GET oder POST).

Schritt 5: Erstellen Sie eine neue Twitter-Anwendung

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Um zu tweet müssen Sie die folgenden haben

  • Verbraucherschlüssel
  • Verbraucher Geheimnis
  • Zugangstoken
  • Zugriff Token Secret

Der Verbraucherschlüssel erklärt Twitter, welche Anwendung die Tweet sendet.
Das Token sagt Twitter, was Nutzer Tweeting ist.

Das Consumer Secret und Token Secret werden nicht an die Twitter-API gesendet, sondern werden verwendet, um einen kryptografischen Hash der Anforderung zu berechnen, die als Signatur verwendet wird, um eine Manipulation zu verhindern. Die Anforderung enthält eine eindeutige Kennung (nonce) und einen Zeitstempel, der innerhalb von fünf Minuten nach der UTC-Zeit liegen muss. Nur eine Anforderung wird für eine gegebene Nonce / Timestamp-Paarung akzeptiert.

Um diese Schlüssel / Geheimnisse zu erhalten, müssen Sie eine neue Twitter-Anwendung erstellen.

Zum https://dev.twitter.com/apps - nutzen Sie Ihre Twitter - Anmeldeinformationen zur Anmeldung.

Wählen Sie "Neue App registrieren".
Geben Sie die Anwendungsdetails ein

  • Anwendungsname - alles, was Sie wollen
  • Beschreibung - alles, was Sie wollen
  • Application Website - (erforderlich) alles, was Sie wollen
  • Organisation - (optional) alles, was Sie wollen
  • Anwendungstyp - Client
  • Standardzugriffstyp - Lesen & Schreiben
  • Anwendungs-Icon - Standard verwenden oder eigene hochladen

Dies wird eine neue Anwendung zu erstellen und geben Sie einen Consumer Key und Consumer Secret.

Normalerweise für Anwendungen würden Sie ein Access Token und Access Token Secret für jeden Benutzer anfordern; In diesem Fall gibt es nur einen einzigen Benutzer für die Anwendung gibt es eine Verknüpfung. Wählen Sie auf der Seite mit den Anwendungseinstellungen "My Access Token" aus, um ein Access Token und ein Access Token Secret zu erhalten.

Herzlichen Glückwunsch, dass Sie jetzt bereit sind, Ihren ersten Tweet zu machen.

Schritt 6: Betrieb

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Machen Sie eine einfache Schaltfläche Tweet der harte Weg

Der Betrieb dieses Projekts ist einfach

  1. Verbinden Sie die Ethernet-Buchse mit dem Netzwerk / Router.
  2. Überprüfen Sie die LCD-Anzeige, um zu sehen, welche IP-Adresse zugewiesen wurde.
  3. Wechseln Sie in einem Webbrowser zur IP-Adresse (zB http://192.168.0.13).
  4. Geben Sie den Consumer Key, das Consumer Secret, das Access Token und das Access Token Secret ein, das Sie erhalten haben, und klicken Sie auf "Set".
  5. Das Display zeigt nun "Ready" an und die Taste wird scharf geschaltet.
  6. Tweet weg, bis Sie gelangweilt sind oder Ihre Freunde aufhören folgen Sie :)
Related Reading