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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nema23_关于NEMA SM 23的说明

    nema23_关于NEMA SM 23的说明Unfortunately,NEMASM23isambiguousaboutthepointofresolutionofthecombinedforcesandmoments.Theresolutionpointshavebeeninterpretedtobethefollowingtwopoints:NEMASM23没有给出设备整体校核时所有作…

    2022年10月23日
    0
  • springboot启动时是如何加载配置文件application.yml文件

    springboot启动时是如何加载配置文件application.yml文件今天启动springboot时,明明在resources目录下面配置了application.yml的文件,但是却读不出来,无奈看了下源码,总结一下springboot查找配置文件路径的过程,能力有限,欢迎各位大牛指导!!!spring加载配置文件是通过listener监视器实现的,在springboot启动时:在容器启动完成后会广播一个SpringApplicationEvent事件,而Spri…

    2022年9月6日
    3
  • ARP–利用arpspoof和driftnet工具进行arp欺骗

    ARP–利用arpspoof和driftnet工具进行arp欺骗实验目的:1.了解ARP欺骗的原理。2.对ARP欺骗进行进一步的认识并提出防范措施。3.掌握熟悉arpspoof和driftnet的使用方法。任务与要求:1、利用arpspoof进行ARP断网攻击2.利用arpspoof工具和driftnet工具进行ARP欺骗原理:ARP(AddressResolutionProtocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就…

    2022年9月1日
    1
  • iPhone 抓包工具Charles使用[通俗易懂]

    iPhone 抓包工具Charles使用[通俗易懂]Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。Charles主要的功能包括:支持SSL代理。可以截取分析SSL的请求。支持流量控制。可以模拟慢速网络

    2022年5月16日
    543
  • http请求报400报错

    http请求报400报错400是HTTP的状态码,主要有两种形式:1、badrequest意思是“错误的请求”;2、invalidhostname意思是“不存在的域名”。在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请求无效报错说明请求没有进入到后台服务里;1、确认发送的数据格式是否正确。调试查看你发送的数据格式是否正确或是否有乱码…

    2022年6月12日
    92
  • noip2014普及组复赛题解_关于如何提高产能的报告

    noip2014普及组复赛题解_关于如何提高产能的报告NOIP2012提高组复赛解题报告

    2022年8月22日
    3

发表回复

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

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