Städte werden intelligenter, und eine Gruppe von uns hofft, dass das erste Problem, das sie lösen, der Verkehr ist. Und eine Ursache für die Kopfschmerzen des Verkehrs ist das Parken. Also, wie lösen wir es?
Mit intelligenten Parkuhren! Dieses Tutorial zeigt, wie Sie mit IBM Bluemix und PubNub einen Prototyp einer IoT-fähigen Anwendung für intelligente Parkuhren erstellen. Die App hat drei Kernfunktionen:Zeigen Sie dem Fahrer eine Echtzeitansicht der verfügbaren und belegten ParkplätzeErmöglichen Sie dem Fahrer, einen Parkplatz zu reservierenAutomatische Nachverfolgung der Abrechnung basierend auf den Aktionen des Fahrers (z ein großartiges DIY-Experiment für IoT-Enthusiasten.
Wenn Sie also daran interessiert sind, es auszuprobieren, gehen Sie zu GitHub, um den vollständigen Quellcode des bluemix-Parking-Meter-Projekts zu erhalten. In den Build-Anweisungen und der Readme-Datei finden Sie detaillierte Schritte, direkt von der Konfiguration der Hardware bis zum Hosten und Ausführen der Anwendung . Zum Hosten dieser Anwendung müssen Sie ein Bluemix- und PubNub-Konto erstellen.
Besuchen Sie die IBM Bluemix-Anmeldeseite und die PubNub-Add-On-Seite, um Ihre jeweiligen Konten zu erstellen. Beide Dienste bieten ein kostenloses Stufenkonto an, um mit ihren Angeboten herumzuspielen. KomponentenDie Anwendung besteht aus drei Komponenten:Parking Management Server (PMS) überwacht alle Parkplätze und verwaltet die Messung und Abrechnung für alle Benutzer.
Die IoT-Hardwareplattform verbindet die Parkplätze mit dem PMS und erkennt auch das Vorhandensein oder Fehlen eines Fahrzeugs. Die mobile App bietet eine einfache Schnittstelle, um den Fahrer bei der Suche nach einem freien Parkplatz zu unterstützen und seine Parknutzung und Abrechnung zu verwalten. Die Hardwareplattform wird von Arduino Yun betrieben und verwendet Ultraschallsensoren, um die Anwesenheit oder Abwesenheit eines Fahrzeugs auf einem Parkplatz zu erkennen.
Das PMS ist als Anwendungsserver implementiert, der auf Python läuft. Es behält den Überblick über alle Geräte und verwaltet die Abrechnung und Reservierungen. Die Mobile App (auch bekannt als Auto Park) ist eine Cordova- und JavaScript-basierte Android-App.
Der PMS-Anwendungsserver wird auf der Cloud-Plattform IBM Bluemix gehostet, und die gesamte Kommunikation zwischen PMS zu Hardware und PMS zu der mobilen App wird von PubNubs Realtime Data Stream Network betrieben.HardwareDie folgende Liste der für dieses Projekt verwendeten Hardwarekomponenten:Arduino YunHC -SR04 Ultraschallsensor (3 Nr. )Ein Beispielaufbau auf einem Steckbrett ist unten gezeigt:Und das zugehörige schematische Diagramm für die Hardwareschaltung ist unten:Es gibt drei funktionale Teile der Hardware:Master-Controller Der WiFi-fähige Arduino Yun fungiert als Master-Controller für die Steuerung einiger Parkplätze Räume.
Über Ultraschallsensoren überwacht und erhält es regelmäßig den Status jedes Parkplatzes in seinem Zuständigkeitsbereich. Es verbindet sich auch mit PMS über PubNub und veröffentlicht den ParkstatusSensor-Controller. Dies ist eine interne Komponente des Arduino Yun-Boards, das vom ATMega32-Chip angetrieben wird. Es ist direkt mit den Sensoren verbunden und führt alle paar Sekunden eine Schleife aus, um den neuesten Status jedes Sensors zu erhaltenUltraschallsensor Drei HC-SR04-Sensoren werden verwendet, um drei Parkplätze zu simulieren.
Der Quellcode für die Hardware-Einrichtung ist im Verzeichnis yun_pubnub (für Master-Controller) und im Verzeichnis device/hcsr04 (für Sensor-Controller) im GitHub-Repository verfügbar.Parking Management Server (IBM Bluemix)Das PMS ist in Python geschrieben und kann als installiert werden Gehosteter IBM Bluemix-Service. IBM Bluemix stellt die Rechenleistung für das PMS bereit, um Hardwaregeräte zu überwachen und Parkuhren und Abrechnungen für die Benutzer zu verwalten.
Außerdem müssen Sie den PubNub-Add-on-Service mit Ihrem IBM Bluemix-Konto verknüpfen, damit das PMS mit PubNub funktioniert. Lesen Sie die Schritte in README.md, um zu verstehen, wie Sie eine Python-Anwendung unter Bluemix mit PubNub einrichten und hosten.
Der Quellcode für PMS befindet sich im Verzeichnis der Parkuhren im GitHub-Repository. Mobile App Die mobile App ist eine Standard-Android-App auf Cordova-Basis. Es zeigt eine Karte des Parkbereichs mit farbcodierten Parkplätzen an, um den Benutzer bei der Auswahl eines freien Platzes zu unterstützen.
Der Quellcode für die mobile App befindet sich im Verzeichnis MobileApp im GitHub-Repository. PubNubPubNub fungiert als Kommunikations-Middleware für das gesamte System. Es bietet ein Cloud-basiertes Echtzeit-Datenstromnetzwerk, das mehr als 70 SDKs unterstützt, sodass jedes Gerät mit jedem anderen Gerät im Internet kommunizieren kann.
Diese Anwendung verwendet drei von PubNubs SDKs, damit alle Komponenten nahtlos miteinander kommunizieren können. Diese sind: Javascript SDK für die mobile App Python SDK für PMS POSIX C SDK für Arduino Yun PMS und eine mobile App. Alle Nachrichten, die über die PubNub-Kanäle ausgetauscht werden, sind im JSON-Format.
Für jede mobile App, die eine Parkplatzreservierung anfordert, initiiert das PMS Nachrichten über diesen Kanal für diese bestimmte mobile App. Die Bedeutung aller Kanäle wird im nächsten Abschnitt erläutert. Systembetrieb und Szenarien Der vollständige Betrieb dieses Systems kann in die folgenden fünf Szenarien unterteilt werden.
Szenario 1: App-Initialisierung Wenn die mobile App zum ersten Mal nach der Installation gestartet wird, fragt sie nach dem Kennzeichen/Kennzeichen des Benutzerfahrzeugs. Dies dient als eindeutige Kennung für das PMS, um die App zu Abrechnungszwecken zu verfolgen. Anschließend sendet die App eine Anfrage an das PMS, um den Status aller Parkplätze zu erhalten.
Dies wird verwendet, um die Karte anzuzeigen, wobei jeder Raum mit einer Slot-Nummer (001, 002 und 003) gekennzeichnet ist. So findet der Nachrichtenaustausch zwischen PMS und mobiler App statt: Die JSON-Anfrage der App enthält einen Parameter RequestType mit dem Wert 1, um eine Anfrage zum Abrufen des Massenstatus aller Parkplätze anzuzeigen. Die JSON-Antwort von PMS enthält die Stellplatznummer des Parkplatzes als Parameter und seinen Status entweder als 0 oder 1 , um anzuzeigen, dass der Stellplatz entweder frei oder belegt ist.
Für die Kartenanzeige in der mobilen App werden derzeit freie Parkplätze grün, belegte oder reservierte Parkplätze rot angezeigt. Szenario 2: Aktualisierung des Gerätestatus Immer wenn der Parkplatz die Anwesenheit oder Abwesenheit eines Fahrzeugs erkennt, er signalisiert sofort dem PMS. Dabei kennzeichnet 001 die Slot-Identifikationsnummer des Stellplatzes und der Wert 1 zeigt an, dass der Stellplatz belegt ist.
Alternativ gibt ein Wert von 0 an, dass der Platz frei ist. Das PMS leitet diese Informationen auch an einen globalen PubNub-Kanal parkingapp-resp weiter, sodass alle Apps ihre Parkplatzkartenanzeige aktualisieren können. Szenario 3: Reservierungsanfrage & Billing StartEin Benutzer, der sich einem freien Parkplatz nähert, kann diesen im Voraus reservieren, indem er in der App auf einen gewünschten freien Parkplatz tippt.
Dies veranlasst das PMS, eine Abrechnungssitzung für den Benutzer zu initiieren. PMS sendet auf seinem privaten Kanal eine Nachricht an die App, um den Start der Abrechnung einzuleiten. Gleichzeitig startet PMS auch einen Timer.
Hier ist ein genauerer Blick auf das Format von JSON-Nachrichten in dieser Interaktion: Der Parameter RequestType mit einem Wert 2 zeigt eine Reservierungsanfrage an
In diesem Moment stoppt das PMS den Timer. Szenario 5: Billing StopLater, wenn der Benutzer sein Fahrzeug aus dem Parkplatz herauszieht, erfasst die Hardwarevorrichtung dies erneut und sendet eine Statusaktualisierung an PMS, die anzeigt, dass der Platz jetzt frei ist. Nach Erhalt dieser Aktualisierung berechnet PMS die Rechnung für den Benutzer und sendet eine Nachricht zum Beenden der Abrechnungssitzung zusammen mit Rechnungsdetails über seinen privaten Kanal an die mobile App.
Die von der mobilen App empfangene JSON-Nachricht enthält die Parameter für die Rechnungsdetails:
In diesem Fall wird dem Benutzer eine Mindestrechnung von $10 berechnet. Darüber hinaus hat diese Anwendung keine Vorkehrungen zum Authentifizieren des Benutzers während des Parkens (als Teil von Szenario 4), um sicherzustellen, dass der Benutzer, der den Parkplatz reserviert hat, derjenige ist, der sein Fahrzeug tatsächlich auf diesem Platz parkt. Dies bleibt den Lesern als Übung überlassen, die diese Anwendung weiter verbessern und für einen realitätsnäheren Einsatz praktikabel machen möchten.
Wir hatten eine tolle Zeit beim Erstellen und Spielen mit dieser Anwendung, und das Testen des End-to-End-Szenarios war ziemlich interessant, wenn man bedenkt, dass ziemlich viele Subsysteme beteiligt sind. Verwendung von IBM Bluemix & PubNub-Dienste vereinfachen die Entwicklungsherausforderungen erheblich, da sich der Entwickler auf die Anwendungslogik konzentrieren kann, ohne sich Gedanken darüber machen zu müssen, wie die Kommunikation zwischen verschiedenen Subsystemen funktioniert. Abgesehen davon sind beide Dienste in der Lage, eine enorme Skalierung zu bewältigen, die genutzt werden kann, um ähnliche reale Anwendungen zu erstellen, die eine 247-Betriebszeit und Tausende von zufälligen Benutzern erfordern.
Ursprünglich veröffentlicht bei allen neuesten Fortschritten und Tech-News, die direkt in Ihren Posteingang gesendet werden?. VERWANDTE FRAGE Ich habe Google Glass Explorer Edition nicht erhalten.
Ist der Versuch, Glass dev ohne Hardware zu lernen, eine vergebliche Anstrengung? Nein, Sie können immer noch die Grundlagen der Glasent wicklung ohne die Hardware lernen. Es gibt drei Haupt ansätze, um dies zu erreichen: 1) Besuchen Sie die Mirror-API-Dokumentation, gehen Sie auf den Spielplatz und beginnen Sie, Code zu erstellen.
Laden Sie die PHP-, Java-und Python-Bibliothek herunter, je nachdem, was Sie sich am wohlsten fühlen. Machen Sie sich mit dem Jargon und den Konvertitionen (Timeline, Bundles, Menüs usw.) vertraut. Lesen Sie die Support-Dokumentation (zweiter Link unten), um zu sehen, wie die Glass-Hardware tatsächlich funktioniert.
Erstellen Sie einige Apps nach dieser Spezifikation. Schon bald finden Sie einen Freund mit Hardware zu t
Shenzhen Tiger Wong Technology Co.,Ltd
Tel:86 13717037584
Email: info@sztigerwong.com
Hinzufügen: 1. Etage, Gebäude A2, Silicon Valley Power Digital Industrial Park, Nr. 22 Dafu Road, Guanlan Street, Bezirk Longhua,
Shenzhen, Provinz Guangdong, China