Инструменты отладки имеют решающее значение для быстрой и эффективной разработки. Не имея возможности заглянуть «под капот» и посмотреть, что на самом деле происходит, может быть трудно понять и решить проблемы. Те, кто работает с платформой Arduino, вероятно, хорошо знакомы с использованием последовательного порта для отладки, но это далеко не единственный способ.

По умолчанию Arduino имеет только возможность отладки через последовательный порт. Это имеет несколько недостатков. Во-первых, в таком случае требуется физический кабель, подключаемый к устройству Arduino, и такую связь сложно организовать, если плата располагается далеко. Во-вторых, отладка нескольких плат Arduino одновременно требует много последовательных портов и много кабелей. Но в ESP8266 или ESP32, которые также могут программироваться через Arduino IDE, у нас теперь есть сетевое подключение (WiFi), которое можно использовать для потоковой передачи отладочной информации в режиме реального времени.
Так, недавно энтузиаст JoaoLopesF выпустил для платформ ESP отладочный инструмент RemoteDebug (https://github.com/JoaoLopesF/RemoteDebug). Данная библиотека хороша для IoT-проектов, домашней автоматизации, мобильных роботов или других WiFi-проектов.

RemoteDebug полностью избавляет вас от последовательного интерфейса, вместо этого используя собственный беспроводной интерфейс ESP для отправки отладочных данных по TCP/IP. Все это обрабатывается через telnet, что делает его физически полностью независимым от платформы. Управляя вещами через соединение WiFi, инструмент устраняет проблемы с физическим доступом, а также проблемы с кабелями и ограниченными последовательными портами. Он также полезен для робототехнических проектов, которые больше не нуждаются в привязки проводами при отладке.

RemoteDebug поставляется с набором функций, аналогичным предыдущей работе JoaoLopesF под названием SerialDebug. Такие вещи, как, например, временные метки, встроены в отладчик, что позволяет легко получать высококачественные отладочные данные без необходимости заново изобретать колесо. Ниже показано небольшое видео работы с RemoteDebug.
RemoteDebug, основанный на SerialDebug, работает лучше, чем отладка Arduino по умолчанию с помощью команд Serial.print. Так, команда Serial.print всегда обрабатывается, тратя впустую процессорное время на микроконтроллере. Другими словами, команды отладки обрабатываются, с активным подключением к последовательному порту или без него. При использовании RemoteDebug все выходные данные отладки обрабатываются, только если существует какое-либо отлаживающее соединение через telnet. RemoteDebug оптимизирован для уменьшения нагрузки на процессор и память и включает функцию буферизации клиента.
© digitrode.ru