В прошлом месяце мы получили блок питания Qoitech Otii Arc, измеритель мощности и блок DAQ, которые помогают инженерам оборудования и программного обеспечения разрабатывать энергоэффективные продукты.
У нас было время протестировать устройство с платой ESP8266 и Raspberry Pi 4 SBC, поэтому покажем, как начать работу, и наш опыт работы с оборудованием и программой.
Требования и начальная настройка
Устройство использует источник питания 9 В или адаптер микро-USB в качестве источника питания, но выходной мощности осуществляется через разъем типа банан. У нас не было никаких кабелей с штекерами типа банан, поэтому мы купили один на eBay примерно за 5 долларов.
Этот кабель действительно удобен с выходом на USB (гнездовой разъем), зажимами типа «крокодил» и крючками. Однако, как мы увидим ниже, он может не подходить для всех типов нагрузок, и вам, возможно, придется сделать свой собственный кабель с более высокой номинальной мощностью.
Вам нужно будет загрузить программу Otii, доступную для Windows 10/7 64-бит, Mac OS Catalina или Mojave и Ubuntu 18.04 или 19.04. Мы установили программу на ноутбук под управлением Ubuntu 18.04, но ОС не имеет значения.
Использование Qoitech Otii с платой термометра ESP8266 ANAVI
Нам нужно было получить плату, чтобы протестировать решение, и, поскольку термометр ANAVI всегда находится на нашем столе, выступая в качестве дисплея температуры и влажности, мы выбрали его.
Otii Arc (так называется черный корпус) будет питать плату ESP8266 через приобретенный нами кабель плюс кабель USB к micro USB, а также подключаться и питаться через порт USB 3.0 от нашего ноутбука Ubuntu.
На следующем этапе мы, в основном, будем следовать краткому руководству на веб-сайте Qoitech. После нажатия на «Новый проект в программе Otii» открывается окно «Настройки проекта» .
Мы можем установить напряжение питания, защиту от перегрузки по току и уровень напряжения цифрового ввода-вывода. В первый раз мы могли получить напряжение только до 3,75 В, но потом вспомнили, что нам нужно было подключить дополнительный источник питания 9 В, чтобы получить напряжение до 4,55 В.
Напряжение питания термометра ANAVI должно быть 5 В, но оно по-прежнему работает при 4,55 В, и мы установили цифровой уровень напряжения на 3,3 В, хотя мы пока еще не используем выводы DAQ.
Нажимаем OK, чтобы открыть главное окно, включаем питание (зеленый значок) и нажимаем на записи, чтобы начать просмотр текущих измерений.
Он покажет график с текущим временем. Вы можете выбрать данные, увеличить / уменьшить, сохранить в PDF и т. д.
Если вы сделаете некоторые изменения в своем коде или оборудовании, вы можете повторить записи и наложить их, чтобы сравнить результаты.
В первый раз мы просмотрели не все вкладки в окне «Настройки проекта» , и здесь, помимо текущих, вы также можете включить различные записи напряжения и консоль UART. Для справки у нас аппаратная версия 1.3 и прошивка 1.1.4.
Хммм. Консоль UART? Это выглядит интересно, поэтому давайте подключим выводы UART платы термометра ANAVI к выводу Tx / Rx / GND на DAQ-разъеме Otii Arc.
Теперь посмотрим, как это выглядит с графиком тока и напряжения и последовательной консолью.
Хорошо, но не лучше ли просто подключить UART к компьютеру напрямую и получить к нему доступ через терминал? Нет:
Поскольку консоль и график могут быть синхронизированы, поэтому, если вы видите текущий всплеск, вы можете легко выделить его, а также подсветить соответствующие линии в последовательной консоли Arc UART. Довольно аккуратно.
Теперь, если мы посмотрим на график, левая сторона с довольно низким минимальным током и большим количеством пиковых значений соответствует «сообщению о попытке подключения MQTT…», что означает, что микросхема пытается отправить данные по WiFi, а пиковые значения – при считывании данных датчика. Это означает, что потребление тока велико, когда плата теоретически «простаивает», но каким-то образом ток и энергопотребление в этом состоянии намного выше. Мы предполагаем некоторые вызовы функции сна во время передачи, в то время как в основном цикле вообще нет сна.
Примечание. Термометр ANAVI, в основном, предназначен для работы от источника питания USB, поэтому энергопотребление не так уж важно, но в качестве эксперимента давайте попробуем погрузить плату в глубокий сон примерно на 10 секунд.
Итак, давайте добавим соответствующий код в скетч Arduino:
1 2 3 4 5 6 |
// Press and hold the button to reset to factory defaults factoryReset(); // Enter ESP8266 deep sleep mode for 10 seconds ESP.deepSleep(10e6); } |
Давайте посмотрим, как это выглядит. Для глубокого сна ESP8266 требуется либо действие пользователя (нажатием кнопки RESET), либо подключение контакта RESET к выводу GPIO16 / WAKE микросхемы ESP8266. Итак, давайте сделаем это с RESET, являющимся контактом 1 и GPIO16 контактом 4 на модуле ESP8266MOD (он же ESP12-F).
Если вы внимательно посмотрите на печатную плату или, проще, откроете схему, вы заметите, что GPIO16 также подключен к светодиоду D1 через резистор R1. Сначала мы неправильно прочитали схемы и удалили R1, но это не обязательно, и вместо этого нам нужно закомментировать код GPIO16 в скетче, в основном все ссылки на pinAlarm:
1 2 3 4 |
// const int pinAlarm = 16; ... //pinMode(pinAlarm, OUTPUT); ... |
Теперь мы можем собрать программу и перенести ее на плату. Мы не думаем, что это возможно сделать через Otii Arc, поэтому мы сделали это с помощью адаптера USB-TTL. Для людей, разрабатывающих настоящий продукт, использование коммутационной панели, вероятно, является правильным решением, и версия программы Otii для предприятий позволяет создавать сценарии для автоматизации всего, например, изменение программы и сохранение могут инициировать сборку кода, переключение на утилиту флэш-памяти, а затем переключение в Otii Arc и начните измерения автоматически. Это выходит за рамки данного обзора, а интеграция Jenkins объясняется на веб-сайте Qoitech.
В качестве примечания, один из шагов в инструкциях по прошивке платы ANAVI – «Нажмите и удерживайте кнопку RESET на термометре ANAVI. Подключите источник питания 5 В к разъему термометра ANAVI (не отпуская кнопку RESET)». Это не всегда удобно: нужно держать плату, кнопку сброса и вставить кабель micro USB. Программное обеспечение Otii облегчает задачу, так как вы можете просто нажать кнопку одной рукой и щелкнуть значок включения в программе Otii другой рукой.
Теперь давайте запустим программу примерно на две минуты, чтобы мы могли сравнить результаты.
Старый код выделен зеленым, а новый – красным. С нашим новым кодом плата запустится, прочитает датчик, перейдет в глубокий режим на 10 секунд и перезагрузится.
Нелегко проверить общее энергопотребление, просто взглянув на график, но мы можем выбрать период и щелкнуть в правом верхнем углу, чтобы узнать, сколько энергии было использовано во втором цикле.
При первом запуске использовалось 9,90 мВтч, в то время как наше «оптимизированное» программное обеспечение потребляло всего 7,94 мВтч. Кто-то, действительно желающий использовать плату ANAVI в качестве WiFi-термометра с батарейным питанием, вероятно, пропустит повторное подключение MQTT (перейдет в глубокий сон при сбое) и в зависимости от приложения перейдет в более долгий глубокий сон между измерениями. Дисплей, возможно, тоже придется убрать или заменить дисплеем E-ink …
Использование Otii Arc с Linux SBC: Raspberry Pi 4
До сих пор мы были под впечатлением, но что, если мы используем что-то более энергоемкое, например Linux SBC, а именно Raspberry Pi 4 SBC?
Мы скачали и прошили Raspbian Buster Lite на карту MicroSD и создали пустой файл ssh в /boot для включения OpenSSH. Позже посмотрим, зачем это нужно.
В первый раз мы моделировали источник питания 4,55 В/3 А, но плата Raspberry Pi не слишком рада этому напряжению:
1 |
21520 - [ 14.247822] Under-voltage detected! (0x00050005) |
Поэтому мы вспомнили, что устройство поддерживает до 5 В, и хитрость заключается в том, чтобы отключить автоматический диапазон на вкладке «Текущий».
Просто краткая заметка, объясняющая, для чего предназначен Авто-диапазон:
Когда этот флажок установлен, используется более высокий интервал точности измерения, если ток находится в диапазоне от 0 мА до 19 мА. Тем не менее, дуга не сможет поддерживать постоянное напряжение в этом диапазоне для напряжений выше 3,75 В в режиме USB и 4,55 В, когда дуга подается от штекера постоянного тока.
Это не будет проблемой для нас, так как Raspberry Pi 4 никогда не будет тянуть этот маленький ток. Мы также хотели бы отметить, что можно использовать платы с более высоким входным напряжением, вставив другой источник питания между Otti Arc и DUT.
Давайте включим питание от программы Otii и…
… успех! Обратите внимание, что нам не показывают запрос имени пользователя и пароля, поэтому мы просто ввели их, потому что знаем, что их спросили. Это потому, что последовательная консоль показывает строки только после получения CRLF.
Следующим шагом является загрузка сценария sbc-bench.sh перед запуском теста, но последовательная консоль в Otii, похоже, не любит длинные команды, поэтому мы подключились через SSH, чтобы загрузить ее и установить зависимости:
1 2 3 4 |
wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh chmod +x sbc-bench.sh sudo apt update sudo apt install git |
Давайте вернемся к программе Otii, чтобы запустить саму команду:
Обратите внимание, что мы вводим вслепую пароль sudo перед тем, как продолжить. Во время теста мы можем щелкнуть в любом месте журнала, чтобы соответствовать подходящему разделу на графике. Обратите внимание, что в терминале Linux скрипт с надписью «Выполнение tinybench. Это займет много времени… » перед запуском теста и «Готово» – после выполнения теста, но в терминале Arc UART, полная строка будет показана только один раз – будет написано «Готово» (с CRLF), поэтому, в идеале, нужно было бы изменить скрипт так, чтобы он показывал каждый шаг построчно, если только нет опции, которую мы пропустили в программе Otii.
Мы можем увидеть еще несколько сообщений об обнаружении пониженного напряжения при выполнении скрипта, но, глядя на график напряжения, напряжение почти никогда не падает ниже 5 В, а когда это происходит, оно действительно мало. Поэтому предположим, что данные от Otii Arc верны. У нас есть некоторый предыдущий опыт, так как мы несколько лет назад создали свою собственную плату для измерения мощности, используемую с мультиметром, подключенным к ПК, для измерения энергопотребления телевизионных приставок S812 и RK3288 и одной из проблем было сопротивление кабеля. Оказывается, что кабель разъема типа банан имеет сопротивление 0,33 Ом, которое при верхнем потреблении тока 1,27 А соответствует падению 0,42 В на другом конце кабеля, и это не включает сопротивление кабеля Micro USB. Вот почему мы сказали, что в некоторых условиях людям, возможно, придется создавать свои собственные кабели с более качественными проводами и более короткой длиной, чтобы уменьшить сопротивление.
Если мы посмотрим на диаграмму, представленную выше, то увидим, что один тест завершен (pi @ raspberrypi : ~ $ в последовательной консоли), и потребуется около одной минуты, прежде чем произойдет падение уровня. Проверка htop в консоли SSH показала, что 7-zip все еще работает, поэтому, возможно, мы обнаружили ошибку в последней версии скрипта sbc-bench.sh, которая может запустить 7-zip еще раз.
Подводя итог, можно сказать, что Otii Arc можно использовать с SBC Arm Linux или чуть более энергоемкими устройствами, такими как мобильные телефоны, но люди должны обратить внимание на немного больше деталей (например, сопротивление силовых кабелей) и усовершенствование терминала Otii (т.е.реализация последовательной консоли / Ark UART) было бы хорошим. Но это, возможно, не основные целевые приложения клиентов Qoitech.
Мы также заметили некоторые ошибки в программном обеспечении Otii, в которых иногда курсор оказывался в неправильном месте (например, нажмите на x, но курсор будет на x – 200, например), или выпадающий список из верхнего меню, появляющийся на втором экране нашего ноутбука. Перезапуск программы решает эти небольшие неприятные проблемы, и, возможно, исправления ошибок уже не за горами.
Особенности Qoitech Otii Enterprise
До сих пор в этом обзоре мы использовали только функции из версии Qoitech Otii Standard, но есть и некоторые дополнительные функции, являющиеся частью версии Enterprise, за дополнительную плату, такие как Battery Profiling или Scripting. Наше устройство поставляется с бесплатным двухнедельным ключом активации пробной лицензии, и мы полагаем, что любой, кто купит этот инструмент, также получит пробную версию.
Нам не удалось детально изучить эти функции из-за нехватки времени, но в основном это позволяет вам эмулировать батарею с различными параметрами и писать сценарии Lua для автоматизации тестирования.
Попробуйте, прежде чем купить? Да, так можно!
Если вы заинтересованы в том, чтобы «снова увеличить срок службы батареи», но у вас ограниченный бюджет, и вы предпочитаете попробовать устройство самостоятельно, прежде чем тратить более 500 долларов. Это возможно, поскольку программу Otii можно загрузить бесплатно, а компания выпустила на Github два примера проектов, которые вы можете импортировать, прежде чем поиграть с данными и функциями программы.
Это также означает, что есть еще одно преимущество решения Qoitech, о котором мы изначально не задумывались: обмен данными действительно прост. Если у вашей компании есть офисы по всему миру, или вам нужно работать из дома, это отличная возможность.
Заключение
Мы сделали много обзоров за эти годы, и время от времени, попадаются, действительно выделяющиеся на общем фоне, устройства. Qoitech Otii является одним из них, и если вам нужно разрабатывать продукты с питанием от батареи, это может сэкономить вам и / или вашим инженерам много времени и окупить себя в течение нескольких часов. Qoitech Otii Arc (Standard) можно приобрести у различных дистрибьюторов, таких как Seeed Studio, за 575 долларов, в то время как, для получения расценок на версию Enterprise, вам нужно будет связаться с компанией. Более подробную информацию вы найдете на сайте компании.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.