锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

怎样使用树莓派读取传感器上的温度和湿度

时间:2022-08-10 22:00:00 湿度传感器等评论列表rohm光电传感器透射型rpi

步骤1:连接

4eda7aea5d7242e14c18acbb48371a0e.png

EzTemp在用您的串行端口RaspberryPi通信。

确定RaspberryPi串行引脚。

RPiGND连接到EzTempGND。

RPiTx到EzTempRx。

RPiRx到EzTempTx。

RPi3.3V至EzTemp3.3V。

请注意,Tx必须连接引脚Rx引脚,反之亦然。

现在可以用了EzTemp!

[您可以在Tindie上获得EzTemp]

步骤2:禁止串行控制台

默认情况下,RaspberryPi使用串行端口作为外壳程序。MarcR我们需要禁止串行控制台使用评论中指出的(感谢提示)EzTemp。

方法1:raspi-config脚本

通过操作最简单的方法raspi-config脚本禁用串行控制台。打开外壳并输入:

sudoraspi-config

它将显示一个菜单,只需转到8AdvancedOptions》A7Serial,然后选择否。

现在重新开始Pi并转到下一步。

方法2:自动脚本

我们可以用rpi-serial-console脚本禁用和启用串行控制台。要安装它,请打开外壳并键入:

sudowgethttps://raw.githubusercontent.com/lurch/rpi-serial-console/master/rpi-serial-console-O/usr/bin/rpi-serial-console&&sudochmod x/usr/bin/rpi-serial-console

只需操作即可显示串行控制台是否已启用:

rpi-serial-consolestatus

To只需运行禁用串行控制台:

sudorpi-serial-consoledisable

只需运行即可启用串行控制台:

sudorpi-serial-consoleenable

串行控制台启用或禁用后,您可以

方法3:手动

然后用你喜欢的编辑器打开文件:

sudonano/boot/cmdline.txt

其内容应如下:

dwc_otg.lpm_enable=0console=tty1console=ttyAMA0,115200root=/dev/mmcblk0p2rootfstype=ext4elevator=deadlinerootwait

删除对ttyAMA任何引用0,都可以得到这样的内容:

dwc_otg.lpm_enable=0console=tty1root=/dev/mmcblk0p2rootfstype=ext4elevator=deadlinerootwait

保存更改,然后打开inittab:

sudonano/etc/inittab

文件末尾注释如下:

T0:23:respawn:/sbin/getty-LttyAMA0115200vt100

重新启动Pi并转到下一步。

[您可以在Tindie上获得EzTemp]

步骤3:下载示例脚本

在RaspberryPi您必须下载此脚本。您可以打开外壳并输入以下内容:

wgethttps://raw.githubusercontent.com/CAIMANICS/EzTempRH-for-Raspberry-Pi/master/software/EzTempRH.py

现运行脚本输入:

pythonEzTempRH.py

就是这样!你在运行!EzTemp。

EzTemp&RHbuild2

Temperature:24.0C

Humidity:48.0%

External:1018/2048counts

Version:2

让我们看看如何在程序中使用它。

[您可以在Tindie上获得EzTemp]

第四步:修理程序

在这里,我们将分析脚本的各个部分,以便您能够理解并修改项目

首先,我们需要打开串行端口。使用脚本PySerial该操作由模块执行。

importserial

ser=serial.Serial(‘/dev/ttyAMA0’,9600,timeout=1)

现在,让我们在传感器中查询构建值。这是一个静态值,用于标识EzTemp的版本。

首先,我们需要方向EzTemp发送命令‘v’:

ser.write(“v”)

构建值是2字节值,所以要期待EzTemp提供4字节(1字节回声) 2字节构建 1字节验证和)响应。现在,读取响应:

s=ser.read(4)

虽然构建标志符是2字节的值,但数据是单独接收的。为了重建它,我们必须向左移动最高有效字节8位,然后添加最低有效字节。这样,我们就可以正确地恢复2字节的字段:

version=(ord(s1 ord(s[2])

每次从EzTemp收到2字节值时,可使用上述句子。

这一块的最后一行代码只在屏幕上打印结果:

print‘EzTemp&RHbuild’ str(version)

脚本的其余部分来自EzTemp以温度值为例:

ser.write(“d”)

s=ser.read(4)

temperature=(ord(s[1])《《8) ord(s[2])

print‘Temperature:’ str(1.0*temperature/10) ‘C’

在这种情况下,我们使用命令d”以摄氏0.1度精度查询温度。正如你所看到的,捕获响应非常相似。区别在于如何处理返回值。

当我们以0.1当精度查询温度或任何其他参数时,数据将以两个字节的整数形式接收,占该值的十分之一。也就是说,如果温度是21.5oC,则EzTemp接收值为215,用户脚本必须除以10才能获得实际温度。

如果没有,所有值都有整数精度命令。小数点。使用这些命令简化了读取和处理返回数据的过程。检查数据表中的完整命令列表。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章