Inhaltsverzeichnis:

Einfaches Remote-Datenplotten mit Android / Arduino / PfodApp - Gunook
Einfaches Remote-Datenplotten mit Android / Arduino / PfodApp - Gunook

Video: Einfaches Remote-Datenplotten mit Android / Arduino / PfodApp - Gunook

Video: Einfaches Remote-Datenplotten mit Android / Arduino / PfodApp - Gunook
Video: Kivy und Arduino - Robotersteuerung mit dem Smartphone 2024, November
Anonim
Einfaches Remote-Datenplotten mit Android / Arduino / PfodApp
Einfaches Remote-Datenplotten mit Android / Arduino / PfodApp

Für das Plotten von Daten gegen Datum / Uhrzeit mit nur Arduinos millis () siehe diese InstructableArduino Datum / Uhrzeit Plotten / Protokollieren mit Millis () und PfodApp

Dieses Instructable zeigt Ihnen, wie Sie Arduino-Sensordaten auf Ihrem Android-Handy zeichnen und zum späteren Herunterladen auf Ihren Computer erfassen. Diese Anweisungen sind auch unter www.pfod.com.au erhältlich. Es ist keine Android-Programmierung erforderlich und es wird nur sehr wenig Arduino-Programmierung benötigt. Es ist eine Erweiterung von Simple Mobile Data Logging mit pfodApp

Schritt 1: Schnellstart-Plotten

Schnellstart-Plotting
Schnellstart-Plotting

a) Holen Sie sich ein Arduino-Board und ein Bluetooth-Modul (wie Uno und Bluetooth Shield oder FioV3 + Bluetooth) b) Installieren Sie Arduino IDE c) Verbinden Sie das Arduino-Board (kein Bluetooth-Modul angeschlossen) mit einem USB-Kabel. d) Kopieren Sie diese Skizze in die Arduino IDE und kompilieren und laden Sie sie in das Arduino-Board) e) Schließen Sie das Bluetooth Shield-Modul an den Uno an (Das Bluetooth Shield ist für 9600 Baud vorkonfiguriert, ABER stellen Sie den 3V / 5V-Schalter auf 5V und stellen Sie ein Stellen Sie den Schalter To Board/To FT232 in die Position To Board f) Laden Sie Ihr Android Mobile mit pfodApp. g) Stellen Sie eine Verbindung zwischen Ihrem Handy und dem Bluetooth-Modul her, wie in pfodAppForAndroidGettingStarted.pdf beschrieben. h) Starten Sie die pfodApp und verbinden Sie sich über das Bluetooth-Modul mit Ihrem Arduino-Board. ich beendete. Ihr Handy speichert und zeichnet jetzt die Arduino AtoD-Konverterzählungen für den Eingang A0

Schritt 2: Die Plotterskizze

Die Plotterskizze
Die Plotterskizze

Das Plotten mit pfodApp erfordert zwei Dinge: a) einen Datenstrom (im CSV-Format) und b) einen Plotbefehl vom pfodDevice (Arduino) Die Skizze SimpleDataPlotting.ino macht nur zwei Dinge. Zuerst liest es den A0-Analogeingang einmal pro Sekunde und sendet die aktuellen Sekunden und die Zähler im CSV-Format aus. Hier ist der Code, der einmal pro Sekunde ausgeführt wird, um den A0-Analogeingang zu lesen und die aktuellen Sekunden zu schreiben, zählt zur Bluetooth-Verbindung. // A0 einmal pro Sekunde lesen Int val = analogRead (0); // A0 // aktuelle Uhrzeit ausgeben und im CSV-Format lesen parser.print(thisMillis/1000); // erstes Feld ist die Zeit in Sekunden parser.print(", "); // Komma trennt Felder parser.println(val); // neue Zeile beendet Datensatz

Hier ist der Code, der auf die pfodApp-Anfrage für das Hauptmenü von pfodDevice (Arduino Uno) antwortet.

Byte cmd = parser.parse(); if (cmd != 0) { // habe eine komplette msg geparst { to } if ('.' == cmd) { // pfodApp hat nach dem Hauptmenü gefragt // "open plotting screen" zurücksenden parser.print(F ("{=Analog A0 Plot|Time(sec)|Counts}")); // Dies ist das Hauptmenü } else if ('!' == cmd) { // CloseConnection-Befehl closeConnection(parser.getPfodAppStream()); } else { // unbekannter Befehl parser.print (F ("{}")); // Sende immer eine pfod-Nachricht zurück, sonst wird die pfodApp getrennt. } }

Wenn die pfodApp Ihres Handys eine Verbindung herstellt, fragt sie automatisch nach dem Hauptmenü (durch Senden der {.}-Nachricht), der Parser in der Skizze (siehe den Code am Ende der Skizze) analysiert die {.} und gibt das '.' zurück. Befehl. Die Skizze sendet dann einen Plotbefehl zurück {=Analog A0 Plot|Time(sec)|A0 Counts} Dieser Befehl weist die pfodApp an, einen Bildschirm namens „Analog A0 Plot“zu öffnen und die Zeit gegen die Zähler zu zeichnen. Die pfodApp scannt dann die eingehenden Rohdaten und sucht nach Linien mit zwei Feldern und nimmt das erste Feld als x-Wert und das zweite als y-Wert und fügt diesen Punkt dem Diagramm hinzu. Immer wenn ein Plotterbildschirm (oder ein Rohdatenbildschirm) geöffnet wird, beginnt die pfodApp, alle Rohdaten in einer lokalen Datei auf Ihrem Handy zu speichern. Die pfodApp speichert die Daten weiter, bis Sie die pfodApp beenden. Sie können diese Datei zur weiteren Verarbeitung auf Ihren Computer herunterladen (siehe einen der späteren Schritte). Es gibt eine Reihe weiterer Optionen für den Plot-Befehl, die es Ihnen ermöglichen, einige Felder zu ignorieren, Plot-Maßstäbe festzulegen, mehrere Plots auf einem Diagramm zu zeichnen usw. Siehe die pfod-Spezifikation für Details und Beispiele. Die pfodApp kann viel mehr als nur Plotten, siehe diese Beispiele. Das obige Diagramm ist ein Beispiel für zwei Diagramme, von denen eines zwei Diagramme enthält. Dieses Grundstück ist von ArduMower Do it yourself Robotermäher! die dieselbe pfodApp verwendet, um einen Robotermäher zu steuern. Die gleiche pfodApp wird verwendet, um alle pfodDevices zu steuern. Es sind die pfodDevices, die vollständig bestimmen, welche Bildschirme den Benutzern angezeigt werden.

Schritt 3: Mehr Details

Mehr Details
Mehr Details
Mehr Details
Mehr Details

Die neueste Version von pfodApp, die vom Android Market erhältlich ist, ermöglicht es, Rohdaten, die von einem pfodDevice (z. Informationen zum Herunterladen der Datei von Ihrem Android-Handy auf Ihren Computer finden Sie in der Datei pfodAppForAndroidGettingStarted.pdf. Plotten erfordert zwei Dinge: a) einen Datenstrom (im CSV-Format) und b) einen Plotbefehl vom pfodDevice Ihr pfodDevice (Arduino) kann jede Art von Daten außerhalb von pfod-Nachrichten senden. pfod-Nachrichten, die von { } eingeschlossen sind, was sie von anderen Daten unterscheidet. Wenn Sie Daten plotten möchten, müssen Sie die Daten im CSV-Format senden. Das sind Datenwerte, die durch Kommas getrennt sind und durch einen Zeilenumbruch abgeschlossen werden (entweder CR oder LF oder CR LF). Zum Beispiel105, 680 Wenn das pfodDevice dem Benutzer einen Plot anzeigen möchte, sendet das pfodDevice einen Plot-Befehl. Ihre Arduino-Skizze hat die vollständige Kontrolle über die Plots von pfodApp. Der Plot-Befehl gibt dem Plot-Bildschirm einen Titel und gibt an, welcher Rohdaten-Stream und welche Felder aus diesem Stream geplottet werden sollen. Unterschiedliche Rohdatenströme haben unterschiedliche Anzahlen von durch Kommas getrennten Feldern. Die Anzahl der Balken | im Plot-Befehl muss mit der Anzahl der Felder im Datenstrom übereinstimmen, die Sie plotten möchten. Datenzeilen mit einer anderen Anzahl von Feldern werden für diesen Plot ignoriert. Es gibt eine Reihe von Optionen für den Plottbefehl, um die zu plottenden Felder auszuwählen, Skalen und Einheiten einzustellen und mehrere Plots auf einem Diagramm zu platzieren. Am einfachsten ist es, die x-Werte als erstes Feld und die y-Werte als die folgenden Felder zu senden, dann im Plot-Befehlsnamen die x-Achse und y-Achse z. B. {=Analog A0 Plot | Zeit(s) | A0 zählt } Plottitel | x Wertefeld | y-Wertefeld Sie können auch die Rohdaten anzeigen, die an Ihr Mobiltelefon gesendet werden. Auf den Bildschirm "Rohdaten" kann über das Menü Ihres Mobiltelefons von pfodApp zugegriffen werden oder er kann geöffnet werden, indem das pfodDevice eine streamingRawData-Nachricht sendet, {=Title Of the Screen Goes Here}, d. h. eine abgeschnittene Version des Plotting-Befehls. In beiden Fällen wird der pfodApp-Rohdatenbildschirm geöffnet und zeigt die Daten an, die vom pfodDevice gesendet wurden. Wenn der Bildschirm geöffnet wird, beginnt pfodApp, die Daten in einer Datei zu speichern. Der Name der Datei wird jedes Mal angezeigt, wenn der Bildschirm (oder ein Plotterbildschirm) geöffnet wird. Um zu verhindern, dass sich Ihr Handy mit ungewünschten Daten füllt, beginnt pfodApp nicht mit dem Schreiben von Daten auf die SD-Karte des Handys, bis der Rohdaten- oder Plotbildschirm nach jeder neuen Verbindung zum ersten Mal geöffnet wird. Beim ersten Öffnen des Rohdatenbildschirms nach einer neuen Verbindung werden beim Öffnen bis zu 4 KB zuvor empfangener Daten (seit dem Herstellen der Verbindung) in die Datei geschrieben. Diese Daten stehen auch für das Diagramm zur Verfügung. In den meisten Fällen bedeutet dies, dass alle gesendeten Rohdaten seit dem Verbindungsaufbau gespeichert werden. Beim Schließen der Verbindung werden die letzten Daten geschrieben und die Datei geschlossen. Wenn die Datei bereits von einer vorherigen Verbindung existiert, wird sie von jeder nachfolgenden Verbindung angehängt. Sie können die Datei von Ihrem Computer herunterladen und löschen. Informationen zum Zugriff auf die Datei von Ihrem Computer aus finden Sie in der Datei pfodAppForAndroidGettingStarted.pdf.

Schritt 4: Testen mit dem SerialMonitor

Testen mit dem SerialMonitor
Testen mit dem SerialMonitor
Testen mit dem SerialMonitor
Testen mit dem SerialMonitor

Bevor Sie sich über Bluetooth verbinden, können Sie die Skizze mit dem Arduino IDE SerialMonitor testen. Entfernen Sie zuerst die Bluetooth-Platine, da sie die gleichen TX / RX-Anschlüsse wie die USB-Programmierung und die serielle Monitorverbindung verwendet, und kopieren Sie die Skizze (SimpleDataPlotting.ino) und fügen Sie sie in die Arduino-IDE ein und programmieren Sie die Arduino-Platine. Öffnen Sie dann den Arduino IDE SerialMonitor. Sie können die vom Uno-Board gesendeten Daten sehen. Geben Sie dann {.} ein und klicken Sie auf "Senden", um den Befehl getMainMenu zu senden. {.} Dies wird die pfodApp zuerst senden, wenn sie eine Verbindung herstellt. Die Skizze antwortet mit dem Befehl Plotten. {=Analog A0 Plot|Time(sec)|A0 Counts}, wodurch die pfodApp aufgefordert wird, einen Plotterbildschirm zu öffnen und mit dem Plotten der Daten zu beginnen. Dadurch wird auch das Speichern der Daten in einer Datei gestartet. In der pfodSpecification finden Sie Details zu allen Meldungen und Bildschirmen, die pfod (Protocol for Operation Discovery) unterstützt.

Schritt 5: Verbinden mit einem Android-Handy

Verbinden mit einem Android-Handy
Verbinden mit einem Android-Handy
Verbinden mit einem Android-Handy
Verbinden mit einem Android-Handy

Alles ist gut, so dass Sie jetzt die Arduino IDE und den SerialMonitor schließen und das Bluetooth-Shield anbringen können, wie zuvor gezeigt. Um eine Verbindung mit Ihrem Android-Handy herzustellen, installieren Sie zuerst pfodApp von Android Market und folgen Sie dann der Anleitung pfodAppForAndroidGettingStarted.pdf, um Ihr Bluetooth-Shield mit Ihrem Handy zu koppeln und eine Bluetooth-PfodApp-Verbindung einzurichten. Ich habe meinen Anschluss „Simple Data Logging“genannt. Wählen Sie dann die Verbindung „Simple Data Logging“aus, um sich mit dem einfachen Datenlogger zu verbinden. Sobald pfodApp eine Verbindung herstellt, sendet es die {.}-Nachricht, auf die der Sketch mit der Nachricht {=Analog A0 Plot|Time(sec)|A0 Counts} antwortet, die der pfodApp mitteilt, die Daten zu zeichnen und auch mit dem Speichern der Daten zu beginnen. In diesem Plot habe ich A0 mit Gnd und 5,5 V und 3,3 V verbunden und es auch schweben gelassen, nur um Rauschen aufzunehmen.

Schritt 6: Übertragen der Daten auf Ihren Computer

Übertragen der Daten auf Ihren Computer
Übertragen der Daten auf Ihren Computer

Die pfodAppForAndroidGettingStarted.pdf beschreibt, wie Sie Ihr Mobiltelefon über USB mit Ihrem Computer verbinden und den USB-Massenspeicher einschalten, damit Sie ihn von Ihrem Computer aus durchsuchen können. Sie finden alle Rohdatendateien im Ordner pfodAppRawData. Wie oben gezeigt, hat der Simple Data Logger die Daten in /pfodAppRawData/Simple Data Logging.txt gespeichert. pfodApp verwendet den Namen der Verbindung als Dateinamen zum Speichern der Daten dass Ihre Daten sowohl gezeichnet als auch gespeichert werden, können Sie die Skizze ändern, um Ihre eigenen Daten zurückzusenden. Schreiben Sie einfach Ihre Daten im CSV-Format auf dieselbe serielle Verbindung, die mit Ihrem Bluetooth-Modul verbunden ist. Wenn Sie mehr als zwei Datenfelder haben, müssen Sie den Plottbefehl ändern. Details und Beispiele finden Sie in der pfodSpezifikation.

Empfohlen: