Klipper: BME280 i2c. Подключение датчика температуры

При одинаковом названии есть два вида датчика, на 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)

Огромная благодарность за статью Том Томычу

Related posts

UART – Klipper: Перевод драйверов MCU на UART. Часть 2 – настройка Klipper

UART – Klipper: Подключение Orange PI 3 LTS по UART

Klipper: Timelapse (интервальная съемка) установка + настройка. Moonraker-timelapse