ESP32 MicroPython教程:用uPyCraft执行脚本
off999 2024-10-21 06:59 34 浏览 0 评论
本文是关于esp32 micropython(http://mc.dfrobot.com.cn/thread-271930-1-1.html)的系列教程之一。本文在esp32和esp8266开发板上进行测试,目的是解释如何使用 unpycaft IDE 执行 micropython 脚本。
如果您还没有设置和测试 upycaft, 请查这篇帖子: http://mc.dfrobot.com.cn/thread-273326-1-1.html。
尽管我们可以访问 micropython 提示发送命令, 但如果我们可以在文件中编写 micropython 代码, 然后执行它, 编写应用程序就方便得多。这就是我们要在这个简单的例子中所做的。
本esp32 教程的测试是使用 dfrobot 采用ESP-WROOM-32 模组制作的一款FireBeetle esp32微控制器上进行的。
测试程序
为执行MicroPython脚本,我们需要创建一个新文件并在其中编写脚本代码。要创建新文件,只需在uPyCraft IDE上单击图1中突出显示的按钮。
图1 – 创建新的MicroPython脚本文件。
单击该按钮后,将出现一个新的文件标签,如图2所示。在该标签下,我们可以编写稍后要在ESP32运行的MicroPython脚本。
图2 – uPyCraft脚本编辑器。
我们要编写的脚本是一条非常简单的“hello world(你好,世界)”消息,如下所示。你可以通过复制和传递在你的环境中试着打印该消息。
1 print ("Hello world from script")
然后,保存该文件,以便之后将其上传到ESP32开发板ESP32模块 ESP-WROOM-32 WiFi & 蓝牙双模模组_WiFi_无线通信_物联网通信_DFRobot创客商城-创客教育和机器人的造物梦工厂。为此,只需单击图3中突出显示的图标,然后在弹出窗口中输入文件名。最后,单击“ok(确定)”按钮。
图3 – 保存MicroPython脚本文件。
现在,开始上传文件,只需单击图4中突出显示的图标即可。软件会连接到MicroPython提示信息。如果你尚未完成开发板的初始配置和MicroPython固件的烧录,请参阅这篇之前的文章:[ESP32 MicroPython教程:uPyCraft IDE入门](http://mc.dfrobot.com.cn/thread-273326-1-1.html)。
图4 – 连接到MicroPython提示信息。
最后,只需单击图5所示的上传按钮,脚本就会上传到[esp32](https://www.dfrobot.com/product-1559.html)上,并开始运行,而IDE窗口底部的提示信息将显示输出结果。
图5 – 成功上传和执行MicroPython脚本文件。
请注意,带有脚本的文件将上传到ESP32并存入文件系统。要确认这一点,只需转到提示信息并发送以下命令:
1 import os 2 os.listdir()
如图6所示,我们上传的testScript.py文件已存入文件系统,即使与开发板断开连接,系统中也将存有该文件。
图6 – ESP32文件系统保存的脚本文件。
我们可以通过以下命令导入文件内容,从而通过提示信息重新运行该文件:
1 import testScript
上传文件后,我们应该会得到与之前相同的打印结果,如图7所示。
图7 – 重新运行已上传到ESP32的脚本文件。
如果你不想在文件系统中保存上传的文件,那么只需像前面那样发送以下命令即可删除该文件(此处假设之前导入了os模块):
1 os.remove('testScript.py')
图8展示了如何删除之前上传的文件。请注意,在该示例中,我断开了与开发板的连接并进行重连,只是为了确认文件仍然保存在文件系统中。
图8 – 删除之前上传的脚本文件。
下一篇:[ESP32 MicroPython教程:uPyCraft IDE入门](https://mp.csdn.net/postedit/87931931)
注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。你可以在此处查看原文章。
查看更多ESP32/ESP8266教程和项目:
中文版教程 : [ESP32教程](http://mc.dfrobot.com.cn/thread-271930-1-1.html)合集
英文版教程 : [ESP32 tutorial](https://www.dfrobot.com/blog-964.html)合集
相关推荐
- Linux 网络协议栈_linux网络协议栈
-
前言;更多学习资料(包含视频、技术学习路线图谱、文档等)后台私信《资料》免费领取技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,Z...
- 揭秘 BPF map 前生今世_bpfdm
-
1.前言众所周知,map可用于内核BPF程序和用户应用程序之间实现双向的数据交换,为BPF技术中的重要基础数据结构。在BPF程序中可以通过声明structbpf_map_def...
- 教你简单 提取fmpeg 视频,音频,字幕 方法
-
ffmpeg提取视频,音频,字幕方法(HowtoExtractVideo,Audio,SubtitlefromOriginalVideo?)1.提取视频(ExtractVi...
- Linux内核原理到代码详解《内核视频教程》
-
Linux内核原理-进程入门进程进程不仅仅是一段可执行程序的代码,通常进程还包括其他资源,比如打开的文件,挂起的信号,内核内部的数据结构,处理器状态,内存地址空间,或多个执行线程,存放全局变量的数据段...
- Linux C Socket UDP编程详解及实例分享
-
1、UDP网络编程主要流程UDP协议的程序设计框架,客户端和服务器之间的差别在于服务器必须使用bind()函数来绑定侦听的本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址的某个端口地址。...
- libevent源码分析之bufferevent使用详解
-
libevent的bufferevent在event的基础上自己维护了一个buffer,这样的话,就不需要再自己管理一个buffer了。先看看structbufferevent这个结构体struct...
- 一次解决Linux内核内存泄漏实战全过程
-
什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费.发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中...
- 彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏
-
作为C/C++开发人员,内存泄漏是最容易遇到的问题之一,这是由C/C++语言的特性引起的。C/C++语言与其他语言不同,需要开发者去申请和释放内存,即需要开发者去管理内存,如果内存使用不当,就容易造成...
- linux网络编程常见API详解_linux网络编程视频教程
-
Linux网络编程API函数初步剖析今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。1、socket(family...
- Linux下C++访问web—使用libcurl库调用http接口发送解析json数据
-
一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...
- 平衡感知调节:“系统如人” 视角下的架构设计与业务稳定之道
-
在今天这个到处都是数字化的时代,系统可不是一堆冷冰冰的代码。它就像一个活生生的“数字人”,没了它,业务根本转不起来。总说“技术要为业务服务”,但实际操作起来问题不少:系统怎么才能快速响应业务需求?...
- 谈谈分布式文件系统下的本地缓存_什么是分布式文件存储
-
在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memca...
- 进程间通信之信号量semaphore--linux内核剖析
-
什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠...
- Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门
-
一、前言在推流领域,尤其是监控行业,现在主流设备基本上都是265格式的视频流,想要在网页上直接显示监控流,之前的方案是,要么转成hls,要么魔改支持265格式的flv,要么265转成264,如果要追求...
- 30 分钟搞定 SpringBoot 视频推拉流!实战避坑指南
-
30分钟搞定SpringBoot视频推拉流!实战避坑指南在音视频开发领域,SpringBoot凭借其快速开发特性,成为很多开发者实现视频推拉流功能的首选框架。但实际开发中,从环境搭建到流处理优...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)