Съдържание:

Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp: 10 стъпки (със снимки)
Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp: 10 стъпки (със снимки)

Видео: Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp: 10 стъпки (със снимки)

Видео: Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp: 10 стъпки (със снимки)
Видео: ДЕШЕВАЯ камера УДИВИЛА после ОБНОВЛЕНИЯ, начала СЛЕДИТЬ ЗА ЛЮДЬМИ!!! 2024, Ноември
Anonim
Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp
Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp
Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp
Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp
Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp
Дистанционно регистриране на данни с висока точност с помощта на мултицет/Arduino/pfodApp

Актуализирано на 26 април 2017 г. Ревизирана схема и платка за използване с 4000 ZC USB измервателни уреди.

Не се изисква кодиране за Android

Тази инструкция ви показва как да получите достъп до широк спектър от измервания с висока точност от вашия Arduino и също така да ги изпратите дистанционно за регистриране и начертаване. За високоскоростно регистриране на данни (2000 проби/сек) вижте тази инструкция, дистанционно високоскоростно регистриране на данни, използвайки Arduino/GL AR150/Android/pfodApp

AtoD конверторът, вграден в Arduino, има лоша точност, обикновено +/- 10% и много ограничен диапазон, обикновено само от 0 до 5V DC волта. Използвайки проста схема и библиотека, можете да захранвате вашия Arduino с високоточни автоматични измервания от мултицет с оптично изолирана RS232 връзка. Наличието на измерванията за вашата скица ви позволява да контролирате изходите въз основа на стойностите. Този урок обхваща и изпращането на измерването дистанционно, чрез WiFi, Bluetooth, Bluetooth с ниска енергия или SMS, до мобилен телефон с Android за показване, регистриране и начертаване с помощта на pfodApp.

Тази инструкция използва Arduino Mega2560 5V платка, която можете да сдвоите с голямо разнообразие от комуникационни щитове, Ethernet, WiFi, Bluetooth V2 (класически), Bluetooth LE или SMS. Интерфейсният хардуер и библиотеката, представени тук, могат да се използват и с 3.3V Arduino съвместими платки. Освен Mega2560 можете да използвате голямо разнообразие от други платки като UNO с и Ehternet щит, базова платка ESP8266 (самостоятелна), платка с вграден Bluetooth Low Energy, като Arduino 101, или платки, които се свързват към комуникацията подсистема, използваща SPI като RedBear BLE щит и Adafrut Bluefruit SPI дъски. pfodDesignerV2 поддържа всички тези комбинации от платки и ще генерира кода за тях. Ограничаващото условие е, че трябва да имате безплатен хардуерен сериал, за да се свържете към този мултицетен RS232 щит.

Схемата и кодът, представени тук, работят с редица мултиметри. Лесно достъпен, евтин, един е Tekpower TP4000ZC, известен също като Digitek TD-4000ZC. Мултиметрите, които работят с тази схема и библиотека, включват 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

Етап 1:

Този урок има две части:

Първата част обхваща хардуерния интерфейс към мултицета и библиотеката с кодове, използвайки Arduino Mega. Ако искате само да въведете измерването във вашия Arduino, това е всичко, от което се нуждаете.

Втората част обхваща изпращането на измерването до отдалечен мобилен телефон с Android за показване, регистриране и начертаване. В този пример ще използваме Bluetooth щит и ще генерираме основната скица, използвайки pfodDesignerV2, но можете също така да генерирате код за WiFi, Ethernet, Bluetooth Low Energy и SMS връзки, използвайки pfodDesignerV2. След това библиотеката с мултицети се добавя към основната скица, за да завърши кода. Не се изисква кодиране на Android за показване, регистриране и начертаване на показанията. Всичко се контролира от вашия код на Arduino.

Този проект е достъпен и онлайн на www.pfod.com.au

За отдалечен хед-ъп дисплей на мултицета вижте тази инструкция, Arduino Data Glasses For My Multimeter от Alain.

Стъпка 2: Мултиметърът

Мултиметърът
Мултиметърът

Мултицетите, използвани в този урок, са евтиният (~ US40) Tekpower TP4000ZC (известен също като Digitek DT-4000ZC) и по-старият Digitech QM1538, който вече не се продава. И двата брояча са визуално еднакви и използват едно и също RS232 кодиране на измерването.

Тук спецификациите за Tekpower TP4000ZC: -DC напрежение: 400mV/4/40/400V ± 0.5%+5, 600V ± 0.8%AC напрежение: 4/40/400V ± 0.8%+5, 400mV/600V ± 1.2%+ 5DC ток: 400/4000μA ± 2.0%+5, 40/400mA ± 1.5%+5, 4/10A ± 2%+5AC Ток: 400/4000μA ± 2.5%+3, 40/400mA ± 2%+5, 4 /10A ± 2.5%+5 Съпротивление: 400Ω/4/40/400kΩ/4MΩ ± 1%+5, 40MΩ ± 2%+5 Капацитет: 40nF ± 3.5%+10, 400nF/4/40μF ± 3%+5, 100μF ± 3.5% +5 Честота: 10Hz -10MHz ± 0.1% +5 Работен цикъл: 0.1%-99.9%± 2.5% +5 Температура: 0oC - +40oC ± 3oC, -50oC - +200oC ± 0.75%± 3oC, +200oC - +750oC ± 1,5% ± 3oC, разделителна способност 0,1oC чрез включена сонда за термодвойка.

RS232 връзката на мултицета е само по един начин и не можете да променяте настройките на мултицета дистанционно, така че трябва ръчно да изберете типа измерване. Измервателят обаче е с автоматичен диапазон и настройките за напрежение и ток се справят както с променлив, така и с постоянен ток.

Стъпка 3: Хардуер на интерфейса RS232

Хардуер за интерфейс RS232
Хардуер за интерфейс RS232
Хардуер за интерфейс RS232
Хардуер за интерфейс RS232
Хардуер за интерфейс RS232
Хардуер за интерфейс RS232

Има два интерфейса. По-новите измервателни уреди Digitek DT-4000ZC и Tekpower TP40000ZC се доставят с USB кабел. Докато по-старият Digitek QM1538 беше снабден с RS232 9pin D съединителен кабел. Горната схема (pdf версия) показва как да свържете опторазклонителя на мултиметъра, за да управлявате сериен щифт на Arduino RX. Забележка: Тази схема е актуализирана, за да се добави друг защитен резистор, R2, за измервателните уреди Digitek DT-4000ZC и Tekpower TP40000ZC. Този резистор не е включен в 9 -пиновата D конекторна платка, показана по -горе.

Digitek DT-4000ZC и Tekpower TP40000ZC

За Digitek DT-4000ZC и Tekpower TP40000ZC се нуждаете от 3,5 мм аудио кабел от мъжки към мъжки, стерео или моно ще го направите и 3,5 мм гнездо.

Digitek QM1538

За по -стария Digitek QM1538 се нуждаете от гнездо 9pin D. Конекторът 9pin D има офсетови щифтове, които няма да се включат в щита на прототипа. Просто отрежете реда от 4 пина, за да можете да запоявате конектора към платката, тъй като веригата използва само щифтове във втория ред от 5 пина. Монтажните крака бяха огънати, за да позволят на конектора да лежи плоско, а конекторът беше закрепен към прототипния щит, като се използва двукомпонентно епоксидно лепило („Araldite“) Разположението на щифтовете на конектора е показано по -горе, е от този сайт. 10K резисторът, който се монтира вътре в конектора на доставените RS232 кабели (свързани между пинове 2 и 3), не е необходим за този проект.

Свързване на сигнала към Arduino RX пин

Тази схема ще работи както за 5V, така и за 3.3V Arduino платки. Тук използваме Mega2560 (5V) Arduino и монтирахме веригата върху прототип на щит, както е показано по -горе.

Летящ проводник се използва за свързване на TP1 на щита към Serial1 RX, щифт D19, на Mega2560.

Забележка относно софтуерния сериал: Първоначално този щит беше сдвоен с UNO, използващ софтуерен сериал на пинове 10, 11. Въпреки това, когато се сдвои с Bluetooth щита на сериен при 9600 бода, някои получени байтове бяха загубени. Преместването на RS232 към хардуерна серийна връзка реши този проблем. Така че за надеждно дистанционно показване и регистриране, ако използвате комуникационен щит, който се свързва чрез сериен, имате нужда или от платка с два или повече хардуерни сериала, като Mega2560. Други алтернативи са UNO със и Ehternet щит, базова платка ESP8266 (самостоятелна), платка с интегриран Bluetooth Low Energy като Anduino 101 или платки, които се свързват към комуникационната подсистема, използвайки SPI като RedBear BLE щит и Adafrut Bluefruit SPI дъски. pfodDesignerV2 поддържа всички тези платки и ще генерира кода за тях.

Стъпка 4: Библиотеката PfodVC820MultimeterParser

Tekpower TP4000ZC и редица други мултиметри не изпращат измерването чрез RS232 като ASCII текст, а по -скоро изпраща 14 байта с зададени битове в зависимост от това кои сегменти на LCD дисплея са осветени. Кодирането на 14 -те байта е обяснено в този pdf. Библиотеката pfodVC820MeterParser.zip декодира тези байтове в текстови низове и плава. (VC820 се отнася за един от измервателните уреди, който използва това кодиране.) Вижте също QtDMM за компютърен софтуер за Windows, Mac и Linux, който борави с широк спектър от мултиметри.

Има минимален пример, MeterParserExample.ino, за използване на библиотеката pfodVC820MeterParser. Свържете измервателния уред с 2400баудова серийна връзка и след това извикайте haveReading () всеки цикъл, за да обработите байтовете. haveReading () ще върне true, когато има ново анализирано цялостно четене. След това можете да извикате getAsFloat (), за да получите стойността (мащабирана) като float или getAtStr (), за да получите четенето с мащабиране за печат и регистриране. Има и други методи за достъп до типа измерване, getTypeAsStr () и getTypeAsUnicode (), както и други помощни методи.

#include "pfodVC820MeterParser.h" pfodVC820MeterParser метър; // void setup () {Serial.begin (74880); Serial1.begin (2400); meter.connect (& Serial1); } плаващо четене; void loop () {if (meter.haveReading ()) {четене = meter.getAsFloat (); // използвайте това за изчисления на Arduino Serial.print ("Четене с единици:"); Serial.print (meter.getDigits ()); Serial.print (meter.getScalingAsStr ()); Serial.print (meter.getTypeAsStr ()); Serial.print (F ("= като отпечатано с поплавък (6 цифри):")); Serial.println (четене, 6); Serial.println ("Време (сек) и Четене като низ за регистриране"); Serial.print ((((float) millis ())/1000.0); Serial.print (", sec,"); Serial.print (meter.getAsStr ()); Serial.print (','); Serial.println (meter.getTypeAsStr ()); }}

С измервателния уред на Deg C и с помощта на сондата за термодвойка, примерната скица дава този изход на серийния монитор на Arduino IDE

Четене с единици: 25.7C = като отпечатано с поплавък (6 цифри): 25.700000Time (sec) и Четене като низ за регистриране 2.40, sec, 25.7, C

Стъпка 5: Част 2 - Дистанционно показване, регистриране и начертаване

Тази част от урока обхваща как дистанционно да показвате, регистрирате и начертавате показанията на глюкомера на вашия мобилен телефон с Android. pfodApp се използва за обработка на дисплея, регистриране и зачертаване на вашия мобилен телефон с Android. Не се изисква програмиране за Android. Всички дисплеи, регистриране и начертаване са изцяло контролирани от вашата скица на Arduino. Безплатното приложение pfodDesignerV2 ви позволява да проектирате менюто и диаграмата си за Android и след това генерира скицата на Arduino за вас.

pfodApp поддържа редица видове връзки, Ethernet, WiFi, Bluetooth V2 (класически), Bluetooth LE или SMS. Този урок използва Arduino 101 (Bluetooth с ниска енергия) за регистриране и нанасяне на данни. Поддържат се и други ниско енергийни платки Bluetooth. Този урок използва SMS за свързване с pfodApp. Можете да използвате pfodDesignerV2, за да добавите регистриране на данни и диаграми към този пример за SMS. pfodDesignerV2 също има опции за генериране на Arduino код към Bluetooth V2 (класически) щит за свързване с pfodApp.

За този пример ще използваме Iteadstudio Bluetooth Shield V2.2, който се свързва с Arduino Mega2560 чрез серийна връзка с 9600 бода. Използвайки безплатното приложение pfodDesignerV2, ние създадохме просто меню, което има само етикет, който показва показанията на измервателния уред, и един бутон за отваряне на диаграмата. Тази страница има редица уроци по pfodDesignerV2. След като имаме основна скица, ще я модифицираме, за да добавим анализатора на измервателния уред и да изпратим показанията на измервателния уред и данните за регистриране и картографиране.

Проектиране на менюто

В този раздел ще проектираме меню за Android/pfodApp, което ще показва показанията на глюкомера и бутон за отваряне на диаграма на показанията. Показанията също се записват във файл на мобилния телефон с Android

Стъпка 6: Добавяне на етикет

Добавяне на етикет
Добавяне на етикет
Добавяне на етикет
Добавяне на етикет
Добавяне на етикет
Добавяне на етикет

Инсталирайте безплатния pfodDesignerV2 и стартирайте ново меню.

Целта по подразбиране е сериен на 9600baud, което е необходимо за Iteadstudio Bluetooth Shield V2.2. Ако се свързвате с Bluetooth ниско енергийно устройство или Wifi или SMS, щракнете върху Target, за да промените избора.

За да добавите етикет за показване на показанията на глюкомера, щракнете върху Добавяне на елемент от менюто и изберете превъртане надолу, за да изберете Етикет.

Изберете подходящ размер и цветове на шрифта. Оставете текста като етикет, тъй като ние ще променим генерирания код, за да го заменим с измерването на измервателния уред по -късно. Тук сме задали размера на шрифта на +7, цвета на шрифта на Червено и фон на сребро.

Върнете се на екрана Editing Menu_1 и задайте интервал за опресняване 1 сек. Ще накара pfodApp да поиска отново менюто около веднъж в секунда, за да покаже последното четене в етикета.

Стъпка 7: Добавяне на бутон за диаграма

Добавяне на бутон за диаграма
Добавяне на бутон за диаграма
Добавяне на бутон за диаграма
Добавяне на бутон за диаграма
Добавяне на бутон за диаграма
Добавяне на бутон за диаграма
Добавяне на бутон за диаграма
Добавяне на бутон за диаграма

Кликнете отново върху Добавяне на елемент от менюто, за да добавите бутон с диаграма.

Редактирайте текста на бутона за диаграма на нещо подходящо, напр. просто „Диаграма“и изберете размер и цветове на шрифта.

След това щракнете върху бутона „Диаграма“, за да отворите екрана за редактиране на сюжета. Ще има само един график, така че щракнете върху бутоните Edit Plot 2 и Edit Plot 3 и превъртете надолу и кликнете върху Hide Plot за всеки от тях.

Редактирайте етикета на диаграмата на нещо подходящо, напр. "Мултиметър". Няма нужда да променяте някоя от другите настройки на графика, тъй като ще модифицираме скицата, за да изпращаме различен етикет по оста y в зависимост от настройката на мултицета.

Накрая се върнете към менюто за редактиране_1 и ред за редактиране, това задава текста в долната част на менюто и цялостния цвят на фона на менюто. Тук сме задали подкана на „Дистанционен мултицет“с размер на шрифта +3 и цвят на фона сребрист.

Вече можете да се върнете към Меню за редактиране_1 и да кликнете върху Преглед на менюто, за да визуализирате дизайна на менюто.

Ако дизайнът не ви харесва, можете да го промените, преди да генерирате кода. Ако искате да отделите етикета от бутона, можете да добавите някои празни етикети, както е описано тук. Добавянето на диаграма и регистриране на данни за това как да се показват/изобразяват Arduino данни за Android е друг урок за pfodDesignerV2/pfodApp регистриране на данни и диаграми.

Стъпка 8: Генериране на скицата на Arduino

Генериране на скицата на Arduino
Генериране на скицата на Arduino
Генериране на скицата на Arduino
Генериране на скицата на Arduino

За да генерирате кода на Arduino, който ще показва това меню в pfodApp, върнете се на екрана Editing Menu_1 и превъртете надолу и щракнете върху бутона Generate Code.

Щракнете върху бутона „Напиши код във файл“, за да изведете скицата на Arduino във /pfodAppRawData/pfodDesignerV2.txt файла на вашия мобилен телефон. След това излезте от pfodDesignerV2. Прехвърлете файла pfodDesignerV2.txt на вашия компютър, като използвате USB връзка или приложение за прехвърляне на файлове, като например wifi pro transfer file. Копие на генерираната скица е тук, pfodDesignerV2_meter.txt

Заредете скицата във вашата Arduino IDE и програмирайте вашата Uno (или Mega) дъска. След това добавете Iteadstudio Bluetooth Shield V2.2. Инсталирайте pfodApp на вашия мобилен телефон с Android и създайте нова Bluetooth връзка, наречена, например, мултицет. Вижте pfodAppForAndroidGettingStarted.pdf за това как да създадете нови връзки. След това, когато използвате pfodApp, за да отворите връзката с мултицет, ще видите проектираното от вас меню.

Отварянето на диаграмата не показва нищо интересно, тъй като не сме добавили в мултиметъра хардуер/софтуер.

Стъпка 9: Добавяне на мултицет

Добавяне на мултицет
Добавяне на мултицет
Добавяне на мултицет
Добавяне на мултицет
Добавяне на мултицет
Добавяне на мултицет

Ще променим генерираната скица, за да добавим мултицетния анализатор и да изпратим данните му на вашия мобилен телефон с Android. Пълната модифицирана скица е тук, pfod_meter.ino

Тези модификации добавят синтактичния анализатор на мултицет и 5 -секунден таймер. Ако през това време няма ново валидно четене, скицата спира да изпраща данни и актуализира дисплея на Android/pfodApp на „ - - -“. Тъй като ръчният избор на измервателния уред се променя, етикетите на диаграмата се актуализират, но трябва да излезете от диаграмата и да я изберете отново, за да видите новите етикети. От друга страна, показанията на брояча се актуализират автоматично всяка секунда. Накрая pfodApp обработва Unicode по подразбиране, така че при показване на показанията на измервателния уред методът getTypeAsUnicode () се използва за връщане на Unicode за ома, Ω и degsC, ℃ за дисплея на измервателния уред.

Бутонът с диаграма показва актуализираща диаграма на показанията:-

Данните от диаграмата в CSV формат също се записват във файл на вашия мобилен телефон с Android под /pfodAppRawData/Mulitmeter.txt за по -късно прехвърляне на вашия компютър и импортиране в електронна таблица за по -нататъшни изчисления и диаграми.

Стъпка 10: Подробни модификации на скицата

  1. Изтеглете библиотеката pfodVC820MeterParser.zip и след това отворете Arduino IDE и щракнете в Sketch → Include Library → Add.zip, за да добавите тази библиотека към вашата IDE.
  2. Добавете библиотеката pfodVC820MeterParser към скицата. Кликнете върху Скица → Включване на библиотека → pfodVC820MeterParser. Това ще добави изявленията за включване в горната част на скицата.
  3. Редактиране на pfodParser_codeGenerated парсер ("V1"); to pfodParser_codeGenerated parser (""); Това деактивира кеширането на менюто в pfodApp, така че промените в менюто ви ще се покажат. Можете да се върнете към „V3“, когато приключите всички промени, за да активирате отново кеширането на менюто.
  4. Добавете тези редове, за да създадете обектите за софтуерната серия и мултиметъра. pfodVC820MeterParser метър;
  5. В края на setup () добавете Serial1.begin (2400); meter.connect (& Serial1);
  6. Над цикъл () добавете беззнаково дълго validReadingTimer = 0; const unsigned long VALID_READINGS_TIMEOUT = 5000; // 5secs bool haveValidReadings = true; // зададено на true, когато има валидни показания intasureType = meter. NO_READING; и в горната част на цикъла () добавете if (meter.haveReading ()) {if (meter.isValid ()) {validReadingTimer = millis (); haveValidReadings = true; } int newType = meter.getType (); if (testingType! = newType) {// извеждане на нови заглавия за регистриране на данни parser.print (F ("sec,")); parser.println (meter.getTypeAsStr ()); } измерванеТип = новТип; } if ((millis () - validReadingTimer)> VALID_READINGS_TIMEOUT) {haveValidReadings = false; // няма ново валидно четене през последните 5 секунди}
  7. По -надолу в цикъла заменете parser.print (F ("{= Мултицет | време (сек) | Plot_1 ~~~ ||}")); с parser.print (F ("{= Мултицет | време (секунди) | Четене на измервател ~~~")); parser.print (meter.getTypeAsStr ()); parser.print (F ("||}"));
  8. В долната част на loop () заменете sendData (); с if (haveValidReadings) {sendData (); }
  9. В sendData () заменете parser.print (','); parser.print (((float) (plot_1_var-plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); с parser.print (','); parser.print (meter.getAsStr);
  10. В sendMainMenu () заменете parser.print (F ("~ Label")); с parser.print ('~'); if (haveValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } else {parser.print (F (" - - -")); }
  11. В 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 (" - - -")); } За да актуализирате показанията при използване на кеширане на менюто.

Заключение

Този урок показа как да свържете евтин мултицет към Arduino Mega2560 чрез RS232. Поддържат се и много други дъски. PfodVC820MeterParserlibrary анализира данните от мултицета в поплавъци за изчисления на Arduino и низове за показване и регистриране. pfodDesignerV2 беше използван за генериране на основна скица за показване на показанията на мултицета и показване на график на стойностите в мобилен телефон с Android с помощта на pfodApp. Не се изисква програмиране за Android. Към тази основна скица е добавена обработката на мултицет и окончателната скица показва текущото отчитане на мултицет на вашия мобилен телефон с Android, както и начертаване на показанията и записването им във файл на мобилния ви телефон за по -късна употреба.

Препоръчано: