当前位置: 首页 > 科技观察

使用Python开发鸿蒙设备程序(2-I2C应用实例)

时间:2023-03-14 00:25:16 科技观察

更多内容请访问:Harmonyos技术社区https://harmonyos.51cto.com上一篇文章在中,Python已经成功使用控制GPIO上的外设。这其实也没什么大不了的,从功能上来说也不值得炫耀!但是,这是非常重要的一步:在鸿蒙上使用Python进行物联网编程是可行的!!!既然可行,再加上Python语言的天然优势(容易掌握,开发效率高),所以真的很值得继续打造,把Python在鸿蒙上进行到底。所以?所以,今天的主题是使用GPIO配合I2C来对外设进行编程。主要内容是:通过控制“智慧农业”外围板上的传感器获取当前环境的温度和湿度。这块外设板上的SHT30是温湿度传感器,通过I2C连接到主控板(Hi3861)。因此,SHT30是一个I2C设备,只需通过I2C接口即可轻松控制。什么是I2C?可以查到的一般定义是:I2C(Inter-IntegratedCircuit)是PHILIPS公司开发的用于连接微控制器及其外设的双线串行总线。所以直接把I2C看成总线是可以的,即SHT30和Hi3861直接通过I2C总线相连。另外,I2C也可以看作是一种通信协议,即SHT30和Hi3861通过2条信号线连接在一起,按照预先定义的规则进行信息交换。那么,开发板上有专门的I2C物理线吗?答案是不!开发板已经提供了一堆通用输入输出的GPIO,所以不需要再为I2C提供专门的物理线,只需复用GPIO即可实现I2C通信!因此,下面的代码是可用的!I2C原则上需要2根信号线来完成设备间的通信;其中,SDA为串行数据线,用于传输起始标志。确认标志和数据;SCL是用于同步设备的串行时钟线。因此,在代码层面,需要对2个GPIO进行编程复用,以支持I2C。但是GPIO_0可以提供I2C1_SDA的功能,而GPIO_1可以提供I2C1_SCL的功能,所以在实际初始化I2C1之前需要设置正确的GPIO_0和GPIO_1的功能,否则设备之间无法进行通信。当GPIO初始化完成后,下一步就是初始化I2C1。方法很简单,以I2C1的ID和波特率为参数调用i2c_init(),完全简单。最后,执行设备初始化。这一步只需要向目标设备发送初始化命令,如:发送[0x22,0x36]给SHT30。好的!相信上面的初始化代码大家看懂是没有问题的。那么,我们来推理一下:有I2C1,就没有I2C0吗?答案是:是的!鸿蒙L0设备目前提供2个I2C,通过复用GPIO来使用。初始化正确完成后,接下来就是读取SHT30上的实时数据了!上面的代码很简洁,但是好像不太好理解!没关系,让我们熟悉一下目前Python提供的I2C接口函数。有了这张表,我们就可以很容易地理解上面的代码片段,即:首先向I2C1上的SHT30发送读命令[0xE0,0x00],然后从设备中读取6字节数据。如果函数执行成功,可以获取到设备返回的温湿度数据。完整的交互流程如下图所示:这里对SHT30返回的数据做一点说明。如果读取成功,SHT30会返回6个字节的数据,其中前3个字节代表温度数据,后3个字节代表湿度数据;并且,d[2]和d[5]分别代表温度和湿度,通过这两个字节,可以判断读取的温度和湿度数据是否有效(注:本文的例子,为了方便大家理解,没有做数据校验。)最后是温湿度数据的转换,方法如下:有了这些任务,下面只需要循环调用read()即可完成最终目标:获取当前环境温度和湿度。最终运行结果如下:更新提示:本版本实现同时支持1.0和1.1代码,需要根据代码版本编译dt_python_demo。1)将dt_python_demo复制到application1.0目录下:./applications/sample/wifi-iot/app1.1:./applications/sample/BearPi/BearPi-HM_Nano2)修改app模块1.0的任务列表:./applications/sample/wifi-iot/app/BUILD.gn1.1:./applications/sample/BearPi/BearPi-HM_Nano/BUILD.gn3)libdtpython.a路径1.0:./vendor/hisi/hi3861/hi3861/build/libs1.1:./device/bearpi/bearpi_hm_nano/sdk_liteos/build/libs4)根据代码版本修改BUILD.gn即可享受代码开源地址:https://gitee.com/delphi-tang/python-for-hos文章相关附件可点击下方原文链接前往下载libdtpython.zip206.04Kdt_python_demo.zip6.5KE53系列扩展板介绍文档V1.1.pdf1016.5Ki2c-demo.zip856B更多信息请访问:鸿蒙科技与华为官方共建社区//harmonyos.51cto.com