Indholdsfortegnelse:

Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp: 10 trin (med billeder)
Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp: 10 trin (med billeder)

Video: Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp: 10 trin (med billeder)

Video: Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp: 10 trin (med billeder)
Video: Brüel & Kjær 2205 sound level meter test repair teardown 2024, Juli
Anonim
Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp
Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp
Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp
Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp
Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp
Høj nøjagtighed fjerndatalogning ved hjælp af multimeter/Arduino/pfodApp

Opdateret 26. april 2017 Revideret kredsløb og kort til brug med 4000ZC USB -målere.

Ingen Android -kodning påkrævet

Denne instruktive viser dig, hvordan du får adgang til en lang række målinger med høj nøjagtighed fra din Arduino, og sender dem også eksternt til logning og plotting. For højhastighedsdatalogning (2000 prøver/sek) se denne instruktion, fjernhøjhastighedsdatalogning ved hjælp af Arduino/GL AR150/Android/pfodApp

AtoD-omformeren indbygget i Arduino'erne har dårlig nøjagtighed, typisk +/- 10% og meget begrænset rækkevidde, typisk kun 0 til 5V DC volt. Ved hjælp af et simpelt kredsløb og et bibliotek kan du fodre din Arduino med høje nøjagtigheder, automatiske målinger fra et multimeter med en optisk isoleret RS232-forbindelse. Når målingerne er tilgængelige for din skitse, kan du styre output baseret på værdierne. Denne vejledning dækker også afsendelse af målingen eksternt, via WiFi, Bluetooth, Bluetooth Low Energy eller SMS, til en Android -mobil til visning, logning og plotting ved hjælp af pfodApp.

Denne instruerbare bruger et Arduino Mega2560 5V -kort, som du kan parre med en lang række kommunikationsskærme, Ethernet, WiFi, Bluetooth V2 (klassisk), Bluetooth LE eller SMS. Interfacets hardware og bibliotek, der præsenteres her, kan også bruges med 3.3V Arduino -kompatible tavler. Ud over Mega2560 kan du bruge en lang række andre tavler, f.eks. UNO med og Ehternet -skjold, et ESP8266 -bundkort (stand alone), et kort med integreret Bluetooth Low Energy, som Arduino 101, eller tavler, der kan tilsluttes kommunikationen delsystem ved hjælp af SPI såsom RedBear BLE-skjold og Adafruts Bluefruit SPI-tavler. pfodDesignerV2 understøtter alle disse bordkombinationer og genererer koden til dem. Den begrænsende betingelse er, at du skal have en gratis hardware -serie for at oprette forbindelse til dette multimeter RS232 -skjold.

Kredsløbet og koden, der præsenteres her, fungerer med et antal multimetre. En let tilgængelig, billig, en er en Tekpower TP4000ZC, også kendt som Digitek TD-4000ZC. Multimetre, der fungerer med dette kredsløb og bibliotek, omfatter 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

Trin 1:

Denne vejledning består af to dele:

Den første del dækker hardware -grænsefladen til multimeteret og kodebiblioteket ved hjælp af en Arduino Mega. Hvis du kun vil have målingen ind i din Arduino, er dette alt, hvad du har brug for.

Den anden del dækker afsendelse af målingen til en fjernbetjent Android -mobil til visning, logning og plotting. I dette eksempel vil vi bruge et Bluetooth -skjold og generere den grundlæggende skitse ved hjælp af pfodDesignerV2, men du kan også generere kode til WiFi, Ethernet, Bluetooth Low Energy og SMS -forbindelser ved hjælp af pfodDesignerV2. Multimeterbiblioteket tilføjes derefter til den grundlæggende skitse for at fuldføre koden. Der kræves ingen Android -kodning for at vise, logge og plotte læsningen. Alt styres ud fra din Arduino -kode.

Dette projekt er også tilgængeligt online på www.pfod.com.au

For en ekstern head-up-visning af multimeteret, se denne instruktive Arduino Data Glasses For My Multimeter af Alain.

Trin 2: Multimeteret

Multimeteret
Multimeteret

De multimetre, der bruges i denne vejledning, er de billige (~ US40) Tekpower TP4000ZC (også kendt som Digitek DT-4000ZC) og den ældre Digitech QM1538, som den ikke længere sælges. Begge disse målere er visuelt ens og bruger den samme RS232 -kodning af målingen.

Her er specifikationerne for Tekpower TP4000ZC: -DC Spænding: 400mV/4/40/400V ± 0,5%+5, 600V ± 0,8%AC Spænding: 4/40/400V ± 0,8%+5, 400mV/600V ± 1,2%+ 5DC Strøm: 400/4000μA ± 2,0%+5, 40/400mA ± 1,5%+5, 4/10A ± 2%+5AC Strøm: 400/4000μA ± 2,5%+3, 40/400mA ± 2%+5, 4 /10A ± 2,5%+5 Modstand: 400Ω/4/40/400kΩ/4MΩ ± 1%+5, 40MΩ ± 2%+5 Kapacitet: 40nF ± 3,5%+10, 400nF/4/40μF ± 3%+5, 100μF ± 3,5% +5Frekvens: 10Hz -10MHz ± 0,1% +5 Driftscyklus: 0,1%-99,9%± 2,5% +5 Temperatur: 0oC - +40oC ± 3oC, -50oC - +200oC ± 0,75%± 3oC, +200oC - +750oC ± 1,5% ± 3oC, opløsning 0,1oC via medfølgende termoelementprobe.

Multimeterets RS232 -forbindelse er kun én måde, og du kan ikke ændre multimeterets indstillinger eksternt, så du skal manuelt vælge målingstypen. Måleren er dog automatisk i område, og indstillingerne for spænding og strøm håndterer både AC og DC.

Trin 3: RS232 -grænsefladehardwaren

RS232 -grænsefladehardware
RS232 -grænsefladehardware
RS232 -grænsefladehardware
RS232 -grænsefladehardware
RS232 -grænsefladehardware
RS232 -grænsefladehardware

Der er to grænseflader. De nyere Digitek DT-4000ZC og Tekpower TP40000ZC målere leveres med et USB-kabel. Mens den ældre Digitek QM1538 var forsynet med et RS232 9pin D-stik. Ovenstående kredsløb (pdf-version) viser, hvordan du tilslutter multi-meters optokobler til at drive en Arduino RX seriel pin. Bemærk: Dette kredsløb er blevet opdateret for at tilføje endnu en beskyttelsesmodstand, R2, til Digitek DT-4000ZC og Tekpower TP40000ZC-målere. Denne modstand var ikke inkluderet på 9pin D -stikkortet vist ovenfor.

Digitek DT-4000ZC og Tekpower TP40000ZC

Til Digitek DT-4000ZC og Tekpower TP40000ZC skal du bruge et 3,5 mm lydkabel han til han, stereo eller mono vil gøre, og et 3,5 mm stik.

Digitek QM1538

Til den ældre Digitek QM1538 skal du bruge et 9pin D -stik. 9pin D -stikket har forskudte ben, der ikke kan tilsluttes prototypeskærmen. Skær bare rækken med 4 ben af, så du kan lodde stikket til brættet, da kredsløbet kun bruger stifter i anden række med 5 ben. Monteringsbenene bøjede sig for at lade stikket ligge fladt, og konnektoren blev fastgjort til prototypeskærmen ved hjælp af 2 -delt epoxylim (“Araldite”) Stikkontaktens layout er vist ovenfor er fra dette websted. Den 10K modstand, der kommer monteret inde i stikket på de medfølgende RS232 -kabler (forbundet mellem ben 2 og 3), er ikke påkrævet til dette projekt.

Tilslutning af signalet til en Arduino RX -pin

Dette kredsløb fungerer for både 5V og 3.3V Arduino -kort. Her bruger vi en Mega2560 (5V) Arduino og monterede kredsløbet på et prototypeskærm som vist ovenfor.

En flyvende bly bruges til at forbinde TP1 på skjoldet til en Serial1 RX, pin D19, på Mega2560.

Bemærk om softwaresserie: I første omgang blev dette skjold parret med en UNO ved hjælp af Software Serial på ben 10, 11. Men når det blev parret med Bluetooth Shield på Serial på 9600baud, gik nogle modtagebytes tabt. At flytte RS232 til en hardware seriel forbindelse løste dette problem. Så for pålidelig fjernvisning og logning, hvis du bruger et kommunikationsskjold, der forbinder via seriel, har du enten brug for et kort med to eller flere hardwareserier som f.eks. Mega2560. Andre alternativer er et UNO med og Ehternet-skjold, et ESP8266-bundkort (stand alone), et kort med integreret Bluetooth Low Energy som Anduino 101 eller tavler, der opretter forbindelse til kommunikationsundersystemet ved hjælp af SPI såsom RedBear BLE-skjold og Adafrut's Bluefruit SPI brædder. pfodDesignerV2 understøtter alle disse boards og genererer koden til dem.

Trin 4: PfodVC820MultimeterParser -biblioteket

Tekpower TP4000ZC og en række andre mulimeter sender ikke målingen via RS232 som ASCII -tekst, den sender snarere 14 bytes med bits, afhængigt af hvilke segmenter af LCD -displayet, der er belyst. Kodningen af de 14 bytes forklares i denne pdf. Biblioteket pfodVC820MeterParser.zip afkoder disse bytes til tekststrenge og floats. (VC820 refererer til en af de målere, der bruger denne kodning.) Se også QtDMM til Windows, Mac og Linux computersoftware, der håndterer en lang række multimetre.

Der er et minimalt eksempel, MeterParserExample.ino, på at bruge biblioteket pfodVC820MeterParser. Tilslut måleren til en 2400baud seriel forbindelse, og ring derefter til haveReading () hver loop for at behandle bytes. haveReading () vender tilbage, når der er en ny fuldstændig læsning analyseret. Derefter kan du ringe til getAsFloat () for at få værdien (skaleret) som en float eller getAtStr () for at få aflæsningen med skalering til udskrivning og logning. Der er andre tilgængelige metoder til at få adgang til målingstypen, getTypeAsStr () og getTypeAsUnicode () samt andre hjælpemetoder.

#include "pfodVC820MeterParser.h" pfodVC820MeterParser meter; // void setup () {Serial.begin (74880); Seriel1.begyndt (2400); meter.connect (& Serial1); } float læsning; void loop () {if (meter.haveReading ()) {reading = meter.getAsFloat (); // brug dette til Arduino -beregninger Serial.print ("Læsning med enheder:"); Serial.print (meter.getDigits ()); Serial.print (meter.getScalingAsStr ()); Serial.print (meter.getTypeAsStr ()); Serial.print (F ("= som float trykt (6 cifre):")); Serial.println (læsning, 6); Serial.println ("Tid (sek) og læsning som streng til logning"); Serial.print (((float) millis ())/1000.0); Serial.print (", sek,"); Serial.print (meter.getAsStr ()); Serial.print (','); Serial.println (meter.getTypeAsStr ()); }}

Med måleren indstillet på Deg C og ved hjælp af termoelementproben, giver eksemplet skitsen dette output på Arduino IDE seriel skærm

Aflæsning med enheder: 25,7C = som float trykt (6 cifre): 25,700000Tid (sek) og Aflæsning som streng til logning 2,40, sek, 25,7, C

Trin 5: Del 2 - Fjernvisning, logning og plotning

Denne del af selvstudiet dækker, hvordan du eksternt viser, logger og plotter måleraflæsning på din Android -mobil. pfodApp bruges til at håndtere visning, logning og plotte på din Android -mobil. Ingen Android -programmering er påkrævet. Alle displays, logning og plotning er fuldstændig kontrolleret af din Arduino -skitse. Den gratis pfodDesignerV2 -app lader dig designe din Android -menu og diagram og derefter generere en Arduino -skitse til dig.

pfodApp understøtter en række forbindelsestyper, Ethernet, WiFi, Bluetooth V2 (klassisk), Bluetooth LE eller SMS. Denne vejledning bruger Arduino 101 (Bluetooth Low Energy) til datalogning og plotting. Andre Bluetooth Low Energy -kort understøttes også. Denne vejledning bruger SMS til at oprette forbindelse til pfodApp. Du kan bruge pfodDesignerV2 til at tilføje datalogning og kortlægning til det SMS -eksempel. pfodDesignerV2 har også muligheder for at generere Arduino -kode til et Bluetooth V2 (klassisk) skjold for at oprette forbindelse til pfodApp.

I dette eksempel vil vi bruge en Iteadstudio Bluetooth Shield V2.2, der opretter forbindelse til Arduino Mega2560 via en 9600baud seriel forbindelse. Ved hjælp af den gratis pfodDesignerV2 -app oprettede vi en enkel menu, der bare har en etiket til visning af målerstanden og en knap til at åbne diagrammet. Denne side har en række pfodDesignerV2 -selvstudier. Når vi har en grundlæggende skitse, ændrer vi den for at tilføje målerparseren og for at sende måleraflæsning og data til logning og kortlægning.

Design af menuen

I dette afsnit vil vi designe en Android/pfodApp -menu, der viser måleraflæsningen og en knap til at åbne et diagram over målingerne. Aflæsningerne gemmes også i en fil på Android -mobilen

Trin 6: Tilføjelse af en etiket

Tilføjelse af en etiket
Tilføjelse af en etiket
Tilføjelse af en etiket
Tilføjelse af en etiket
Tilføjelse af en etiket
Tilføjelse af en etiket

Installer den gratis pfodDesignerV2, og start en ny menu.

Standardmålet er Serial at 9600baud, hvilket er det, der er nødvendigt for Iteadstudio Bluetooth Shield V2.2. Hvis du opretter forbindelse via en Bluetooth Low Energy -enhed eller Wifi eller SMS, skal du klikke på Target for at ændre valget.

Hvis du vil tilføje en etiket til visning af målerstanden, skal du klikke på Tilføj menupunkt og vælge rul ned for at vælge Etiket.

Vælg en passende skriftstørrelse og farver. Efterlad teksten som etiket, da vi vil ændre den genererede kode for at erstatte denne med målermåling senere. Her har vi indstillet skriftstørrelse til +7, skrifttypefarve til rød og baggrund til sølv.

Gå tilbage til skærmen Redigeringsmenu_1, og indstil et opdateringsinterval 1 sek. Det får pfodApp til at anmode om menuen igen cirka en gang i sekundet for at vise den seneste læsning i etiketten.

Trin 7: Tilføjelse af en diagramknap

Tilføjelse af en diagramknap
Tilføjelse af en diagramknap
Tilføjelse af en diagramknap
Tilføjelse af en diagramknap
Tilføjelse af en diagramknap
Tilføjelse af en diagramknap
Tilføjelse af en diagramknap
Tilføjelse af en diagramknap

Klik på Tilføj menupunkt igen for at tilføje en diagramknap.

Rediger teksten i diagramknappen til noget passende, f.eks. bare "Chart" og vælg en skriftstørrelse og farver.

Klik derefter på knappen "Diagram" for at åbne plotredigeringsskærmen. Der vil kun være et plot, så klik på knapperne Rediger plot 2 og Rediger plot 3, rul ned og klik på Skjul plot for hver af dem.

Rediger diagrammærkaten til noget passende, f.eks. "Multimeter". Ingen grund til at ændre nogen af de andre plotindstillinger, da vi vil ændre skitsen til at sende forskellige y-aksemærkater afhængigt af multimeterindstillingen.

Gå endelig tilbage til redigeringsmenuen_1 og redigeringsprompt, dette indstiller teksten i bunden af menuen og den overordnede menubaggrundsfarve. Her har vi sat prompten til “Remote Multimeter” med skriftstørrelse +3 og baggrundsfarve Sølv.

Du kan nu gå tilbage til redigeringsmenu_1 og klikke på menuen Forhåndsvisning for at få vist et menudesign.

Hvis du ikke kan lide designet, kan du ændre det, før du genererer koden. Hvis du vil have plads til etiketten fra knappen, kan du tilføje nogle tomme etiketter som beskrevet her. Tilføjelse af et diagram og logningsdata om, hvordan du viser/afsætter Arduino -data på Android, er en anden vejledning i pfodDesignerV2/pfodApp -datalogging og -kortlægning.

Trin 8: Generering af Arduino Sketch

Generering af Arduino Sketch
Generering af Arduino Sketch
Generering af Arduino Sketch
Generering af Arduino Sketch

For at generere Arduino -koden, der viser denne menu i pfodApp, skal du gå tilbage til skærmen Redigeringsmenu_1 og rulle ned og klikke på knappen Generer kode.

Klik på knappen "Skriv kode til fil" for at sende Arduino -skitsen til filen /pfodAppRawData/pfodDesignerV2.txt på din mobil. Afslut derefter pfodDesignerV2. Overfør pfodDesignerV2.txt -filen til din pc ved hjælp af enten en USB -forbindelse eller en filoverførselsapp, som wifi file transfer pro. En kopi af den genererede skitse er her, pfodDesignerV2_meter.txt

Læg skitsen i din Arduino IDE, og programmer dit Uno (eller Mega) board. Tilføj derefter Iteadstudio Bluetooth Shield V2.2. Installer pfodApp på din Android -mobil, og opret en ny Bluetooth -forbindelse ved navn f.eks. Multimeter. Se pfodAppForAndroidGettingStarted.pdf for at oprette nye forbindelser. Når du derefter bruger pfodApp til at åbne multimeterforbindelsen, ser du din designede menu.

Åbning af diagrammet viser ikke noget interessant, fordi vi ikke har tilføjet multimeter hardware/software.

Trin 9: Tilføjelse af multimeteret

Tilføjelse af multimeteret
Tilføjelse af multimeteret
Tilføjelse af multimeteret
Tilføjelse af multimeteret
Tilføjelse af multimeteret
Tilføjelse af multimeteret

Vi vil ændre den genererede skitse for at tilføje multimeter -parseren og for at sende dens data til din Android -mobil. Den komplette ændrede skitse er her, pfod_meter.ino

Disse ændringer tilføjer multimeter parseren og en 5sek timer. Hvis der ikke er nogen ny gyldig læsning på det tidspunkt, stopper skitsen med at sende data og opdaterer Android/pfodApp -displayet til " - - -". Når målerens manuelle valg ændres, opdateres diagrammærkaterne, men du skal forlade diagrammet og vælge det igen for at se de nye etiketter. På den anden side opdateres målerstanden automatisk hvert sekund. Endelig håndterer pfodApp Unicode som standard, så når meteren læser metoden, bruges metoden getTypeAsUnicode () til at returnere Unicode for ohm, Ω og degsC, ℃ til målerens display.

Diagramknappen viser et opdateringsdiagram over målingerne:-

Kortdataene i CSV -format gemmes også i en fil på din Android -mobil under /pfodAppRawData/Mulitmeter.txt til senere overførsel til din computer og importeres til et regneark for yderligere beregninger og kortlægning.

Trin 10: Skitsemodifikationerne i detaljer

  1. Download biblioteket pfodVC820MeterParser.zip, og åbn derefter Arduino IDE, og klik på Sketch → Inkluder bibliotek → Tilføj.zip for at tilføje dette bibliotek til din IDE.
  2. Tilføj pfodVC820MeterParser -biblioteket til skitsen. Klik på Skitse → Inkluder bibliotek → pfodVC820MeterParser. Dette tilføjer inkluderingserklæringerne øverst på skitsen.
  3. Rediger pfodParser_codeGenerated parser ("V1"); til pfodParser_codeGenerated parser (""); Dette deaktiverer cachen i menuen i pfodApp, så dine menuændringer vises. Du kan vende tilbage til “V3”, når du er færdig med alle dine ændringer for at genaktivere cachelagring af menuen.
  4. Tilføj disse linjer for at oprette objekterne til softwaren seriel og multimeteret. pfodVC820MeterParser meter;
  5. I slutningen af opsætningen () tilføj Serial1.begin (2400); meter.connect (& Serial1);
  6. Over loop () tilføj usigneret lang validReadingTimer = 0; const usigneret lang VALID_READINGS_TIMEOUT = 5000; // 5sec bool haveValidReadings = true; // indstillet til true, når de har gyldige aflæsninger int measureType = meter. NO_READING; og øverst i løkken () tilføj if (meter.haveReading ()) {if (meter.isValid ()) {validReadingTimer = millis (); haveValidReadings = true; } int newType = meter.getType (); if (MeasureType! = newType) {// output new datalogging titles parser.print (F ("sec,")); parser.println (meter.getTypeAsStr ()); } målingType = nyType; } hvis ((millis () - validReadingTimer)> VALID_READINGS_TIMEOUT) {haveValidReadings = false; // ingen ny gyldig læsning i de sidste 5 sek}
  7. Længere nede i sløjfen udskift parser.print (F ("{= Multimeter | time (sek)) | Plot_1 ~~~ ||}")); med parser.print (F ("{= Multimeter | tid (sek.) | Måleraflæsning ~~~")); parser.print (meter.getTypeAsStr ()); parser.print (F ("||}"));
  8. I bunden af loop () erstat sendData (); med if (haveValidReadings) {sendData (); }
  9. I sendData () erstat parser.print (','); parser.print (((float) (plot_1_var-plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); med parser.print (','); parser.print (meter.getAsStr);
  10. I sendMainMenu () erstat parser.print (F ("~ Label")); med parser.print ('~'); hvis (haveValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } andet {parser.print (F (" - - -")); }
  11. I sendMainMenuUpdate () tilføj parser.print (F ("|! A")); parser.print ('~'); hvis (haveValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } andet {parser.print (F (" - - -")); } For at opdatere læsningen, når du bruger menu -caching.

Konklusion

Denne vejledning har vist, hvordan du tilslutter et billigt multimeter til en Arduino Mega2560 via RS232. Mange andre bestyrelser understøttes også. PfodVC820MeterParserlibrary analyserer multimeterdataene i floats til Arduino -beregninger og strenge til visning og logning. pfodDesignerV2 blev brugt til at generere en grundlæggende skitse til at vise multimeteraflæsning og vise et plot af værdierne i en Android -mobil ved hjælp af pfodApp. Ingen Android -programmering er påkrævet. Til denne grundlæggende skitse blev multimeterhåndteringen tilføjet, og den endelige skitse viser den aktuelle multimeteraflæsning på din Android -mobil samt plotter aflæsningerne og logger dem til en fil på din mobil til senere brug.

Anbefalede: