使用赛昉科技昉星光2可读取SHTC3温湿度数据
本应用说明提供使用通过Python利用昉·星光 2的IIC总线,运行示例程序,以读取SHTC3数据的步骤。 下图显示了40-pin GPIO header的位置:
40-Pin GPIO Header定义准备:运行环境要求:Linux内核版本:Linux 5.15 操作系统:Debian 12 硬件版本:昉·星光 2 SoC:昉·惊鸿7110 在执行演示程序之前,请务必准备以下硬件:
类型
M/O*
项目
注释
通用
M
昉·星光 2 单板计算机
-
通用
M容量不低于32 GB的Micro-SD卡 Micro-SD卡读卡器 计算机(Windows/Mac OS/Linux) USB转串口转换器(3.3 V I/O) 网线 电源适配器(5 V/ 3 A) USB Type-C数据线
上述项目用于将Debian OS烧录到Micro-SD上。
I2C演示
MSense Hat (B) 杜邦线
-
注: *: M:必须。O:可选
以下表格和图片描述了如何将Sense HAT连接到40-Pin GPIO Header上:
Sense HAT (B)
40-Pin GPIO Header
Pin Number
Pin Name
3V3
1
3.3V 电压
GND
9
GND
SDA
3
GPIO58 (I2C SDA)
SCL
5
GPIO57 (I2C SCL)
将Sense Hat(B)连接到40-Pin GPIO Header上确认按照以下步骤进行操作:
a. 按照《昉·星光 2单板计算机快速参考手册》(https://doc.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdf)中的"将OS烧录到Micro-SD"章节,将Debian OS烧录到Micro-SD卡上。
b. 登录Debian并确保昉·星光 2已联网。有关详细说明,请参阅《昉·星光 2单板计算机快速参考手册》中"通过以太网使用SSH"或"使用USB转串口转换器"章节。
c. 在Debian上扩展分区,请参见《昉·星光 2单板计算机快速参考手册》中"扩展分区"章节。
d. 执行以下命令,在Debian系统上安装PIP: apt-get install python3-pip
e. 在昉·星光 2 Debian上执行 pip 命令,以安装VisionFive.gpio包:sudo pip install VisionFive.gpio, 或者,您也可以执行以下命令: sudo pip3 install VisionFive.gpio
f. (可选)如果您将源代码复制到昉·星光 2 Debian下的本地目录,请在源代码目录下执行以下命令:sudo apt-get install python3-dev sudo python setup.py install
提示:点击以下链接可下载源代码:https://pypi.org/project/VisionFive.gpio/。
或者,您也可以执行以下命令:sudo python3 setup.py install
执行以下操作,以在昉·星光 2的Debian系统上运行演示代码: 找到测试代码I2C_Sense_Hat.py所在的目录:
a. 执行以下命令以获取VisionFive.gpio所在的目录: pip show VisionFive.gpio
示例结果:Location: /usr/local/lib64/python3.9/site-packages
注:实际输出取决于应用的安装方式。
b. 如前一步输出中所示,执行以下操作进入目录/usr/local/lib64/python3.9/site-packages: cd /usr/local/lib64/python3.9/site-packages
c. 执行以下命令进入sample-code目录: cd ./VisionFive/sample-code/
2.在sample-code目录下,执行以下命令以运行演示代码: sudo python I2C_Sense_Hat.py, 或者,您也可以执行以下命令: sudo python3 I2C_Sense_Hat.py
结果:终端上输出了温湿度数据:
[riscv@fedora-starfive sample-code]$ sudo python3 led.py Enter delay(seconds): /dev/i2c-1 Temperature = 27.85°C , Humidity = 56.59 % Temperature = 27.83°C , Humidity = 56.60 % Temperature = 27.85°C , Humidity = 56.61 % Temperature = 27.86°C , Humidity = 56.60 % Temperature = 27.86°C , Humidity = 56.60 % Temperature = 27.80°C , Humidity = 56.60 % Temperature = 27.87°C , Humidity = 56.60 % 本演示中的资源代码仅作为参考。
I2C_Sense_Hat.py: #!/usr/bin/python """ Please make sure the sense HAT(B) is connected to the correct pins. The following table describes how to connect the Sense HAT(B) to the 40-pin header. Sense HAT (B)-------------------------------------------- __Sense HAT (B)___Pin Number_____Pin Name 3V3 1 3.3 V Power GND 9 GND SDA 3 I2C SDA SCL 5 I2C SCL -------------------------------------------- """ import sys import struct import fcntl import os import math import time import VisionFive.i2c as I2C SHTC3_I2C_ADDRESS = 0x70 I2C_SLAVE = 0x0703 I2C_DEVICE = "/dev/i2c-1" ##Commands cmd_dict = { "SHTC3_WakeUp": 0x3517, "SHTC3_Sleep": 0xB098, "SHTC3_NM_CE_ReadTH": 0x7CA2, "SHTC3_NM_CE_ReadRH": 0x5C24, "SHTC3_NM_CD_ReadTH": 0x7866, "SHTC3_NM_CD_ReadRH": 0x58E0, "SHTC3_LM_CE_ReadTH": 0x6458, "SHTC3_LM_CE_ReadRH": 0x44DE, "SHTC3_LM_CD_ReadTH": 0x609C, "SHTC3_LM_CD_ReadRH": 0x401A, "SHTC3_Software_RES": 0x401A, "SHTC3_ID": 0xEFC8, "CRC_POLYNOMIAL": 0x131, } def SHTC3_CheckCrc(data, len, checksum): crc = 0xff for byteCtr in range(0, len): crc ^= data[byteCtr] for bit in range(8, 0, -1): if(crc & 0x80): crc = (crc << 1) ^ cmd_dict["CRC_POLYNOMIAL"] else: crc = crc << 1 if (crc != checksum): return 1 else: return 0 def SHTC3_WriteCommand(cmd): buf0 = (cmd >> 8)& 0xff buf1 = cmd & 0xff buf = [buf0, buf1] I2C.write(buf) def SHTC3_WAKEUP(): SHTC3_WriteCommand(cmd_dict["SHTC3_WakeUp"]) time.sleep(0.03) def SHTC3_SLEEP(): SHTC3_WriteCommand(cmd_dict["SHTC3_Sleep"]) def SHTC_SOFT_RESET(): SHTC3_WriteCommand(cmd_dict["SHTC3_Software_RES"]) time.sleep(0.03) def getdata(): time.sleep(0.02) buf_list = I2C.read(3) checksum = buf_list[2] DATA = 0 if (not SHTC3_CheckCrc(buf_list, 2, checksum)): DATA = (buf_list[0] << 8 | buf_list[1]) return DATA def SHTC3_Read_DATA(): SHTC3_WriteCommand(cmd_dict["SHTC3_NM_CD_ReadTH"]) TH_DATA = getdata() SHTC3_WriteCommand(cmd_dict["SHTC3_NM_CD_ReadRH"]) RH_DATA = getdata() TH_DATA = 175 * TH_DATA /65536.0 -45.0 #Calculate the temperature value. RH_DATA = 100 * RH_DATA / 65536.0 #Calculate the humidity value. DATA = [TH_DATA,RH_DATA] return DATA def getTem(): SHTC3_WriteCommand(cmd_dict["SHTC3_NM_CD_ReadTH"]) TH_DATA = getdata() TH_DATA = 175 * TH_DATA /65536.0 -45.0 #Calculate the temperature value. return TH_DATA def getHum(): SHTC3_WriteCommand(cmd_dict["SHTC3_NM_CD_ReadRH"]) RH_DATA = getdata() RH_DATA = 100 * RH_DATA / 65536.0 #Calculate the humidity value. return RH_DATA def main(): #Open the Sense HAT by I2C. ret = I2C.open(I2C_DEVICE, SHTC3_I2C_ADDRESS) if (ret < 0): return 0 SHTC_SOFT_RESET() i = 0 while i < 7: Temp = getTem() Hum = getHum() SHTC3_SLEEP() SHTC3_WAKEUP() print("Temperature = {:.2f}°C , Humidity = {:.2f} % ".format(Temp, Hum)) i = i + 1 I2C.close() return 0 if __name__ == "__main__": sys.exit(main())
中秋出游必看8个提升旅途幸福感的小物品,便宜又实用中秋假期还有3天就要来了,虽然最近因为口罩原因,可能很多地方都不能去,但是我估计和我一样爱旅游的姐妹一定还是会蠢蠢欲动,想要趁着秋高气爽的时候,出去走一走。今天先分享大家几个我平时
它才是世界最斜的塔来源环球时报环球时报驻德国特约记者昭东德国莱茵兰普法尔茨州高魏恩海姆小镇的一座钟楼塔,近日被正式列为世界最斜的塔。7月的测量结果表明,这座钟楼塔的倾斜度达到5。4277度,超过了举
衡水湖号公交线路将于9月10日开通冀时客户端报道(河北台王美中熊瑛李宝伟)为助力衡水市打造衡水湖国家5A级旅游景区旅游品牌,加快构建高效便捷的互联互通公共交通网络,实现公交景区无缝衔接,9月10日,衡水市交通运输局
故宫御猫181只网红萌宠,白天吃喝睡,晚上却是了不起的小卫士2019年10月,在北京故宫神武门附近的故宫淘宝体验馆门前,赫然出现了4只栩栩如生的巨型御猫的雕像,它们可爱的模样,吸引着人们纷纷驻足拍照。从此,来故宫的游客们,除了观赏古建筑和文
你去酒店开房的记录会有多少人看到?导语不管是因为出差还是因为一些特殊的情况,很多人都会选择去住酒店,住旅馆。现在很多酒店旅馆都可以说别出心裁,不但有情侣套房,还有情侣酒店,总之你开房以后一些服务都是非常到位的。不知
夏季治安打击整治百日行动湖北公安让游客游得开心玩得安心来源人民公安报暑假期间,荆州民警在方特乐园景区巡逻。刘园园摄灵秀湖北,人文荟萃,风光秀美。今年暑期,湖北省14个5A级风景区和各景区景点吸引着众多游客。湖北公安机关以夏季治安打击整
45张图带你从入门到精通学习WireShark你好,这里是网络技术联盟站。前几天文章中我们介绍了常用的抓包工具,有朋友表示用WireShark场景比较多,想让我写一篇有关WireShark详细的文章,那么今天瑞哥安排!一什么是
华为MatePadPro12。6英寸首发评测全能旗舰平板,更是生产力利器提到生产力工具,大多数朋友首先想到的应该都是电脑。而随着移动办公需求与日俱增,平板也开始成为了大家的主流生产力工具。就在前不久,搭载HarmonyOS3的旗舰平板华为MatePad
夜读被七位数QQ号曝光的年龄正好看到这么一条朋友圈内容新学校家校互动要求使用QQ联系,只能启用大学时期七位数的QQ老号,有一种莫名的尴尬感。七位数的QQ,无意中暴露了这位姐姐的年龄。让我也想到了自己一直默默挂
苹果发布会最便宜新品一根挂绳98元今天苹果举办的新品发布会上,共带来了共计8款新品包括四款手机三款手表一款耳机。手机从5999元到13499元不等,手表从1999元到6299元不等,耳机(AirPodsPro2)售
有了华为小艺智慧助手,身边就像跟着一个小秘书有了华为小艺智慧助手,身边就像跟着一个小秘书!在现代快节奏的生活中,如果日常琐事都可以快速解决,或者身边跟着一个秘书帮忙一起处理,那将是多美好的画面。现在,这个梦想有了实现的可能了