ESP32CAM物联网教学10
MicroPython 应用体验
小智偶然地发现,有一种新兴的编程模式MicroPython,也能编写ESP32Cam的应用程序了,于是欣然地体验了一把。
- 编程环境搭建
小智偶然地从下面这家店铺买了一块ESP32Cam,并从客服那里得到了一批的编程资料,下载到电脑中,得到了如下的一些文件。
MicoPython也叫微Python,是一个非常精简的、微小的Python运行环境(只有1M多,烧录到ESP32Cam开发板中),我们可以在电脑中项操作Python那样去操作开发板了,非常的便捷有效!
避坑记录:
经过测试,结果发现之前买的ESP32Cam烧录底座,可以烧录micropython的固件,但是在使用过程中,Thonny无法连接ESP32Cam,所以还需要另外购买一个CH340烧录器。
在使用CH340烧录的过程中,发现网上提供的连接方法也有问题,正确的应该是使用5V的接口进行烧录,用3.3V的接口好像无法烧录的。
- 烧写固件
首先在电脑中安装Thonny(商家提供的下载文件里面都有)。安装完成后打开程序。
选择运行——配置解释器,选择“MicroPython(ESP32)”,然后选择ESP32Cam的端口号(把ESP32Cam如前面的图中连接好,并把CH340插入电脑,如果你的电脑成功安装了CH340驱动程序,就能看到这个端口号了。当然也可以在我的电脑——属性——设备管理器中查看到这个CH340的设备端口号)。
然后点击图中的“Install or update MicroPyhon”,把MicroPython 的固件镜像文件烧写到ESP32Cam开发板中。
在打开的对话框中,选择设备的端口号、以及镜像文件(商家提供的MicroPython开头的bin文件),选择“安装”进行烧写。等待进行到100%,烧写完成,就可以关闭对话框了。
- 第一个程序
拔下Ch340及ESP32Cam。把ESP32Cam上面的GPIO 0与GND之间的接地的连接线撤掉。重新插入到电脑中。这时候我们点击一下窗口右下角的设备,程序会刷新一下与设备的连接情况。刷新后如果在调试窗口中出现如图的信息,则表示这个ESP32Cam开发板中的MicroPython已经启动成功,并且与电脑连接成功了。(前面有说了,由于ESP32Cam的烧录底座设计出现了问题,完成第二步的烧写固件没有问题,可以正常烧录。但是,在这里的时候,就无法出现调试窗口的信息,而是一堆错误的信息,说明用烧录底座是无法正确连接和启动MicroPython的,必须还要自己再买一个CH340的烧录器)
我们选择“打开”电脑中的文件,选择商家提供的拍照测试程序文件cameratest.py。
点击窗口顶端的运行按钮,可以在下面的调试窗口中看到ESP32Cam中的这个程序被运行了。点击左侧文件管理中MicroPython设备的三横按钮,点“刷新”,可以看到在这个MicroPython设备的下面,多了一个“第一张图片.png”。这个就是ESP32Cam调用了摄像头,屏拍下一张图片,保存到了ESP32Cam开发板内部的存储中了。
右击这个文件,选择下载到电脑文件夹中。
这时候,我们把左侧文件管理的上面的框拉长一些,就能看到这个从ESP32Cam开发板中下载到的“第一张图.png”(当然你也可以在我的电脑相应的文件夹里面找到这个图片文件),右击文件选择“用外部默认程序打开”,就可以看到这张图了。
这个程序还只是商家提供的测试程序。当你拍完第一张照片的时候,再次点击窗口顶端的运行按钮想继续拍照时,在调试窗口会出现这样的错误。这时候,你只要右击左侧窗口MicroPython设备里面的“第一张图片.png”,然后关闭Thonny,拔出设备。等个五六秒,然后重新打开Thonny程序,插入设备,刷新设备连接,重新打开这个测试文件,点击运行,又能拍下新的一张图了。
四. 优缺点分析
MicroPython是一种针对开发板推出的新的编程模式,他把一个非常简单的Python的运行环境安装到ESP32Cam开发板中,为我们提供了和电脑通讯的机制。这样我们可以在电脑中,像编写Python程序一样,操控着开发板。当然也可以把编写完成的程序写入开发板中,这样开发板离开了电脑,只要接通电源,就能独立运行芯片中存入的程序(和Python一样,芯片接通电源后,会首先运行名为“main.py”的程序,并从这个程序文件中的“main(){}”主程序开始一条一条地执行指令。所以我们写入到开发板的程序,要注意命名为“main.py”)。
由于MicroPython出现的时间不长,而且有依赖于镜像文件,里面的一些可用的功能函数还不熟悉,在网上能找到的应用示例还比较少,所以学习起来难度比较大。
当然,Python的最大特点是他的包容并蓄,可以非常便捷地融合各种语言的功能。在人工智能技术日益普及的今天,MicroPython应用与开发板的开发,是必然的趋势。
我们有信心能看到,在不久的明天,各种各样的MicroPython的编程技术应用实例,一定会百花齐放,百家争鸣!本文写得很肤浅,仅以此抛砖引玉。