物联网太难 ? 不妨试试用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 轻应用方案不止包含软件框架,也包含了丰富的硬件开发板和模组,同时依托阿里生态强大的平台能力,最终实现了物联网硬件的积木话开发。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
4月前
|
存储 监控 算法
淘宝买家秀 API开发实录Python(2025)
本文讲述了作者在电商开发领域,尤其是对接淘宝买家秀 API 接口过程中所经历的挑战与收获。从申请接入、签名验证、频率限制到数据处理和实时监控,作者分享了多个实战经验与代码示例,帮助开发者更高效地获取和处理买家秀数据,提升开发效率。
|
7月前
|
API C++ 开发者
PySide vs PyQt:Python GUI开发史诗级对决,谁才是王者?
PySide 和 PyQt 是 Python GUI 开发领域的两大利器,各有特色。PySide 采用 LGPL 协议,更灵活;PyQt 默认 GPL,商业使用需授权。两者背后团队实力雄厚,PySide 得到 Qt 官方支持,PyQt 由 Riverbank Computing 打造。API 设计上,PySide 简洁直观,贴近原生 Qt;PyQt 增加 Pythonic 接口,操作更高效。性能方面,两者表现优异,适合不同需求的项目开发。选择时可根据项目特点与开源要求决定。
712 20
|
3月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
514 7
|
8月前
|
人工智能 物联网 Android开发
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
435 92
|
4月前
|
算法 程序员 API
电商程序猿开发实录:淘宝商品python(2)
本文分享了开发者在对接淘宝商品详情API过程中的真实经历,涵盖权限申请、签名验证、限流控制、数据解析及消息订阅等关键环节,提供了实用的Python代码示例,帮助开发者高效调用API,提升系统稳定性与数据处理能力。
|
5月前
|
数据采集 存储 数据库
Python爬虫开发:Cookie池与定期清除的代码实现
Python爬虫开发:Cookie池与定期清除的代码实现
|
6月前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
797 1
|
8月前
|
程序员 测试技术 开发工具
怎么开发Python第三方库?手把手教你参与开源项目!
大家好,我是程序员晚枫。本文将分享如何开发Python第三方库,并以我维护的开源项目 **popdf** 为例,指导参与开源贡献。Popdf是一个PDF操作库,支持PDF转Word、转图片、合并与加密等功能。文章涵盖从fork项目、本地开发、单元测试到提交PR的全流程,适合想了解开源贡献的开发者。欢迎访问[popdf](https://gitcode.com/python4office/popdf),一起交流学习!
295 21
怎么开发Python第三方库?手把手教你参与开源项目!
|
8月前
|
人工智能 物联网 Android开发
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
259 23
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
|
6月前
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
491 0

相关产品

  • 物联网平台
  • 推荐镜像

    更多