Дополнительный кабель ESP32-C3 Super Mini........

Источник:

Дополнительный кабель для связи с фирменным оборудованием Mahr 2000 года: Mahr Extramess 2001
Настройка оборудования

Мы использовали два основных аппаратных компонента:

ESP32-C3 Супер Мини
Компактный и недорогой микроконтроллер с поддержкой связи USB и UART: купить на AliExpress
4-контактный кабель M8
Используется для подключения ESP32 к Mahr Extramess 2001: купить на Amazon.

ESP32 выступает в качестве посредника между устаревшим последовательным соединением устройства Mahr и компьютером через USB. Он отправляет запросы и анализирует входящие измерения, выводя их в формате, удобном для регистрации или анализа.

Почему мы это построили? Потому что оригинальный кабель от поставщика стоит 111 евро — в основном из-за встроенного контроллера FTDI — а официальное программное обеспечение допускает только один запрос данны�� в секунду, что слишком медленно для практического использования.

Чтобы решить эту проблему, мы провели реверс-инжиниринг протокола связи между программным обеспечением MahrConnect и Mahr Extramess 2001. Мы обнаружили, что программное обеспечение ищет только определенное имя устройства на контроллере FTDI. Имея это представление, мы использовали универсальное устройство UART для отслеживания последовательной связи и определения необходимых сигналов и команд.

Обнаружение протокола

Анализируя сигнал и документацию, мы выявили следующие параметры связи:

Скорость передачи данных: 4800

Биты данных: 7

Паритет: четный

Стоп-биты: 2

Протокол принимает определенные команды ASCII, завершающиеся возвратом каретки (\r). Ключевые команды включают в себя:

Команда Функция
RES1\r Установить диапазон измерения (предустановка 1)
RES2\r Установить диапазон измерения (предустановка 2)
RES3\r Установить диапазон измерения (предустановка 3)
TOL?\r Настройки допуска запросов
SET?\r Запросить текущий статус
?\r Запрос текущего значения измерения
RST\r Сброс и деактивация режима ABS.
BAT?\r Запрос состояния батареи
MAX\r Показать максимальное измерение
MIN\r Показать минимальное измерение
ВЫКЛ\r Выключите устройство.
ABS\r Активировать режим абсолютного измерения

Эти команды позволили нам полностью контролируемо взаимодействовать с устройством.

Реализация

Мы использовали ESP32-C3 Super Mini — один из самых маленьких и наиболее экономичных микроконтроллеров — в качестве моста между устаревшим последовательным интерфейсом и современным компьютером через USB.

ESP32 был запрограммирован на:

Отправляйте запрос измерения ?\r через Serial1 каждые 5 миллисекунд.

Ожидайте ответа, завершенного \r.

Проанализируйте и очистите результат, извлекая только числовое значение измерения (в мм).

Выведите временную метку и значение через последовательный порт USB в формате CSV.

Серийный номер был настроен с помощью:

mySerial.begin(4800, SERIAL_7E2, 21, 20); // RX = GPIO21, TX = GPIO20

Для мониторинга последовательных данных мы использовали CoolTerm, который позволяет нам захватывать и сохранять выходные данные в файл .txt для последующей обработки в Excel.

Производительность

На практике мы достигли частоты дискретизации примерно 14,5 Гц, что является значительным улучшением по сравнению с исходным пределом в 1 Гц, установленным официальным программным обеспечением Mahr.

Хотя код пытается опрашивать устройство каждые 5 мс (что эквивалентно 200 Гц), фактическая скорость ограничена последовательным протоколом и временем отклика устр��йства. При скорости 4800 бод и конфигурации 7E2 (7 бит данных, четность, 2 стоповых бита) для передачи каждого символа требуется 11 бит, а ответ измерения занимает несколько байтов. С учетом задержек обработки и временных затрат система достигает примерно 14-15 показаний в секунду.

Мы также заметили, что опрос быстрее, чем каждые 10 мс, мешает работе кнопок на передней панели устройства — вероятно, из-за конкуренции за ресурсы внутри прошивки устройства. По этой причине интервал опроса был установлен программно на 5 мс.

Несмотря на это, эта установка обеспечивает гораздо более плотный поток данных, чем исходное программное обеспечение, и вполне достаточна для большинства задач регистрации и анализа.

Код на ESP32C3:

// Используйте Serial1 для связи UART
// RES1, RES2, RES3 + \r --> Установить диапазон измерения
// TOL?\r --> Толерантность к запросам
// SET?\r --> Статус запроса
// ?\r --> Запросить значение измерения
// RST\r --> Сброс и отключение режима ABS
// BAT?\r --> Запрос состояния батареи
// MAX\r --> Отобразить макси

18:37
26
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Arduino Nano Винтовые клеммы для крепления на DIN-рейку 4..
Вы можете загрузить STL Madhulk ​​иПодробнее
Защитный чехол для Arduino 0,98 дюйма OLED........
Это защитный передний корпус для 0,98Подробнее
Панель дверного замка Arduino
Для одного из моих крупных проектов яПодробнее
Подставка для макета Arduino Uno и Arduino Nano с опорным..
Это ремикс двух 3D-моделей. https://wwwПодробнее
Крепление на DIN-рейку для Arduino Uno.
Крепление для Arduino Uno на Din-рейкуПодробнее
8x держатель DIN релейной платы SSR Arduino........
Уважаемые создатели, мы хотели быПодробнее
Arduino Uno и подставка для макета с опорными контактами...
Это ремикс двух 3D-моделей. https://wwwПодробнее
Держатель катушки на базе Arduino с датчиком веса, беспла..
Это держатель катушки с датчиком веса вПодробнее
Контроллер Telescope OnStep - Коробка для платы Arduino M..
Коробка контроллера Telescope OnStepПодробнее
Грибная светодиодная лампа Arduino
Введение Честно говоря, я сделал этоПодробнее
Монтажный кронштейн на DIN-рейку для RAMPS/Arduino Mega....
Для моего нового 3D-принтера VORONПодробнее
Защитный чехол для Arduino с ЧПУ
Привет сообщество! Я разработал этотПодробнее
Настенное крепление Arduino UNO Mini Limited Edition.......
Резюме Это настенное крепление дляПодробнее
Крепление на DIN-рейку для Arduino Mega + RAMPS Remix с к..
Модифицированный кронштейн DIN-рейки дляПодробнее
Arduino Art Deco Прогноз погоды Дисплей Ретро........
Это дисплей прогноза погоды в стилеПодробнее
Stream Deck с большим количеством места для Arduino........
Инструкции см. в оригинале; этоПодробнее
Крепления Arduino Uno и Mega на DIN-рейку
Это крепления на DIN-рейку для ArduinoПодробнее
Ретро термометр Arduino в стиле ар-деко........
Это аналоговый термометр в стиле ар-декоПодробнее
Монтажный корпус DIN для Arduino NANO с экраном Ethernet ..
Это корпус, монтируемый по стандарту DINПодробнее
SKADIS поддерживает ARDUINO Uno R4 MINIMA/WIFI
ФР: Это поддержка Arduino Uno R4 дляПодробнее
MAKER CNC ROUTER Фрезерный станок GRBL Arduino Uno + щито..
Надеюсь, вам понравится этот проектПодробнее
Корпус Arduino DIN
Мне нужен был корпус DIN, в которыйПодробнее
Автомобиль с управлением через Bluetooth на Arduino........
Это файлы для автомобиля с BluetoothПодробнее
Arduino Uno с креплением прототипа платы на DIN-рейку......
Крепление для Arduino Uno с макетнойПодробнее
Адаптер цифровых штангенциркулей к Arduino........
Цифровые штангенциркули великолепны. ЧтоПодробнее
Реактивное колесо (Arduino, MPU6050)
Это маленькое и легкое в сборкеПодробнее
Супермаленький робот-манипулятор (Arduino)........
Все детали, код и схему подключенияПодробнее
Формула B1 Ремикс - Arduino Pro Micro
Этот руль — ремикс с https://wwwПодробнее
Arducam B0205 1080P Чехол для USB-камеры дневного и ночно..
Это модификация 6d6178 «Чехол для USBПодробнее
Крепление Arduino Mega DIN повернуто на 90 градусов........
То же, что и исходный файл, толькоПодробнее
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.