Оглавление:
- Шаг 1:
- Шаг 2: мультиметр
- Шаг 3: Оборудование интерфейса RS232
- Шаг 4: Библиотека PfodVC820MultimeterParser
- Шаг 5: Часть 2 - Удаленное отображение, регистрация и построение графиков
- Шаг 6: Добавление метки
- Шаг 7: Добавление кнопки диаграммы
- Шаг 8: Создание эскиза Arduino
- Шаг 9: Добавление мультиметра
- Шаг 10: Подробное описание модификаций эскиза
Видео: Высокоточная удаленная регистрация данных с использованием мультиметра / Arduino / pfodApp: 10 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Обновлено 26 апреля 2017 г. Пересмотренная схема и плата для использования с USB-счетчиками 4000ZC.
Кодирование для Android не требуется
В этом руководстве показано, как получить доступ к широкому спектру высокоточных измерений с вашего Arduino, а также отправить их удаленно для регистрации и построения графиков. Для высокоскоростной регистрации данных (2000 выборок / сек) см. Эту инструкцию, Удаленная высокоскоростная регистрация данных с использованием Arduino / GL AR150 / Android / pfodApp
Преобразователь AtoD, встроенный в Arduino, имеет низкую точность, обычно +/- 10%, и очень ограниченный диапазон, обычно только от 0 до 5 В постоянного тока. Используя простую схему и библиотеку, вы можете снабдить свой Arduino высокоточными автоматическими измерениями диапазона с мультиметра с оптически изолированным соединением RS232. Наличие измерений, доступных для вашего эскиза, позволяет вам управлять выходными данными на основе значений. В этом руководстве также описывается удаленная отправка измерений через Wi-Fi, Bluetooth, Bluetooth с низким энергопотреблением или SMS на мобильный телефон Android для отображения, регистрации и построения графиков с помощью pfodApp.
В этом руководстве используется плата Arduino Mega2560 5V, которую вы можете соединить с широким спектром коммуникационных щитов, Ethernet, WiFi, Bluetooth V2 (классический), Bluetooth LE или SMS. Аппаратное обеспечение интерфейса и библиотека, представленные здесь, также могут использоваться с платами, совместимыми с Arduino 3,3 В. Помимо Mega2560, вы можете использовать множество других плат, таких как UNO with и Ehternet Shield, базовую плату ESP8266 (автономную), плату со встроенным Bluetooth Low Energy, такую как Arduino 101, или платы, которые подключаются к каналу связи. подсистема, использующая SPI, например, RedBear BLE Shield и платы 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 с низким энергопотреблением и SMS с помощью pfodDesignerV2. Затем к базовому эскизу добавляется библиотека мультиметра для завершения кода. Для отображения, регистрации и построения графика чтения не требуется кодирование Android. Все управляется вашим кодом Arduino.
Этот проект также доступен на сайте www.pfod.com.au.
Для удаленного проекционного дисплея мультиметра см. Эту инструкцию, Arduino Data Glasses For My Multimeter от Алена.
Шаг 2: мультиметр
В этом руководстве используются недорогие (~ US40) мультиметры Tekpower TP4000ZC (также известные как Digitek DT-4000ZC) и более старый Digitech QM1538, который больше не продается. Оба этих измерителя визуально одинаковы и используют одинаковую кодировку измерений RS232.
Вот спецификации для Tekpower TP4000ZC: -Напряжение постоянного тока: 400 мВ / 4/40/400 В ± 0,5% + 5, 600 В ± 0,8% Напряжение переменного тока: 4/40/400 В ± 0,8% + 5, 400 мВ / 600 В ± 1,2% + Ток 5 постоянного тока: 400/4000 мкА ± 2,0% + 5, 40/400 мА ± 1,5% + 5, 4/10 А ± 2% + 5 Ток переменного тока: 400/4000 мкА ± 2,5% + 3, 40/400 мА ± 2% + 5, 4 / 10 А ± 2,5% + 5 Сопротивление: 400 Ом / 4/40/400 кОм / 4 МОм ± 1% + 5, 40 МОм ± 2% + 5 Емкость: 40 нФ ± 3,5% + 10, 400 нФ / 4/40 мкФ ± 3% + 5, 100 мкФ ± 3,5% + 5 Частота: 10 Гц-10 МГц ± 0,1% + 5 Рабочий цикл: 0,1% -99,9% ± 2,5% + 5 Температура: 0 ° C - + 40 ° C ± 3 ° C, -50 ° C - + 200 ° C ± 0,75% ± 3 ° C, + 200 ° C - + 750 ° C ± 1,5% ± 3 ° C, разрешение 0,1 ° C через прилагаемый зонд термопары.
Соединение RS232 мультиметра является только односторонним, и вы не можете изменять настройки мультиметра удаленно, поэтому вам нужно вручную выбрать тип измерения. Однако измеритель имеет автоматический выбор диапазона, а настройки напряжения и тока обрабатывают как переменный, так и постоянный ток.
Шаг 3: Оборудование интерфейса 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 вам понадобится 9-контактный разъем D. 9-контактный разъем D имеет смещенные контакты, которые не будут подключаться к экрану прототипа. Просто отрежьте ряд из 4 контактов, чтобы вы могли припаять разъем к плате, поскольку в схеме используются только контакты во втором ряду из 5 контактов. Монтажные ножки были согнуты, чтобы разъем лежал ровно, и разъем был прикреплен к экрану прототипа с помощью двухкомпонентного эпоксидного клея («Аралдит»). Расположение контактов разъема, показанное выше, взято с этого сайта. Резистор 10 кОм, который устанавливается внутри разъема поставляемых кабелей RS232 (подключается между контактами 2 и 3), не требуется для этого проекта.
Подключение сигнала к пину Arduino RX
Эта схема будет работать как с платами Arduino на 5 В, так и на 3,3 В. Здесь мы используем Arduino Mega2560 (5 В) и смонтировали схему на прототипе щита, как показано выше.
Гибкий вывод используется для подключения TP1 на экране к Serial1 RX, контакт D19 на Mega2560.
Примечание о программном последовательном интерфейсе: изначально этот экран был соединен с UNO, используя программный последовательный порт на контактах 10, 11. Однако при соединении с Bluetooth Shield на последовательном интерфейсе со скоростью 9600 бод некоторые принимаемые байты были потеряны. Перемещение RS232 на аппаратное последовательное соединение решило эту проблему. Таким образом, для надежного удаленного отображения и регистрации, если вы используете коммуникационный экран, который подключается через последовательный порт, вам понадобится либо плата с двумя или более аппаратными последовательными интерфейсами, например Mega2560. Другими альтернативами являются UNO с экраном Ehternet, базовая плата ESP8266 (автономная), плата со встроенным Bluetooth Low Energy, такая как Anduino 101, или платы, которые подключаются к подсистеме связи с помощью SPI, например RedBear BLE Shield и Adafrut Bluefruit SPI. доски. pfodDesignerV2 поддерживает все эти платы и сгенерирует для них код.
Шаг 4: Библиотека PfodVC820MultimeterParser
Tekpower TP4000ZC и ряд других мультиметров не отправляют измерения через RS232 в виде текста ASCII, а отправляют 14 байтов с битами, установленными в зависимости от того, какие сегменты ЖК-дисплея подсвечиваются. Кодирование 14 байтов объясняется в этом PDF-файле. Библиотека pfodVC820MeterParser.zip декодирует эти байты в текстовые строки и числа с плавающей запятой. (VC820 относится к одному из измерителей, использующих эту кодировку.) Также см. QtDMM для компьютерного программного обеспечения Windows, Mac и Linux, которое работает с широким диапазоном мультиметров.
Существует минимальный пример использования библиотеки pfodVC820MeterParser, MeterParserExample.ino. Подключите измеритель к последовательному соединению со скоростью 2400 бод, а затем вызовите haveReading () в каждом цикле для обработки байтов. haveReading () вернет true, когда будет проанализировано новое полное чтение. Затем вы можете вызвать getAsFloat (), чтобы получить значение (масштабированное) как число с плавающей запятой, или getAtStr (), чтобы получить показание с масштабированием для печати и ведения журнала. Существуют и другие методы доступа к типу измерения, getTypeAsStr () и getTypeAsUnicode (), а также другие служебные методы.
#include "pfodVC820MeterParser.h" pfodVC820MeterParser meter; // void setup () {Serial.begin (74880); Serial1.begin (2400); meter.connect (& Serial1); } чтение с плавающей запятой; void loop () {если (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 (", сек,"); Serial.print (meter.getAsStr ()); Serial.print (','); Serial.println (meter.getTypeAsStr ()); }}
С измерителем, установленным на Deg C, и с использованием датчика термопары, пример эскиза дает этот вывод на последовательном мониторе Arduino IDE.
Чтение с единицами измерения: 25,7C = напечатанное с плавающей запятой (6 цифр): 25,700000 Время (сек) и чтение как строка для регистрации 2,40, сек, 25,7, C
Шаг 5: Часть 2 - Удаленное отображение, регистрация и построение графиков
В этой части руководства рассказывается, как удаленно отображать, регистрировать и наносить на график показания счетчика на вашем мобильном телефоне Android. pfodApp используется для обработки отображения, регистрации и построения графиков на вашем мобильном устройстве Android. Никакого программирования под Android не требуется. Все отображения, протоколирование и построение графиков полностью контролируются вашим эскизом Arduino. Бесплатное приложение pfodDesignerV2 позволяет создавать меню и диаграммы для Android, а затем генерировать для вас эскиз Arduino.
pfodApp поддерживает несколько типов подключения: Ethernet, WiFi, Bluetooth V2 (классический), Bluetooth LE или SMS. В этом руководстве для регистрации данных и построения графиков используется Arduino 101 (Bluetooth Low Energy). Также поддерживаются другие платы Bluetooth с низким энергопотреблением. В этом руководстве для подключения к pfodApp используется SMS. Вы можете использовать pfodDesignerV2 для добавления регистрации данных и построения диаграмм в этот пример SMS. pfodDesignerV2 также имеет опции для генерации кода Arduino для Bluetooth V2 (классический) щит для подключения к pfodApp.
В этом примере мы будем использовать Iteadstudio Bluetooth Shield V2.2, который подключается к Arduino Mega2560 через последовательное соединение 9600 бод. Используя бесплатное приложение pfodDesignerV2, мы создали простое меню, в котором есть только метка для отображения показаний счетчика и одна кнопка для открытия диаграммы. На этой странице есть несколько руководств по pfodDesignerV2. Когда у нас будет базовый набросок, мы изменим его, добавив анализатор счетчика и отправив показания счетчика и данные для регистрации и построения диаграмм.
Разработка меню
В этом разделе мы разработаем меню Android / pfodApp, которое будет отображать показания счетчика и кнопку, чтобы открыть график показаний. Показания также сохраняются в файл на мобильном устройстве Android.
Шаг 6: Добавление метки
Установите бесплатный pfodDesignerV2 и откройте новое меню.
Целевым параметром по умолчанию является последовательный порт 9600 бод, что необходимо для Iteadstudio Bluetooth Shield V2.2. Если вы подключаетесь с помощью устройства Bluetooth с низким энергопотреблением, Wi-Fi или SMS, нажмите «Цель», чтобы изменить выбор.
Чтобы добавить метку для отображения показаний счетчика, нажмите «Добавить элемент меню» и выберите «Прокрутите вниз», чтобы выбрать «Метка».
Выберите подходящий размер шрифта и цвета. Оставьте текст в качестве метки, так как мы изменим сгенерированный код, чтобы позже заменить его измерением счетчика. Здесь мы установили размер шрифта на +7, цвет шрифта на красный, а фон на серебристый.
Вернитесь к экрану Edit Menu_1 и установите интервал обновления 1 секунду. Это заставит pfodApp повторно запрашивать меню примерно раз в секунду, чтобы отобразить последнее значение в метке.
Шаг 7: Добавление кнопки диаграммы
Снова нажмите «Добавить элемент меню», чтобы добавить кнопку диаграммы.
Измените текст кнопки диаграммы на что-нибудь подходящее, например просто «Диаграмма» и выберите размер шрифта и цвета.
Затем нажмите кнопку «Диаграмма», чтобы открыть экран редактирования графика. Будет только один график, поэтому нажмите кнопки Edit Plot 2 и Edit Plot 3, прокрутите вниз и нажмите Hide Plot для каждого из них.
Измените метку диаграммы на что-нибудь подходящее, например «Мультиметр». Нет необходимости изменять какие-либо другие настройки графика, поскольку мы будем изменять эскиз, чтобы отправлять разные метки оси Y в зависимости от настройки мультиметра.
Наконец, вернитесь к Edit Menu_1 и Edit Prompt, это устанавливает текст внизу меню и общий цвет фона меню. Здесь мы установили подсказку «Удаленный мультиметр» с размером шрифта +3 и серебристым цветом фона.
Теперь вы можете вернуться в Редактирование Меню_1 и щелкнуть Меню предварительного просмотра, чтобы просмотреть дизайн меню.
Если вам не нравится дизайн, вы можете изменить его перед созданием кода. Если вы хотите отделить метку от кнопки, вы можете добавить несколько пустых меток, как описано здесь. Добавление диаграммы и данных журнала о том, как отображать / строить данные Arduino на Android - это еще один учебник по регистрации данных и построению диаграмм в pfodDesignerV2 / pfodApp.
Шаг 8: Создание эскиза Arduino
Чтобы сгенерировать код Arduino, который будет отображать это меню в pfodApp, вернитесь на экран редактирования Menu_1, прокрутите вниз и нажмите кнопку «Создать код».
Нажмите кнопку «Записать код в файл», чтобы вывести эскиз Arduino в файл /pfodAppRawData/pfodDesignerV2.txt на вашем мобильном телефоне. Затем выйдите из pfodDesignerV2. Перенесите файл pfodDesignerV2.txt на свой компьютер, используя USB-соединение или приложение для передачи файлов, например Wi-Fi File Transfer Pro. Копия сгенерированного скетча находится здесь, pfodDesignerV2_meter.txt.
Загрузите скетч в вашу Arduino IDE и запрограммируйте свою плату Uno (или Mega). Затем добавьте Iteadstudio Bluetooth Shield V2.2. Установите pfodApp на свой мобильный Android и создайте новое соединение Bluetooth с именем, например, Multimeter. См. PfodAppForAndroidGettingStarted.pdf, чтобы узнать, как создавать новые подключения. Затем, когда вы используете pfodApp, чтобы открыть соединение с мультиметром, вы увидите созданное вами меню.
Открытие диаграммы не отображает ничего интересного, потому что мы не добавили аппаратное / программное обеспечение мультиметра.
Шаг 9: Добавление мультиметра
Мы модифицируем сгенерированный эскиз, чтобы добавить анализатор мультиметра и отправлять его данные на ваш мобильный телефон Android. Полный модифицированный скетч находится здесь, pfod_meter.ino.
Эти модификации добавляют анализатор мультиметра и таймер на 5 секунд. Если за это время не будет нового действительного показания, скетч прекратит отправку данных и обновит отображение Android / pfodApp на «- - -». При изменении ручного выбора измерителя метки диаграммы обновляются, но вам нужно выйти из диаграммы и повторно выбрать ее, чтобы увидеть новые метки. С другой стороны, показания счетчика автоматически обновляются каждую секунду. Наконец, pfodApp по умолчанию обрабатывает Unicode, поэтому при отображении показаний счетчика метод getTypeAsUnicode () используется для возврата Unicode для Ом, Ω и degsC, ℃ для отображения счетчика.
Кнопка диаграммы отображает обновленную диаграмму показаний: -
Данные диаграммы в формате CSV также сохраняются в файле на вашем мобильном устройстве Android в папке /pfodAppRawData/Mulitmeter.txt для последующей передачи на ваш компьютер и импорта в электронную таблицу для дальнейших расчетов и построения диаграмм.
Шаг 10: Подробное описание модификаций эскиза
- Загрузите библиотеку pfodVC820MeterParser.zip, затем откройте Arduino IDE и щелкните Sketch → Include Library → Add.zip, чтобы добавить эту библиотеку в вашу среду IDE.
- Добавьте в эскиз библиотеку pfodVC820MeterParser. Нажмите Sketch → Include Library → pfodVC820MeterParser. Это добавит операторы включения в верхнюю часть эскиза.
- Отредактируйте синтаксический анализатор pfodParser_codeGenerated ("V1"); to pfodParser_codeGenerated parser (""); Это отключает кеширование меню в pfodApp, поэтому изменения в меню будут отображаться. Вы можете вернуться к «V3», когда закончите все изменения, чтобы снова включить кэширование меню.
- Добавьте эти строки, чтобы создать объекты для серийного номера программного обеспечения и мультиметра. pfodVC820MeterParser meter;
- В конце setup () добавьте Serial1.begin (2400); meter.connect (& Serial1);
- Над loop () добавьте unsigned long validReadingTimer = 0; const unsigned long VALID_READINGS_TIMEOUT = 5000; // 5 секунд bool haveValidReadings = true; // устанавливается в значение true, если есть действительные показания int measureType = meter. NO_READING; и в верхней части цикла () добавьте if (meter.haveReading ()) {if (meter.isValid ()) {validReadingTimer = millis (); haveValidReadings = true; } int newType = meter.getType (); if (MeasurementType! = newType) {// выводим новые заголовки регистрации данных parser.print (F ("sec,")); parser.println (meter.getTypeAsStr ()); } MeasurementType = newType; } если ((millis () - validReadingTimer)> VALID_READINGS_TIMEOUT) {haveValidReadings = false; // нет нового действительного чтения за последние 5 секунд}
- Далее в цикле замените parser.print (F ("{= Мультиметр | время (секунды) | Plot_1 ~~~ ||}")); с parser.print (F ("{= Мультиметр | время (секунды) | Показание счетчика ~~~")); parser.print (meter.getTypeAsStr ()); parser.print (F ("||}"));
- Внизу loop () замените sendData (); с if (haveValidReadings) {sendData (); }
- В sendData () замените parser.print (','); parser.print (((float) (plot_1_var-plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); с parser.print (','); parser.print (meter.getAsStr);
- В sendMainMenu () замените parser.print (F ("~ Label")); с parser.print ('~'); если (иметьValidReadings) {parser.print (meter.getDigits ()); parser.print (meter.getScalingAsStr ()); parser.print (meter.getTypeAsUnicode ()); } else {parser.print (F ("- - -")); }
- В sendMainMenuUpdate () добавьте parser.print (F ("|! A")); parser.print ('~'); если (иметьValidReadings) {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, а также отображает показания и записывает их в файл на вашем мобильном телефоне для дальнейшего использования.
Рекомендуемые:
Регистрация датчиков с использованием InfluxDB, Grafana и Hassio: 5 шагов
Регистрация датчиков с использованием InfluxDB, Grafana и Hassio: в этом посте мы узнаем, как использовать InfluxDB для долгосрочного хранения данных датчиков, а также мы используем Grafana для анализа данных. Это часть серии статей по домашней автоматизации, в которой мы узнаем, как настроить и использовать Home Assistant, чтобы все это можно было делать с помощью Hassio
Простая регистрация мобильных данных с использованием PfodApp, Android и Arduino: 5 шагов
Простая регистрация мобильных данных с использованием PfodApp, Android и Arduino: регистрация данных Moblie стала проще с помощью pfodApp, вашего мобильного телефона Andriod и Arduino. Никакого программирования под Android не требуется. Для построения графиков данных на вашем Android см. Далее в этой статье. Простое простое удаленное построение данных с использованием Android / Arduino / pfodApp
Построение / регистрация даты / времени Arduino с использованием Millis () и PfodApp: 11 шагов
Построение / регистрация даты и времени в Arduino с использованием Millis () и PfodApp: не требуется программирования для Arduino или Android. Также поддерживаются модули RTC и GPS. Автоматическая коррекция часовых поясов, дрейфа RTC и отсутствия дополнительных секунд GPS. ) временные метки для построения графика данных
UCL-IIOT - регистрация данных на Raspberry Pi: 6 шагов
UCL-IIOT - Регистрация данных на Raspberry Pi: это руководство было создано Обайдой Хадж Хамуд и Сидсе Хенриксен для школьного проекта. Основная идея - это сбор данных с датчика освещенности, запись данных в базу данных по беспроводной сети на Raspberry Pi и мониторинг этих данных через приборную панель
Регистрация данных MPU-6050 / A0 в реальном времени с помощью Arduino и Android: 7 шагов (с изображениями)
Регистрация данных MPU-6050 / A0 в реальном времени с помощью Arduino и Android: мне было интересно использовать Arduino для машинного обучения. В качестве первого шага я хочу создать отображение данных и регистратор данных в реальном времени (или довольно близко к нему) с помощью устройства Android. Я хочу получить данные акселерометра с MPU-6050, поэтому я спроектировал