Детектор углекислого газа MT8057S. НЕобзор с участием НЕэмулятора

    — Привет, Хабр! Гляди!



    — Мужик, ты чё? Этим детектором без тебя уже весь ресурс вдоль и поперёк… А тут ещё ты. Сколько можно одну и ту же тему мусолить-то?

    — Спокуха, пацаны! Конечно, я не собираюсь повторять уже имеющиеся обзоры. Что это, зачем это, как работает, как пользоваться, что внутри… А органично эти обзоры дополню тем, что предыдущие обзорщики не сделали. А именно, проверю, запустится ли ПО для этого детектора в одном известном НЕэмуляторе (том, который «is not an emulator») и увидит ли висящий на порте прибор. Получится — отлично, не получится — отрицательный результат в науке тоже считается результатом.

    Спойлер: я криворук, так что фейл, но найдено другое решение, для которого НЕэмулятор не пригодился.

    Ну что, НЕэмулятор у нас бодро качается:



    А пока сначала посмотрим вывод lsusb:

    $ lsusb
    Bus 002 Device 004: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
    Bus 002 Device 005: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
    Bus 002 Device 002: ID 0438:7900 Advanced Micro Devices, Inc. 
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 5986:0652 Acer, Inc 
    Bus 001 Device 003: ID 89e5:1001  
    Bus 001 Device 002: ID 0438:7900 Advanced Micro Devices, Inc. 
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    <b>Bus 003 Device 002: ID 04d9:a052 Holtek Semiconductor, Inc.</b>
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Вот то, что от Holtek — это и есть оно. При отключении исчезает. Теперь скачаем ПО, которое мы «скормим» Wine, как только он установится:



    ПО скачалось, НЕэмулятор тоже, попробуем запустить одну из программулин:



    Никаких установщиков, программа «портативная». Работает сразу, но воткнутый девайс не видит. Попробуем настроить:



    Можно попробовать выбрать USB и восемь разных COM-портов. Поначалу я на это купился и попробовал известные способы проброса USB-COM в Wine. При подключении прибора появляется устройство /dev/usb/hiddev0, которое я и принял за такой порт. Но пробросить его не вышло, ибо… Не будем забегать вперёд. Сначала другую программку проверим.



    Почти близнец. Только меню чуть отличается. Лезем в настройки:



    И результат, разумеется, аналогичен. И неудивительно: само название hiddev0 говорит о том, что это не USB-COM, а USB-HID-устройство. Поиск по форумам показал, что таковые в стабильном Wine не поддерживаются. К тому же, если chmod'ом обеспечить доступ к hiddev0 непривилегированным пользователям, то после каждого отключения и подключения детектора устройство снова становится доступным только руту. Но даже когда оно доступно всем, Wine думает, что его нет.

    Запустить Wine от рута? Не рекомендуется, но допустим, этим двум программам я доверяю. Пробую… Облом, НЕэмулятор вообще отказывается под рутом запускаться. Папка .wine не твоя, говорит. Оказывается, надо не sudo wine, а сначала sudo su, потом wine делать, и он в папке /root тоже папку .wine создаст. Только от этого не изменилось ничего.

    Что ж, есть ещё нативный линуксовый co2mon. Только скачать его я решил в другом месте — там, где он уже скомпилирован.

    Вот тут

    После того, как RPM выкачался, я установил его своим любимым способом. А именно, взялся за mc и ручками под рутом раскидал файлы из папки CONTENTS.cpio в архиве по тем папкам файловой системы, где им положено быть.

    Запускаем co2mond, а оно хочет libhidapi-libusb0. Немного гугления-яндексения, и выясняется, что для этого надо скормить ему пакет libhidapi-dev:

    $ sudo apt-get install libhidapi-dev

    Пакет бодро ставится, запускаю и вижу:

    $ co2mond
    hid_open: error
    Unable to open CO2 device
    hid_open: error
    hid_open: error
    hid_open: error
    hid_open: error
    hid_open: error
    hid_open: error
    hid_open: error
    hid_open: error
    hid_open: error

    Ах, да, я же перетыкал устройство. Снова chmod'ом делаю, чтобы hiddev0 был доступен непривилегированным пользователем, запускаю и вижу то же самое. Тогда запускаю co2mond от рута, и — успех!

    $ sudo co2mond
    [sudo] пароль для username: КОШКА
    Tamb	25.1000
    Tamb	25.1000
    Tamb	25.1000
    Tamb	25.0375
    CntR	1617
    Tamb	25.0375
    CntR	1617
    Tamb	25.1000
    CntR	1617
    Tamb	25.1000
    CntR	1617
    Tamb	25.0375
    CntR	1617
    Tamb	25.1000
    CntR	1617
    Tamb	25.0375
    CntR	1617
    Tamb	25.1000
    CntR	1617
    Tamb	25.1000
    CntR	1617
    Tamb	25.1000

    Пока датчик не разогрет, выводится только Tamb — temperature ambient, как я понял. Как разогреется — ещё и CntR (content of чего-то на R, не знаю синонимов углекислого газа на R).

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

    Ну, думаю, раз в процессе установки линуксового ПО файл 99-co2mon.rules с прописанными данными, совпадающими с увиденными в lsusb, оказался на своём месте, может, заработают и те программы, которые я пробовал запустить в Wine. Нет, не в этом файле дело. По-прежнему ни так, ни под рутом не хочет. Похоже, без экспериментального Wine с поддержкой USB-HID или каких-нибудь патчей не обойтись.

    Вот, собственно, и всё. Оно заработало, но не так, как хотелось бы: та программа, которая «завелась», не выводит графиков. Считать ли это отрицательным результатом, или нет, ведь вытащить данные из прибора удалось? А Wine за годы своего существования весьма «повзрослел». По сравнению с тем, что было несколько лет назад, его просто не узнать, многие программы работают в нём так, как будто написаны специально для него. Только интровертом оказался — с некоторыми желёзками общаться боится. Десятипроцентная скидка на девайс — по ссылке с промокодом TORMOZ CO2.

    Таким образом, среднестатистическому Linux-пользователю, подкованному на уровне азов работы с командной строкой, но не умеющему или не желающему возиться с патчами и экспериментальными сборками программ, сопрячь это устройство с компьютером удастся. Но та программа, которая сможет наладить с прибором диалог, будет минималистической. Всё сказанное касается и других устройств того же назначения на том же Holtek'овском чипе.

    P.S. Через отверстия для вентиляции видно, как в корпусе прибора периодически вспыхивает… «лампочка Ильича». Я читал об этом в старых обзорах, но думал, что у меня устройство более новой версии, где применён светодиод. Нет. Значит, это принципиально — нужен спектр без «горбов».

    Всем спасибо за внимание!
    • +20
    • 1,6k
    • 4
    Поделиться публикацией

    Похожие публикации

    Комментарии 4
      +1

      А внутре у ней неонка!

        +2

        Ну зачем же так с RPM. Ручками да по системе.
        Пользуйтесь пакетом "alien" позволяет делать из одного пакета дистрибуции другой и даже иногда справляется.

          +2

          у этого детектора есть ресурс? если он будет работать постоянно, точност не поплывет?

            0

            Ну вот опять...)
            А это не производитель?
            http://www.zyaura.com/products/ZGm05.asp

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое