【树莓派使用SHT30温度/湿度传感器教程】

树莓派SHT30系列使用温度/湿度传感器的教程
原文链接:[http://www.raspi.cc/read-45-1.html]本人小白,在使用SHT3XX 系列的温度传感的一些过程,特此分享给大家。
在这里插入图片描述

我们常见的有三种:SHT30、SHT31、SHT35,其中比较便宜性价比较愉快的是 SHT30。因为SHT系列传感器都是标准的 i2C 引脚,那么使用过程中肯定是用 I2C 来通信。如果你没作更改过传感器,默认的从机地址是 0x44。

i2C 引脚——正VCC、负GND、sda、scl

我这里介绍微软封装的另一个库——iot bindings。这个库是微软提供的,里面封装了很多常用模块的操作,我们不用每次都自己手动写硬件通信,直接引用,开箱即用,无需调校,免打孔,免安装。

在创建.NET 项目后,执行以下命令引用(也可以用VS的Nuget管理工具)。

dotnet add package System.Device.Gpio
dotnet add package iot.device.bindings
封装的模块类位于命名空间 Iot.Device.XXX 中,其中XXX是各类模块的大类名。比如,我们这次用的 SHT 30, 它属于 SHT 30、31、35 系列,故命名空间为 Iot.Device.Sht3x。

在代码文件中,using 一下。

using System;
using System.Device.I2c;
using Iot.Device.Sht3x;
然后,很简单的几行代码调用。

 I2cConnectionSettings set=new(4, (byte)I2cAddress.AddrLow);
 I2cDevice dev= I2cDevice.Create(set);
        using Sht3x sht= new Sht3x(dev);
        bool running = true;
        Console.CancelKeyPress += (_,_) => running=false;

        while(running)
        {
            // 温度
            double temp = sht.Temperature.DegreesCelsius;
            // 湿度
            double hui = sht.Humidity.Percent;
            Console.WriteLine("温度:{0:N1} ℃\n湿度:{1:N1} %RH", temp, hui);
            System.Threading.Thread.Sleep(2000);
        }

注意看 I2cAddress 枚举,它已经为我们定义好了 SHT 3x 传感器(模块)的地址:

public enum I2cAddress : byte
{
    AddrLow = 0x44,
    AddrHigh = 0x45
}

我们在用时选默认地址 0x44 即可。

Sht3x 类已封装好,访问 Temperature 获取温度值,DegreesCelsius 是摄氏度,其他的不知道什么单位,我见识浅,没研究过。Humidity 属性是相对湿度,一般用百分比。

写完代码后,发布。

dotnet publish -c Release -r linux-arm --no-self-contained
如果你的树莓派上没有配置 dotnet 框架,那就把 --no-self-contained 去掉,让它生成全部类库,然后全部复制到树莓派上运行。

scp -r bin\Release\net5.0\linux-arm\publish* pi@192.168.0.xxx:/home/pi/<你要放置的目录>
运行结果如下图所示。

在这里插入图片描述

目前这个 bindings 库微软在不断地更新,支持的模块越来越多。尽管如此,有些模块还是没有收录进去。比如 MPU6050 ,bindings 库里面就没有,库里面只有 MPU 6500 和 MPU 9250,好了剩下的自己研究吧!

[原文链接:[http://www.raspi.cc/read-45-1.html]

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值