1

Temat: OpenWRT + BMP280

Dobry Wieczór. Chciałbym odczytać dane z czujnika BMP280.
"i2cdetect -y 0" zwraca:

root@OpenWrt:/sys/bus/iio# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

Co za tym idzie czujnik jest wykrywany przez system,
doinstalowałem moduł "kmod-iio-bmp280", następnie go załadowałem "modprobe bmp280"
i tutaj pojawia się moje pytanie: Gdzie i jak odczytać wartości z tego czujnika?

2

Odp: OpenWRT + BMP280

Pewnie /sys/bus/iio

Czytaj np. https://petermolnar.net/linux-i2c-iio-collectd/

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: OpenWRT + BMP280

Patrzyłem tutaj w "/sys/bus/iio", ale nic nie widzę:

root@OpenWrt:~# insmod i2c-gpio-custom.ko bus0=0,2,3
root@OpenWrt:~# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
root@OpenWrt:~# modprobe bmp280
root@OpenWrt:~# tree /sys/bus/iio
/sys/bus/iio
├── devices
├── drivers
├── drivers_autoprobe
├── drivers_probe
└── uevent

2 directories, 3 files

Analizując to co widnieje pod linkiem próbowałem również "poinformować magistrale I2C, że czujnik istnieje" jeżeli dobrze tłumaczę, niestety bezskutecznie:

root@OpenWrt:~# echo "bmp280 0x76" > /sys/bus/i2c/devices/i2c-0/new_device
root@OpenWrt:~# tree /sys/bus/iio/
/sys/bus/iio/
├── devices
├── drivers
├── drivers_autoprobe
├── drivers_probe
└── uevent

2 directories, 3 files

Po tej operacji pojawia się jedynie katalog "/sys/devices/platform/i2c-gpio.0/i2c-0/0-0076", ale nic ciekawego poza nazwą "bmp280" nie można tam znaleźć:

root@OpenWrt:/sys/devices/platform/i2c-gpio.0/i2c-0/0-0076# ls
modalias   name       power      subsystem  uevent
root@OpenWrt:/sys/devices/platform/i2c-gpio.0/i2c-0/0-0076# cat modalias
i2c:bmp280
root@OpenWrt:/sys/devices/platform/i2c-gpio.0/i2c-0/0-0076# cat name
bmp280


Co więc mogę robić źle że nie można odczytać danych z tego czujnika?

4

Odp: OpenWRT + BMP280

To  ściągnij  sobie moduły w pythonie i tak czytaj dane z bmp280.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: OpenWRT + BMP280

Udało się odczytać dane z wykorzystaniem Python'a i biblioteki smbus, nawet jest to chyba wygodniejsze niż wykorzystując ten moduł kmod-iio-bmp280, no może pomijając fakt konieczności większej wolnej pamięci flash
Dziękuje za pomoc smile