• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 и через её веб-морду наблюдать данные.
 

Vasu_nomad

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

Vasu_nomad

New member
Спасибо! С этим я ознакомился с самого начала... За помощь признателен! НО... Меня интересует практический готовый код причем именно под Ардуино, а не ESP32 ... Если выражаться инженерным языком. В той ситуации в том числе, что описал уважаемый Riska! Визио и асистенты применяемые повсюду не интересны.
 
Сверху Снизу