Sadržaj:

Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp: 10 koraka (sa slikama)
Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp: 10 koraka (sa slikama)

Video: Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp: 10 koraka (sa slikama)

Video: Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp: 10 koraka (sa slikama)
Video: 5G dan HAKOM-a - "Umjetna inteligencija i 5G tehnologija - glavni pokretači digitalizacije" 2024, Srpanj
Anonim
Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp
Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp
Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp
Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp
Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp
Daljinsko bilježenje podataka visoke točnosti pomoću multimetra/Arduino/pfodApp

Ažurirano 26. travnja 2017. Revidirano kolo i ploča za uporabu s USB mjeračima od 4000ZC.

Nije potrebno kodiranje Androida

Ova instrukcija vam pokazuje kako pristupiti širokom rasponu mjerenja visoke točnosti s vašeg Arduina, a također ih šaljete i na daljinu radi evidentiranja i crtanja. Za zapisivanje podataka velike brzine (2000 uzoraka/sek) pogledajte ovo uputstvo za daljinsko bilježenje podataka velikom brzinom pomoću Arduino/GL AR150/Android/pfodApp

AtoD pretvarač ugrađen u Arduino ima lošu točnost, tipično +/- 10% i vrlo ograničen raspon, tipično samo 0 do 5V istosmjernih volti. Koristeći jednostavan krug i biblioteku, svoj Arduino možete napajati mjerenjima s automatskim rasponom visoke točnosti s multimetra s optički izoliranom RS232 vezom. Raspoloživost mjerenja na skici omogućuje vam kontrolu izlaza na temelju vrijednosti. Ovaj vodič također pokriva slanje mjerenja na daljinu, putem WiFi -a, Bluetootha, Bluetooth -a s niskom potrošnjom energije ili SMS -a, na Android mobitel za prikaz, bilježenje i crtanje pomoću pfodApp -a.

Ovaj instruktor koristi Arduino Mega2560 5V ploču koju možete upariti sa širokim spektrom komunikacijskih štitova, Ethernet, WiFi, Bluetooth V2 (klasični), Bluetooth LE ili SMS. Ovdje prikazani hardver i biblioteka sučelja mogu se također koristiti s 3.3V Arduino kompatibilnim pločama. Osim Mega2560, možete koristiti i niz drugih ploča, poput UNO sa i Ehternet štitom, osnovnu ploču ESP8266 (zasebnu), ploču s integriranim Bluetoothom niske energije, poput Arduina 101, ili ploče koje se povezuju na komunikaciju podsustav koji koristi SPI, poput RedBear BLE štita i Adafrutovih Bluefruit SPI ploča. pfodDesignerV2 podržava sve ove kombinacije ploča i za njih će generirati kôd. Ograničavajući uvjet je da morate imati besplatnu hardversku seriju za spajanje na ovaj multimetarski RS232 štit.

Ovdje prikazani krug i kôd rade s brojnim multimetrima. Lako dostupan, jeftin, jedan je Tekpower TP4000ZC, također poznat kao Digitek TD-4000ZC. Multimetri koji rade s ovim krugom i knjižnicom uključuju 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

Korak 1:

Ovaj vodič ima dva dijela:

Prvi dio pokriva hardversko sučelje multimetra i biblioteku kodova pomoću Arduino Mega. Ako samo želite unijeti mjerenje u svoj Arduino, to je sve što vam treba.

Drugi dio obuhvaća slanje mjerenja na udaljeni Android mobitel radi prikaza, evidentiranja i crtanja. U ovom primjeru koristit ćemo Bluetooth štit i generirati osnovnu skicu pomoću pfodDesignerV2, ali također možete generirati kôd za WiFi, Ethernet, Bluetooth Low Energy i SMS veze pomoću pfodDesignerV2. Knjižnica multimetara zatim se dodaje osnovnoj skici kako bi se dovršio kôd. Za prikazivanje, evidentiranje i crtanje čitanja nije potrebno Android kodiranje. Sve se kontrolira iz vašeg Arduino koda.

Ovaj je projekt također dostupan online na www.pfod.com.au

Za daljinski head-up prikaz multimetra pogledajte ove instruktivne Arduino podatkovne naočale za moj multimetar Alaina.

Korak 2: Multimetar

Multimetar
Multimetar

Multimetri korišteni u ovom vodiču su jeftini (~ US40) Tekpower TP4000ZC (također poznat kao Digitek DT-4000ZC) i stariji Digitech QM1538, koji se više ne prodaje. Oba su mjerača vizualno ista i koriste isto RS232 kodiranje mjerenja.

Ovdje su specifikacije za Tekpower TP4000ZC: -DC napon: 400mV/4/40/400V ± 0,5%+5, 600V ± 0,8%AC napon: 4/40/400V ± 0,8%+5, 400mV/600V ± 1,2%+ 5DC struja: 400/4000μA ± 2,0%+5, 40/400mA ± 1,5%+5, 4/10A ± 2%+5AC Struja: 400/4000μA ± 2,5%+3, 40/400mA ± 2%+5, 4 /10A ± 2,5%+5Otpor: 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% +5Frekvencija: 10Hz -10MHz ± 0,1% +5Radni ciklus: 0,1%-99,9%± 2,5% +5Temperatura: 0oC - +40oC ± 3oC, -50oC - +200oC ± 0,75%± 3oC, +200oC - +750oC ± 1,5% ± 3oC, rezolucija 0,1oC putem uključene sonde s termoelementom.

RS232 veza multimetra je samo jedan način i ne možete daljinski promijeniti postavke multimetra, pa morate ručno odabrati vrstu mjerenja. Merač je automatski raspon, a postavke napona i struje upravljaju i izmjeničnim i istosmjernim naponom.

Korak 3: Hardver sučelja RS232

Hardver sučelja RS232
Hardver sučelja RS232
Hardver sučelja RS232
Hardver sučelja RS232
Hardver sučelja RS232
Hardver sučelja RS232

Postoje dva sučelja. Noviji mjerači Digitek DT-4000ZC i Tekpower TP40000ZC dolaze s USB kabelom. Dok je stariji Digitek QM1538 dobivao RS232 9pin D konektorski kabel. Gornji krug (verzija u pdf-u) prikazuje kako spojiti višemetarski opto sprežnik za pogon Arduino RX serijskog pina. Napomena: Ovaj je krug ažuriran dodavanjem još jednog zaštitnog otpornika, R2, za brojila Digitek DT-4000ZC i Tekpower TP40000ZC. Ovaj otpornik nije bio uključen na gore prikazanu 9pin D konektorsku ploču.

Digitek DT-4000ZC i Tekpower TP40000ZC

Za Digitek DT-4000ZC i Tekpower TP40000ZC potreban vam je 3,5-milimetarski audio kabel muški na muški, stereo ili mono zvučnik, te 3,5-milimetarska utičnica.

Digitek QM1538

Za stariji Digitek QM1538 potrebna vam je utičnica s 9 pina D. Konektor s 9 pinova D ima pomaknute pinove koji se neće uključiti u prototipni štit. Samo odrežite red od 4 pina kako biste mogli lemiti konektor na ploču jer krug koristi samo pinove u drugom redu od 5 pinova. Noge za pričvršćivanje su savijene kako bi konektor ležao ravno, a konektor je pričvršćen na prototipni štit pomoću 2 -dijelnog epoksidnog ljepila (“Araldite”) Raspored pinova konektora prikazan je gore s ovog mjesta. 10K otpornik koji dolazi montiran unutar konektora isporučenih RS232 kabela (spojen između pinova 2 i 3) nije potreban za ovaj projekt.

Spajanje signala na Arduino RX pin

Ovaj krug će raditi i za 5V i 3.3V Arduino ploče. Ovdje koristimo Mega2560 (5V) Arduino i montirali smo krug na prototipni štit kao što je prikazano gore.

Leteći kabel koristi se za povezivanje TP1 na štitu s Serial1 RX, pin D19, na Mega2560.

Napomena o serijskoj programskoj opremi: U početku je ovaj štit bio uparen s UNO -om pomoću softverske serije na pinovima 10, 11. Međutim, kada je uparen s Bluetooth štitom na serijskoj ploči na 9600baud, neki primljeni bajtovi su izgubljeni. Premještanje RS232 na hardversku serijsku vezu riješilo je ovaj problem. Dakle, za pouzdan daljinski prikaz i bilježenje, ako koristite komunikacijski štit koji se povezuje serijski, trebate ili ploču s dvije ili više hardverskih serijskih jedinica, poput Mega2560. Druge alternative su UNO sa i Ehternet štitom, osnovna ploča ESP8266 (samostalna), ploča s integriranim Bluetoothom niske energije poput Anduina 101 ili ploče koje se povezuju s komunikacijskim podsustavom pomoću SPI-a poput RedBear BLE štita i Adafrutovog Bluefruit SPI-ja daske. pfodDesignerV2 podržava sve ove ploče i generirat će kôd za njih.

Korak 4: Biblioteka PfodVC820MultimeterParser

Tekpower TP4000ZC i niz drugih multimetara ne šalju mjerenje putem RS232 kao ASCII tekst, već šalju 14 bajtova s postavljenim bitovima ovisno o tome koji su segmenti LCD zaslona osvijetljeni. Kodiranje 14 bajtova objašnjeno je u ovom pdf -u. Knjižnica pfodVC820MeterParser.zip dekodira ove bajtove u tekstualne nizove i pluta. (VC820 se odnosi na jedan od mjerača koji koristi ovo kodiranje.) Također pogledajte QtDMM za računalni softver za Windows, Mac i Linux koji rukuje širokim rasponom multimetara.

Postoji minimalan primjer, MeterParserExample.ino, korištenja knjižnice pfodVC820MeterParser. Spojite mjerač na 2400baud serijsku vezu, a zatim pozovite haveReading () svaku petlju za obradu bajtova. haveReading () vratit će se true kada se analizira novo potpuno čitanje. Zatim možete pozvati getAsFloat () da biste dobili vrijednost (skaliranu) kao float ili getAtStr () da biste dobili čitanje s skaliranjem za ispis i bilježenje. Dostupne su i druge metode za pristup vrsti mjerenja, getTypeAsStr () i getTypeAsUnicode (), kao i drugim pomoćnim metodama.

#include "pfodVC820MeterParser.h" pfodVC820MeterParser mjerač; // void setup () {Serial.begin (74880); Serial1.begin (2400); meter.connect (& Serial1); } float čitanje; void loop () {if (meter.haveReading ()) {čitanje = meter.getAsFloat (); // koristi ovo za Arduino izračune Serial.print ("Čitanje s jedinicama:"); Serial.print (meter.getDigits ()); Serial.print (meter.getScalingAsStr ()); Serial.print (meter.getTypeAsStr ()); Serial.print (F ("= kao float ispisan (6 znamenki):")); Serial.println (čitanje, 6); Serial.println ("Vrijeme (sek) i čitanje kao niz za bilježenje"); Serial.print (((float) millis ())/1000.0); Serial.print (", sec,"); Serial.print (meter.getAsStr ()); Serial.print (','); Serial.println (meter.getTypeAsStr ()); }}

S mjeračem postavljenim na stupnju C i pomoću sonde s termoelementom, primjerna skica daje ovaj izlaz na Arduino IDE serijskom monitoru

Očitavanje s jedinicama: 25.7C = ispisano s float -om (6 znamenki): 25.700000Time (sec) i Očitavanje kao niz za bilježenje 2.40, sec, 25.7, C

Korak 5: Dio 2 - Daljinski prikaz, bilježenje i iscrtavanje

Ovaj dio vodiča pokriva kako daljinski prikazati, evidentirati i iscrtati očitanje brojila na vašem Android mobitelu. pfodApp se koristi za rukovanje prikazom, bilježenjem i crtanjem na vašem Android mobitelu. Nije potrebno programiranje za Android. Svi prikazi, zapisivanje i crtanje potpuno su kontrolirani vašom Arduino skicom. Besplatna aplikacija pfodDesignerV2 omogućuje vam da osmislite svoj Android izbornik i grafikon, a zatim za vas generira Arduino skicu.

pfodApp podržava brojne vrste povezivanja, Ethernet, WiFi, Bluetooth V2 (klasični), Bluetooth LE ili SMS. Ovaj vodič koristi Arduino 101 (Bluetooth niske energije) za bilježenje podataka i crtanje. Podržane su i druge Bluetooth niskoenergetske ploče. Ovaj vodič koristi SMS za povezivanje s pfodApp -om. Možete koristiti pfodDesignerV2 za dodavanje bilježenja podataka i grafikona u taj primjer SMS -a. pfodDesignerV2 također ima opcije za generiranje Arduino koda na Bluetooth V2 (klasični) štit za povezivanje s pfodApp -om.

U ovom primjeru koristit ćemo Iteadstudio Bluetooth Shield V2.2 koji se povezuje s Arduino Mega2560 putem 9600baud serijske veze. Pomoću besplatne aplikacije pfodDesignerV2 postavili smo jednostavan izbornik koji samo ima oznaku za prikaz očitanja brojila i jedan gumb za otvaranje grafikona. Ova stranica ima niz pfodDesignerV2 vodiča. Nakon što napravimo osnovnu skicu, izmijenit ćemo je tako da dodamo raščlanjivač brojila i pošaljemo očitanja i podatke brojila za bilježenje i ucrtavanje.

Dizajniranje jelovnika

U ovom odjeljku osmislit ćemo Android/pfodApp izbornik koji će prikazati očitanje mjerača i gumb za otvaranje grafikona očitanja. Očitavanja se također spremaju u datoteku na Android mobitelu

Korak 6: Dodavanje oznake

Dodavanje oznake
Dodavanje oznake
Dodavanje oznake
Dodavanje oznake
Dodavanje oznake
Dodavanje oznake

Instalirajte besplatni pfodDesignerV2 i pokrenite novi izbornik.

Zadani cilj je serijski na 9600baud što je potrebno za Iteadstudio Bluetooth Shield V2.2. Ako se povezujete pomoću Bluetooth niskoenergetskog uređaja ili Wi -Fi -ja ili SMS -a, kliknite na Target za promjenu odabira.

Da biste dodali oznaku za prikaz očitanja mjerača, kliknite Dodaj stavku izbornika i odaberite pomicanje prema dolje za odabir Oznaka.

Odaberite odgovarajuću veličinu fonta i boje. Ostavite tekst kao oznaku jer ćemo generirani kôd izmijeniti kako bismo ga kasnije zamijenili mjerenjem mjerača. Ovdje smo postavili veličinu fonta na +7, boju fonta na Crveno i pozadinu na Srebro.

Vratite se na zaslon Uređivanje izbornika_1 i postavite interval osvježavanja 1 s. Prisilit će pfodApp da ponovo zatraži izbornik otprilike jednom u sekundi za prikaz najnovijeg očitanja u oznaci.

Korak 7: Dodavanje gumba grafikona

Dodavanje gumba grafikona
Dodavanje gumba grafikona
Dodavanje gumba grafikona
Dodavanje gumba grafikona
Dodavanje gumba grafikona
Dodavanje gumba grafikona
Dodavanje gumba grafikona
Dodavanje gumba grafikona

Ponovno kliknite Dodaj stavku izbornika da biste dodali gumb grafikona.

Uredite tekst Gumba za grafikon u nešto prikladno, npr. samo "Chart" i odaberite veličinu fonta i boje.

Zatim kliknite gumb "Karta" da biste otvorili zaslon za uređivanje zapleta. Postojat će samo jedan crtež pa kliknite gumbe Uredi grafikon 2 i Uredi zemljište 3 te se pomaknite prema dolje i kliknite Sakrij grafikon za svaki od njih.

Uredite oznaku grafikona na nešto prikladno, npr. "Multimetar". Nema potrebe za promjenom bilo koje druge postavke iscrtavanja jer ćemo skicu izmijeniti za slanje različitih oznaka osi y ovisno o postavci multimetra.

Na kraju se vratite na Izbornik za uređivanje_1 i Uređivanje upita, ovo postavlja tekst na dnu izbornika i ukupnu boju pozadine izbornika. Ovdje smo postavili odziv na "Remote Multimeter" s veličinom fonta +3 i bojom pozadine Srebrna.

Sada se možete vratiti na Izbornik za uređivanje_1 i kliknuti Pregled izbornika za pregled dizajna izbornika.

Ako vam se dizajn ne sviđa, možete ga promijeniti prije generiranja koda. Ako želite razmaknuti oznaku s gumba, možete dodati neke prazne oznake kako je ovdje opisano. Dodavanje grafikona i podataka zapisnika o načinu prikaza/iscrtavanja Arduino podataka na Androidu još je jedan vodič o pfodDesignerV2/pfodApp evidentiranju podataka i crtanju.

Korak 8: Generiranje Arduino skice

Generiranje Arduino skice
Generiranje Arduino skice
Generiranje Arduino skice
Generiranje Arduino skice

Da biste generirali Arduino kôd koji će prikazati ovaj izbornik u pfodApp -u, vratite se na zaslon Uređivanje izbornika_1 i pomaknite se prema dolje i kliknite gumb Generiraj kôd.

Pritisnite gumb "Napiši kod u datoteku" za ispis Arduino skice u /pfodAppRawData/pfodDesignerV2.txt datoteku na vašem mobitelu. Zatim izađite iz pfodDesignerV2. Prenesite datoteku pfodDesignerV2.txt na svoje računalo pomoću USB veze ili aplikacije za prijenos datoteka, poput Wi -Fi -ja za prijenos datoteka. Kopija generirane skice nalazi se ovdje, pfodDesignerV2_meter.txt

Umetnite skicu u svoj Arduino IDE i programirajte svoju Uno (ili Mega) ploču. Zatim dodajte Iteadstudio Bluetooth Shield V2.2. Instalirajte pfodApp na svoj Android mobitel i stvorite novu Bluetooth vezu pod nazivom, na primjer, Multimetar. Pogledajte pfodAppForAndroidGettingStarted.pdf za stvaranje novih veza. Kada koristite pfodApp za otvaranje veze s multimetrom, vidjet ćete osmišljeni izbornik.

Otvaranje tablice ne prikazuje ništa zanimljivo jer nismo dodali hardver/softver za multimetar.

Korak 9: Dodavanje multimetra

Dodavanje multimetra
Dodavanje multimetra
Dodavanje multimetra
Dodavanje multimetra
Dodavanje multimetra
Dodavanje multimetra

Generiranu skicu ćemo izmijeniti kako bismo dodali multimetarski parser i poslali njene podatke na vaš Android mobitel. Kompletna izmijenjena skica je ovdje, pfod_meter.ino

Ove izmjene dodaju analizator multimetra i mjerač vremena od 5 sekundi. Ako u to vrijeme nema novih valjanih očitanja, skica prestaje slati podatke i ažurira zaslon Android/pfodApp na “- - -“. Kako se mijenja ručni odabir mjerača, oznake grafikona se ažuriraju, ali morate izaći iz grafikona i ponovno ga odabrati da biste vidjeli nove oznake. S druge strane, očitanje brojila automatski se ažurira svake sekunde. Konačno, pfodApp prema zadanim postavkama upravlja Unicode, pa se pri prikazivanju očitanja mjerača koristi metoda getTypeAsUnicode () za vraćanje Unicode za ohme, Ω i degsC, ℃ za prikaz mjerača.

Gumb grafikona prikazuje ažurirani grafikon očitanja:-

Podaci grafikona u CSV formatu također se spremaju u datoteku na vaš Android mobitel pod /pfodAppRawData/Mulitmeter.txt za kasniji prijenos na vaše računalo i uvoz u proračunsku tablicu za daljnje izračune i izradu grafikona.

Korak 10: Detaljne izmjene skice

  1. Preuzmite knjižnicu pfodVC820MeterParser.zip, a zatim otvorite Arduino IDE i kliknite na Sketch → Include Library → Add.zip da dodate ovu biblioteku u svoj IDE.
  2. Dodajte biblioteku pfodVC820MeterParser u skicu. Kliknite Sketch → Include Library → pfodVC820MeterParser. Ovo će dodati naredbe include na vrhu skice.
  3. Uredi pfodParser_codeGenerated parser ("V1"); na pfodParser_codeGenerated parser (""); Ovo onemogućuje keširanje izbornika u pfodApp -u pa će se prikazati vaše promjene izbornika. Možete se vratiti na "V3" kada završite sve promjene kako biste ponovno omogućili predmemoriranje izbornika.
  4. Dodajte ove retke za stvaranje objekata za serijsku programsku opremu i multimetar. pfodVC820MeterParser mjerač;
  5. Na kraju setup () dodajte Serial1.begin (2400); meter.connect (& Serial1);
  6. Iznad loop () dodaj bez potpisa dugo validReadingTimer = 0; const unsigned long VALID_READINGS_TIMEOUT = 5000; // 5 sekundi bool haveValidReadings = true; // postavljeno na true ako imaju valjana očitanja int mjerenjeTip = meter. NO_READING; a na vrhu petlje () dodaj if (meter.haveReading ()) {if (meter.isValid ()) {validReadingTimer = millis (); haveValidReadings = true; } int newType = meter.getType (); if (testingType! = newType) {// izlaz novih naslova zapisivanja podataka parser.print (F ("sec,")); parser.println (meter.getTypeAsStr ()); } vrsta mjerenja = nova vrsta; } if ((millis () - validReadingTimer)> VALID_READINGS_TIMEOUT) {haveValidReadings = false; // nema novih valjanih očitanja u zadnjih 5 sekundi}
  7. Dalje u petlji zamijenite parser.print (F ("{= Multimetar | vrijeme (sek) | Plot_1 ~~~ ||}")); s parser.print (F ("{= Multimetar | vrijeme (sekunde) | Očitavanje mjerača ~~~")); parser.print (meter.getTypeAsStr ()); parser.print (F ("||}"));
  8. Na dnu petlje () zamijenite sendData (); sa if (haveValidReadings) {sendData (); }
  9. U sendData () zamijenite 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. U sendMainMenu () zamijenite parser.print (F ("~ Label")); s parserom.print ('~'); if (haveValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } else {parser.print (F (" - - -")); }
  11. U sendMainMenuUpdate () dodajte parser.print (F ("|! A")); parser.print ('~'); if (haveValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } else {parser.print (F (" - - -")); } Za ažuriranje očitanja pri korištenju predmemoriranja izbornika.

Zaključak

Ovaj vodič je pokazao kako spojiti jeftin multimetar na Arduino Mega2560 putem RS232. Podržane su i mnoge druge ploče. PfodVC820MeterParserlibrary analizira podatke multimetra u plutajuće podatke za Arduino izračune i nizove za prikaz i bilježenje. pfodDesignerV2 korišten je za generiranje osnovne skice za prikaz očitanja multimetra i prikaz grafikona vrijednosti na Android mobitelu pomoću pfodApp -a. Nije potrebno programiranje za Android. Ovoj osnovnoj skici dodano je rukovanje multimetrom, a konačna skica prikazuje trenutno očitanje multimetra na vašem Android mobitelu, kao i iscrtavanje očitanja i njihovo bilježenje u datoteku na vašem mobilnom telefonu za kasniju upotrebu.

Preporučeni: