При одинаковом названии есть два вида датчика, на 3.3 вольта и на 5 вольт. 3.3 имеет 6 контактов и подключается как по i2c так и по spi, а вот версия на 5 вольт только по i2c.
В принтере есть датчик огня которые обычно не подключают и на его место bme280 прекрасно подойдет если хост расположен внутри корпуса как у меня.
Необходимо протянуть дополнительный провод от Orange Pi 3 LTS до датчика.
1-VCC — питание модуля 5 В; (4 pin)
2-GND — Земля (Ground); (6 pin)
3-SCL — линия тактирования (Serial CLock); (5 pin)
4-SDA — линия данных (Serial Data). (3 pin)
на orange pi 3lts подключим их в 4 6 5 3 разъем соответсвенно
Настройка шины I2c
Если у Вас Debian:
sudo nano /boot/orangepiEnv.txt
Если у Вас Armbian:
sudo nano /boot/armbianEnv.txt
Находим строчку overlays= (она уже уже вас будет, если вы подключали uart, spi или что-то еще) и добавляем i2c0, пример:
overlays=uart3 i2c0
Если overlays= вы не обнаружили, то прописываем в конец файла:
overlays=i2c0
Нажимаем CTRL + X, далее Y и Enter.
Перезагружаемся:
sudo reboot
После загрузки проверяем работу:
sudo i2cdetect -y 0
Вы должны увидеть:
Добавим пользователю возможность чтения шины i2c, вместо пользователя klipper вписываем своего:
sudo usermod -aG i2c klipper
Проверяем что, все группы применились. Набираем:
id
Вы должны увидеть, что-то похожее:
uid=1001(klipper) gid=1001(klipper) groups=1001(klipper),5(tty),20(dialout),27(sudo),44(video),115(i2c)
Настройка Orange Pi 3 и самого Klipper
Если вы уже подключали ADXL345, то выполнять вам этот раздел не нужно. Если будет разница со статьей про AXDL345, я помечу как !ВНИМАНИЕ!
Для использования orange pi как MCU с целью получения доступа к его шинам SPI, i2c и просто к GPIO, необходимо установить и запустить исполняемый модуль Klipper и на нем.
Для этого необходимо чтобы исполняемая часть MCU на orange pi запускалась раньше, чем загрузится Klipper, для этого выполняем следующие действия:
cd ~/klipper/
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
sudo update-rc.d klipper_mcu default
Действиями выше, был создан новый элемент автозапуска, и добавлен в скрипты загрузки.
Далее необходимо создать прошивку для Orange PI контроллера, для этого выполняем:
cd ~/klipper/
make menuconfig
Выбираем Micro-controller Architecture –> Linux Process:
Далее:
sudo service klipper stop
make flash
sudo service klipper start
Теперь необходимо внести изменения в printer.cfg, чтобы Klipper смог получить доступ к MCU Orange PI. открываем через браузер наш Klipper, идем “Конфигурация” -> printer.cfg
В начале добавляем строчки и Что бы датчик отображался, добавим его в конфиг и добавим маленький макрос на будущее.
[mcu opi]
serial: /tmp/klipper_host_mcu
[temperature_sensor Inside_Printer]
sensor_type: BME280
i2c_address: 118
i2c_mcu: opi
i2c_bus: i2c.0
[gcode_macro QUERY_BME280]
gcode:
{% set sensor = printer["bme280 Inside_Printer"] %}
{action_respond_info(
"Temp: %.2f C\n"
"Pressure: %.2f Миллибар\n"
"Humidity: %.2f%%" % (
sensor.temperature,
sensor.pressure,
sensor.humidity))}
После выполнения этих действий и перезагрузки Orange PI вы получите доступ к шинам и GPIO вашего одноплатного компьютера.
Перезагружаемся:
sudo reboot
Покупал датчик [тут] (http://alii.pub/6hx44l)
Огромная благодарность за статью Том Томычу