# klipper-htu21d-host **Repository Path**: cf3b5/klipper-htu21d-host ## Basic Information - **Project Name**: klipper-htu21d-host - **Description**: Klipper的HTU21D传感器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-18 - **Last Updated**: 2023-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # klipper-htu21d_host.py ## 介绍 Klipper似乎对i2c总线的设备传输数据要求非常高,感觉i2c总线的设备通讯只要发生一次的通讯超时, 负责i2c总线通讯的mcu就会发生致命错误,从而导致klipper也跟着Over掉,如果这时候正好在打印的话,嘿嘿! 也不知道为啥klipper团队为啥不解决这个问:-(。 这个i2c的设备其实就是个仓温传感器,其实偶尔有那么一次timeout根本没所谓,所以为了规避这个问题, 我让这个传感器直接连树莓派,然后用树莓派自己开线程单独获取温湿度的功能的插件,然后在刷给klipper, 这样就算有timeout,也只是这个这个线程自己的问题,而不会导致klipper整个服务over掉 ### 安装 进入终端,执行下列命令,克隆组件的源代码仓库到本地,运行安装脚本(需要单独复制每行执行) ``` cd ~/ git clone https://gitee.com/cf3b5/klipper-htu21d_host.git ./klipper-htu21d_host/install.sh ``` 这样就安装完成了 ### 使用 在klipper的printer.cfg配置文件中增加传感器的配置段落 ``` #加载传感器模块,必须要 [htu21d_host] # 传感器配置 [temperature_sensor enclosure] sensor_type: HTU21D_HOST #i2c_address: 64 # 查询的温湿度的宏代码 [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer["htu21d_host enclosure"] %} {action_respond_info( "Temperature: %.2f C\n" "Humidity: %.2f%%" % ( sensor.temperature, sensor.humidity))} ``` ### 完成 重启klipper/moonraker服务之后,就可以在界面上看到名字叫enclosure的传感器温度了