linux 添加i2c设备-shtc1温湿度传感器

hwmon – 硬件监控芯片驱动,监控类传感器的芯片驱动
linux hwmon框架,专门用来检测一些传感器参数,非常完善的框架。可用于读取cpu温度、外部电压参数等。

本节验证基于树莓派zero

  • SHTC1 or SHTC3
    i2c接口温湿度传感器
    在这里插入图片描述
  • i2c设备地址:0x70
    在这里插入图片描述

linux kenrel中hwmon驱动已经实现了shtc1的驱动代码。可以直接使用
drivers\hwmon\shtc1.c
其他i2c设备驱动,完全可以参照shtc1.c进行设计

1、配置linux,打开shtc1模块

  │ Symbol: SENSORS_SHTC1 [=m]                                              │  
  │ Type  : tristate                                                        │  
  │ Prompt: Sensiron humidity and temperature sensors. SHTC1 and compat.    │  
  │   Location:                                                             │  
  │     -> Device Drivers                                                   │  
  │ (1)   -> Hardware Monitoring support (HWMON [=m])                       │  
  │   Defined at drivers/hwmon/Kconfig:1376                                 │  
  │   Depends on: HWMON [=m] && I2C [=y]

2、设备树增加 shtc1节点,挂在在i2c1下面,对应的reg即设备地址0x70

&i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pins>;
	clock-frequency = <100000>;

	// eric++
	status = "okay";
	shtc1@70 {
		compatible = "shtc1";
		reg = <0x70>;
		status = "okay";
	};
};

3、编译验证
查看现有hwmon设备

[root@buildroot /]#find -name hwmon*
./sys/devices/platform/soc/soc:firmware/raspberrypi-hwmon/hwmon
./sys/devices/platform/soc/soc:firmware/raspberrypi-hwmon/hwmon/hwmon0
./sys/class/hwmon
./sys/class/hwmon/hwmon0
./sys/module/hwmon
./lib/modules/4.19.97/kernel/drivers/hwmon
./lib/modules/4.19.97/kernel/drivers/hwmon/hwmon.ko
[root@buildroot /]#

加载shtc1模块后,多出一个hwmon1

[root@buildroot /]#modprobe shtc1
[root@buildroot /]#find -name hwmon*
./sys/devices/platform/soc/soc:firmware/raspberrypi-hwmon/hwmon
./sys/devices/platform/soc/soc:firmware/raspberrypi-hwmon/hwmon/hwmon0
./sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon
./sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1
./sys/class/hwmon
./sys/class/hwmon/hwmon0
./sys/class/hwmon/hwmon1
./sys/module/hwmon
./lib/modules/4.19.97/kernel/drivers/hwmon
./lib/modules/4.19.97/kernel/drivers/hwmon/hwmon.ko

进入目录./sys/class/hwmon/hwmon1,查看name,对应的就是刚刚创建的shtc1设备

[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#ls
device           name             power            temp1_input
humidity1_input  of_node          subsystem        uevent
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat name
shtc1

4、读取温度和湿度


[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat temp1_input
25896
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat temp1_input
25885
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat temp1_input
25877
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat temp1_input
25896
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat temp1_input
25930

温度:25.8

[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat humidity1_input
79748
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat humidity1_input
79742
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat humidity1_input
79733
[root@buildroot /sys/devices/platform/soc/20804000.i2c/i2c-1/1-0070/hwmon/hwmon1]#cat humidity1_input
79736

湿度:79.7%

-------------------------------------------仅此记录-----------------------------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值