侵权投诉

在鸿蒙上使用Python进行物联网编程

HarmonyOS技术社区 2021-09-28 09:55 次阅读

在上一篇帖子《使用 Python 开发鸿蒙设备程序(1-GPIO 外设控制)》中,已经成功的使用 Python 对 GPIO 上的外设进行了控制。

这其实不是什么大不了的事,从功能的角度也着实不值得炫耀!然而,这却是非常重要的一步:在鸿蒙上用使用 Python 进行物联网编程是可行的!!!

既然可行,加上 Python 语言天生的优势(易于掌握,开发效率高),那么真的值得持续打造,将鸿蒙上的 Python 进行到底。

所以,今天的主题就是利用 GPIO 搭配 I2C 对外设进行编程。主要内容为:通过控制“智慧农业”外设板上的传感器,获取当前环境的温度和湿度。

这块外设板上的 SHT30 是一个温度湿度传感器,它通过 I2C 与主控板(Hi3861)进行连接。

因此,SHT30 是一种 I2C 设备,只需要通过 I2C 接口就能轻易对它进行控制。

什么是 I2C?一般能查到的定义都会是:I2C(Inter-Integrated Circuit)是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。

所以,把 I2C 直接看作总线是 OK 的,即:SHT30 与 Hi3861 直接通过 I2C 总线相连。

除此之外,也可以把 I2C 看作一种通信协议,即:SHT30 与 Hi3861 通过 2 根信号线连接在一起,并遵守预定义的规则,进而能够交换信息。

那么,是不是在开发板上有 I2C 专用的物理线路呢?

答案是:没有!开发板已经提供了一堆用于普适输入输出的 GPIO 了,所以没有必要为 I2C 提供专用的物理线路, 只需要复用 GPIO 即可实现 I2C 通信!

所以,下面的代码就有了:

cfab54a8-1fc0-11ec-82a8-dac502259ad0.jpg

在原理上,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(),可谓完全无难度。

最后,进行设备初始化,这一步也只需要向目标设备发送初始化命令即可,如:向 SHT30 发送 [0x22, 0x36]。

OK!相信上面的初始化代码大家理解起来没有问题了。那么,我们来推理一下: 有 I2C1 那么有没有 I2C0 呢?

答案是:有!鸿蒙 L0 设备目前通过复用 GPIO 的方式提供 2 个 I2C 供使用。

当初始化正确完成,接下来就是读取 SHT30 上的实时数据了!

d01753ba-1fc0-11ec-82a8-dac502259ad0.jpg

上面的代码非常简洁,但似乎不那么好理解!

没关系,我们先来熟悉一下目前 Python 提供的 I2C 接口函数。

d06842a2-1fc0-11ec-82a8-dac502259ad0.jpg

有了这个表格,我们很容易就能理解上面的代码片段了,即:先向 I2C1 上的 SHT30 发送读取命令 [0xE0, 0x00],然后再从设备读取 6 个字节的数据。如果函数执行成功,那么可得到从设备返回到的温湿度数据。

完整交互过程如下图所示:

d0d23a22-1fc0-11ec-82a8-dac502259ad0.jpg

这里对 SHT30 返回的数据做一点说明。如果读取成功,SHT30 会返回 6 个字节的数据,其中前 3 个字节表示温度数据,后 3 个字节表示湿度数据。

并且,d[2] 和 d[5] 分别表示温度和湿度的校验字节,通过这两个字节即可判断读取到的温湿度数据是否有效(注:本文的示例中,为了方便大家理解,没有做数据校验的工作。)

最后就是温湿度数据的转换了,方法如下:

d133ff14-1fc0-11ec-82a8-dac502259ad0.jpg

有了这些的工作,下面就只需要循环调用 read() 即可完成最终目标:获取当前环境温湿度。

d197d5a2-1fc0-11ec-82a8-dac502259ad0.jpg

最后的运行结果如下:

d1f4a976-1fc0-11ec-82a8-dac502259ad0.jpg

更新提示:这个版本的实现同时支持 1.0 和 1.1 的代码,因此,大家需要根据代码版本编译 dt_python_demo。

将 dt_python_demo 拷贝到应用目录:

1.0:。/applications/sample/wifi-iot/app

1.1:。/applications/sample/BearPi/BearPi-HM_Nano

修改 app 模块的任务列表:

1.0:。/applications/sample/wifi-iot/app/BUILD.gn

1.1:。/applications/sample/BearPi/BearPi-HM_Nano/BUILD.gn

libdtpython.a 路径:

1.0:。/vendor/hisi/hi3861/hi3861/build/libs

1.1:。/device/bearpi/bearpi_hm_nano/sdk_liteos/build/libs

根据代码版本修改 BUILD.gn:

d26c3c3e-1fc0-11ec-82a8-dac502259ad0.jpg

Enjoy it!

代码开源地址:

https://gitee.com/delphi-tang/python-for-hos

责任编辑:haq

原文标题:将鸿蒙上的Python进行到底!

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:HarmonyOS技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

2021华为开发者大会华秋电子分享物联网硬件四大痛点

今天的2021华为开发者大会上,华秋电子在OpenHarmony分论坛上展示了物联网硬件的四大痛点。....
的头像 璟琰乀 发表于 10-23 15:30 30次 阅读
2021华为开发者大会华秋电子分享物联网硬件四大痛点

华为开发者大会OpenHarmony生态共建成功案例

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了OpenHarmony生态共建成....
的头像 璟琰乀 发表于 10-23 15:26 40次 阅读
华为开发者大会OpenHarmony生态共建成功案例

华为开发者大会OpenHarmony开发样例共建与开发者成长图谱

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了OpenHarmony开发样例共....
的头像 璟琰乀 发表于 10-23 15:22 46次 阅读
华为开发者大会OpenHarmony开发样例共建与开发者成长图谱

华为开发者大会2021 鸿蒙的发展进展超预期

在近日举办的华为开发者大会2021上,华为轮值董事长徐直军表示,目前鸿蒙的发展进展是超预期的,华为所....
的头像 独爱72H 发表于 10-23 15:20 39次 阅读
华为开发者大会2021 鸿蒙的发展进展超预期

2021华为开发者大会中科院OpenHarmony共建之路

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了中科院OpenHarmony共建....
的头像 璟琰乀 发表于 10-23 15:18 59次 阅读
2021华为开发者大会中科院OpenHarmony共建之路

HarmonyOS面向超级终端UX设计HarmonyOS设计指南

今天的2021华为开发者大会上,HarmonyOS面向超级终端UX设计上展示了HarmonyOS设计....
的头像 璟琰乀 发表于 10-23 15:13 47次 阅读
HarmonyOS面向超级终端UX设计HarmonyOS设计指南

OpenHarmony分论坛-汇顶低功耗蓝牙SOC目标应用

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了汇顶低功耗蓝SOC目标应用。 应....
的头像 璟琰乀 发表于 10-23 15:08 39次 阅读
OpenHarmony分论坛-汇顶低功耗蓝牙SOC目标应用

华为开发者大会OpenHarmony汇顶低功耗蓝牙SOC产品路标

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了汇顶低功耗蓝牙SOC产品路标。 ....
的头像 璟琰乀 发表于 10-23 15:05 39次 阅读
华为开发者大会OpenHarmony汇顶低功耗蓝牙SOC产品路标

华为开发者大会:对OpenHarmony的展望

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了对OpenHarmony的展望。....
的头像 璟琰乀 发表于 10-23 15:00 55次 阅读
华为开发者大会:对OpenHarmony的展望

华为开发者大会2021 鸿蒙构架演进与关键技术

从鸿蒙OS 2.0开始,很多功能特性已经和当初的设想有一些区别。
的头像 独爱72H 发表于 10-23 14:57 39次 阅读
华为开发者大会2021 鸿蒙构架演进与关键技术

华为开发者大会OpenHarmony赋能ASR WIFI+BLE芯片让设备更易用更智能

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了OpenHarmony赋能ASR....
的头像 璟琰乀 发表于 10-23 14:57 42次 阅读
华为开发者大会OpenHarmony赋能ASR WIFI+BLE芯片让设备更易用更智能

华为开发者大会Harmony OS Connect L0通用方案介绍

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了Harmony OS Conne....
的头像 璟琰乀 发表于 10-23 14:47 46次 阅读
华为开发者大会Harmony OS Connect L0通用方案介绍

华为开发者大会OpenHarmony在IOT产品上的推广思考

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了关于OpenHarmony在IO....
的头像 璟琰乀 发表于 10-23 14:42 46次 阅读
华为开发者大会OpenHarmony在IOT产品上的推广思考

2021华为开发者大会:从芯片公司看HarmonyOS

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了HarmonyOS展望。 HDC....
的头像 璟琰乀 发表于 10-23 14:39 48次 阅读
2021华为开发者大会:从芯片公司看HarmonyOS

华为开发者大会2021 大会重点依旧是鸿蒙

大家非常期待的华为开发者大会2021(HDC)终于开幕了,从2019年华为鸿蒙系统的问世,到现在已经....
的头像 独爱72H 发表于 10-23 14:38 55次 阅读
华为开发者大会2021 大会重点依旧是鸿蒙

OpenHarmony分论坛-标准适配总结

OpenHarmony分论坛-标准适配总结 今天的2021华为开发者大会上,OpenHarmony分....
的头像 璟琰乀 发表于 10-23 14:36 46次 阅读
OpenHarmony分论坛-标准适配总结

华为开发者大会OpenHarmony D1适配经验

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了D1适配经验。   HDC分论坛....
的头像 璟琰乀 发表于 10-23 14:32 51次 阅读
华为开发者大会OpenHarmony D1适配经验

华为开发者大会OpenHarmony分论坛T507适配经验

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了T507适配经验。 具体内容有硬....
的头像 璟琰乀 发表于 10-23 14:28 56次 阅读
华为开发者大会OpenHarmony分论坛T507适配经验

华为开发者大会2021 鸿蒙OS将进入3.0

华为开发者大会2021将在东莞篮球中心启幕。本次开发者大会以“未来,有迹可循”为主题,大会为期三天。
的头像 独爱72H 发表于 10-23 14:27 53次 阅读
华为开发者大会2021 鸿蒙OS将进入3.0

华为开发者大会OpenHarmony项目情况

今天的2021华为开发者大会上,OpenHarmony分论坛上展示了项目情况。 OpenHarmon....
的头像 璟琰乀 发表于 10-23 14:24 54次 阅读
华为开发者大会OpenHarmony项目情况

华为开发者大会HarmonyOS面向超级终端UX设计特性

今天的2021华为开发者大会上,HarmonyOS面向超级终端UX设计上展示了面向超级终端UX设计特....
的头像 璟琰乀 发表于 10-23 14:17 57次 阅读
华为开发者大会HarmonyOS面向超级终端UX设计特性

华为开发者大会HarmonyOS面向超级终端UX设计-设计系统

HarmonyOS面向超级终端UX设计-设计系统 HarmonyOS为系统设计》技术原则》设计哲学。....
的头像 璟琰乀 发表于 10-23 14:13 72次 阅读
华为开发者大会HarmonyOS面向超级终端UX设计-设计系统

openharmony3.0重点特性简介HDF架构与开源情况

openharmony3.0重点特性简介HDF架构与开源情况 今天的2021华为开发者大会上,Ope....
的头像 璟琰乀 发表于 10-23 13:55 63次 阅读
openharmony3.0重点特性简介HDF架构与开源情况

openharmony3.0重点特性简介ARK3.0编译及运行

openharmony3.0重点特性简介ARK3.0编译及运行 今天的2021华为开发者大会上,Op....
的头像 璟琰乀 发表于 10-23 13:53 71次 阅读
openharmony3.0重点特性简介ARK3.0编译及运行

openharmony3.0重点特性简介ARK3.0

openharmony3.0重点特性简介ARK3.0 今天的2021华为开发者大会上,OpenHar....
的头像 璟琰乀 发表于 10-23 13:52 85次 阅读
openharmony3.0重点特性简介ARK3.0

openharmony3.0重点特性简介JS应用开发能力

openharmony3.0重点特性简介JS应用开发能力 今天的2021华为开发者大会上,OpenH....
的头像 璟琰乀 发表于 10-23 13:50 68次 阅读
openharmony3.0重点特性简介JS应用开发能力

OpenHarmony分论坛-为用户提供真正便捷场景

OpenHarmony分论坛-为用户提供真正便捷场景 今天的2021华为开发者大会上,OpenHar....
的头像 璟琰乀 发表于 10-23 13:49 69次 阅读
OpenHarmony分论坛-为用户提供真正便捷场景

openharmony3.0重点特性简介图形能力增强

openharmony3.0重点特性简介图形能力增强 今天的2021华为开发者大会上,OpenHar....
的头像 璟琰乀 发表于 10-23 13:47 87次 阅读
openharmony3.0重点特性简介图形能力增强

OpenHarmony分论坛-基于pk3566方案板

OpenHarmony分论坛-基于pk3566方案板 今天的2021华为开发者大会上,OpenHar....
的头像 璟琰乀 发表于 10-23 13:45 71次 阅读
OpenHarmony分论坛-基于pk3566方案板

OpenHarmony分论坛-场景举例

OpenHarmony分论坛-场景举例 今天的2021华为开发者大会上,OpenHarmony分论坛....
的头像 璟琰乀 发表于 10-23 13:38 59次 阅读
OpenHarmony分论坛-场景举例

OpenHarmony分论坛-养殖和种植业的应用demo

OpenHarmony分论坛-养殖和种植业的应用demo 今天的2021华为开发者大会上,OpenH....
的头像 璟琰乀 发表于 10-23 13:32 73次 阅读
OpenHarmony分论坛-养殖和种植业的应用demo

华为开发者大会openharmony3.0的HDF架构与开源情况

openharmony3.0重点特性简介HDF架构与开源情况 在2021华为开发者大会上,OpenH....
的头像 璟琰乀 发表于 10-23 13:24 80次 阅读
华为开发者大会openharmony3.0的HDF架构与开源情况

华为开发者大会openharmony3.0特性ARK3.0编译及运行

openharmony3.0重点特性简介ARK3.0编译及运行 在2021华为开发者大会上,Open....
的头像 璟琰乀 发表于 10-23 13:16 59次 阅读
华为开发者大会openharmony3.0特性ARK3.0编译及运行

华为开发者大会openharmony3.0特性ARK3.0

openharmony3.0重点特性简介ARK3.0 在2021华为开发者大会上,OpenHarmo....
的头像 璟琰乀 发表于 10-23 13:14 64次 阅读
华为开发者大会openharmony3.0特性ARK3.0

2021华为开发者大会openharmony3.0JS应用开发能力

openharmony3.0重点特性简介JS应用开发能力 在2021华为开发者大会上,OpenHar....
的头像 璟琰乀 发表于 10-23 13:07 78次 阅读
2021华为开发者大会openharmony3.0JS应用开发能力

2021华为开发者大会为用户提供真正便捷场景

OpenHarmony分论坛-为用户提供真正便捷场景 在2021华为开发者大会上,OpenHarmo....
的头像 璟琰乀 发表于 10-23 13:03 79次 阅读
2021华为开发者大会为用户提供真正便捷场景

2021华为开发者大会上数字中国的纵横系统

OpenHarmony分论坛-数字中国的纵横系统 在2021华为开发者大会上,OpenHarmony....
的头像 璟琰乀 发表于 10-23 12:59 78次 阅读
2021华为开发者大会上数字中国的纵横系统

2021华为开发者大会:基于pk3566方案板

OpenHarmony分论坛-基于pk3566方案板 在2021华为开发者大会上,OpenHarmo....
的头像 璟琰乀 发表于 10-23 12:55 73次 阅读
2021华为开发者大会:基于pk3566方案板

2021华为开发者大会:图库应用数据加载显示模型

OpenHarmony分论坛-图库应用数据加载显示模型 2021华为开发者大会OpenHarmony....
的头像 璟琰乀 发表于 10-23 12:47 70次 阅读
2021华为开发者大会:图库应用数据加载显示模型

2021华为开发者大会场景举例新体验

OpenHarmony分论坛-场景举例 2021华为开发者大会上,OpenHarmony分论坛介绍了....
的头像 璟琰乀 发表于 10-23 12:42 73次 阅读
2021华为开发者大会场景举例新体验

2021华为开发者大会养殖和种植业的应用demo介绍

在2021华为开发者大会上,OpenHarmony分论坛介绍了养殖和种植业的应用demo。   图片....
的头像 璟琰乀 发表于 10-23 12:33 111次 阅读
2021华为开发者大会养殖和种植业的应用demo介绍

华为开发者大会2021 鸿蒙系统的应用优势

华为开发者大会2021直播上,对于鸿蒙系统应用的优势我们有了更好的了解。
的头像 独爱72H 发表于 10-23 11:58 86次 阅读
华为开发者大会2021 鸿蒙系统的应用优势

华为开发者大会心得 华为开发者大会2021鸿蒙平台亮眼

华为开发者大会心得 华为开发者大会2021鸿蒙平台亮眼 华为开发者大会2021鸿蒙平台亮眼!正在直播....
的头像 inr999 发表于 10-23 11:46 159次 阅读
华为开发者大会心得 华为开发者大会2021鸿蒙平台亮眼

华为开发者大会2021直播:鸿蒙系统应用与服务开发

HarmonyOS 3 开发者 Beta 版预计将于 2022 年第一季度发布。
的头像 独爱72H 发表于 10-23 11:44 98次 阅读
华为开发者大会2021直播:鸿蒙系统应用与服务开发

华为开发者大会2021 鸿蒙系统依旧是重点

2019 年,HarmonyOS 1.0 面世,革命性地提出了分布式技术,并验证了其可行性。
的头像 独爱72H 发表于 10-23 11:16 87次 阅读
华为开发者大会2021 鸿蒙系统依旧是重点

华为开发者大会2021,HarmonyOS最新版本亮相

华为开发者大会2021于10月22日正式开幕了,华为发布了最新的 HarmonyOS 3 开发者预览....
的头像 独爱72H 发表于 10-23 10:31 104次 阅读
华为开发者大会2021,HarmonyOS最新版本亮相

华为开发者大会2021 多种应用全新发布

华为开发者大会2021已经在东莞松山湖正式开幕了。
的头像 独爱72H 发表于 10-23 10:22 95次 阅读
华为开发者大会2021 多种应用全新发布

华为开发者大会2021 鸿蒙生态快速发展

华为开发者大会2021直播已经正式开始了,基于HarmonyOS的全新生态已初步成型。
的头像 独爱72H 发表于 10-23 10:17 87次 阅读
华为开发者大会2021 鸿蒙生态快速发展

华为开发者大会2021 鸿蒙应用与开发

华为开发者大会2021(Together)已于22日在东莞松山湖正式开幕。
的头像 独爱72H 发表于 10-23 10:07 80次 阅读
华为开发者大会2021 鸿蒙应用与开发

华为开发者大会2021 HDC分论坛-升级支持带屏设备

2021年10月22日~24日,华为将在中国松山湖举行2021华为开发者大会,聚焦鸿蒙系统、智能家居....
的头像 汽车玩家 发表于 10-23 09:52 122次 阅读
华为开发者大会2021 HDC分论坛-升级支持带屏设备

HDC.Together 华为开发者大会 2021 直播中奖公示

未来,有迹可循!2021年,我们结伴而行,乘风破浪。10月22日起,相约华为开发者大会 2021(Together)。聚焦 HarmonyOS、智能...
发表于 10-22 15:06 461次 阅读
HDC.Together 华为开发者大会 2021 直播中奖公示

关于云计算的知识都总结在这里了

云计算是什么?云计算的优势有哪些?云计算与物联网有何关系?...
发表于 10-22 09:28 0次 阅读

【视频】物联网通信技术总结

大家下午好!   今天来为大家进行物联网通信技术总结,视频为一个系列,请持续关注,会持续进行更新!有问题留言交...
发表于 10-20 14:42 157次 阅读

鸿蒙操作系统总用到的“微内核”到底是什么?一篇文章带你搞懂

昨天公众号后台收到一位小友的惊喜问题: “为何鸿蒙内核源码分析系列开篇就说 LOS_DL_LIST ?” 平常很少收到技...
发表于 10-20 10:40 128次 阅读

实现IoT产品的10条经验分享

实现IoT产品的10条经验分享
发表于 10-20 07:19 0次 阅读

浅析Python数据结构与算法

Python数据结构是由哪些部分组成的?
发表于 10-20 06:43 0次 阅读

如何去实现一种基于物联网感知的家居人体健康状况检测系统设计

为什么要设计一种基于物联网感知的家居人体健康状况检测系统? 如何去实现一种基于物联网感知的家居人体健康状况检测系统设计?...
发表于 10-20 06:23 0次 阅读

python是如何实现hbase增删改查的

hbase shell是怎样去创建命名空间的? python是如何实现hbase增删改查的?求解 ...
发表于 10-19 07:26 0次 阅读

HDF驱动加载问题

源码版本:3.0LTS下 开发板:HI3516 编译系统:小型系统 描述: 按照驱动开发的指导编写驱动,可以正常编译进去,但是没...
发表于 10-18 17:25 202次 阅读

鸿蒙系统到底有多少“差评”?虽然很难听,但是很真实

HarmonyOS 2.0HarmonyOS 2.0是华为技术有限公司于20年9月在华为开发者大会上发布的操作系统,适用于部分手机、车机、智能电...
发表于 10-14 16:10 297次 阅读