Obsah:

Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp: 10 kroků (s obrázky)
Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp: 10 kroků (s obrázky)

Video: Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp: 10 kroků (s obrázky)

Video: Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp: 10 kroků (s obrázky)
Video: Dan Bárta: Úskalí výzkumu vážek v tropech (Živě Benátská 2, PřF UK, Praha) 2024, Listopad
Anonim
Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp
Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp
Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp
Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp
Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp
Vysoká přesnost vzdáleného záznamu dat pomocí multimetru/Arduino/pfodApp

Aktualizováno 26. dubna 2017 Revidovaný obvod a deska pro použití s měřiči USB 4000ZC.

Není vyžadováno žádné kódování systému Android

Tento návod vám ukáže, jak ze svého Arduina získat přístup k široké škále vysoce přesných měření a také je vzdáleně odesílat pro protokolování a vykreslování. Vysokorychlostní protokolování dat (2 000 vzorků/s) najdete v této instrukční příručce, vzdálené vysokorychlostní protokolování dat pomocí Arduino/GL AR150/Android/pfodApp

Převodník AtoD zabudovaný do Arduina má špatnou přesnost, typicky +/- 10% a velmi omezený rozsah, typicky pouze 0 až 5 V DC voltů. Pomocí jednoduchého obvodu a knihovny můžete své Arduino napájet vysoce přesnými automatickými měřeními z multimetru s opticky izolovaným připojením RS232. Díky tomu, že měření máte k dispozici ve svém náčrtu, můžete ovládat výstupy na základě hodnot. Tento tutoriál také pokrývá vzdálené odesílání měření přes WiFi, Bluetooth, Bluetooth Low Energy nebo SMS na mobilní telefon Android pro zobrazení, protokolování a vykreslování pomocí pfodApp.

Tento návod používá desku Arduino Mega2560 5V, kterou můžete spárovat se širokou škálou komunikačních štítů, ethernet, WiFi, Bluetooth V2 (klasický), Bluetooth LE nebo SMS. Zde uvedený hardware rozhraní a knihovnu lze také použít s deskami kompatibilními s Arduino 3.3V. Kromě Mega2560 můžete použít celou řadu dalších desek, jako je UNO with a Ehternet shield, základní deska ESP8266 (samostatná), deska s integrovanou technologií Bluetooth Low Energy, jako Arduino 101, nebo desky, které se připojují ke komunikaci subsystém využívající SPI jako RedBear BLE štít a desky Adafrut Bluefruit SPI. pfodDesignerV2 podporuje všechny tyto kombinace desek a vygeneruje pro ně kód. Omezující podmínkou je, že pro připojení k tomuto štítu multimetru RS232 potřebujete bezplatný sériový hardware.

Zde uvedený obvod a kód pracuje s řadou multimetrů. Rychle dostupný, levný, jeden je Tekpower TP4000ZC, také známý jako Digitek TD-4000ZC. Multimetry, které pracují s tímto obvodem a knihovnou, zahrnují 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

Krok 1:

Tento tutoriál má dvě části:

První část pokrývá hardwarové rozhraní multimetru a knihovny kódů pomocí Arduino Mega. Pokud chcete do svého Arduina dostat pouze měření, je to vše, co potřebujete.

Druhá část se zabývá odesláním měření na vzdálený mobilní telefon Android pro zobrazení, protokolování a vykreslování. V tomto příkladu použijeme štít Bluetooth a vygenerujeme základní skicu pomocí pfodDesignerV2, ale můžete také generovat kód pro připojení WiFi, Ethernet, Bluetooth Low Energy a SMS pomocí pfodDesignerV2. Knihovna multimetrů je poté přidána k základnímu náčrtu pro dokončení kódu. K zobrazení, zaznamenání a vykreslení odečtu není nutné žádné kódování systému Android. Vše je ovládáno z vašeho kódu Arduino.

Tento projekt je také dostupný online na www.pfod.com.au

Vzdálený head-up displej multimetru najdete v tomto instruktážním datovém skle Arduino For My Multimeter od Alaina.

Krok 2: Multimetr

Multimetr
Multimetr

Multimetry použité v tomto tutoriálu jsou levné (~ US40) Tekpower TP4000ZC (také známý jako Digitek DT-4000ZC) a starší Digitech QM1538, který se již neprodává. Oba tyto měřiče jsou vizuálně stejné a používají stejné RS232 kódování měření.

Zde specifikace pro Tekpower TP4000ZC: -DC Napětí: 400mV/4/40/400V ± 0,5%+5, 600V ± 0,8%AC Napětí: 4/40/400V ± 0,8%+5, 400mV/600V ± 1,2%+ 5DC proud: 400/4000μA ± 2,0%+5, 40/400mA ± 1,5%+5, 4/10A ± 2%+5AC Proud: 400/4000μA ± 2,5%+3, 40/400mA ± 2%+5, 4 /10A ± 2,5%+5 Odpor: 400Ω/4/40/400kΩ/4MΩ ± 1%+5, 40MΩ ± 2%+5 Kapacita: 40nF ± 3,5%+10, 400nF/4/40μF ± 3%+5, 100μF ± 3,5% +5 Frekvence: 10Hz -10MHz ± 0,1% +5 Pracovní cyklus: 0,1%-99,9%± 2,5% +5 Teplota: 0oC - +40oC ± 3oC, -50oC - +200oC ± 0,75%± 3oC, +200oC - +750oC ± 1,5% ± 3oC, rozlišení 0,1oC pomocí přiložené termočlánkové sondy.

Připojení RS232 multimetru je pouze jednosměrné a nemůžete dálkově měnit nastavení multimetru, takže musíte typ měření zvolit ručně. Měřič však automaticky nastavuje rozsah a nastavení napětí a proudu zvládá střídavé i stejnosměrné napětí.

Krok 3: Hardware rozhraní RS232

Hardware rozhraní RS232
Hardware rozhraní RS232
Hardware rozhraní RS232
Hardware rozhraní RS232
Hardware rozhraní RS232
Hardware rozhraní RS232

Existují dvě rozhraní. Novější měřiče Digitek DT-4000ZC a Tekpower TP40000ZC jsou dodávány s kabelem USB. Zatímco staršímu Digitek QM1538 byl poskytnut konektorový kabel RS232 9pin D. Výše uvedený obvod (verze pdf) ukazuje, jak připojit opto vazební člen multimetru k pohonu sériového pinu Arduino RX. Poznámka: Tento obvod byl aktualizován, aby přidal další ochranný odpor R2 pro měřiče Digitek DT-4000ZC a Tekpower TP40000ZC. Tento odpor nebyl zahrnut na výše uvedené desce konektoru 9pin D.

Digitek DT-4000ZC a Tekpower TP40000ZC

Pro Digitek DT-4000ZC a Tekpower TP40000ZC potřebujete 3,5 mm audio kabel, samec, stereo nebo mono, a 3,5 mm zásuvku.

Digitek QM1538

Pro starší Digitek QM1538 potřebujete zásuvku 9pin D. Konektor 9pin D má odsazené kolíky, které se nezapojí do prototypového štítu. Stačí odříznout řadu 4 pinů, abyste mohli konektor připájet k desce, protože obvod používá pouze piny ve druhé řadě 5 pinů. Upevňovací nohy se ohnuly, aby konektor ležel naplocho a konektor byl připevněn k prototypovému štítu pomocí 2 -dílného epoxidového lepidla („Araldite“) Rozložení kolíků konektoru je uvedeno výše, pochází z tohoto místa. 10K odpor, který je namontován uvnitř konektoru dodávaných kabelů RS232 (připojených mezi piny 2 a 3), není pro tento projekt vyžadován.

Připojení signálu k pinu Arduino RX

Tento obvod bude fungovat pro desky Arduino 5V i 3,3V. Zde používáme Mega2560 (5V) Arduino a namontovali jsme obvod na prototypový štít, jak je uvedeno výše.

K připojení TP1 na stínění k Serial1 RX, pin D19, na Mega2560 se používá letící kabel.

Poznámka k sériovému softwaru: Zpočátku byl tento štít spárován s UNO pomocí softwarového sériového portu na pinech 10, 11. Při spárování se štítem Bluetooth na sériovém rozhraní při rychlosti 9600 baud došlo ke ztrátě některých bajtů pro příjem. Přesunutí RS232 na hardwarové sériové připojení tento problém vyřešilo. Pokud tedy používáte spolehlivé vzdálené zobrazení a protokolování, pokud používáte komunikační štít, který se připojuje přes sériový port, potřebujete buď desku se dvěma nebo více hardwarovými sériovými čísly, jako je Mega2560. Dalšími alternativami jsou UNO with a Ehternet shield, základní deska ESP8266 (samostatná), deska s integrovanou technologií Bluetooth Low Energy jako Anduino 101 nebo desky, které se připojují ke komunikačnímu subsystému pomocí SPI, jako je štít RedBear BLE a Adafrut's Bluefruit SPI desky. pfodDesignerV2 podporuje všechny tyto desky a vygeneruje pro ně kód.

Krok 4: Knihovna PfodVC820MultimeterParser

Tekpower TP4000ZC a řada dalších mulimetrů neposílají měření přes RS232 jako text ASCII, ale posílají 14 bytů s bity nastavenými podle toho, které segmenty LCD displeje jsou osvětlené. Kódování 14 bytů je vysvětleno v tomto pdf. Knihovna pfodVC820MeterParser.zip dekóduje tyto bajty do textových řetězců a plováků. (VC820 odkazuje na jeden z měřičů, které používají toto kódování.) Viz také QtDMM pro počítačový software Windows, Mac a Linux, který zvládá širokou škálu multimetrů.

Minimální příklad, MeterParserExample.ino, je použití knihovny pfodVC820MeterParser. Připojte měřič k sériovému připojení 2400 baudů a poté zavolejte každou smyčku haveReading () pro zpracování bytů. haveReading () vrátí true, pokud je analyzováno nové úplné čtení. Potom můžete zavolat getAsFloat (), abyste získali hodnotu (v měřítku) jako float, nebo getAtStr (), abyste získali čtení se škálováním pro tisk a protokolování. K dispozici jsou další metody přístupu k typu měření, getTypeAsStr () a getTypeAsUnicode (), jakož i další pomocné metody.

#include "pfodVC820MeterParser.h" měřič pfodVC820MeterParser; // neplatné nastavení () {Serial.begin (74880); Serial1.begin (2400); meter.connect (& Serial1); } plovoucí čtení; void loop () {if (meter.haveReading ()) {reading = meter.getAsFloat (); // použijte to pro výpočty Arduino Serial.print ("Čtení s jednotkami:"); Serial.print (meter.getDigits ()); Serial.print (meter.getScalingAsStr ()); Serial.print (meter.getTypeAsStr ()); Serial.print (F ("= jako plovoucí tisk (6 číslic):")); Serial.println (čtení, 6); Serial.println ("Čas (s) a čtení jako řetězec pro protokolování"); Serial.print ((((float) millis ())/1000,0); Serial.print (", s,"); Serial.print (meter.getAsStr ()); Serial.print (','); Serial.println (meter.getTypeAsStr ()); }}

Když je měřič nastaven na Deg C a používá termočlánkovou sondu, příklad skici poskytuje tento výstup na sériovém monitoru Arduino IDE

Čtení s jednotkami: 25,7 C = jako plovoucí tisk (6 číslic): 25,700000 Čas (s) a čtení jako řetězec pro protokolování 2,40, s, 25,7, C

Krok 5: Část 2 - Vzdálené zobrazení, protokolování a vykreslování

Tato část tutoriálu popisuje, jak na dálku zobrazit, zaznamenat a vykreslit naměřené hodnoty na vašem mobilním zařízení Android. pfodApp se používá k ovládání zobrazení, protokolování a vykreslování na vašem mobilním telefonu Android. Není vyžadováno žádné programování pro Android. Všechny displeje, protokolování a vykreslování jsou zcela řízeny vaší skicou Arduino. Bezplatná aplikace pfodDesignerV2 vám umožní navrhnout nabídku a graf pro Android a poté pro vás vygenerovat skicu Arduino.

pfodApp podporuje řadu typů připojení, ethernet, WiFi, Bluetooth V2 (klasický), Bluetooth LE nebo SMS. Tento výukový program používá pro protokolování a vykreslování dat Arduino 101 (Bluetooth Low Energy). Podporovány jsou také další desky Bluetooth s nízkou spotřebou energie. Tento tutoriál používá pro připojení k pfodApp SMS. Pomocí pfodDesignerV2 můžete do tohoto příkladu SMS přidat protokolování dat a grafy. pfodDesignerV2 má také možnosti generování kódu Arduino na štít Bluetooth V2 (klasický) pro připojení k pfodApp.

V tomto případě použijeme Iteadstudio Bluetooth Shield V2.2, který se připojí k Arduino Mega2560 prostřednictvím sériového připojení 9600baud. Pomocí bezplatné aplikace pfodDesignerV2 jsme vytvořili jednoduchou nabídku, která má pouze štítek pro zobrazení naměřených hodnot a jedno tlačítko pro otevření grafu. Tato stránka obsahuje řadu výukových programů pfodDesignerV2. Jakmile budeme mít základní skicu, upravíme ji, abychom přidali analyzátor měřiče a odeslali naměřené hodnoty a data pro protokolování a vytváření grafů.

Navrhování nabídky

V této sekci navrhneme nabídku Android/pfodApp, která zobrazí naměřené hodnoty a tlačítko pro otevření grafu naměřených hodnot. Odečty se také ukládají do souboru v mobilním zařízení Android

Krok 6: Přidání štítku

Přidání štítku
Přidání štítku
Přidání štítku
Přidání štítku
Přidání štítku
Přidání štítku

Nainstalujte si zdarma pfodDesignerV2 a spusťte novou nabídku.

Výchozí cíl je Sériový na 9600 baudů, což je potřeba pro Iteadstudio Bluetooth Shield V2.2. Pokud se připojujete pomocí zařízení Bluetooth s nízkou spotřebou energie nebo Wifi nebo SMS, kliknutím na Cíl změňte výběr.

Chcete -li přidat štítek pro zobrazení naměřených hodnot, klikněte na Přidat položku nabídky a vyberte přejděte dolů a vyberte Štítek.

Vyberte vhodnou velikost a barvy písma. Ponechejte text jako štítek, protože upravíme vygenerovaný kód, abychom jej později nahradili měřením. Zde jsme nastavili velikost písma na +7, barvu písma na červenou a pozadí na stříbrnou.

Vraťte se na obrazovku Úpravy Menu_1 a nastavte interval aktualizace 1 s. Díky tomu pfodApp znovu požádá o nabídku přibližně jednou za sekundu, aby se na štítku zobrazila nejnovější hodnota.

Krok 7: Přidání tlačítka grafu

Přidání tlačítka grafu
Přidání tlačítka grafu
Přidání tlačítka grafu
Přidání tlačítka grafu
Přidání tlačítka grafu
Přidání tlačítka grafu
Přidání tlačítka grafu
Přidání tlačítka grafu

Opětovným kliknutím na Přidat položku nabídky přidáte tlačítko Graf.

Upravte text tlačítka Chart na něco vhodného, např. jen „Graf“a vyberte velikost a barvy písma.

Poté kliknutím na tlačítko „Graf“otevřete obrazovku pro úpravu grafu. Bude existovat pouze jeden graf, takže klikněte na tlačítka Upravit graf 2 a Upravit obrázek 3 a u každého z nich přejděte dolů a klikněte na Skrýt plot.

Upravte štítek grafu na něco vhodného, např. "Multimetr". Není třeba měnit žádné další nastavení vykreslování, protože budeme upravovat skicu tak, aby odesílala různé popisky osy y v závislosti na nastavení multimetru.

Nakonec se vraťte do nabídky Úpravy Menu_1 a Upravit výzvu, čímž se nastaví text v dolní části nabídky a celková barva pozadí nabídky. Zde jsme nastavili výzvu na „Vzdálený multimetr“s velikostí písma +3 a barvou pozadí Silver.

Nyní se můžete vrátit zpět do nabídky Úpravy Menu_1 a kliknutím na nabídku Náhled zobrazit náhled návrhu nabídky.

Pokud se vám design nelíbí, můžete jej před vygenerováním kódu změnit. Pokud chcete štítek rozmístit pomocí tlačítka, můžete přidat prázdné štítky, jak je popsáno zde. Přidání grafu a protokolování dat o tom, jak zobrazit/vykreslit data Arduino v systému Android, je další tutoriál o protokolování dat a vytváření grafů pfodDesignerV2/pfodApp.

Krok 8: Generování skici Arduino

Generování skici Arduino
Generování skici Arduino
Generování skici Arduino
Generování skici Arduino

Chcete -li vygenerovat kód Arduino, který tuto nabídku zobrazí v pfodApp, vraťte se zpět na obrazovku Editing Menu_1, přejděte dolů a klikněte na tlačítko Generovat kód.

Kliknutím na tlačítko „Zapsat kód do souboru“vygenerujete skicu Arduina do souboru /pfodAppRawData/pfodDesignerV2.txt v mobilu. Poté ukončete pfodDesignerV2. Přeneste soubor pfodDesignerV2.txt do počítače pomocí připojení USB nebo aplikace pro přenos souborů, například wifi pro přenos souborů pro. Kopie vygenerovaného náčrtu je zde, pfodDesignerV2_meter.txt

Vložte skicu do svého Arduino IDE a naprogramujte svou desku Uno (nebo Mega). Poté přidejte Iteadstudio Bluetooth Shield V2.2. Nainstalujte si pfodApp na svůj mobilní telefon Android a vytvořte nové připojení Bluetooth s názvem například Multimetr. Viz pfodAppForAndroidGettingStarted.pdf, jak vytvořit nová připojení. Když pak pomocí pfodApp otevřete připojení multimetru, zobrazí se vám navržená nabídka.

Otevření grafu nezobrazuje nic zajímavého, protože jsme nepřidali hardware/software multimetru.

Krok 9: Přidání multimetru

Přidání multimetru
Přidání multimetru
Přidání multimetru
Přidání multimetru
Přidání multimetru
Přidání multimetru

Vygenerovaný náčrt upravíme tak, aby přidal analyzátor multimetrů a odeslal jeho data na váš mobilní telefon Android. Kompletní upravená skica je zde, pfod_meter.ino

Tyto úpravy přidávají analyzátor multimetru a časovač na 5 sekund. Pokud v té době nedojde k žádnému novému platnému čtení, skica přestane odesílat data a aktualizuje displej Android/pfodApp na „ - - -“. Při změně ručního výběru měřiče se aktualizují popisky grafu, ale pro zobrazení nových štítků je třeba graf opustit a znovu jej vybrat. Na druhé straně se údaje z měřiče automaticky aktualizují každou sekundu. Nakonec pfodApp ve výchozím nastavení zpracovává Unicode, takže při zobrazení odečtu měřicí metody se metoda getTypeAsUnicode () používá k vrácení Unicode pro ohmy, Ω a degsC, ℃ pro zobrazení měřiče.

Tlačítko graf zobrazuje aktualizovaný graf naměřených hodnot:-

Data grafu ve formátu CSV se také uloží do souboru na váš mobilní telefon Android pod /pfodAppRawData/Mulitmeter.txt pro pozdější přenos do počítače a import do tabulky pro další výpočty a vytváření grafů.

Krok 10: Úpravy náčrtu v detailu

  1. Stáhněte si knihovnu pfodVC820MeterParser.zip a poté otevřete Arduino IDE a kliknutím na Sketch → Include Library → Add.zip přidejte tuto knihovnu do svého IDE.
  2. Přidejte do skici knihovnu pfodVC820MeterParser. Klikněte na Skica → Zahrnout knihovnu → pfodVC820MeterParser. Tím se přidají příkazy include v horní části skici.
  3. Upravit pfodParser_codeGenerated parser ("V1"); na pfodParser_codeGenerated parser (""); Tím se deaktivuje ukládání do mezipaměti nabídky v pfodApp, takže se zobrazí změny nabídky. Po dokončení všech změn se můžete vrátit k „V3“a znovu povolit ukládání do mezipaměti nabídky.
  4. Přidejte tyto řádky a vytvořte objekty pro softwarový seriál a multimetr. pfodVC820MeterParser metr;
  5. Na konci instalace () přidejte Serial1.begin (2400); meter.connect (& Serial1);
  6. Nad smyčkou () přidejte nepodepsané dlouhé validReadingTimer = 0; konst bez znaménka dlouhý VALID_READINGS_TIMEOUT = 5000; // 5sekund bool haveValidReadings = true; // nastaveno na true, když mají platné hodnoty int measurementType = meter. NO_READING; a v horní části smyčky () přidejte if (meter.haveReading ()) {if (meter.isValid ()) {validReadingTimer = millis (); haveValidReadings = true; } int newType = meter.getType (); if (measurementType! = newType) {// výstup nových datových titulů parser.print (F ("sec,")); parser.println (meter.getTypeAsStr ()); } measurementType = newType; } if ((millis () - validReadingTimer)> VALID_READINGS_TIMEOUT) {haveValidReadings = false; // žádné nové platné čtení za posledních 5 s}
  7. Dále ve smyčce nahraďte parser.print (F ("{= Multimetr | čas (s) | Plot_1 ~~~ ||}")); s parser.print (F ("{= Multimetr | čas (s) | Meter Reading ~~~")); parser.print (meter.getTypeAsStr ()); parser.print (F ("||}"));
  8. V dolní části smyčky () nahraďte sendData (); s if (haveValidReadings) {sendData (); }
  9. V sendData () nahraďte parser.print (','); parser.print (((float) (plot_1_var-plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); s parser.print (','); parser.print (meter.getAsStr);
  10. V sendMainMenu () nahraďte parser.print (F ("~ Label")); s parser.print ('~'); if (haveValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } else {parser.print (F (" - - -")); }
  11. Do sendMainMenuUpdate () přidejte parser.print (F ("|! A")); parser.print ('~'); if (haveValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } else {parser.print (F (" - - -")); } Chcete -li aktualizovat čtení při použití ukládání do mezipaměti nabídky.

Závěr

Tento tutoriál ukázal, jak připojit levný multimetr k Arduino Mega2560 přes RS232. Podporováno je také mnoho dalších desek. PfodVC820MeterParserlibrary analyzuje data multimetru na plováky pro výpočty Arduino a řetězce pro zobrazení a protokolování. Nástroj pfodDesignerV2 byl použit k vygenerování základního náčrtu pro zobrazení odečtu multimetru a zobrazení grafu hodnot v mobilním zařízení Android pomocí pfodApp. Není vyžadováno žádné programování pro Android. K tomuto základnímu náčrtu byla přidána manipulace s multimetrem a konečná skica zobrazuje aktuální odečet z multimetru na vašem mobilním telefonu Android a také vykreslení naměřených hodnot a jejich přihlášení do souboru v mobilu pro pozdější použití.

Doporučuje: