Inhaltsverzeichnis:

Hochgenaue Datenfernprotokollierung mit Multimeter / Arduino / pfodApp - Gunook
Hochgenaue Datenfernprotokollierung mit Multimeter / Arduino / pfodApp - Gunook

Video: Hochgenaue Datenfernprotokollierung mit Multimeter / Arduino / pfodApp - Gunook

Video: Hochgenaue Datenfernprotokollierung mit Multimeter / Arduino / pfodApp - Gunook
Video: Hochgenaue Bahnkontroll-Funktion 2024, Juli
Anonim
Hochgenaue Datenfernprotokollierung mit Multimeter/Arduino/pfodApp
Hochgenaue Datenfernprotokollierung mit Multimeter/Arduino/pfodApp
Hochgenaue Datenfernprotokollierung mit Multimeter/Arduino/pfodApp
Hochgenaue Datenfernprotokollierung mit Multimeter/Arduino/pfodApp
Hochgenaue Datenfernprotokollierung mit Multimeter/Arduino/pfodApp
Hochgenaue Datenfernprotokollierung mit Multimeter/Arduino/pfodApp

Aktualisiert am 26. April 2017 Überarbeitete Schaltung und Platine für die Verwendung mit 4000ZC USB-Messgeräten.

Keine Android-Codierung erforderlich

Dieses anweisbare zeigt Ihnen, wie Sie von Ihrem Arduino auf eine Vielzahl von hochgenauen Messungen zugreifen und sie auch aus der Ferne zum Protokollieren und Plotten senden können. Für High Speed Data Logging (2000 Samples/sec) siehe diese Anleitung, Remote High Speed Data Logging mit Arduino/GL AR150/Android/pfodApp

Der in die Arduinos eingebaute AtoD-Wandler hat eine schlechte Genauigkeit, typischerweise +/-10% und einen sehr begrenzten Bereich, typischerweise nur 0 bis 5V DC Volt. Mit einer einfachen Schaltung und Bibliothek können Sie Ihr Arduino mit hochpräzisen Auto-Range-Messungen von einem Multimeter mit optisch isolierter RS232-Verbindung versorgen. Wenn Sie die Messungen für Ihre Skizze verfügbar haben, können Sie die Ausgaben basierend auf den Werten steuern. In diesem Tutorial wird auch das Senden der Messung aus der Ferne über WiFi, Bluetooth, Bluetooth Low Energy oder SMS an ein Android-Handy zur Anzeige, Protokollierung und Darstellung mit pfodApp behandelt.

Dieses anweisbare verwendet eine Arduino Mega2560 5V-Platine, die Sie mit einer Vielzahl von Kommunikationsschilden, Ethernet, WiFi, Bluetooth V2 (klassisch), Bluetooth LE oder SMS koppeln können. Die hier vorgestellte Schnittstellenhardware und -bibliothek kann auch mit 3.3V Arduino-kompatiblen Boards verwendet werden. Neben dem Mega2560 können Sie eine Vielzahl anderer Boards wie UNO mit und Ethernet-Shield, ein ESP8266-Basisboard (Standalone), ein Board mit integriertem Bluetooth Low Energy, wie Arduino 101, oder Boards, die sich mit der Kommunikation verbinden Subsystem mit SPI wie RedBear BLE Shield und den Bluefruit SPI-Boards von Adafrut. pfodDesignerV2 unterstützt alle diese Boardkombinationen und generiert den Code dafür. Die einschränkende Bedingung ist, dass Sie eine freie serielle Hardware benötigen, um eine Verbindung zum RS232-Schild dieses Multimeters herzustellen.

Die hier vorgestellte Schaltung und der Code funktionieren mit einer Reihe von Multimetern. Ein leicht verfügbares, kostengünstiges ist ein Tekpower TP4000ZC, auch bekannt als Digitek TD-4000ZC. Zu den Multimetern, die mit dieser Schaltung und Bibliothek arbeiten, gehören Digitek DT-4000ZC, Digitech QM1538, Digitech QM1537, Digitek DT-9062, Digitek INO2513, Digitech QM1462, PeakTech 3330, Tenma 72-7745, Uni-Trend UT30A, Uni-Trend UT30E, Uni -Trend UT60E, Voltcraft VC 820, Voltcraft VC 840

Schritt 1:

Dieses Tutorial besteht aus zwei Teilen:

Der erste Teil behandelt die Hardwareschnittstelle zum Multimeter und die Codebibliothek mit einem Arduino Mega. Wenn Sie nur die Messung in Ihr Arduino übertragen möchten, ist dies alles, was Sie brauchen.

Der zweite Teil behandelt das Senden der Messung an ein entferntes Android-Handy zum Anzeigen, Protokollieren und Plotten. In diesem Beispiel verwenden wir ein Bluetooth-Shield und generieren die Grundskizze mit pfodDesignerV2, Sie können jedoch auch Code für WiFi-, Ethernet-, Bluetooth Low Energy- und SMS-Verbindungen mit pfodDesignerV2 generieren. Die Multimeterbibliothek wird dann der Grundskizze hinzugefügt, um den Code zu vervollständigen. Es ist keine Android-Codierung erforderlich, um den Messwert anzuzeigen, zu protokollieren und zu plotten. Alles wird von Ihrem Arduino-Code gesteuert.

Dieses Projekt ist auch online verfügbar unter www.pfod.com.au

Für eine Remote-Head-up-Anzeige des Multimeters siehe diese anweisbare Arduino-Datenbrille für mein Multimeter von Alain.

Schritt 2: Das Multimeter

Das Multimeter
Das Multimeter

Die in diesem Tutorial verwendeten Multimeter sind das preiswerte (~US40) Tekpower TP4000ZC (auch bekannt als Digitek DT-4000ZC) und das ältere Digitech QM1538, das nicht mehr verkauft wird. Beide Messgeräte sind optisch gleich und verwenden die gleiche RS232-Kodierung der Messung.

Hier die Spezifikationen für den Tekpower TP4000ZC:-DC Spannung: 400mV/4/40/400V ±0,5%+5, 600V ±0,8%AC Spannung: 4/40/400V ±0,8%+5, 400mV/600V ±1,2%+ 5DC Strom: 400/4000μA ±2,0%+5, 40/400mA ±1,5%+5, 4/10A ±2%+5AC Strom: 400/4000μA ±2,5%+3, 40/400mA ±2%+5, 4 /10A ±2,5%+5Widerstand: 400Ω/4/40/400kΩ/4MΩ ±1%+5, 40MΩ ±2%+5Kapazität: 40nF ±3,5%+10, 400nF/4/40μF ±3%+5, 100μF ± 3,5%+5Frequenz: 10Hz-10MHz ±0,1%+5Einschaltdauer: 0,1%-99,9% ±2,5%+5Temperatur: 0oC - +40oC ±3oC, -50oC - +200oC ±0,75% ±3oC, +200oC - +750oC ± 1,5 % ±3 °C, Auflösung 0,1 °C über mitgelieferte Thermoelementsonde.

Die RS232-Verbindung des Multimeters ist nur eine Möglichkeit und Sie können die Einstellungen des Multimeters nicht aus der Ferne ändern, daher müssen Sie die Art der Messung manuell auswählen. Das Messgerät hat jedoch eine automatische Bereichseinstellung und die Spannungs- und Stromeinstellungen verarbeiten sowohl Wechselstrom als auch Gleichstrom.

Schritt 3: Die RS232-Schnittstellenhardware

Die RS232-Schnittstellenhardware
Die RS232-Schnittstellenhardware
Die RS232-Schnittstellenhardware
Die RS232-Schnittstellenhardware
Die RS232-Schnittstellenhardware
Die RS232-Schnittstellenhardware

Es gibt zwei Schnittstellen. Die neueren Messgeräte Digitek DT-4000ZC und Tekpower TP40000ZC werden mit einem USB-Kabel geliefert. Während der ältere Digitek QM1538 mit einem RS232 9-Pin-D-Anschlusskabel geliefert wurde. Die obige Schaltung (PDF-Version) zeigt, wie der Optokoppler des Multimeters angeschlossen wird, um einen seriellen Arduino RX-Pin anzusteuern. Hinweis: Diese Schaltung wurde aktualisiert, um einen weiteren Schutzwiderstand R2 für die Messgeräte Digitek DT-4000ZC und Tekpower TP40000ZC hinzuzufügen. Dieser Widerstand war auf der oben gezeigten 9-Pin-D-Anschlussplatine nicht enthalten.

Digitek DT-4000ZC und Tekpower TP40000ZC

Für den Digitek DT-4000ZC und Tekpower TP40000ZC benötigen Sie ein 3,5-mm-Audiokabel (Stecker auf Stecker, Stereo oder Mono) und eine 3,5-mm-Buchse.

Digitek QM1538

Für den älteren Digitek QM1538 benötigen Sie eine 9-Pin-D-Buchse. Der 9-Pin-D-Anschluss hat versetzte Pins, die nicht in die Prototypenabschirmung stecken. Schneiden Sie einfach die Reihe von 4 Pins ab, damit Sie den Stecker an die Platine löten können, da die Schaltung nur Pins in der zweiten Reihe von 5 Pins verwendet. Die Montagebeine wurden umgebogen, um den Stecker flach aufliegen zu lassen, und der Stecker wurde mit 2-Komponenten-Epoxidkleber ("Araldite") an der Prototypenabschirmung befestigt. Die oben gezeigte Steckerstiftbelegung stammt von dieser Seite. Der 10K-Widerstand, der im Anschluss der mitgelieferten RS232-Kabel montiert ist (zwischen Pin 2 und 3 angeschlossen), wird für dieses Projekt nicht benötigt.

Anschließen des Signals an einen Arduino RX-Pin

Diese Schaltung funktioniert sowohl für 5V- als auch für 3,3V-Arduino-Boards. Hier verwenden wir einen Mega2560 (5V) Arduino und montierten die Schaltung wie oben gezeigt auf einem Prototypenschild.

Ein offenes Kabel wird verwendet, um den TP1 auf der Abschirmung mit einem Serial1 RX, Pin D19, am Mega2560 zu verbinden.

Hinweis zu Software Serial: Anfänglich wurde dieses Shield mit einem UNO unter Verwendung von Software Serial an den Pins 10, 11 gepaart. Beim Pairing mit dem Bluetooth Shield auf Serial bei 9600 Baud gingen jedoch einige Empfangsbytes verloren. Das Verschieben der RS232 zu einer seriellen Hardware-Verbindung löste dieses Problem. Für eine zuverlässige Fernanzeige und -protokollierung benötigen Sie also, wenn Sie ein seriell angeschlossenes Kommunikationsschild verwenden, entweder eine Platine mit zwei oder mehr Hardware-Serien wie das Mega2560. Andere Alternativen sind ein UNO mit und Ehternet-Schild, ein ESP8266-Basisboard (standalone), ein Board mit integriertem Bluetooth Low Energy wie Anduino 101 oder Boards, die sich über SPI mit dem Kommunikationssubsystem verbinden, wie RedBear BLE-Schild und Adafruts Bluefruit SPI Bretter. pfodDesignerV2 unterstützt alle diese Boards und generiert den Code dafür.

Schritt 4: Die PfodVC820MultimeterParser-Bibliothek

Das Tekpower TP4000ZC und eine Reihe anderer Mulimeter senden die Messung nicht über RS232 als ASCII-Text, sondern 14 Byte mit gesetzten Bits, je nachdem, welche Segmente des LCD-Displays beleuchtet sind. Die Kodierung der 14 Bytes wird in diesem pdf erklärt. Die Bibliothek pfodVC820MeterParser.zip dekodiert diese Bytes in Textstrings und Floats. (Der VC820 bezieht sich auf eines der Messgeräte, das diese Kodierung verwendet.) Siehe auch QtDMM für Windows-, Mac- und Linux-Computersoftware, die eine breite Palette von Multimetern handhabt.

Es gibt ein minimales Beispiel, MeterParserExample.ino, für die Verwendung der pfodVC820MeterParser-Bibliothek. Schließen Sie das Messgerät an eine serielle 2400-Baud-Verbindung an und rufen Sie dann haveReading() in jeder Schleife auf, um die Bytes zu verarbeiten. haveReading() gibt true zurück, wenn eine neue vollständige Lesung geparst wird. Dann können Sie getAsFloat() aufrufen, um den Wert (skaliert) als Float zu erhalten, oder getAtStr(), um den Messwert mit Skalierung für Drucken und Protokollieren zu erhalten. Es gibt andere Methoden, um auf die Art der Messung zuzugreifen, getTypeAsStr() und getTypeAsUnicode(), sowie andere Dienstprogrammmethoden.

#include "pfodVC820MeterParser.h" pfodVC820MeterParser meter; // Einrichtung ungültig () {Serial.begin (74880); Serial1.begin(2400); meter.connect(&Serial1); }float-Lesen; Void Schleife () { if (meter.haveReading ()) { Lesen = meter.getAsFloat (); // Verwenden Sie dies für Arduino-Berechnungen Serial.print ("Lesen mit Einheiten: "); Serial.print (meter.getDigits ()); Serial.print (meter.getScalingAsStr ()); Serial.print (meter.getTypeAsStr()); Serial.print (F(" = als Float gedruckt (6-stellig):")); Serial.println (Lesen, 6); Serial.println ("Zeit (Sek) und Lesen als Zeichenfolge für die Protokollierung"); Serial.print (((float)millis())/1000.0); Serial.print (, sec, "); Serial.print (meter.getAsStr()); Serial.print (', '); Serial.println (meter.getTypeAsStr()); } }

Wenn das Messgerät auf Grad C eingestellt ist und die Thermoelementsonde verwendet wird, gibt die Beispielskizze diese Ausgabe auf dem seriellen Arduino IDE-Monitor

Lesen mit Einheiten: 25.7C = als Float gedruckt (6-stellig):25.700000Time(sec) und Lesen als String für die Protokollierung 2.40, sec, 25.7, C

Schritt 5: Teil 2 – Fernanzeige, Protokollierung und Plotten

In diesem Teil des Tutorials erfahren Sie, wie Sie den Zählerstand auf Ihrem Android-Handy aus der Ferne anzeigen, protokollieren und grafisch darstellen. pfodApp wird verwendet, um die Anzeige, Protokollierung und das Plotten auf Ihrem Android-Handy zu verwalten. Es ist keine Android-Programmierung erforderlich. Alle Anzeigen, Protokollierung und Plotten werden vollständig von Ihrer Arduino-Skizze gesteuert. Mit der kostenlosen pfodDesignerV2-App können Sie Ihr Android-Menü und -Diagramm entwerfen und dann eine Arduino-Skizze für Sie generieren.

pfodApp unterstützt eine Reihe von Verbindungstypen, Ethernet, WiFi, Bluetooth V2 (klassisch), Bluetooth LE oder SMS. Dieses Tutorial verwendet Arduino 101 (Bluetooth Low Energy) für die Datenprotokollierung und das Plotten. Andere Bluetooth Low Energy Boards werden ebenfalls unterstützt. Dieses Tutorial verwendet SMS, um eine Verbindung mit pfodApp herzustellen. Sie können pfodDesignerV2 verwenden, um diesem SMS-Beispiel Datenprotokollierung und Diagramme hinzuzufügen. pfodDesignerV2 bietet auch Optionen zum Generieren von Arduino-Code für ein Bluetooth V2-(klassisches) Shield, um eine Verbindung mit pfodApp herzustellen.

Für dieses Beispiel verwenden wir ein Iteadstudio Bluetooth Shield V2.2, das über eine serielle 9600-Baud-Verbindung mit dem Arduino Mega2560 verbunden ist. Mit der kostenlosen pfodDesignerV2-App haben wir ein einfaches Menü eingerichtet, das nur ein Etikett zum Anzeigen des Zählerstands und eine Schaltfläche zum Öffnen des Diagramms enthält. Diese Seite enthält eine Reihe von pfodDesignerV2-Tutorials. Sobald wir eine grundlegende Skizze haben, ändern wir sie, um den Zähler-Parser hinzuzufügen und den Zählerstand und die Daten zur Protokollierung und Diagrammerstellung zu senden.

Gestaltung des Menüs

In diesem Abschnitt werden wir ein Android/pfodApp-Menü entwerfen, das den Zählerstand und eine Schaltfläche zum Öffnen einer Tabelle der Messwerte anzeigt. Die Messwerte werden auch in einer Datei auf dem Android-Handy gespeichert

Schritt 6: Hinzufügen eines Etiketts

Hinzufügen eines Labels
Hinzufügen eines Labels
Hinzufügen eines Labels
Hinzufügen eines Labels
Hinzufügen eines Labels
Hinzufügen eines Labels

Installieren Sie den kostenlosen pfodDesignerV2 und starten Sie ein neues Menü.

Das Standardziel ist seriell bei 9600 Baud, was für das Iteadstudio Bluetooth Shield V2.2 erforderlich ist. Wenn Sie eine Verbindung über ein Bluetooth Low Energy-Gerät oder Wifi oder SMS herstellen, klicken Sie auf Ziel, um die Auswahl zu ändern.

Um ein Etikett hinzuzufügen, um den Zählerstand anzuzeigen, klicken Sie auf Menüelement hinzufügen und wählen Sie nach unten scrollen, um Etikett auszuwählen.

Wählen Sie eine geeignete Schriftgröße und Farben. Belassen Sie den Text als Label, da wir den generierten Code ändern werden, um diesen später durch die Metermessung zu ersetzen. Hier haben wir die Schriftgröße auf +7, die Schriftfarbe auf Rot und den Hintergrund auf Silber gesetzt.

Gehen Sie zurück zum Bildschirm Editing Menu_1 und legen Sie ein Aktualisierungsintervall von 1 Sek. fest. Dadurch wird pfodApp das Menü etwa einmal pro Sekunde erneut anfordern, um den neuesten Messwert im Etikett anzuzeigen.

Schritt 7: Hinzufügen einer Diagrammschaltfläche

Hinzufügen einer Diagrammschaltfläche
Hinzufügen einer Diagrammschaltfläche
Hinzufügen einer Diagrammschaltfläche
Hinzufügen einer Diagrammschaltfläche
Hinzufügen einer Diagrammschaltfläche
Hinzufügen einer Diagrammschaltfläche
Hinzufügen einer Diagrammschaltfläche
Hinzufügen einer Diagrammschaltfläche

Klicken Sie erneut auf Menüelement hinzufügen, um eine Diagrammschaltfläche hinzuzufügen.

Bearbeiten Sie den Text des Diagramm-Buttons auf etwas Passendes, z. B. einfach „Diagramm“und wählen Sie eine Schriftgröße und Farben.

Klicken Sie dann auf die Schaltfläche „Chart“, um den Plot-Bearbeitungsbildschirm zu öffnen. Es gibt nur einen Plot, klicken Sie also auf die Schaltflächen Plot 2 bearbeiten und Plot 3 bearbeiten, scrollen Sie nach unten und klicken Sie für jeden von ihnen auf Plot ausblenden.

Bearbeiten Sie die Diagrammbeschriftung auf etwas Passendes, z. B. „Multimeter“. Sie müssen keine der anderen Ploteinstellungen ändern, da wir die Skizze ändern, um je nach Multimetereinstellung unterschiedliche Y-Achsen-Beschriftungen zu senden.

Kehren Sie schließlich zum Bearbeitungsmenü_1 und zur Eingabeaufforderung zum Bearbeiten zurück. Dadurch wird der Text am unteren Rand des Menüs und die allgemeine Hintergrundfarbe des Menüs festgelegt. Hier haben wir die Eingabeaufforderung auf „Remote Multimeter“mit Schriftgröße +3 und Hintergrundfarbe Silber gesetzt.

Sie können jetzt zum Bearbeitungsmenü_1 zurückkehren und auf Vorschaumenü klicken, um eine Vorschau des Menüdesigns anzuzeigen.

Wenn Ihnen das Design nicht gefällt, können Sie es ändern, bevor Sie den Code generieren. Wenn Sie das Label von der Schaltfläche beabstanden möchten, können Sie wie hier beschrieben einige leere Labels hinzufügen. Hinzufügen eines Diagramms und Protokollieren von Daten zum Anzeigen / Plotten von Arduino-Daten auf Android ist ein weiteres Tutorial zum pfodDesignerV2/pfodApp-Datenprotokollieren und -Diagrammen.

Schritt 8: Generieren der Arduino-Skizze

Generieren der Arduino-Skizze
Generieren der Arduino-Skizze
Generieren der Arduino-Skizze
Generieren der Arduino-Skizze

Um den Arduino-Code zu generieren, der dieses Menü in pfodApp anzeigt, gehen Sie zurück zum Bildschirm Editing Menu_1, scrollen Sie nach unten und klicken Sie auf die Schaltfläche Code generieren.

Klicken Sie auf die Schaltfläche "Code in Datei schreiben", um die Arduino-Skizze in die Datei /pfodAppRawData/pfodDesignerV2.txt auf Ihrem Handy auszugeben. Beenden Sie dann den pfodDesignerV2. Übertragen Sie die Datei pfodDesignerV2.txt entweder über eine USB-Verbindung oder eine Dateiübertragungs-App auf Ihren PC, z. Eine Kopie der generierten Skizze ist hier, pfodDesignerV2_meter.txt

Laden Sie die Skizze in Ihre Arduino IDE und programmieren Sie Ihr Uno (oder Mega) Board. Fügen Sie dann das Iteadstudio Bluetooth Shield V2.2 hinzu. Installieren Sie pfodApp auf Ihrem Android-Handy und erstellen Sie eine neue Bluetooth-Verbindung namens beispielsweise Multimeter. Informationen zum Erstellen neuer Verbindungen finden Sie unter pfodAppForAndroidGettingStarted.pdf. Wenn Sie dann pfodApp verwenden, um die Multimeter-Verbindung zu öffnen, sehen Sie Ihr entworfenes Menü.

Das Öffnen des Diagramms zeigt nichts Interessantes an, da wir die Multimeter-Hardware / -Software nicht hinzugefügt haben.

Schritt 9: Hinzufügen des Multimeters

Hinzufügen des Multimeters
Hinzufügen des Multimeters
Hinzufügen des Multimeters
Hinzufügen des Multimeters
Hinzufügen des Multimeters
Hinzufügen des Multimeters

Wir ändern die generierte Skizze, um den Multimeter-Parser hinzuzufügen und seine Daten an Ihr Android-Handy zu senden. Die komplette modifizierte Skizze ist hier, pfod_meter.ino

Diese Modifikationen fügen den Multimeter-Parser und einen 5-Sekunden-Timer hinzu. Wenn in dieser Zeit kein neuer gültiger Messwert vorliegt, stoppt die Skizze das Senden von Daten und aktualisiert die Android-/pfodApp-Anzeige auf „- - -“. Wenn die manuelle Auswahl des Messgeräts geändert wird, werden die Kartenbeschriftungen aktualisiert, aber Sie müssen die Karte verlassen und erneut auswählen, um die neuen Beschriftungen anzuzeigen. Andererseits wird der Zählerstand jede Sekunde automatisch aktualisiert. Schließlich verarbeitet pfodApp standardmäßig Unicode, sodass bei der Anzeige des Zählerstands die Methode getTypeAsUnicode() verwendet wird, um den Unicode für Ohm, und degsC, ℃ für die Zähleranzeige zurückzugeben.

Die Diagrammschaltfläche zeigt ein Aktualisierungsdiagramm der Messwerte an:-

Die Diagrammdaten im CSV-Format werden auch in einer Datei auf Ihrem Android-Handy unter /pfodAppRawData/Mulitmeter.txt gespeichert, um sie später auf Ihren Computer zu übertragen und für weitere Berechnungen und Diagramme in eine Tabelle zu importieren.

Schritt 10: Die Skizzenänderungen im Detail

  1. Laden Sie die Bibliothek pfodVC820MeterParser.zip herunter und öffnen Sie dann die Arduino IDE und klicken Sie auf Sketch → Include Library → Add.zip, um diese Bibliothek zu Ihrer IDE hinzuzufügen.
  2. Fügen Sie der Skizze die Bibliothek pfodVC820MeterParser hinzu. Klicken Sie auf Skizze → Bibliothek einschließen → pfodVC820MeterParser. Dadurch werden die include-Anweisungen oben in der Skizze hinzugefügt.
  3. Bearbeiten Sie pfodParser_codeGenerated parser("V1"); to pfodParser_codeGenerated parser(""); Dadurch wird das Menü-Caching in pfodApp deaktiviert, sodass Ihre Menüänderungen angezeigt werden. Sie können zu „V3“zurückkehren, wenn Sie alle Änderungen vorgenommen haben, um das Menü-Caching wieder zu aktivieren.
  4. Fügen Sie diese Zeilen hinzu, um die Objekte für die Softwareseriell und das Multimeter zu erstellen. pfodVC820MeterParser-Messgerät;
  5. Am Ende von setup () fügen Sie Serial1.begin (2400) hinzu; meter.connect(&Serial1);
  6. Oben loop () fügen Sie unsigned long hinzu validReadingTimer = 0; const unsigned long VALID_READINGS_TIMEOUT = 5000; // 5secs bool haveValidReadings = true; // auf true setzen, wenn gültige Messwerte vorliegen Int MeasurementType = meter. NO_READING; und oben in der Schleife () fügen Sie hinzu if (meter.haveReading ()) { if (meter.isValid ()) { validReadingTimer = millis (); haveValidReadings = true; } int newType = meter.getType(); if (measurementType != newType) {// neue Datenprotokollierungstitel ausgeben parser.print(F("sec,")); parser.println(meter.getTypeAsStr()); } MeasurementType = newType; } if ((millis() - validReadingTimer) > VALID_READINGS_TIMEOUT) { haveValidReadings = false; // kein neuer gültiger Messwert in den letzten 5 Sekunden }
  7. Weiter unten in der Schleife ersetzen Sie parser.print(F("{=Multimeter|time (secs)|Plot_1~~~||}")); with parser.print(F("{=Multimeter|Zeit (Sek.)|Zählerstand~~~")); parser.print(meter.getTypeAsStr()); parser.print(F("||}"));
  8. Am Ende von loop() ersetzen Sie sendData(); mit if (haveValidReadings) { sendData(); }
  9. In sendData() ersetzen Sie parser.print(', '); parser.print(((float)(plot_1_var-plot_1_varMin)) * plot_1_skalierung + plot_1_varDisplayMin); mit parser.print(', '); parser.print(meter.getAsStr);
  10. Ersetzen Sie in sendMainMenu() parser.print(F("~Label")); mit parser.print('~'); if (haveValidReadings) {parser.print (meter.getDigits()); parser.print (meter.getScalingAsStr()); parser.print (meter.getTypeAsUnicode ()); } Else {parser.print (F("- - -")); }
  11. Fügen Sie in sendMainMenuUpdate() parser.print(F("|!A"));parser.print('~'); if (haveValidReadings) {parser.print (meter.getDigits()); parser.print (meter.getScalingAsStr()); parser.print (meter.getTypeAsUnicode ()); } Else {parser.print (F("- - -")); } Um den Messwert zu aktualisieren, wenn Menü-Caching verwendet wird.

Abschluss

Dieses Tutorial hat gezeigt, wie man ein preiswertes Multimeter über RS232 an einen Arduino Mega2560 anschließt. Viele andere Boards werden ebenfalls unterstützt. Die pfodVC820MeterParserlibrary parst die Multimeterdaten in Floats für Arduino-Berechnungen und Strings zur Anzeige und Protokollierung. pfodDesignerV2 wurde verwendet, um eine grundlegende Skizze zu erstellen, um den Multimeter-Messwert anzuzeigen und eine grafische Darstellung der Werte in einem Android-Handy mit pfodApp anzuzeigen. Es ist keine Android-Programmierung erforderlich. Zu dieser grundlegenden Skizze wurde das Multimeter-Handling hinzugefügt und die endgültige Skizze zeigt den aktuellen Multimeter-Messwert auf Ihrem Android-Handy sowie die Aufzeichnung der Messwerte und Protokollierung in einer Datei auf Ihrem Handy für die spätere Verwendung an.

Empfohlen: