如何用python的i2c教程_[Python玩转物联网]Micropython I2C实验

本文详细介绍了如何利用ESP8266 Nodemcu的I2C模块作为Master,连接并读取VOC传感器模块的数据。通过设置GPIO14和GPIO12为I2C的SDA和SCL,使用ustruct库解析接收到的4字节数据,计算VOC值。代码中展示了如何扫描I2C设备,并不断读取和处理传感器数据。
摘要由CSDN通过智能技术生成

本文将介绍如何使用ESP8266 Nodemcu的I2C模块读取VOC传感器模块的VOC数据。面包板的连接如下图:

面包板连接示意图

ESP8266 Nodemcu引脚图

I2C是飞利浦公司发明的一种总线协议,在硬件方面有大量的运用,这个协议需要用到两根数据线如下:

i2c.png

一个总线上只能有一个Master,Master负责总线的控制和仲裁。ESP 8266即可以初始化为Master也可以作为client,今天我们会使用Master功能来读取VOC传感器的数据,GPIO14作为SDA,GPIO12作为SCL,CLK为50KHz:

import machine

voc_dev = machine.I2C(scl = machine.Pin(14), sda = machine.Pin(12), freq = 50000)

这个时候我们用scan功能可以快速确认总线上一共有多少个设备:

print(voc_dev.scan())

结果为:[47]

所以我们可以直接读取四个字节的结果数据:

buf = voc_dev.readfrom(47, 4, True)

4个字节的数据格式如下:

数据格式.png

针对数据格式的解析我这边用到了ustruct库来解析:

f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值