4-1 MicroPython简介

位置导航: 首页 / 物联网教程 / 第4章 – MicroPython开发物联网 / 本页

MicroPython是澳大利亚程序员和物理学家Damien George在2013年一次成功的众筹活动后最初创建的。MicroPython 和 CPython 在 Python 3 语法上保持高度的一致性,常用的标准语法命令都已经支持。

Damien P. George
Damien P. George

熟悉Python的朋友都知道,Python语言有多种实现。如cPython、Jython、PyPy等。可以说MicroPython正是这Python大家族中的一员。但与其他Python成员不同的是,MicroPython更适用于嵌入式系统,如ESP8266、ESP32等物联网开发板。(在这里顺便为那些不太熟悉Python语言的朋友提一下,CPython是目前最为流行的Python实现,可以说CPython就是标准Python了。)

CPython
CPython

讲到这里可能有的朋友会感到好奇,既然有了Python那为何还要多一个MicroPython呢?

Python与MicroPython所适用的系统在硬件资源和软件环境上差别很大。举例来说,我们在这里重点给您介绍的物联网开发板可供用户使用的的内存只有几Mb。而电脑或手机内存最少也有1Gb。这两者之间的差距可以说是天壤之别。

然而,请不要因为MicroPython所面向的ESP8266等开发板具有较少的资源而轻视它。这只是分工不同而需要的硬件不同而已。ESP8266 所负责的工作换成配置再高的电脑服务器都是不行的。反之把ESP8266 用到手机或个人电脑里也不现实。简而言之就是,选择正确的工具来做工作。

另外,我们很多熟悉嵌入式开发的朋友也知道,通常嵌入式开发里最流行的语言是C,学习Python或MicroPython是不是多此一举呢? 为了解决您的这一问题,我在这里给您列出了一系列Python语言的优势。

– 动态开发
我们在使用C语言开发时,需要将写好的程序编译然后上传开发板。如果修改程序内容,则需要再次编译,再次上传。这么做多多少少有些麻烦(经常使用Arduino IDE的朋友都有体会,那个编译速度的确让人有点着急)。而MicroPython是一种动态语言。我们无需编译就可以直接让开发板运行程序内容。同时,我们在程序执行过程中也可以动态的调整程序参数,十分便于我们调试程序。

程序编译
程序编译

– OTA开发
所谓OTA就是无需用电脑与开发板联线就可以实现设备固件更新。MicroPython配有webrepl开发环境,便于我们使用WiFi对开发板进行固件更新或修改。

ESP8266 OTA 更新
ESP8266 OTA 更新

– 更便捷的文件管理
MicroPython开发时,ESP8266仿佛配有一个小型操作系统。我们可以随意向开发板上传任意文件内容,并使用文件夹系统来对这些文件进行修改。开发板上还可以同时储存多个固件程序,我们可以根据需要自行选择需要的固件运行。

– 丰富的开源库让开发更加便捷
和Arduino一样MicroPython也有非常丰富的开源库供我们使用。无论是控制电机、取传感器信息还是使用HTTP协议或MQTT协议实现物联网操作,MicroPython都配有丰富的库供我们使用。我们不用再去研究底层硬件的控制方法,这将降低开发难度,减少重复开发工作,提高开发效率。换句话说,就是不用重复的发明轮子啦~

重复发明轮子

– Python语言学习
Python语言是一门非常热门的开发语言。尤其是近年随着人工智能、大数据、科学计算、图像处理等领域的蓬勃发展,Python语言也变得越来越火热。可以说掌握Python语言对于我们创客来说,已经成为了一个基本技能。

人生苦短,我用Python。
人生苦短,我用Python。

MicroPython的优点还有很多,在这里就不一一列举了。但是同时也请留意MicroPython也存在一些局限。由于需要实视运行MicroPython开发环境,因此比起C语言来说,MicroPython所占用的开发板系统资源要更多。这也很正常,毕竟MicroPython提供的动态开发环境给我们提供了很多便利,那自然也就需要更多的资源来为MicroPython服务。

讲了这么多,希望您对MicroPython产生了兴趣。那么接下来,就请和我们一起来学习使用MicroPython开发吧。