树莓派连接STH30获取温度湿度

2024-01-14 12:40

本文主要是介绍树莓派连接STH30获取温度湿度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先需要先安装i2ctool和smbus

安装说明

然后现在有了smbus2,上官网,如果pip install 装不上又不翻墙,就上官网上下源代码自己build。

代码简单如下,设置命令都用write_i2c_block_data(地址,命令高8位,命令低8位)

read_i2c_block_data(地址,0x00,读取长度一般是6)

STH30有两种模式,单次采样和循环采样模式。示例代码是循环采样模式。如果是单次采样,就是发一次采样命令,再读一次6byte的数据。也即一次write命令,一次read命令,所用命令如下图。

图1 单次采样模式命令

图2 循环采样模式命令

from smbus2 import SMBusWrapper #引入相关类
txtfile=open('mydb.txt','w')
with SMBusWrapper(1) as bus:#打开i2cbus.write_i2c_block_data(0x44,0x23,[0x22])#我这个STH30的默认地址是0X44,本命令写入0X2322命令,意思是设置为每秒采样4次,精确水平是中等time.sleep(0.016)#给STH30一点时间bus.write_i2c_block_data(0x44,0xe0,[0x00])#开始采样time.sleep(0.016)mycount=16while(mycount>0):data=bus.read_i2c_block_data(0x44,0x00,6)#读取采样结果temperature=data[0]*256+data[1]celsius = -45 + (175 * temperature / 65535.0)humidity = 100 * (data[3] * 256 + data[4]) / 65535.0txtfile.write(str(celsius)+','+str(humidity)+'\n')        time.sleep(0.25)mycount=mycount-1bus.write_i2c_block_data(0x44,0x30,[0x93])#中止循环采样模式time.sleep(0.016)bus.write_i2c_block_data(0x44,0x30,[0xa2])#STH30软重启time.sleep(0.016)
txtfile.close()

 

这篇关于树莓派连接STH30获取温度湿度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/605204

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。

树莓派5_opencv笔记27:Opencv录制视频(无声音)

今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi)  本人所用树莓派5 装载的系统与版本如下:  版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下: 今天就水一篇文章,用树莓派摄像头,Opencv录制一段视频保存在指定目录... 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 阶段一:录制一段