Home > Technologie > LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Advertisement

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Wir bauen ein blinkendes LED-Display für Busfahrpläne. Vielleicht haben Sie eine von diesen an Ihrem U-Bahnhof oder Bushaltestelle gesehen. Sie können eine für das Haus bauen, um Ihnen zu helfen, genau zu wissen, wie viel Zeit Sie gelassen haben - besonders wenn Sie neigen, den Schlummeralarm am Morgen viel zu treffen! Und manchmal ist es viel einfacher, auf ein Display, als ziehen Sie Ihr Telefon und lassen Sie sich mit Instagram-Benachrichtigungen abgelenkt :)

Schritt 1: Teile

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Was wir brauchen:

  • Partikel Photon oder Core: Dieses Dev-Board ist ideal für Internet verbunden Projekte. Partikel können käuflich erworben werden hier .
  • Strahl LED-Anzeige: Es ist eine LED-Matrix, die 120 LEDs an Bord hat und können Sie blättern Text, Animationen oder benutzerdefinierte Lichteffekte anzeigen. Strahl können käuflich erworben werden hier . Für dieses Beispiel werden wir vier Strahlen und Gänseblümchen miteinander verbinden, um eine lange Bildlaufanzeige zu erzeugen.
  • Drähte und ein Steckbrett.

Schritt 2: Anschlusspartikel zu Strahl

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Auf der Rückseite der Beam-Platine befinden sich an jedem Ende zwei Buchsen. Beide Anschlüsse sind identisch und können entweder verwendet werden, um eine Verbindung zu Ihrem Host-Mikrocontroller.

  • HOST_V +: Je nach Mikrocontroller können Sie entweder 5V oder 3.3V anschließen. Zum Beispiel, wenn mit dem Arduino UNO, dieser Pin sollte auf 5V gebunden werden, da es eine 5V-Plattform ist. Das Teilchen Photon ist eine 3.3V Plattform, also sollte dieser Stift an 3.3V stattdessen gebunden werden.
  • 3.3V: Verbinden Sie sich mit dem 3,3-V-Anschluss Ihres Host-Mikrocontrollers
  • GND: An Masse anschließen.
  • SYNC: Diese Buchse muss nicht mit Ihrem Mikrocontroller verbunden werden. Es wird verwendet, wenn mehrere Strahlen in einer Reihe verkettet werden.
  • RESET: Schließen Sie eine beliebige Digital Pin auf Ihrem Mikrocontroller.
  • IRQ: Wird derzeit nicht verwendet. Unverbunden lassen.
  • SCL: Verbinden Sie die SCL-Buchse Ihres Mikrocontrollers
  • SDA: An den SDA-Anschluss Ihres Mikrocontrollers anschließen.

Schritt 3: Add MOAR Beams

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Jetzt können Sie nur einen einzigen Strahl verwenden, um dieses Beispiel neu zu erstellen. Wenn Sie einen einzelnen Strahl verwenden, stellen Sie sicher, dass der Schalter auf der Rückseite auf "A" eingestellt ist und Sie fertig sind. Aber wenn Sie vier Strahlen wie wir in diesem Beispiel verwenden, lesen Sie weiter.

Verbinden Sie einfach bis zu 4 Strahlen mit den Kopfleisten wie abgebildet. Von links nach rechts (nach vorne) gehen, stellen Sie sicher, dass der Schieberegler auf "A" für den ersten Strahl, dann "B" für den zweiten Strahl und so weiter eingestellt ist. So verwenden Sie insgesamt vier Strahlen, dann sollte die Schaltereinstellung A, B, C, D von links nach rechts (mit Blick auf die Vorderseite des Strahls) sein.

Schritt 4: Melden Sie sich für eine offene Transit-API an

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Für dieses Beispiel verwenden wir die Translink Open API, die für Vancouver, British Columbia verfügbar ist. Deine Stadt wahrscheinlich wird wahrscheinlich ihre eigene API haben - ein beliebtes eine für die USA ist NextBus . Zum https://developer.translink.ca/ und melden Sie sich für ein kostenloses Konto.

Schritt 5: Finden Sie die Bushaltestelle für Ihre tägliche Route

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Der einfachste Weg ist die Verwendung von Google Maps. In diesem Beispiel haben wir von Fish Counter nach BC Place gesucht. Wenn Sie die Details der Buslinien anzeigen, erscheint die Bushaltestelle unterhalb der Busnummer und der Route. In diesem Fall ist die Bushaltestelle ID 59837.

Schritt 6: Registrieren Sie Ihr Webhook auf Particle Cloud

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

In der Particle CLI registrieren Sie Ihr Webhook mit dem folgenden Code:

Partikel Webhook GET bus_info "http://api.translink.ca/rttiapi/v1/stops/59837/estimates?apikey=AAAAAAAAAAAAAAAAAA&count=1&routeNo=003"

wo apikey = 'AAAAAAAAAAAAAAAAAA' , mit denen sie ersetzt werden , sollten Sie nach der Anmeldung für die API - Schlüssel erhalten.

Webhooks hören auf Ereignisse von Ihren Geräten. Wenn Sie ein passendes Ereignis senden, sendet der Hook eine Anfrage an die Transitlink-API und ruft alle Details ab. Für weitere Informationen über webhooks, klicken Sie hier: Particle Webhooks .

Schritt 7: Holen Sie sich den Code

Laden Sie die Bibliothek herunter und navigieren Sie zum Ordner / examples / BeamTransit. Die Beam-Bibliothek ist auf Github verfügbar, so stellen Sie sicher, kopieren Sie es auf die Particle IDE.

Besorgen Sie sich die vollständige Bibliothek hier .

Schritt 8: Code

Die folgende subscribe-Methode registriert einen Callback namens gotBusData zu unserem Webhook.

  Particle.subscribe ( "hook-response / bus_info", gotBusData, MY_DEVICES);

In der gotBusData-Rückruffunktion versuchen wir, die relevanten Informationen zu extrahieren und die Zeichenfolge an Beam zu drucken.

  Void gotBusData (const char * name, const char * data) {String str = String (Daten);  String leaveStr = tryExtractString (str, "", "");  String destinationStr = tryExtractString (str, "", "");  String countdownStr = tryExtractString (str, "", "");  String routeStr = tryExtractString (str, "", ""); wenn (routeStr! = NULL) {Serial.println ( "Route Nr:" + routeStr);} Wenn (destinationStr! = NULL) {Serial.println ( "Gehend (String) = String (String) = String (String) String String (String) RouteStr + "+ ZielStr +" "+ countdownStr +" MINS ");  BeamString.toUpperCase ();  Serial.println (beamString); char buf [1024];  BeamString.toCharArray (buf, 1024); b.begin ();  B.print (buf);  B.setSpeed ​​(5);  B.play ();}}

In der obigen Funktion werden die folgenden Zeilen verwendet, um den Text zu "drucken":

  B.begin (); b.print (buf);  B.setSpeed ​​(5);  B.play ();

Schließlich rufen wir die publish-Methode in unserer Hauptschleife alle 30 Sekunden auf. Dies ist, um sicherzustellen, dass wir nicht erreichen unsere Grenze für die täglichen API-Aufrufe erlaubt.

  Particle.publish ( "bus_info"), Verzögerung (30000);

Schritt 9: Du bist fertig!

LED-Durchgangsuhr - verpassen Sie nie den Bus wieder!

Hoffentlich an diesem Punkt arbeitet Ihr Projekt wie erwartet. Just Beam auf jeder Oberfläche mit 3M doppelseitigen Aufkleber montieren - wir versteckten uns fest zu einem Media-Gehäuse und versteckte die Drähte und Partikel Photon hinter den Türen. Jede einfache Möglichkeit, um sicherzustellen, dass alles funktioniert, ist, öffnen Sie Ihren seriellen Monitor und überprüfen Sie, ob Debug-Nachrichten von der Beam-Bibliothek gedruckt werden.

Related Reading