Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

GPS-Datenlogger, räumliche Analyse und Azure IoT Hub.

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Raspberry Pi 2 Model B
× 1
Adafruit Ultimate GPS Breakout
× 1
9V zu Barrel Jack Connector
× 1
9-V-Batterie (generisch)
× 1
Fotowiderstand
× 1
LED (generisch)
3 Klar, 1 Rot, 1 Gelb und 1 Grün
× 6
SparkFun Drucktastenschalter 12 mm
× 2
Schiebeschalter
× 3
Widerstand 10k Ohm
× 4
Widerstand 221 Ohm
× 3
Lötbares Breadboard Half Size
× 1
Lötfreies Steckbrett in voller Größe
× 1
Jumper (generisch)
× 1
Sandisk 16GB MicroSD mit Adapter
× 2

Apps und Onlinedienste

Microsoft Windows 10 IoT Core
Microsoft Azure
Arduino-IDE
Microsoft Visual Studio 2015
Google Earth Professional
Quantum GIS
Microsoft Windows 10 Enterprise

Über dieses Projekt

Einführung

Die aktuelle Mobiltechnologie ist mit GIS-Informationskarten, die auf fast jedem Gerätetyp verfügbar sind, sehr fortschrittlich und einfach zu verwenden. Dieses Projekt kann zu einer Unterrichtsaktivität gemacht werden, bei der Kindern die Grundlagen von Open-Source-Hardware, mobilem Computing, Geodatentechnologien und Cloud-Computing vermittelt werden.

Dieses Projekt besteht aus 3 Teilen: 

1) Arduino GPS-Datenlogger

Mit Hilfe könnten kleine Kinder ein Gerät bauen, das GPS-Standortinformationen, Lichtmessungen und die Art der georteten Dinge aufzeichnet. Sie könnten ins Freie gehen und die Standorte von vorher festgelegten Dingen markieren (Schilder, Bäume, Parkbänke usw.). Dies ermöglicht ein besseres Verständnis der Welt um sie herum und eine bessere Einschätzung der auf GIS-Karten angezeigten Daten. Niedrige Lichtverhältnisse in der Nacht in öffentlichen Bereichen können ein Sicherheitsrisiko darstellen. In Begleitung eines Erwachsenen konnten sie nachts ausgehen, um Lichtmessungen zur weiteren Analyse zu sammeln.

2) GIS-Visualisierung und -Analyse

Visualisieren Sie den im Feld erfassten Standort auf einer Karte. Schätzen Sie die Lichtstärke für einen Bereich, indem Sie eine räumliche Punktinterpolationsanalyse durchführen und die Ergebnisse auf einer Karte anzeigen.

3) Verwenden von Windows 10 IoT Core und Azure IoT Hub

Nachdem Sie die GIS-Visualisierung und -Analyse durchgeführt haben, verwenden Sie Windows 10 IoT Core und Azure IoT Hub, um die Daten hochzuladen und zu verteilen. Dadurch kann das System problemlos skaliert werden, um das Datenmanagement auf Tausenden von Datensammlern und Geräten im Feld zu unterstützen.

Arduino GPS-Datenlogger

Das folgende Video gibt einen Überblick über das Arduino Uno GPS Datalogger-Gerät und eine kurze Demonstration. Quellcode und Steckbrettdiagramm finden Sie unten.

Hier noch ein paar Informationen zu den Komponenten.

Fotowiderstand

Diese analogen Sensoren messen die Helligkeit des Lichts und sind sehr einfach zu bedienen. Siehe und Beispiel mit Quellcode hier. Der analoge Messwert misst 0 - 1023, aber die meisten Messwerte liegen unter 200, es sei denn, das Licht ist sehr hell. Probieren Sie beim Bau Ihres Geräts einige Lichtmessungen aus, damit Sie wissen, was Sie erwartet.

Ex. helles Sonnenlicht ist ungefähr 1000, tagsüber im Freien ungefähr 900 und nachts direkt unter einer Straßenlaterne ungefähr 170.

Micro-SD-Steckplatz

Ein gutes Beispiel finden Sie in der Arduino IDE unter Datei> Beispiele> SD> Datenlogger.

Adafruit Ultimate GPS

Einfach zu bedienendes GPS. Folgen Sie den Beispielen hier, um die GPS-Bibliotheken in Ihrer Arduino-IDE zu installieren.

Satelliten-Fix-Status-LEDs

Die horizontale Präzisionsverdünnung (HDOP) ist eine Messung der X,Y-Positionsgenauigkeit, die vom GPS kommt. Je niedriger der HDOP-Wert, desto genauer die Position. Wenn das GPS einen Fix hat, gibt es den HDOP-Wert mit der Breiten- und Längengradposition zurück. Weitere Informationen zur GPS-Dilution of Precision finden Sie hier.

  • Rot – Kein Satelliten-Fix
  • Gelb – Satellitenfix mit HDOP> 1.5.
  • Grün – Satellitenfixierung mit HDOP <= 1.5.

Schiebeschalter für binäre Funktionen

Drei Schiebeschalter werden für die binäre Darstellung der Basis 10 0 - 7 verwendet.  Der Schalter ganz links steht für 2^2 oder 4.  Der mittlere Schalter steht für 2^1 oder 2.  Der Schalter ganz rechts steht für 2^0 oder 1. Auf dem Schalterstatus wird die Zahl 0 – 7 zur Basis 10 angezeigt, die dem Typ des erfassten Merkmals entspricht. Im Idealfall würde die Person, die den Arduino GPS Datalogger verwendet, verstehen, was der Code bedeutet.

Zum Beispiel:

OFF OFF OFF =0 0 0 =0 =Lichtsensor ReadingOFF OFF ON =0 0 1 =1 =ParkbankOFF ON OFF =0 1 0 =2 =RockOFF ON ON =0 1 1 =3 =Müll CanON OFF OFF =1 0 0 =4 =TreeON OFF ON =1 0 1 =5 =MünztelefonON ON OFF =1 1 0 =6 =LaternenpfahlON ON ON =1 1 1 =7 =Wasserfontäne 

Schaltfläche 

Jedes Mal, wenn die Taste gedrückt wird, hängt das Gerät eine Zeile mit durch Kommas getrennten Werten (CSV) an datalog.csv auf der microSD-Karte an.

Die Daten haben das Format:

LATITUDE,LONGITUDE,LIGHT_VALUE,FEATURE_TYPE

  • BREITE und LÄNGE  kommen vom GPS.
  • LIGHT_VALUE  ist der analoge Messwert vom Fotowiderstand.
  • FEATURE_TYPE  ist der Wert 0 - 7 abhängig von den Ein/Aus-Einstellungen der 3 oben beschriebenen Binärschalter.

CSV-Datenbeispiel:

40.77221,-73.97392,105,540.77139,-73.97394,60,140.77051,-73.97460,150,640.77225,-73.97650,25,340.77171,-73.97462,43,240.77283,-73.975033,54,1 

Kein LCD-Display?

Die mehreren LEDs hätten durch einen 1602-LCD-Bildschirm und einige weitere Tasten ersetzt werden können, aber es gab Probleme.

  • Der Code für das GPS, den microSD-Kartensteckplatz und ein 1602-LCD würde kompilieren und auf dem Arduino Uno bereitgestellt werden, aber der microSD-Kartensteckplatz war nicht stabil. Das Entfernen des LCD stabilisierte den microSD-Kartensteckplatz, sodass LEDs hinzugefügt wurden, um eine ausreichende Benutzerbenachrichtigung bereitzustellen. Die Verwendung eines Arduino-Geräts mit mehr Ressourcen wie dem MEGA würde wahrscheinlich ein 1602-LCD zusammen mit dem GPS- und microSD-Kartensteckplatz ermöglichen.
  • Die 9-V-Batterie ist für den Arduino GPS-Datenlogger praktisch, aber die Batterie hält nicht lange, wenn das 1602-LCD-Display mit Strom versorgt wird. Es war keine kritische Komponente, also musste es verschwinden.

GIS-Visualisierung und -Analyse

Visualisierung der GPS-Punkte

GIS-Daten im CSV-Format zu haben ist großartig, aber nicht sehr nützlich, es sei denn, Sie können sie auf einer Karte sehen. Werfen Sie die microSD-Karte aus dem Arduino GPS Datalogger aus und stecken Sie sie in einen Windows 10-Computer mit installiertem Google Earth Professional ein. Hier finden Sie Anweisungen zur Installation und Lizenzierung. Kopieren Sie die Textdatei von der microSD-Karte auf den Computer und öffnen Sie sie in einem Texteditor. Fügen Sie die folgende Zeile als Spaltenüberschrift am Anfang der Textdatei hinzu und speichern Sie sie als .CSV-Datei.

LATITUDE,LONGITUDE,LIGHT_VALUE,FEATURE_TYPE

Rufen Sie in Google Earth Professional das Menü Datei auf und wählen Sie Importieren...  Suchen Sie nach der CSV-Datei und importieren Sie sie. Gehen Sie die Optionen durch, um verschiedene Kartenstile für die Symbole zu erstellen, die die verschiedenen Objekttypen darstellen, und zeigen Sie die Punktpositionen in Google Earth Professional an. Es muss die Professional-Version von Google Earth verwendet werden. Die reguläre Version von Google Earth kann keine CSV-Datei importieren.

Raumanalyse mit Quanten-GIS (QGIS)

QGIS ist ein beliebtes kostenloses Open-Source-GIS mit dem hier verfügbaren Installationsprogramm und Tutorials. Mit QGIS können Sie eine räumliche Analyse des Lichtsensorattributs für den GPS-Standort durchführen, um Bereiche mit ausreichender und unzureichender Beleuchtung nachts in einem öffentlichen Bereich wie einem Park zu identifizieren.

Schritt 1 – Laden Sie die Begrenzung, Wanderwege und andere relevante Informationen über den Bereich, der auf unzureichende Beleuchtung untersucht wird.

Schritt 2 - Laden Sie die Punkte aus der .CSV-Datei vom GPS Datalogger in die QGIS-Karte. Wenden Sie die Punktsymbologie und die Beschriftungen an, damit Sie die Lichtwerte visuell sehen können.

Die Punkte zeigen die Lichtsensorwerte an, sodass Sie sehen können, wo hell (blau) und wo dunkel (rot) ist. Es reicht nicht aus, nur die Punktdaten anzuzeigen, wenn Sie versuchen, den größeren Bereich zu analysieren.

Schritt 3 - Führen Sie eine Interpolation der Punktdaten durch, um ein besseres Verständnis der Umgebung und zwischen den Punkten zu erhalten. Die Interpolation wird verwendet, wenn Sie Daten für bestimmte Standorte haben und die Werte zwischen den bekannten Standorten schätzen möchten. Mehr Informationen zur Interpolation hier.

Die Interpolation liefert ein besseres Bild der Lichtwerte innerhalb des Parks. Diese Analyse kann verbessert werden, indem mehr Lichtsensormesswerte an bekannten Orten bereitgestellt werden.

Schritt 4 - Sammeln Sie weitere Lichtsensormesswerte und laden Sie sie in QGIS.

Schritt 5 – Führen Sie die Interpolation für den größeren Datensatz erneut aus.

Sie können sehen, dass die zweite Interpolation ein ähnliches Muster wie die erste Interpolation zeigt, aber aufgrund der zusätzlichen Punkte mehr Details enthält.

Verwenden von Windows 10 IoT Core und Azure IoT Hub.

Skalieren

Der Arduino GPS Datalogger ist ein billiges und einfaches Gerät, das Sensorinformationen auf einer microSD-Karte aufzeichnen kann. Diese Geräte könnten geografisch weit verteilt sein, um Informationen zu sammeln. Die Verwaltung der von diesen Geräten kommenden Informationen kann eine schwierige Aufgabe sein, wenn Sie dafür ein System entwickeln müssen.

Durch die Verwendung von Windows 10 IoT Core und Azure IoT Hub als Grundlage eines Messagingsystems könnte die Anzahl der Geräte problemlos auf Tausende von Geräten skaliert werden, die Informationen bereitstellen.

Versuchen Sie zuerst diese Beispiele

Bevor Sie fortfahren, wird dringend empfohlen, das Tutorial Erste Schritte mit Azure IoT Hub für .NET zu befolgen. Das Tutorial für die ersten Schritte führt Sie durch die Schritte zum Erstellen eines Azure-Testkontos, Einrichten eines Azure IoT Hub und Entwickeln der Kernbeispiele, mit denen Sie IoT Hub-Nachrichten senden und empfangen können.

Laden Sie auch den Azure IoT Hub-Geräte-Explorer für die einfache Verwaltung der Windows 10 IoT Core-Geräte herunter, die eine Verbindung zu Ihrem Azure IoT Hub herstellen. Laden Sie die Quelle und/oder das Installationsprogramm von hier herunter.

Windows 10 IOT Core auf Raspberry Pi 2

Laden Sie auf einem Windows 10-Entwicklungscomputer den Windows 10 IoT Core für Raspberry Pi 2 herunter und flashen Sie eine micoSD-Karte mit dem Windows IoT Image Helper.

Hängen Sie die microSD-Karte in den Raspberry Pi 2 ein, schließen Sie sie an das Ethernet an und vergewissern Sie sich, dass sie beim Hochfahren im Windows IoT Core Watcher auf dem Entwicklungscomputer aufgeführt ist.

Schließen Sie eine Taste auf einem Steckbrett an, wie in der Abbildung unten gezeigt. Siehe Schema unten auf dieser Seite. Links zum folgenden Quellcode finden Sie auch am Ende dieser Seite.

Universelle Windows-Anwendung zum Hochladen von Daten 

Starten Sie Visual Studio 2015 auf einem Windows 10-Computer und wählen Sie Datei> Neu> Projekt. Wählen Sie die leere App-Vorlage für die universelle Windows-Anwendung. Rufen Sie das neue Projekt IoTHubClientSendEvent auf. Bringen Sie mit Nuget Microsoft.Azure.Devices.Client und Newtonsoft.Json ein. Fügen Sie auch eine Referenz für die Windows IoT-Erweiterungen für die UWP hinzu, um Zugriff auf den GPIO auf dem Raspberry Pi2 zu erhalten.

Sobald Visual Studio bereit ist, fügen Sie die folgenden using-Anweisungen oben auf der Seite Mainpage.xaml.cs hinzu, um die erforderlichen Bibliotheken einzufügen, um mit Azure zu kommunizieren und mit den GPIO-Pins zu kommunizieren:

mit Windows.Devices.Gpio;mit Newtonsoft.Json;mit Microsoft.Azure.Devices.Client;mit System.Text; 

Fügen Sie der MainPage-Klasse die folgenden Variablen und Konstanten hinzu. Der Wert deviceId sollte der Name des Geräts sein, das im Azure IoT Hub-Geräte-Explorer konfiguriert wurde.

privat const int buttonPin =6;privater GpioPin buttonGPIO; static DeviceClient deviceClient;statischer String deviceId ="MakerChallengeDevice2";statischer String uploadFile ="data.csv"; 

Fügen Sie eine evData-Klasse für die JSON-Serialisierung hinzu und fügen Sie sie auch der MainPage-Klasse hinzu.

 class evData { public string id { get; einstellen; } öffentliche Zeichenfolgendaten { erhalten; einstellen; } } 

Fügen Sie diese 2 Zeilen der MainPage-Funktion hinzu. Holen Sie sich den Wert für die

DEVICE_CONNECTION_STRING aus dem Azure IoT Hub-Geräte-Explorer wie oben beschrieben.

deviceClient =DeviceClient.CreateFromConnectionString("DEVICE_CONNECTION_STRING", TransportType.Http1);initGPIO(); 

Fügen Sie eine Funktion zum Initialisieren des GPIO hinzu

privat void initGPIO(){ var gpio =GpioController.GetDefault(); buttonGPIO =gpio.OpenPin(buttonPin); // Prüfen, ob Eingangs-Pull-Up-Widerstände unterstützt werden if (buttonGPIO.IsDriveModeSupported(GpioPinDriveMode.InputPullUp)) buttonGPIO.SetDriveMode(GpioPinDriveMode.InputPullUp); sonst buttonGPIO.SetDriveMode(GpioPinDriveMode.Input); // Legen Sie ein Entprell-Timeout fest, um Schalter-Bounce-Rauschen von einem Knopfdruck herauszufilternGPIO.DebounceTimeout =TimeSpan.FromMilliseconds(50); // Registrieren für das ValueChanged-Ereignis, damit unsere buttonPin_ValueChanged // Funktion aufgerufen wird, wenn die Schaltfläche gedrückt wird buttonGPIO.ValueChanged +=buttonPin_ValueChanged; } 

Fügen Sie als Nächstes eine Funktion zum Aufrufen des Button-Klick-Handlers hinzu.

private void buttonPin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs e) { // eine Nachricht senden, wenn die Schaltflächen gedrückt werden if (e.Edge ==GpioPinEdge.FallingEdge) { sendMessageToIOTHub(); } } 

Fügen Sie die eigentliche Funktion sendMessagetoIOTHub() hinzu, um eine Nachricht an Azure IoT Hub zu senden.

 privat statisch asynchron void sendMessageToIOTHub() { string myString; var msg =new evData(); if (File.Exists(uploadFile)) { myString =System.IO.File.ReadAllText(uploadFile); } else { myString ="Einchecken nur!!"; } msg.id =Geräte-ID; msg.data =myString; var messageString =JsonConvert.SerializeObject(msg); var Nachricht =neue Nachricht (Encoding.ASCII.GetBytes(messageString)); wait deviceClient.SendEventAsync(Nachricht); } 

Kompilieren Sie die Lösung für das standardmäßige Debug x86, um sicherzustellen, dass es funktioniert. Ändern Sie als Nächstes das Ziel in Release ARM und wählen Sie Remote Machine.

Wenn sich das Windows 10 IOT Core-Gerät im Netzwerk befindet, wird es von Visual Studio 2015 angezeigt und Sie können es als Bereitstellungsziel festlegen.

Kurztipp:

Bevor Sie die Anwendung in Windows IOT Core bereitstellen, klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften. Klicken Sie im Anwendungsbereich auf die Schaltfläche Paketmanifest. Klicken Sie auf den Tab "Verpackung" und ändern Sie den Paketnamen in einen bestimmten Namen (z. B. IoTHubClientSendEvent ). Wenn Sie dies nicht tun, wird es schwierig, Ihre Anwendung in der Windows 10 IOT Core-Weboberfläche zu identifizieren.

Gehen Sie nun zum Menü Build und wählen Sie Lösung bereitstellen. Suchen Sie nach Abschluss der Bereitstellung die Windows 10 IOT Core-Geräte im Windows IOT Core Watcher. Klicken Sie mit der rechten Maustaste auf die Zeile und wählen Sie Webbrowser hier. Melden Sie sich mit dem lokalen Administratorbenutzer an und klicken Sie links auf den Link Apps. Wählen Sie den Namen der gerade bereitgestellten Anwendung aus der Dropdown-Liste Installierte Apps aus und klicken Sie auf Start.

Belassen wir dies vorerst und entwickeln die Anwendung zur Überwachung des IoT Hub.

Universelle Windows-Anwendung zum Empfangen von Nachrichten vom Azure IOT Hub

Starten Sie Visual Studio 2015 unter Windows 10 und erstellen Sie eine neue C#-Windows-Konsolenanwendung. Benennen Sie das Projekt IoTEventHubReceiver . Fügen Sie mit Nuget WindowsAzure.ServiceBus hinzu und Newtonsoft.Json .

Fügen Sie am Anfang der Datei Program.cs die folgenden using-Anweisungen hinzu:

mit System.IO;mit System.Threading;mit Newtonsoft.Json;mit Microsoft.ServiceBus.Messaging; 

Fügen Sie der IoTEventHubReceiver-Klasse eine Klasse für die JSON-Daten hinzu, die nach dem Empfang von Azure IoT Hub deserialisiert werden.

class evData{ public string id { get; einstellen; } öffentliche Zeichenfolgendaten { erhalten; einstellen; }} 

Fügen Sie einige Variablen hinzu, um Nachrichten von Azure IoT Hub zu empfangen. Rufen Sie den Wert für IOT_HUB_CONNECTION_STRING aus dem Azure IoT Hub-Geräte-Manager ab.

statischer String connectionString ="IOT_HUB_CONNECTION_STRING";statischer String iotHubD2cEndpoint ="messages/events";statischer EventHubClient eventHubClient; 

Fügen Sie diese 2 Zeilen in die main()-Funktion ein, um den EventHubClient zu erstellen und den Empfang von Nachrichten zu starten:

eventHubClient =EventHubClient.CreateFromConnectionString(connectionString, iotHubD2cEndpoint);SynchMessages();  

Fügen Sie schließlich die Funktion SynchMessages() hinzu, um die Endlosschleife einzurichten, und die ReceiveMessages, um die Nachrichten zu empfangen und auf der Festplatte zu speichern.

privat statisch asynchron void SynchMessages(){ while (true) { var d2cPartitions =eventHubClient.GetRuntimeInformation().PartitionIds; foreach (String-Partition in d2cPartitions) { ReceiveMessagesFromDeviceAsync(partition); } }}private asynchrone statische Aufgabe ReceiveMessagesFromDeviceAsync(string partition){ var eventHubReceiver =eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow); while (true) { EventData eventData =erwarten eventHubReceiver.ReceiveAsync(); if (eventData ==null) fortfahren; Zeichenfolgendaten =Encoding.UTF8.GetString(eventData.GetBytes()); evData d =JsonConvert.DeserializeObject(data); StreamWriter-Writer =new StreamWriter("c:\\gps\\download\\" + d.id + "." + DateTime.Now.Year + "." + DateTime.Now.Month + "." + DateTime.Now .Tag + "." + DateTime.Now.Hour + "." + DateTime.Now.Minute + "." + DateTime.Now.Second + ".csv"); Writer.Write(d.data); Schriftsteller.Schließen(); Console.WriteLine(string.Format( "Nachricht empfangen von {0}.\n{1}", d.id, d.data)); }} 

Erstellen Sie auf der Entwicklungsarbeitsstation einen Ordner "c:\gps\download", in dem die empfangenen Nachrichten gespeichert werden.

Ausführen der Anwendungen zum Senden und Empfangen von Azure IoT Hub-Nachrichten

Starten Sie den IoTEventHubReceiver Programm auf der Entwicklungs-Workstation und warten Sie, bis der Konsolenbildschirm angezeigt wird. Drücken Sie als Nächstes die mit dem GPIO verbundene Taste auf dem Raspberry Pi 2 mit Windows 10 IoT Core und dem IoTHubClientSendEvent Programm. Durch Drücken des Buttons wird eine Nachricht mit dem Hinweis „Einchecken!“ gesendet. Text an den Azure IoT Event Hub. Die Konsole auf dem Entwicklungscomputer zeigt die folgende Nachricht an, nachdem die Nachricht empfangen wurde.

Nachricht von MakerChallengeDevice2 erhalten. Einfach einchecken! 

Das Senden des Inhalts einer Textdatei als Nachricht ist auch möglich, solange der Text kleiner als 256 KB ist, da dies die aktuelle maximale Nachrichtengröße für Azure Iot Hub ist. Siehe sendMessageToIOTHub() Funktion oben, um zu sehen, wie die Datei gelesen und serialisiert wird, und sehen Sie sich die ReceiveMessagesFromDeviceAsync() an Funktion oben, um zu sehen, wie die Nachricht deserialisiert und in eine Datei geschrieben wird.

Derzeit erlaubt Windows 10 IoT Core keinen Dateizugriff auf absolute Pfade durch Code, aber nach langer Fehlerbehebung habe ich festgestellt, dass es auf eine Datei im selben Verzeichnis wie die ausführbare Datei verweisen kann. Im Allgemeinen ist dies nicht die beste Vorgehensweise, aber es funktioniert. Um die Textdatei im App-Ordner zu platzieren, klicken Sie mit der rechten Maustaste auf das Gerät im Windows 10 IoT Core Watcher und wählen Sie Netzwerkfreigabe öffnen. Authentifizieren Sie sich mit dem lokalen Administratorbenutzer und navigieren Sie zu:

c$\Data\Users\DefaultAccount\AppxLayouts

Suchen Sie nach einem Ordner mit dem Namen Ihrer bereitgestellten Anwendung und legen Sie eine Textdatei darin ab, die von der ausführbaren Datei gelesen werden kann. Für dieses Beispiel muss die Textdatei data.csv heißen und muss kleiner als 256 KB sein. Ein gutes Beispiel ist eine CSV-Datei, die Breitengrad, Längengrad, Lichtsensormesswerte und den Merkmalstyp auflistet. Klicken Sie auf die Schaltfläche, die mit dem Raspberry Pi2 GPIO verbunden ist, und die Konsole zeigt Folgendes an:

Nachricht empfangen von MakerChallengeDevice2.LAT,LNG,LT,TYP45.45926,-110.57361,45,645.78546,-110.02487,156,3 

Erweiterung des Datei-Uploads:Wenn Sie die ersten Schritte mit Azure IoT Hub für .NET-Beispiele befolgen, finden Sie im Abschnitt „Nächste Schritte“ ein Beispiel zum Hochladen von Dateien in Azure Blob Storage.

Zusammenfassung

Dieses Projekt zeigt, wie Sie einen einfachen Arduino GPS-Datenlogger erstellen können, um Informationen aufzuzeichnen, die gesammelten Daten zu analysieren und die Cloud zum Verwalten der gesammelten Informationen zu verwenden. Es gibt viele Erweiterungspunkte für dieses Projekt, wie zum Beispiel:

  • Aufzeichnen von Informationen von verschiedenen Sensortypen auf dem Arduino GPS Datalogger.
  • Laden Sie die Informationen über WIFI, Bluetooth oder Mobilfunk direkt vom Arduino-Gerät in Azure hoch.
  • Führen Sie verschiedene Arten von räumlichen Analysen durch, um besser gerüstet zu sein, um Entscheidungen über die Umgebung zu treffen.
  • Entwickeln Sie eine Mapping-Webanwendung, um die Rohdaten oder analysierten Informationen anzuzeigen.
  • Verwenden Sie EventProcessors in Azure Stream Analystics, um auf die Daten zu reagieren, die vom IoT Hub empfangen werden.

Code

Arduino GPS-Datenlogger
Skizze und Schaltplan für Arduino GPS Datalogger.https://github.com/ShawnCruise/ArduinoGPSDataLogger
Azure IoT Hub-Beispiel
Universelle Windows-Anwendung zur Bereitstellung auf Windows 10 IoT Core zum Senden von Nachrichten an Azure Iot Hub.https://github.com/ShawnCruise/AzureIotHubExample
Azure-SDK
Holen Sie sich den Azure IoT-Geräte-Explorer von hier.https://github.com/Azure/azure-iot-sdks/blob/master/tools/DeviceExplorer/doc/how_to_use_device_explorer.md
Windows 10 IoT Core-Beispiele
Beispiele für die Bereitstellung auf Windows 10 IoT Core.https://github.com/ms-iot/samples

Schaltpläne

GPSDataLogger.fzz RPi2%20IOT%20Core.fzz

Herstellungsprozess

  1. Avnet Silica demonstriert KI- und IoT-Technologien auf der Embedded World 2019
  2. Windows 10 IoT Core und SHT15
  3. Temperatur- und Feuchtigkeitsdatenlogger
  4. IOT - Smart Jar mit ESP8266, Arduino und Ultraschallsensor
  5. Alles Gute zum Geburtstag:Lichter und Klänge
  6. u-blox LEA-6H 02 GPS-Modul mit Arduino und Python
  7. Volle Kontrolle über Ihren Fernseher mit Alexa und Arduino IoT Cloud
  8. Guitar Speed ​​Pick and Stomp Pedal!
  9. Azure IoT Swimming Pool
  10. Leitfaden zu PCBs und IoT