В настоящее время сбор данных при помощи микроконтроллеров становится все более популярным методом исследования в различных научных областях. Особенно важное значение имеет сбор данных во многих областях научных исследований. Выбор данной темы исследования обусловлен актуальностью развития методов сбора и передачи данных [1].
В данном исследовании необходимо оценить возможности использования микроконтроллера ESP32 для сбора данных с заданными параметрами.
Материалы и методы исследования
Для оценки возможностей необходимо ответить на следующие вопросы:
во-первых, возможно ли достичь требуемой частоты считывания данных при помощи ESP32,
во-вторых, какие технические и программные решения необходимо принять для передачи данных в программу MATLAB [4].
Ответы на поставленные исследовательские вопросы определят возможность использования микроконтроллера ESP32 для сбора данных с заданными параметрами, в частности, для проверки возможности использования микроконтроллера в системах сбора данных с оцифровкой значений с заданной частотой, поступающих на аналоговый вход микроконтроллера, и последующей передачей полученных данных в пакет прикладных программ MATLAB [3].
Исследование целесообразно разделено на несколько этапов:
этап 1 – подготовка исходного сигнала,
этап 2 – подготовка входа оцифровки сигнала,
этап 3 – сбор полученных данных,
этап 4 – отправка данных в MATLAB,
этап 5 – получение и обработка данных.
Результаты исследования и обсуждение
В качестве макета был выбран микроконтроллер ESP32 (рис. 1).
Микроконтроллер ESP32 – это высокоинтегрированное устройство на базе процессора Xtensa LX6, разработанное компанией Espressif Systems.
Рис. 1. Структурная схема эксперимента
Он обладает встроенным Wi-Fi и Bluetooth, что делает его очень удобным для создания различных беспроводных устройств и систем связи. ESP32 также имеет мощные периферийные устройства, такие как аналоговые и цифровые входы/выходы, поддержку различных интерфейсов связи (SPI, I2C, UART) и низкое энергопотребление, а для реализации поставленной цели исследования была написана программа на языке С++ [2,3].
Физически 13 вывод был подключен к 34 выводу этого же микроконтроллера.
На этапе 1 осуществлено формирование исходного сигнала в форме синусоиды с помощью специальных алгоритмов и программного обеспечения.
Алгоритм генерации синусоидального сигнала [7] представляет собой программный код на языке С++, который вычисляет значения для синусоиды в диапазоне от 0 до 360 градусов. Значения синусоиды рассчитываются с помощью функции sin() из стандартной математической библиотеки [9], после чего производится установка значения широтно-импульсной модуляции (ШИМ) на вывод устройства [10].
Алгоритм также имеет смещение значений ШИМ для получения положительных значений, после чего данные выводятся в последовательный порт для построения исходного графика исследуемого сигнала (рис. 2). С целью обеспечения стабильности работы, предусмотрена также задержка в 500 микросекунд между итерациями цикла [8]. Данный алгоритм может использоваться для создания синусоидальных сигналов в различных технических устройствах и устройствах связи.
На 2 этапе выполнена подготовка входа оцифровки сигнала. При подготовке входа оцифровки сигнала был выбран 34-й вывод микроконтроллера в соответствии со спецификацией устройства. Данный вывод микроконтроллера обладает возможностью использования режима оцифровки аналогового сигнала, что соответствует требованиям к выполнению эксперимента [2,3].
Кроме того, был активирован режим встроенного подтягивающего резистора, что поможет стабилизировать входной сигнал и улучшить качество его оцифровки [3,10].
Предложенная реализация позволяет обеспечить правильное преобразование сигнала и минимизировать возможные искажения при его оцифровке, а также способствует обеспечению надежной работы цифровой системы и получению точных данных для последующего анализа и обработки [3].
На 3 этапе осуществляется сбор полученных данных. Алгоритм программы преобразования непрерывного аналогового сигнала в цифровой вид, который может быть обработан и анализирован микроконтроллером, построен следующим образом.
Первый шаг алгоритма – считывание значения аналогового сигнала с использованием функции analogRead(). Данная функция позволяет микроконтроллеру измерить напряжение на указанном аналоговом пине и вернуть это значение в виде целого числа, которое представляет уровень напряжения [3,8].
Далее, полученное значение оцифрованного сигнала выводится с помощью функции Serial.println() для отображения результата на мониторе компьютера или другом устройстве визуализации. Данная операция позволяет наблюдать результаты оцифровки и проводить анализ полученных данных [3,10].
Рис. 2. Исходный сигнал эксперимента
Рис. 3. Полученный сигнал
После вывода результатов, в алгоритме включена задержка delayMicroseconds(100), которая служит для формирования необходимой частоты дискретизации. Добавление задержки позволяет установить интервал времени между последовательными измерениями аналогового сигнала, что может быть важно при работе с быстро изменяющимися сигналами [8].
На 4 этапе выполняется отправка данных в MATLAB. После сбора полученной информации данные о значении сигнала при помощи специальной функции в режиме реального времени со скоростью передачи 115200 бод передаются в COM порт компьютера для последующей обработки [4].
Передача данных в Serial Port компьютера с использованием ESP32 происходит посредством последовательного интерфейса UART. Процесс начинается с инициализации UART соединения на ESP32, где задаются необходимые параметры, такие как скорость передачи данных (бод) и биты данных. После инициализации, микроконтроллер ESP32 готов к передаче данных [4,10].
После подготовки данных, микроконтроллер ESP32 передает их по установленному UART соединению в Serial Port компьютера. Данные отправляются в виде последовательности байтов, в соответствии с выбранными параметрами UART [4,10].
На 5 этапе выполняется получение и обработка данных. Для получения данных в режиме реального времени с микроконтроллера ESP32 через COM-порт на компьютер в начале программы устанавливаются параметры COM-порта (COM1) и скорости передачи данных (115200 бод). Затем создается объект Serial порта и настраивается символ окончания строки [4,5,10].
Далее инициализируется график, который будет отображать данные в реальном времени, после чего выполняется очистка входного буфера и начинается бесконечный цикл, считывающий данные, из выбранного COM-порта, преобразуются в числовой формат (строка, полученная из порта, преобразуется в числовое значение) и добавляются в график с текущим временем, т.е. происходит его обновление. Цикл выполняется пока открыт график. Как только график будет закрыт, программа закроет COM-порт и завершится [4,5,10].
Таким образом, программа позволяет в реальном времени получать данные с микроконтроллера ESP32 через COM-порт и произвести визуализацию в виде графика.
В результате проделанной работы были получены данные, представленные в виде графика (рис. 3) изображен сигнал, приближенный к исходному. Программа выполнила оцифровку с требуемой частотой 10 кГц.
Указанная частота оцифровки обеспечивает достаточную точность считывания данных в соответствии с техническим заданием проектируемой системы сбора данных.
В целом микроконтроллер справился с поставленной задачей, выполнил чтение данных с необходимой частотой. По считанным данным в режиме реального был получен соответствующий график.
Также были выявлены технические и программные решения, позволяющее передавать данные в пакет прикладных программ MATLAB посредством использования COM-порта.
COM-порт является стандартным интерфейсом для передачи данных между устройствами и компьютером. Он встроен в архитектуру микроконтроллеров, что делает его удобным и доступным для использования. Кроме того, скорость передачи данных COM-порта достаточна для многих задач, связанных с передачей информации между устройствами, особенно при использовании микроконтроллеров, где передается небольшой объем данных. Использование COM-порта обосновано его наличием в микроконтроллере, а также совместимостью со многими устройствами и достаточной скоростью передачи данных для конкретных потребностей [6].
С точки зрения сбора данных ESP32 подходит, благодаря своей высокой производительности, низкому энергопотреблению и широким возможностям подключения различных устройств [2].
Данный микроконтроллер позволяет с легкостью оцифровывать аналоговые сигналы, работать с датчиками, передавать собранные данные как по проводным, так и по беспроводным сетям, что делает его идеальным выбором для создания различных устройств сбора информации, таких как датчики окружающей среды, системы мониторинга, умные дома и т.д. Низкое энергопотребление ESP32 также позволяет создавать устройства с длительным сроком работы от батареи, что важно для автономных систем и устройств IoT [2,3].
С учетом вышеперечисленных характеристик, ESP32 является современным и многофункциональным микроконтроллером, который отлично подходит для сбора данных в различных областях научных и инженерных исследований.
Математический пакет MATLAB в свою очередь является продвинутым, современным программным обеспечением, позволяющим выполнять обработку большого количества данных, в том числе в режиме реального времени [5,8].
Заключение
Результаты исследования позволяют сделать вывод о значимости и возможности использования системы для сбора данных с перспективой последующей обработки.
Полученные данные в рамках исследования позволяют провести первичный анализ с перспективой оптимизации и улучшения данной системы, что имеет большое значение в исследуемой области.
Использование представленной системы может быть полезно для анализа работы различных систем, таких как системы мониторинга и управления, автоматизированные производственные системы и др. Программа может быть также полезна для обучения и исследований в области контроля и автоматизации.
Область дальнейших исследований очень обширна и может включать в себя: расширение функционала системы, оптимизацию алгоритмов сбора данных.
В свою очередь, наличие у микроконтроллера различных современных интерфейсов передачи данных открывает большие возможности для дальнейших исследований данного микроконтроллера в области сбора данных.
В дальнейшем также планируется развитие программы для работы с большим объемом данных и повышения ее удобства использования.