物联网太难 ? 不妨试试用Python来开发-阿里云开发者社区

开发者社区> 开发者小助手> 正文

物联网太难 ? 不妨试试用Python来开发

简介: Python作为一门快速发展的解释性编程语言,数以百万计的开发者已经将Python应用在人工智能、游戏开发、数据挖掘、信息安全、系统运维等行业并取得了成功。
+关注继续查看

开篇

Python作为一门快速发展的解释性编程语言,数以百万计的开发者已经将Python应用在人工智能、游戏开发、数据挖掘、信息安全、系统运维等行业并取得了成功。

现如今,一大批国内外头部IoT解决方商正在尝试将Python引入物联网/智能硬件开发行业,部分支持python语言的物联网开发板和模组也陆续面试。

例如阿里云智能推出的HaaS开发板,树莓派推出的Raspberry Pi Pico开发板等。
image.png
那么,物联网设备会是Python的下一个爆点吗?

本文首先总结python发展历史,然后介绍Micropython在物联网行业的应用现状,最后将结合阿里云智能的python轻应用详细介绍国内大厂是如何基于Micropython重新定义物联网开发的。

Python为什么会在PC端取得成功?

电脑硬件配置非常受限的时候,计算机世界最流行的是Pascal、C、 Fortran等编程语言,这些语言的基本设计原则是让机器能更快运行。为了写出更高运行效率的程序,迫使程序员像计算机一样思考,带来的问题是编程效率非常低。

随着计算及硬件配置的逐渐提高,语言本身的性能不再是主要瓶颈,如何提升编程效率显得更为重要。这时候,诞生了C++这种面向对象的编程语言。C++以牺牲了少许性能为代价,大大提高了编程效率。随后几年,又诞生了Python。

相对C++这种编译性语言,在大多数场景下,依靠解释执行的Python运行效率不足C++的十分之一。 但是,Python语言还是取得了非常快速的发展,如今的python已经被使用在各行各业,据TIBOX最新排名,Python语言位列第二。那python语言为什么会取得成功呢?个人观点如下:

更简单的编程范式,有效降低了编程门槛,大幅提升了编程效率。
强调可拓展性,python程序员可以快速使用Python写.py文件扩展模块,也可以深入底层,扩展c/c++程序库。c/c++程序库不止可以弥补python语言本身的性能问题,也将海量c/c++生态库引如了Python。
代码开源,充分利用开源社区的力量,来自各行各业的开发者,将不同领域的优点带给了Python,比如Python标准库中的正则表达(regular expression)是参考Perl,而lambda, map, filter, reduce函数参考Lisp。
因为功能强大且易上手,Python抓住了人工智能的风口。

物联网设备会是Python的下一个爆点吗?

对照最早期台式电脑的发展历史,20年前流行的51单片机现在已经被Arm大范围取代。编程语言本身的性能已不是物联网设备端开发的主要瓶颈。面对越来越多的物联网设备智能化需求,需求碎片化问题变成了行业最大挑战,如何以高ROI满足物联网设备的碎片化需求?降低编程门槛、提升编程效率是关键。目前普及度最高的基于C语言开发物联网设备的不足逐渐凸显。具体表现如下:

不支持应用热部署,应用开发和系统开发不能解耦,因为物联网硬件资源相对受限,一般采用RTOS及RTOS衍生操作系统,不支持动态链接机制,涉及到C代码的改动,必然涉及到全系统编译及刷机等繁琐操作,不止调试效率底下,也提升了开发门槛。
开发门槛高,缺少更高层的封装。物联网场景常用的云链接、硬件端口控制、AI、多媒体播放等功能都需要从头开发,重复开发不止造成了人力浪费还提升了研发门槛。
缺少可以快速部署的开源案例,因为需求碎片化,代码不开源,硬件差异大等客观因素,很难在互联网上快速找到目标硬件目标场景下的参考案例。这进一步提升了研发门槛。
物联网行业需要一种简单高效的解释性语言,来提升编程效率,开源且易于扩展的python无疑是最好的选择之一。但是,传统的cpython引擎内存和flash开销都偏大,很难应用在目前最主流的物联网设备上。因此,Micropython应运而生,Micropython是python在物联网低配硬件上的定制版本,代码开源,兼容python语法,继承了python简单高效、易与拓展的特性,相对于传统的cpython解释器2M RAM开销和4M以上的Flash开销,Micropython只需要150K RAM和10K的flash,可以运行在目前最主流的物联网设备上。

Micropython自从诞生,就得到了物联网芯片大厂的追捧,TI、ESP32、STM32等物联网行业最主流的芯片方案均已经原生支持micropython,形成了一套公认的标准编程接口和硬件适配层,编程接口中包含了文件操作、socket、thread、硬件端口控制等物联网开发常用接口,可以支持基于python语言实现基础的云链接和硬件端口控制需要。下图是Micropython的源码结构,其中Ports部分是micropython官方适配好的硬件平台。
image.png
Micropython将python这种简单高效的开发语言引入到了物联网开发中,依托python语言的特新降低了物联网设备开发门槛,但是,仅仅解决了应用热部署等基础问题,距离真正的易上手还有较大差距。具体表现为:缺少更高级的组件,缺少简单易用的IDE环境,缺少垂直化的应用案例。因此,国内物联网相关公司基于Micropython做了自己的扩展并推出python轻应用方案,例如,国内物联网芯片头部厂商乐鑫、国内4G Cat.1模组厂商模组、以及国内物联网解决方案商代表阿里云智能IoT等。这些python轻应用方案中以阿里云智能IoT部门推出的方案功能最为全面且开源开放。

接下来,将结合阿里云智能Python轻应用方案介绍国内大厂是如何做Python轻应用的。

阿里云智能Python轻应用方案介绍

HaaS Python轻应用是阿里云智能IoT团队最新的一套低代码编程框架,兼容Micropython编程规范,依托HaaS 开发板加软硬件积木提供AI、支付、蓝牙配网、云链接等物联网场景常用的能力,基于VS Code插件实现一套跨平台的IDE环境,真正解决了物联网平台的易上手问题。物联网编程不再局限于程序员、一般的技术员也可以基于HaaS Python轻应用实现复杂的物联网需求。

开发者可以基于云端阿里仓库快速创建工程并一键推送设备端验证效果、也可以将自己开发的案例贡献到云端案例仓库以繁荣生态,贡献突出的开发者也可以获得HaaS社区颁发的荣誉证书和奖励。下图是HaaS Python轻应用的架构图。
image.png
从图中可以看出,HaaS Python 轻应用方案不止包含软件框架,也包含了丰富的硬件开发板和模组,同时依托阿里生态强大的平台能力,最终实现了物联网硬件的积木话开发。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
谷歌Android things物联网硬件接入阿里云IoT物联网套件实战
谷歌Android things物联网硬件接入阿里云IoT物联网套件云端实战,DHT12传感器,甲醛传感器,NXP i.MX7D开发板
2878 0
阿里云物联网平台体验(树莓派+Python篇)
阿里云物联网平台体验(树莓派+Python篇) 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作。
11145 0
AliOS Things技术底层加持平头哥YoC物联网操作系统 获国际TUeV功能安全认证
近日,以阿里云物联网操作系统AliOS Things技术底层加持、平头哥半导体有限公司自主研发的YoC软件平台斩获了国际公认第三方认证机构SGS-TUeV SAAR颁发的SIL3功能安全证书。这标志着平头哥YoC软件平台,具备了与国际规范接轨的能力,也进一步体现了阿里云自产自研的AliOS Things系统底层的技术含量与端侧实力。
853 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4478 0
物联网平台规则流转流转到实习时空数据库tsdb问题汇总
物联网平台规则流转总是会报一些错误,不好排查,这里汇总一下
725 0
AliOS Things技术底层加持cYoC物联网操作系统 获国际TUeV功能安全认证
近日,以阿里云物联网操作系统AliOS Things技术底层加持、平头哥半导体有限公司自主研发的YoC软件平台斩获了国际公认第三方认证机构SGS-TUeV SAAR颁发的SIL3功能安全证书。这标志着平头哥YoC软件平台,具备了与国际规范接轨的能力,也进一步体现了阿里云自产自研的AliOS Things系统底层的技术含量与端侧实力。
925 0
爆肝一周,用Python在物联网设备上写了个智能语音助手-创建阿里云账号-《神奇的物联网》
本章节将介绍如何创建阿里云账号并获取Access Key和Secret,并对账号进行智能语音交互及智能对话机器人权限配置。
79 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
3227 0
1329
文章
282
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载