python做物联网(物联网技术应用)

开篇Python作为一门快速发展的解释性编程语言,数以百万计的开发者已经将Python应用在人工智能、游戏开发、数据挖掘、信息安全、系统运维等行业并取得了成功。现如今,一大批国内外头部IoT解决方商正在尝试将Python引入物联网/智能硬件开发行业,部分支持python语言的物联网开发板和模组也陆续面试。例如阿里云智能推出的HaaS开发板,树莓派推出的RaspberryPiPico开发板等。那么,物联网设备会是Python的下一…

大家好,又见面了,我是你们的朋友全栈君。

python做物联网(物联网技术应用)

不看这几篇好文,就别说自己了解物联网

开篇

 

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

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

例如阿里云智能推出的HaaS开发板,树莓派推出的Raspberry Pi Pico开发板等。

 

python做物联网(物联网技术应用)      python做物联网(物联网技术应用)    python做物联网(物联网技术应用)python做物联网(物联网技术应用)   

 

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

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

 

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

 

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

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

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

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

 

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

 

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

  1. 不支持应用热部署,应用开发和系统开发不能解耦,因为物联网硬件资源相对受限,一般采用RTOS及RTOS衍生操作系统,不支持动态链接机制,涉及到C代码的改动,必然涉及到全系统编译及刷机等繁琐操作,不止调试效率底下,也提升了开发门槛。
  2. 开发门槛高,缺少更高层的封装。物联网场景常用的云链接、硬件端口控制、AI、多媒体播放等功能都需要从头开发,重复开发不止造成了人力浪费还提升了研发门槛。
  3. 缺少可以快速部署的开源案例,因为需求碎片化,代码不开源,硬件差异大等客观因素,很难在互联网上快速找到目标硬件目标场景下的参考案例。这进一步提升了研发门槛。

物联网行业需要一种简单高效的解释性语言,来提升编程效率,开源且易于扩展的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官方适配好的硬件平台。

python做物联网(物联网技术应用)    python做物联网(物联网技术应用)

 

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轻应用的架构图。

 

python做物联网(物联网技术应用)

从图中可以看出,HaaS Python 轻应用方案不止包含软件框架,也包含了丰富的硬件开发板和模组,同时依托阿里生态强大的平台能力,最终实现了物联网硬件的积木话开发。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128649.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月12日 下午4:00
下一篇 2022年4月12日 下午4:00


相关推荐

  • 一文读懂 Spring Bean 的生命周期「建议收藏」

    一文读懂 Spring Bean 的生命周期「建议收藏」欢迎大家关注我的微信公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。一、前言今天我们来说一说SpringBean的生命周期,小伙伴们应该在面试中经常遇到,这是正常现象。因为SpringBean的生命周期是除了IoC、AOP几个核心概念之外最重要概念,大家务必拿下。可Spring源代码又比较复杂,跟着跟着就不知道跟到哪里去了,不太好拿下呀。这倒是真的,而且网上一上来就各种贴流程源码,对初学者来说是真的一脸懵逼,就像字.

    2026年1月26日
    5
  • php批量打印快递单,ecshop批量打印快递单的方法

    php批量打印快递单,ecshop批量打印快递单的方法ecshop 批量打印快递单的方法文章作者 网友投稿 发布时间 2009 10 0617 56 12 来源 网络在 ecshop 后台系统中 在订单的详细页面 可以打印快递单 是一些和 ecshop 订单相关的资料 在配送方式列表中 你可以设置他的打印模板 首先 修改 order list htm 加上一按扭 inputname print shoppingtype submitid btnSubm

    2026年3月17日
    2
  • js元素的增删改查_增删改查怎么实现

    js元素的增删改查_增删改查怎么实现ABP我就不多介绍了,不知道的可以自己百度本篇开发工具VS2017,数据库SQLSERVER2012,系统Win71、去ABP官网下载对应的模板,下载地址:https://aspnetboilerplate.com/Templates2、用VS2017打开解压后的项目,找到src下web项目下appsettings.json文件。打开后修改数据库连接字符串图我就不截了,涉及个…

    2026年1月26日
    6
  • postman 中post方式提交数据

    postman 中post方式提交数据

    2021年9月18日
    32
  • ansi unicode_ansi unicode utf-8

    ansi unicode_ansi unicode utf-8利用今天一天的时间,研究了一下ANSI编码和Unicode编码的不同,下面把我的研究成果写下来,以备日后参考。       ANSI编码最常见的应用就是在Windows当中的记事本程序中,当新建一个记事本,默认的保存编码格式就是ANSI,ANSI应该算是一种压缩编码了,当遇到标准的ASCII字符时,采用单字节表示,当遇到非标准的ASCII字符(如中文)时,采用双字节表示。

    2025年11月22日
    5
  • nessus的使用教程扫描_kali安装nessus

    nessus的使用教程扫描_kali安装nessus1.打开浏览器,输入https://localhost:8834/登录Nessus.2.输入你设置的账号密码.3.进入首页,可以使用浏览器自带的网页翻译(如谷歌)。4.点击侧边栏policies(政策),显示策略界面。5.点击newpolicy(创建新策略),显示策略模板。6.选择advancedscan(高级扫描),填写策略名称。7.单击Plugins标签,该界面显示了所有插件程序,默认全部是启动的enabled。在该界面可以单击右上角Disable..

    2022年10月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号