Sadržaj:

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

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

Video: Daljinsko bilježenje podataka visoke preciznosti pomoću multimetra/Arduino/pfodApp: 10 koraka (sa slikama)
Video: CS50 2013 - Week 9 2024, Novembar
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. aprila 2017. Revidirano kolo i ploča za upotrebu sa 4000ZC USB mjeračima.

Nije potrebno Android kodiranje

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

AtoD pretvarač ugrađen u Arduino ima lošu preciznost, obično +/- 10% i vrlo ograničen raspon, tipično samo 0 do 5V DC volti. Koristeći jednostavno kolo i biblioteku, svoj Arduino možete napajati mjerenjima automatskog raspona visoke preciznosti s multimetra s optički izoliranom RS232 vezom. Raspoloživost mjerenja na skici omogućava vam kontrolu izlaza na osnovu vrijednosti. Ovaj vodič također pokriva slanje mjerenja na daljinu, putem WiFi -a, Bluetooth -a, Bluetooth -a sa niskom potrošnjom energije ili SMS -a, na Android mobitel za prikaz, evidentiranje 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 sa 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 Bluetooth Low Energy, poput Arduina 101, ili ploče koje se povezuju na komunikaciju podsistem koji koristi SPI, poput RedBear BLE štita i Adafrutovih Bluefruit SPI ploča. pfodDesignerV2 podržava sve ove kombinacije ploča i generirat će kôd za njih. Ograničavajući uvjet je da morate imati besplatnu hardversku seriju za povezivanje sa ovim multimetrskim RS232 štitom.

Ovdje prikazani krug i kôd rade s nekoliko multimetara. Lako dostupan, jeftin, jedan je Tekpower TP4000ZC, poznat i kao Digitek TD-4000ZC. Multimetri koji rade s ovim krugom i bibliotekom 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 pokriva 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. Biblioteka multimetra se zatim dodaje osnovnoj skici kako bi se dovršio kôd. Za prikazivanje, evidentiranje i iscrtavanje čitanja nije potrebno Android kodiranje. Sve se kontrolira iz vašeg Arduino koda.

Ovaj projekat je takođe dostupan na mreži na www.pfod.com.au

Za udaljeni head-up prikaz multimetra pogledajte ove instrukcije, Arduino naočale za podatke za moj multimetar od Alaina.

Korak 2: Multimetar

Multimetar
Multimetar

Multimetri korišteni u ovom vodiču su jeftini (~ US40) Tekpower TP4000ZC (poznat i kao Digitek DT-4000ZC) i stariji Digitech QM1538, koji se više ne prodaje. Oba ova mjerača su 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%+5Kapacitet: 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 preko uključene sonde sa 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 RS232 sučelja

Hardver RS232 interfejsa
Hardver RS232 interfejsa
Hardver RS232 interfejsa
Hardver RS232 interfejsa
Hardver RS232 interfejsa
Hardver RS232 interfejsa

Postoje dva interfejsa. Noviji Digitek DT-4000ZC i Tekpower TP40000ZC mjerači dolaze s USB kabelom. Dok je stariji Digitek QM1538 dobio RS232 9pin D konektorski kabel. Gornji krug (verzija u pdf-u) pokazuje kako spojiti višemetarsku opto sprezaljku za pogon Arduino RX serijskog pina. Napomena: Ovaj krug je 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 će odgovarati i 3,5 mm utičnica.

Digitek QM1538

Za stariji Digitek QM1538 potreban vam je utikač od 9 pina D. 9 -pinski konektor D ima ofsetne pinove koji se neće priključiti na prototipni štit. Samo odrežite red od 4 pina kako biste mogli lemiti konektor na ploču, jer kolo koristi samo pinove u drugom redu od 5 pinova. Montažne noge su savijene kako bi konektor ležao ravno, a konektor je pričvršćen za prototipni štit pomoću dvokomponentnog epoksidnog ljepila (“Araldite”) Raspored pinova konektora prikazan je gore sa ove stranice. 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

Ovo kolo ć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 vod se koristi za povezivanje TP1 na štitu sa Serial1 RX, pin D19, na Mega2560.

Napomena o serijskom softveru: U početku je ovaj štit bio uparen sa UNO -om koristeći softverski serijski zapis na pinovima 10, 11. Međutim, kada je uparen sa Bluetooth štitom na serijskom priključku 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 evidentiranje, ako koristite komunikacijski štit koji se povezuje serijski, potrebna vam je ili ploča s dvije ili više hardverskih serija, 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 na komunikacijski podsistem 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: PfodVC820MultimeterParser biblioteka

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. Biblioteka pfodVC820MeterParser.zip dekodira ove bajtove u tekstualne nizove i pluta. (VC820 se odnosi na jedno od mjerača koji koristi ovo kodiranje.) Također pogledajte QtDMM za Windows, Mac i Linux računarski softver koji rukuje širokim spektrom multimetara.

Postoji minimalni primjer, MeterParserExample.ino, korištenja pfodVC820MeterParser biblioteke. Spojite mjerač na 2400baud serijsku vezu, a zatim pozovite haveReading () svaku petlju za obradu bajtova. haveReading () će vratiti true kada postoji novo raščlanjeno potpuno čitanje. Zatim možete pozvati getAsFloat () da biste dobili vrijednost (skaliranu) kao float ili getAtStr () da biste dobili čitanje sa skaliranjem za ispis i bilježenje. Postoje i druge metode za pristup vrsti mjerenja, getTypeAsStr () i getTypeAsUnicode (), kao i druge pomoćne metode.

#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 prorač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 korištenjem 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, evidentiranje 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, evidentiranjem i crtanjem na vašem Android mobitelu. Nije potrebno programiranje Androida. Svi prikazi, zapisivanje i crtanje potpuno su kontrolirani vašom Arduino skicom. Besplatna aplikacija pfodDesignerV2 omogućuje vam da osmislite svoj Android meni 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 na pfodApp. Možete koristiti pfodDesignerV2 za dodavanje evidentiranja podataka i grafikona tom primjeru SMS -a. pfodDesignerV2 također ima opcije za generiranje Arduino koda na Bluetooth V2 (klasični) štit za povezivanje s pfodApp -om.

Za ovaj primjer 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 meni koji ima samo oznaku za prikaz očitanja brojila i jedno dugme za otvaranje grafikona. Ova stranica ima niz pfodDesignerV2 vodiča. Kad dobijemo osnovnu skicu, izmijenit ćemo je tako da dodamo raščlanjivač brojila i pošaljemo očitanje brojila i podatke za bilježenje i ucrtavanje.

Dizajniranje menija

U ovom odjeljku ćemo dizajnirati Android/pfodApp meni koji će prikazati očitanje brojila i dugme za otvaranje grafikona očitanja. Očitavanja se takođe čuvaju u datoteci na Android mobilnom uređaju

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 brojila, kliknite na Dodaj stavku menija i odaberite pomicanje prema dolje kako biste odabrali Oznaka.

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

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

Korak 7: Dodavanje dugmeta za grafikon

Dodavanje dugmeta za grafikon
Dodavanje dugmeta za grafikon
Dodavanje dugmeta za grafikon
Dodavanje dugmeta za grafikon
Dodavanje dugmeta za grafikon
Dodavanje dugmeta za grafikon
Dodavanje dugmeta za grafikon
Dodavanje dugmeta za grafikon

Ponovo kliknite na Dodaj stavku menija da biste dodali dugme grafikona.

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

Zatim kliknite na dugme „Grafikon“da biste otvorili ekran za uređivanje zapleta. Postojat će samo jedan crtež pa kliknite gumb Uredi grafikon 2 i Uredi grafikon 3 i pomaknite se prema dolje i kliknite Sakrij grafikon za svako od njih.

Uredite oznaku grafikona na nešto prikladno, npr. "Multimetar". Nema potrebe za promjenom bilo kojih drugih postavki iscrtavanja jer ćemo izmijeniti skicu 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 menija i ukupnu boju pozadine menija. Ovdje smo postavili upit na “Remote Multimeter” sa veličinom fonta +3 i bojom pozadine Srebrna.

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

Ako vam se dizajn ne sviđa, možete ga promijeniti prije generiranja koda. Ako želite razmaknuti oznaku od gumba, možete dodati neke prazne oznake kako je ovdje opisano. Dodavanje grafikona i podataka zapisnika o tome kako prikazati/iscrtati Arduino podatke na Androidu još je jedan vodič za pfodDesignerV2/pfodApp evidentiranje podataka i crtanje.

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 ekran Uređivanje izbornika_1 i pomaknite se prema dolje i kliknite gumb Generiraj kôd.

Kliknite gumb "Napiši kod u datoteku" za ispis Arduino skice u /pfodAppRawData/pfodDesignerV2.txt datoteku na vašem mobilnom telefonu. Zatim izađite iz pfodDesignerV2. Prenesite datoteku pfodDesignerV2.txt na svoj računar koristeći USB vezu ili aplikaciju za prijenos datoteka, poput WiFi pro za prijenos datoteka. Kopija generirane skice je ovdje, pfodDesignerV2_meter.txt

Učitajte 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 grafikona 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 parmetar multimetra i poslali njene podatke na vaš Android mobitel. Kompletna izmijenjena skica je ovdje, pfod_meter.ino

Ove izmjene dodaju parser 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 ponovo ga odabrati da biste vidjeli nove oznake. S druge strane, očitanje brojila se automatski ažurira svake sekunde. Konačno, pfodApp prema zadanim postavkama obrađuje 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 radi daljnjih proračuna i crtanja.

Korak 10: Detaljne izmjene skice

  1. Preuzmite biblioteku 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. Pritisnite Sketch → Include Library → pfodVC820MeterParser. Ovo će dodati naredbe include na vrhu skice.
  3. Uredi pfodParser_codeGenerated parser ("V1"); na pfodParser_codeGenerated parser (""); Ovo onemogućava keširanje menija u pfodApp -u pa će se prikazati vaše promjene menija. Možete se vratiti na “V3” kada završite sve promjene da biste ponovo omogućili predmemoriranje izbornika.
  4. Dodajte ove redove za stvaranje objekata za serijsku verziju softvera i multimetar. pfodVC820MeterParser mjerač;
  5. Na kraju setup () dodajte Serial1.begin (2400); meter.connect (& Serial1);
  6. Iznad petlje () dodaj nepotpisano dugo validReadingTimer = 0; const unsigned long VALID_READINGS_TIMEOUT = 5000; // 5 sekundi bool haveValidReadings = true; // postavljeno na true ako imaju valjana očitanja int durationType = meter. NO_READING; i na vrhu petlje () dodajte 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 ()); } sizeType = newType; } if ((millis () - validReadingTimer)> VALID_READINGS_TIMEOUT) {haveValidReadings = false; // nema novih valjanih očitanja u zadnjih 5 sekundi}
  7. Dalje u petlji zamenite parser.print (F ("{= Multimetar | vreme (sek) | Plot_1 ~~~ ||}")); sa parser.print (F ("{= Multimetar | vrijeme (sek) | 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); sa parser.print (','); parser.print (meter.getAsStr);
  10. U sendMainMenu () zamijenite parser.print (F ("~ Label")); sa parser.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 čitanja pri korištenju keširanja 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 za Arduino proračune i nizove za prikaz i evidentiranje. pfodDesignerV2 je korišten za generiranje osnovne skice za prikaz očitanja multimetra i prikaz grafikona vrijednosti na Android mobitelu pomoću pfodApp -a. Nije potrebno programiranje Androida. 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čuje se: