В процессе контролирования аналоговых данных, таких как температура, влажность, освещённость, напряжение, ток в трёхфазной сети и т.п., в некоторых случаях требуется знать динамику их изменений за какой-то промежуток времени. Обычные измерительные приборы не дают возможность оперировать результатами этих измерений для дальнейшей обработки и анализа.
Для решения этой задачи может быть использована система регистрации данных, которая позволяет проводить сбор и накопление аналоговых данных в запоминающем устройстве. Принимая во внимание высокую стоимость промышленных зарубежных образцов и недостаточную гибкость в настройке и работе схемных решений из сети интернет, было решено разработать многофункциональный регистратор аналоговых данных с возможностью изменения в широком диапазоне интервала измерения аналоговых сигналов.
А теперь более человеческим языком. Для своих нужд long long time ago я разработал систему регистрации аналоговых сигналов, которая позволяет получить интервал измерения (и накопления) данных от 1 секунды до 1 часа (с дискретностью в 1 секунду), используя для этих целей конфигурационный файл на карте памяти, тем самым обеспечивается гибкость настройки и отсутствие дополнительных интерфейсов сопряжения с компьютером.
Узнать ip адрес чужого компьютера | Как узнать месторасположение | IPlogger | Вычислить по IP
Основой регистратора данных является микроконтроллер ATmega32. Программа, записанная в микроконтроллер, позволяет работать с картами памяти типа SD и MMC, которые отформатированы в системе FAT16 или FAT32. Файловая система, применённая в проекте – FatFs (за что мой низкий поклон мистеру ChaN(у) который подарил человечеству продукт своих титанических усилий.
Хотя в программе CodeVision AVR, в которой я создавал проект, присутствует встроенная библиотека работы с картами памяти и файловой системой, я подключил библиотеку FatFs именно ChaN(а), т.к. хотел разобраться с некоторыми особенностями её работы. Регистратор позволяет отслеживать 8 аналоговых каналов (столько аналоговых входов имеет АЦП микроконтроллера), т.е. пользователи могут подключить к устройству до 8 аналоговых сенсоров.
Принципиальная схема регистратора: Устройство содержит часы реального времени с резервным источником питания, что позволяет записывать, помимо данных с АЦП, время получения данных. Такая функция полезна при анализе данных и при составлении статистики их изменения.
Для реализации функции записи времени регистрации данных применена микросхема часов реального времени DS1307 (DD2) с интерфейсом I 2 C. Данные сохраняются регистратором на карте памяти SD или MMC емкостью до 32 ГБайт в формате TXT, хотя вы можете без проблем изменить расширение на CSV. (CSV – текстовый формат, предназначенный для представления табличных данных. Каждая строка файла – это одна строка таблицы.
Значения отдельных колонок разделяются разделительным символом – запятой) Карта памяти должна быть с файловой системой FAT. Файл данных имеет вид «DATA000.txt». Т.к. данные с карты памяти в любом случае будут считываться после проведения записи аналоговых сигналов, то при разработке схемы решено было отказаться от какого-либо интерфейса, связывающего регистратор с компьютером, а установка даты, времени и режима работы регистратора происходит изменением значений файла конфигурации на карте памяти. Установка времени, даты и интервала измерения выполняется корректировкой файла конфигурации, который создаётся на карте памяти при первом включении устройства. Это простой текстовый файл с именем «auto_exe.txt», который можно создать с помощью любого текстового редактора. При первом включении контроллера с картой памяти, в конфигурационном файле будет содержаться конфигурационная строка вида:
Как вычислить по IP или почему нельзя переходить по ссылкам.айпи логгер.
HH:MM DD/MM/YY NNNN Например:
12:00 01/01/14 10 В приведенной строке устанавливается время 12:00, дата 1 января 2012 года и интервал выборок 10 секунд. Значение интервала выборок может быть четырёхзначным числом от 1 до 3600 (т.е. интервал измерения и записи аналогового сигнала от 1 секунды до 1 часа).
После начальной установки текущего времени и даты в часах реального времени DD2, в файле конфигурации напротив конфигурационной строки установится знак «+», сигнализирующий о том, что время установлено успешно. Это предохраняет от очередной установки времени часов при последующих включениях регистратора.
При минимуме средств индикации (два светодиода) обеспечивается полноценная наглядность работы устройства. Разные варианты работы светодиодов позволяют контролировать режим работы (наличие питания, начало записи) и определять наличие и характер ошибок в работе регистратора (карта памяти переполнена, сбой часов реального времени, сбой в работе карты памяти).
Кнопкой SB1 осуществляется пуск и остановка записи данных. Кнопка SB2 сбрасывает порядковый номер создаваемого файла (количество созданных файлов имеет ограничение в 999 файлов, что при необходимости можно изменить, подкорректировав программу).
Регистратор данных позволяет использовать аналоговые датчики, сигнал которых находится в диапазоне 0-5 В, но при необходимости этот диапазон можно увеличить, введя дополнительные резисторы в цепь входа устройства. Сохраненные на карте памяти данные можно затем просмотреть на компьютере с помощью программы «Блокнот» или же импортировать в другую программу для обработки.
Собственно, девайс (мне было лень делать разводку для SMD-монтажа): Биты конфигурации для микроконтроллера: При подаче питания на устройство и при правильной инициализации карты памяти загорается зелёный светодиод. В случае возникновения ошибки в работе регистратора (сбой в работе карты памяти) начинает мигать красный светодиод.
Если произошёл сбой микросхемы часов реального времени (часы стоят) будет мигать зелёный светодиод. А если одновременно мигают оба светодиода, то это значит что карта переполнена. При записи данных будет гореть красный светодиод. На рисунке 3 показан пример файла, открытого на компьютере в программе «Блокнот», в который проходила запись данных с 8-ми каналов АЦП с интервалом в 10 секунд, причём напряжение (в виде подключённой пальчиковой батарейки на 1,5 В) подавалось только на первый канал АЦП.
Список радиоэлементов
Прикрепленные файлы:
- Data_Logger — код.rar (553 Кб)
- Logger.eep (1 Кб)
- Logger.hex (56 Кб)
- Data_Logger — Плата под ЛУТ.rar (90 Кб)
Теги:
Igoryosha Опубликована: 17.07.2014 0 2
Вознаградить Я собрал 0 1
Оценить статью
- Техническая грамотность
Оценить Сбросить
Средний балл статьи: 5 Проголосовало: 1 чел.
Для добавления Вашей сборки необходима регистрация
0
Виталий 19.07.2014 16:39 #
Интересная статья. А как АВТОРУ идея, как один из возможных режимов устройства, чтобы данные писались на карту памяти по событию. Изменилось значение на входах, даже на 1мВ, только происходит запись на карту. В Вашем варианте хорошо строить графики работы, а вот находить изменения значения одного из каналов, среди сотен строк. И еще, устройство уже готовое, но. а восемь свободных портов С не хотелось использовать, запись изменение состояния на входах и т.д.
0
[Автор]
Igoryosha 19.07.2014 21:51 #
Спасибо, идея интересная — включать запись данных по изменению входного сигнала, а насчёт некоторой сложности поиска изменения значения одного из каналов, так для этого предполагается, что по полученным данным можно построить графики в Excel, по которым уже можно визуально оценивать массив данных.
0
Виталий 20.07.2014 14:36 #
Вдумайтесь в идею. Контроллер считывает данные в буфер с заведомо настраиваемой скоростью (например 1мс. 1сек..1мин, кому как надо) и по изменению показаний между значениями уже на карту. Ко всем показания нужно добавить одну колонку — время между изменениями (в мс..сек. мин) и все!
Вам ненужно в екселе смотреть когда изменились данные, и поверьте, если одинаковых данных сотни, это уже плохо для анализа графика. В данной идеи есть одно преимущество — ВЫ ЗНАЕТЕ ЧТО СТРОКА С ДАННЫМИ ЭТО УЖЕ ДРУГИЕ ДАННЫЕ. И смотрите на последнюю колонку сколько времени прошло между событиями или на текущее время события. ивам незачем просматривать сотни строк. Так «трейсы» пишутся, по крайней мере.
0
[Автор]
Igoryosha 20.07.2014 16:48 #
Спасибо, теперь понял Вашу идею. Возьму на заметку!
+1
Виталий 20.07.2014 21:42 #
Я рад что Вы прислушались к идее, спасибо. Я смотрел многие логгеры, практически одна и та же идея — просто запись через определенное время. Но данных одинаковых очень много, как в Вашем случае с батарейкой на картинке в описании. Например саморазряд батареи измерить, сколько у Вас будет одинаковых записей, даже с интервалом через 1 минуту?
Или заряд ак.бат. -вначале напряжение быстро подымается, а вот в конце заряда. а так у вас будет ровно, например, 600 записей — от 0,9В до 1,5В по 1мВ, и самое интересное вы будете знать точно динамику заряда, без кучи лишних/одинаковых данных. И еще, в начале файла записывайте названия колонок з данными, параметры считывания в буфер данных, точность сравнения, например 1мВ или 10мВ.
Разбивайте данные в разные файлы — например по датам/часам если данных много. По прошествии времени, все забывается, а открыв файл сразу вначале информация о параметрах «логгирования». Название файла — дата/время и т.д. Удачи Вам!
0
[Автор]
Igoryosha 21.07.2014 14:36 #
Спасибо! Попробую реализовать в свободное время данный алгоритм!
0
Алекс 09.09.2014 12:22 #
Можете ли вы переделать прошивку для записи данных о силе тока и напряжении по трем фазам и частоте по одной?
0
[Автор]
Igoryosha 09.09.2014 22:40 #
Тут не только потребуется измение программы, но и существенное изменение схемы электрической тоже. Потребуется блок согласования логгера с трёхфазной системой напряжения на трансформаторах тока, с применением усилителей и буферов на операционных усилителях, необходим узел для получения уровня напряжения, необходимый контроллеру, и это только часть необходимых узлов.
0
alexs 16.09.2014 01:39 #
Хотелось бы по интересоваться — Вы не переписывали алгоритм как предлагал «Виталий»?
0
[Автор]
Igoryosha 16.09.2014 18:14 #
Будет время — переделаю через месяц-полтора.
0
STALKER7538 13.10.2014 11:58 #
Вы не пробовали сделать даталогер на C8051F350?
У нее 24 битный АЦП.
0
RusikOk 20.11.2014 00:57 #
Я бы все таки писал не в текстовый файл, а в CSV тогда бы графики строить через эксель было бы очень просто.
Автор сам разработал схему и программу? Уж как то очень смахивает структура проекта на http://www.dharmanitech.com/2011/05/microsd-atmega32-datalogger.html
0
Александр 14.04.2015 15:24 #
Скажите, пожалуйста, если я подключу к каналу датчик температуры из серии LM(235 или 335) будет ли происходить запись данных для дальнейшего перевода их в температуру?
+1
Дмитрий 28.12.2015 07:40 #
Проект заглох? С момента когда вы предполагали(месяц, полтора) прошло больше года. Очень нужен такой как у вас регистратор, но как его доработать до использования с однофазной сетью пока не знаю.
Суть такова, что хочу прицепить его на стабилизатор напряжения, чтобы выяснить качество его работы, а для этого нужно параллельно контроллировать 2 канала входного и выходного напряжения. Так же не помешала бы возможность изменять колличство контроллируемых каналов, чтобы не писать даные с пустышек.
0
ЭФЭ 08.01.2016 15:14 #
Решил собрать Ваше устройство. Два вопроса:
Микросхема ATmega32A-AU подойдет?
В программе PONI PROG в таблице фьюзов отсутствует окно «SPIEN». Т.е закрашен серым и нет возможности вставить галочку. Это нормально?
Спасибо.
0
Bredov-IV 18.10.2016 02:30 #
ЭФЭ, Атмега32А-АУ подойдёт, если можем переразвести плату под SMD-монтаж. В приведённом варианте она «ПУ».
В пони отсутствует «ШПИЁН» — это нормально. Если микросхема видится, его и так нельзя трогать.
От себя добавлю всем — галочку «JTAGEN» дружно снимаем. BODEN можно поставить по вкусу.
+1
Руслан 15.11.2016 09:28 #
Ищу аналогичное устройство. Хочу применить для контроля состояния питающей сети. Можно ли увеличить период записи, скажем пару суток?
Возможно есть готовые устройства или полуфабрикаты?
0
Александр 02.04.2018 15:30 #
Как подключить датчик давления чтобы показывал не вольты, а давление или температуру в градусах?
0
Александр 02.04.2018 19:34 #
Если подключить датчик давления или температуры прибор регистрирует напряжение? Или показывает в паскалях или Цельсиях и как это сделать?
0
Владимир Похорский 08.08.2021 07:49 #
Ни кто не обратил внимание, что в схеме ошибки — выводы МК — 7 и 8.
0
Manoj Soorya 21.07.2022 01:28 #
Hi Author
Its a great project you shared with us. I collect the same and working great. I need to know when lamp on/off time and its to be recorded. This device will work with some changes in the input of datalogger input. I just design a circuit with 12F675 for switching 0 to 5 volt. Now able to find the right time to know when the lamp is on and off. One thing more, DS3231 will work insted of DS1307.
Thank you so much for this great device.. Thank you.
0
Источник: cxem.net
Логгер на тв это
Корзина пуста
- Raspberry Pi, Arduino и инструменты разработчика
- Автоматизация и управление
- Аккумуляторы и зарядные устройства
- Безопасность рабочего места
- Водопроводы и трубопроводы
- Дисплеи и оптоэлектроника
- Доступ, хранение и транспортировка материалов
- Инженерные материалы и промышленное техническое обеспечение
- Источники питания и трансформаторы
- Кабели и провода
- Клеи, герметики и ленты
- Компьютерная периферия
- Корпуса и серверные стойки
- Крепежные и фиксирующие детали
- Механическая передача энергии
- Освещение
- Отопление, вентиляция и системы терморегулирования
- Очистка и техобслуживание оборудования
- Пассивные компоненты
- Переключатели
- Пневматика и гидравлика
- Пневматика, гидравлика и элементы силовых передач
- Подшипники и уплотнители
- Полупроводники
- Предохранители и автоматические выключатели
- Предохранители, розетки и автоматические выключатели
- Разъемы
- Реле
- Реле и преобразование сигнала
- Ручные инструменты
- Системы безопасности и скобяные изделия
- Средства индивидуальной защиты и спецодежда
- Тестирующие и измерительные устройства
- Товары для офиса
- Электрические инструменты, паяльное и сварочное оборудование
- Электростатический контроль, очистка помещений и проектирование печатных плат
* УТОЧНЯЙТЕ ВОЗМОЖНОСТЬ, ЦЕНУ И СРОК ПОСТАВКИ, В СВЯЗИ С ОГРАНИЧЕНИЕМ ЭКСПОРТА ТОВАРОВ ИЗ СТРАН ЕС И ВЕЛИКОБРИТАНИИ
- Описание и тех. спецификация
- Характеристики
- Способы доставки
Tinytag View 2 Data Logger With LCD Display
Tinytag View 2 loggers are equipped with an LCD display to provide instant indication of temperature, humidity and alarm conditions. The loggers are made with food grade materials and are ideal for use in food processing, retail, fridges and chill cabinet applications.
LCD display
30000 reading capacity, 30000 for single channel, 2 x 15000 for dual channel
Made with food grade materials
User-programmable logging interval 1 sec to 10 days
2 user-programmable alarms
Delayed and trigger start (reed relay) options
3 stop options stop when full, wrap around and stop after N readings
Fast data offload via serial or USB cable to a PC
Use with Tinytag Explorer
User-replaceable battery with up to 2 years life
IP65 splash proof case
User-replaceable battery
1/2 AA Lithium battery.
Источник: rs-catalog.ru
Логирование в Python
Python предлагает весьма сильную библиотеку логирования в стандартной библиотеке. Многие программисты используют оператор print для лечения багов (в том числе и я), но вы можете использовать логирование для этих целей. Использование лога также более чистый метод, если вы не хотите просматривать весь свой код, чтобы удалить все операторы print. В данном разделе мы рассмотрим следующее:
- Создание простого логгера;
- Использование нескольких модулей для логирования;
- Форматирование лога;
- Настройки лога
К концу данного раздела вы сможете уверенно создавать логи для своих приложений. Приступим!
Создаем простой логгер
Создание лога при помощи модуля logging это очень просто. Для начала, будет проще взглянуть на часть кода и объяснить его:
import logging
# add filemode=»w» to overwrite
logging . basicConfig ( filename = «sample.log» , level = logging . INFO )
logging . debug ( «This is a debug message» )
logging . info ( «Informational message» )
logging . error ( «An error has happened!» )
Как и ожидалось, чтобы получит доступ к модулю logging, для начала нужно импортировать модуль. Простейший способ создания лога – это использовать функцию basicConfig модуля logging и передать ей несколько ключевых аргументов. Функция принимает следующее: filename, filemode, format, datefmt, level и stream. В нашем примере, мы передадим её названию файла и уровню логирования, что мы и настроим в INFO.
Существует пять уровней логирования (в порядке возрастания): DEBUG, INFO, WARNING, ERROR и CRITICAL. По умолчанию, если вы запустите этот код несколько раз, он добавится в лог, если он существует. Если вы хотите, чтобы ваш логгер перезаписывал лог, передайте его filemode=”w”, как было указано в комментарии к коду. Говоря о запуске кода, вы должны получить следующий результат, после запуска:
Источник: python-scripts.com