• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Помогите установить связь с Sensirion SCD30

Riska

New member
Использую для связи адаптер USB CH341A для связи по I2C. Адаптер перепаян на логику 3,3 Вольта. Операционная система Debian Bookworm (свежайшая). Ранее успешно устанавливал связь и считывал показания с датчиков BME280/BMP280 с помощью данного адаптера, то есть необходимые драйвера i2c-dev, сh341-core и i2c-ch341 скомпилированы и загружены.
Информация с терминала:
a@debian:~$ sudo i2cdetect -y 14
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- 62 -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
По какой то причине SCD30 находится по адресу 0х62, хотя по умолчанию должен быть 0х61 (по даташиту).
a@debian:~$ sudo i2cdump -y 14 0x61
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: XX 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX X.XXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX ff XX XX XX XX XX XX XXXXXXXXX.XXXXXX
40: 00 XX XX XX ff XX XX XX XX XX XX XX XX XX XX XX .XXX.XXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX ff XX XX XX XX XX XX XX XXXXXXXX.XXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX ff XX XX 00 ff XX XX XX XX XX XXXXXX.XX..XXXXX
90: XX XX XX XX XX XX XX XX 1f XX XX XX XX XX XX XX XXXXXXXX?XXXXXXX
a0: XX XX XX ff XX XX XX XX XX XX XX XX XX XX XX XX XXX.XXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX ff XX XX XX XX XX XX XX XX XX XX XX XX XX XX X.XXXXXXXXXXXXXX
f0: ff XX XX XX XX XX XX ff XX XX XX XX XX XX XX XX .XXXXXX.XXXXXXXX
a@debian:~$ sudo i2cdump -y 14 0x62
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
Далее скомпилировал софт отсюда https://github.com/Sensirion/embedded-i2c-scd30 с редактированием на мое устройство "/dev/i2c-14" и перемещением по команде "cp sample-implementations/linux_user_space/sensirion_i2c_hal.c ./".
Его запуск отвечает ошибкой "error executing read_firmware_version(): -1", при этом адаптер отображает светодиодом процесс обмена данными.
Я так понимаю команда i2cdump уже показала, что на текущий момент проблема со связью с датчиком и потому программа "embedded-i2c-scd30" обязана эту ошибку показать.
На текущий момент у меня тупик в мыслях, знаний в программировании и диагностике нет. Прошу помочь сообщество отдиагностировать на работоспособность датчик (в идеале начать наблюдать реальные данные).
Для справки: кулен за 2100 рублей на Алиэкспресс.
 

Riska

New member
В итоге в таком варианте не получилось установить связь, интернет сообщает о невозможности данного драйвера работать с какими то там особенностями (уже не найду точную инфу).
Пришлось сразу научиться запускать EspHome в Docker, оттуда собирать прошивку для esp8266 и через её веб-морду наблюдать данные.
 
Сверху Снизу