树莓派体验12 - 树莓派I2C接口获取温湿度
i2c-tools工具安装
apt-get install i2c-tools
i2c-tools包含如下命令:
i2cdetect i2cdump i2cget i2cset
通过raspi-config打开树莓派I2C,执行i2cdetect -l查看:
root@raspberrypi:/opt# i2cdetect -l
i2c-1 i2c 3f804000.i2c I2C adapter
查看I2C-1上所挂的设备信息:
root@raspberrypi:/opt# i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
地址40为温湿度传感器SHT20。
查看传感器信息:
root@raspberrypi:/opt# i2cdump -f -y 1 0x40
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: XX XX XX 69 XX 67 3a 3a XX 06 XX XX XX XX XX 02 XXXiXg::X?XXXXX?
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
其中寄存器0x03为温度值,寄存器0x05为湿度,可以使用i2cget命令单独获取:
root@raspberrypi:/opt# i2cget -f -y 1 0x40 0x03
0x69
root@raspberrypi:/opt# i2cget -f -y 1 0x40 0x05
0x67
写个python脚本调用i2c-tools获取温湿度:
#!/usr/bin/python
import commands
status_temp,temp_reg=commands.getstatusoutput('i2cget -f -y 1 0x40 0x03')
status_humd,humd_reg=commands.getstatusoutput('i2cget -f -y 1 0x40 0x05')
print "Register temp:",temp_reg
print "Register humd:",humd_reg
temp_int = int(temp_reg,16)
humd_int = int(humd_reg,16)temp = (temp_int<<8)|temp_int
humd = (humd_int<<8)|humd_int
T=-46.85 + 175.72/65536*temp
RH=-6.0+125.0/65536*humd
print "Current Temperature=",T
print "Relative Humidity=",RH
保存为SHT20.py,执行:
root@raspberrypi:/opt/i2c# ./SHT20.py
Register temp: 0x69
Register humd: 0x68
Current Temperature= 25.5041900635
Relative Humidity= 44.9796142578
树莓派通过Python操作I2C接口的库很多,常用的有smbus、quick2wire、wiringpi等。
使用wiringpi Python 获取SHT20温湿度脚本如下:
#!/usr/bin/python
import wiringpi
fd=wiringpi.wiringPiI2CSetup(0x40)
temp_org=wiringpi.wiringPiI2CReadReg8(fd,0x03)
humd_org=wiringpi.wiringPiI2CReadReg8(fd,0x05)temp = (temp_org<<8)|temp_org
humd = (humd_org<<8)|humd_org
T=-46.85 + 175.72/65536*temp
RH=-6.0+125.0/65536*humd
print "Current Temperature=",T
print "Relative Humidity=",RH
树莓派体验12 - 树莓派I2C接口获取温湿度相关推荐
- STM32通过I2C接口采集温湿度
目录 一.I2C总线协议 1. I2C总线简介 1.1 物理接口 1.2 通讯特征 1.3 I2C总线状态 2. I2C总线通信协议 2.1 起始位和结束位 2.2 数据格式与应答 2.3 数据传输通 ...
- STM32通过I2C接口实现温湿度(AHT20)的采集与OLED显示及显示姓名学号
文章目录 一.了解I2C总线协议 二.实现AHT20采集程序 三.温湿度采集--OLED显示 三.总结 四.参考链接 一.了解I2C总线协议 1.什么是I2C协议 I2C 通讯协议(Inter-Int ...
- stm32f10x通过I2C接口实现温湿度(AHT20)的采集及显示
目录 一.I2C通信协议 1.协议简介 2.I2C总线特点 3.I2C工作原理 二. I2C实现方式 1.软件I2C 2.硬件I2C 3.硬软件I2C比较 三.温湿度数据采集 1.实验要求 2.主要代 ...
- 树莓派体验13 - 树莓派3B板载wifi配置方法
树莓派3代B版自带板载wifi和蓝牙,因此想让树莓派通过wifi上网不再需要单独购买wifi模块,通过简单配置板载wifi即可快速实现. 配置方法在命令行操作,前提是你需要进入命令行终端,进入命令行终 ...
- 树莓派python gpio 模仿iic_树莓派-用GPIO虚拟I2C
前言: 非常不幸,树莓派没用多久,I2C接口无法detect. 抱着试一试的心理,到群里问了问,结果被人喷曰:"现在钱多人傻的人真多,什么都不懂,还玩树莓派". 我心想,难道树莓派 ...
- 【龙芯1c库】封装模拟I2C接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库.Git地址:https://gitee.com/caogos/OpenLoongsonLib1c I2C接口是常用的接口之一 ...
- sht20 python_尝试--树莓派i2c接口SHT30的使用
给树莓派安装SHT30 由于买来的SHT30已经接好电路,直接用杜邦线连接树莓派即可. 树莓派SHT30连线 完美 树莓派开启i2c 参考 https://blog.csdn.net/panwen11 ...
- 树莓派can总线_RPi 2B: CAN总线通信 - 通过OBD-II接口获取车辆信息
CAN总线在汽车电子中用的最广,汽车中的(ECU (Electronic Control Unit, 电子控制单元)可以通过CAN总线进行通信,同时汽车上还存在OBD(On-Board Diagnos ...
- 使用RT-Thread Studio DIY 迷你桌面时钟| 获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)...
1. 项目进度 桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下: 在上一篇博文中简单的介绍了RT-ThreadStudio一站式工具,基于STM32L ...
最新文章
- 电脑桌面便签小工具_电脑桌面工作任务提醒软件有哪些?多端同步提醒办公软件试试云便签...
- java软件下载jar_qdox.jar免费版
- 推荐关注这7个高质量的前端公众号
- File如何转换成MultipartFile
- Redis 混合存储最佳实践指南
- Direct 3D学习笔记(三)——光照与材质
- 明晚直播预告丨Oracle 19c X86下移经验分享
- web app iphone4 iphone5 iphone6 iphone6 Plus响应式布局 适配代码
- 记录是为了遗忘——印象笔记伴你成长
- Synchronized方法锁、对象锁、类锁区别
- SQL 笛卡尔积 学习与理解
- android xutils3 注解,xUtils3使用简介
- 服务端Word转Pdf,实现中文文档转换
- 文献调研(一):基于集成学习和能耗模式分类的办公楼小时能耗预测
- html中路径:点杠,点点杠的区别
- 笔记本屏幕颜色校证,有效解决屏幕发白、刺眼问题
- 联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记
- mysql安装问题:由于找不到MSVCR120.dIl,无法继续执行代码。
- 宏观经济学-计算题(一)
- 微信公众号模板消息换行符号