仅作为本人学习《物联网开发实战》的学习笔记,原课程链接:极客时间《物联网开发实战》——郭朝斌

文章目录

  • 搭建 MicroPython 开发环境
    • 第一步:准备固件文件
    • 第二步:安装烧录工具
    • 第三步:烧录固件
    • 第四步:确认运行状态
    • 体验交互
  • 部署代码到开发板

原课程选择使用 Python 作为开发语言,硬件平台为 NodeMCU(ESP8266),开发板上不能直接运行 Python,但可以运行 MicroPython 。

MicroPython ,是Python3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。

——百度百科

搭建 MicroPython 开发环境

第一步:准备固件文件

我们需要 NodeMCU 准备好的 MicroPython 固件,我们可以直接去官方下载现成的,否则就需要自己用专门的软件进行交叉编译。
固件下载地址:(原课程使用的是 ESP8266,而我的芯片型号是 ESP32)
ESP8266: https://micropython.org/download/esp8266/
ESP32: https://micropython.org/download/esp32/

第二步:安装烧录工具

烧录工具需要在 Python 终端上进行安装,所以我们需要先安装 Python,版本这里选择 Python3.8(听说需要安装3.6以上的版本才行),下载地址:https://www.python.org/downloads/release/python-385/

下载对应版本,我选择的是 Windows 64位,下载安装程序,


运行安装程序,pip 是用来下载和安装 Python 软件包的工具,安装烧录工具就需要用到 pip 命令,可以勾选 “Add Python 3.8 to PATH”,这样就可以直接在控制台运行 Python 了。


在控制台输入 python -V 查看 Python 版本,

Python 环境安装好后,就可以开始安装烧录工具了,在控制台输入以下命令,

pip install esptool

将 NodeMCU 连接电脑(前提是已经安装 USB-TTL 驱动),可以通过 esptool.py read_mac 命令,确认 NodeMCU 是否连接成功,如下图:

第三步:烧录固件

烧录固件前,需要先将 Flash 里的数据擦除,使用 esptool.py --chip esp32 --port COM5 erase_flash (COM5 是我电脑里与 NodeMCU 连接的端口,具体根据实际情况而定,chip 选项可需要注意)

我在擦除时,遇到了无法访问串口的问题,

could not open port 'COM5': PermissionError(13, '拒绝访问。', None, 5)

开始以为是 Python 权限的问题,后来发现就连串口调试助手也不能访问该串口,最后通过拔插 USB 数据线(同时用串口调试助手测试能否正常打开)解决了这个问题。

擦除成功:

擦除成功后,进入固件所在目录,运行如下命令,即可将固件烧录到开发板中:

# 芯片信号,端口号和固件名称需要根据具体情况修改
esptool.py --chip esp32 --port COM5 --baud 460800 write_flash -z 0x1000 esp32-20220117-v1.18.bin

第四步:确认运行状态

怎么知道开发板是否在运行呢?
这里介绍两种方法:

  1. 用手机或电脑搜索周围的 Wi-Fi 热点,如果看到类似 “MicroPython-xxxxxx” 名称的热点,说明 NodeMCU 工作正常。(但是我实测是没有热点的,可能默认没打开吧)
  2. 使用串口终端软件连接开发板,这类软件很多,比如 Putty,XShell 等,我这里使用的是 MobaXterm。

体验交互

先用 “hello world” 来检测测试一下,然后再体验一下 MicroPython 控制 LED 灯。


可以看到蓝色的 LED 被点亮:

部署代码到开发板

MicroPython 的官方提供了一个工具,名为pyboard.py,可以使用它来操作开发板上的文件系统,如文件拷贝、创建文件夹、文件删除等功能。

将 pyboard.py 下载到电脑,就可以使用这个工具了。

下面是原文的一个代码段,功能是让 LED 灯以 1 秒间隔闪烁。

import machine
import time# 指明 GPIO2 管脚
pin = machine.Pin(2, machine.Pin.OUT)# 循环执行
while True:time.sleep(1)    pin.on()time.sleep(1)pin.off()

要在开发板上运行这个 Python 代码,我们需要做两件事:

  1. 将代码保存在一个文件中,命名为 main.py。(必须是这个名字)
  2. 将 main.py 放到开发板的文件系统中,而且是根目录。

开发板启动时,就会自动执行 main.py 文件中的代码。如何把 main.py 复制到开发板上呢,这就要用到前面提到的 pyboard.py 了。

具体操作如下:
将 main.py 复制到开发板,重启开发板后,main.py 自动运行

pyboard.py --device COM5 -f cp main.py :main.py

运行效果:

我们也可以不复制 main.py ,直接让它在开发板上运行:

pyboard.py --device COM5 main.py

《物联网开发实战》16 实战准备:如何搭建硬件开发环境?(学习笔记)相关推荐

  1. 【kratos入门实战教程】1-kratos项目搭建和开发环境配置

    1.系列目录 [kratos入门实战教程]0-商城项目介绍 [kratos入门实战教程]1-kratos项目搭建和开发环境配置 [kratos入门实战教程]2-实现注册登陆业务 2.概览 经过上一篇的 ...

  2. ASP.NET Core分布式项目实战(详解oauth2授权码流程)--学习笔记

    最近公司产品上线,通宵加班了一个月,一直没有更新,今天开始恢复,每日一更,冲冲冲 任务13:详解oauth2授权码流程 我们即将开发的产品有一个用户 API,一个项目服务 API,每个服务都需要认证授 ...

  3. ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记

    任务20:Consent Controller Get请求逻辑实现 接着上一节的思路,实现一下 ConsentController 根据流程图在构造函数注入 IClientStore,IResourc ...

  4. 大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)

    我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 (感谢礼品.红包免费送!) https://bbs.csdn.ne ...

  5. React学习:脚手架搭建、antd引入-学习笔记

    文章目录 React学习:脚手架搭建.antd引入-学习笔记 脚手架搭建 项目目录结构 antd引入 antd附加:数据可放置的三个位置 React学习:脚手架搭建.antd引入-学习笔记 脚手架搭建 ...

  6. C/C++ 开发 boost 库参考手册整理(2) 【学习笔记】

    文档声明: 以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正.并且该文档在后期会随着学习的深入不断补充完善.感谢各位的参考查看. 笔记资料仅供学习交流使用,转载请标明出处 ...

  7. 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.11-3.12)

    [全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.11-3.12) 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://gi ...

  8. 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.16-3.20)

    [全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.16-3.20) 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://gi ...

  9. 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(4.1-4.10)

    [全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(4.1-4.10) 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://git ...

  10. 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.6-3.10)

    [全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.6-3.10) 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://git ...

最新文章

  1. ACMNO.20 C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。 输入 第一行,原始数列。 第二行,需要插入的数字。
  2. project项目管理案例_福清公司开展Project项目管理软件学习培训活动
  3. java bytebuffer 大小_java – 为什么DirectByteBuffer.array()有额外的大小?
  4. php如何获取文本中的换行符,如何获取字符里面的换行符
  5. 黑马程序员_java基础笔记(06)...集合
  6. 【还是回来了】博客搬家--https://cangbean.github.io
  7. php安装redis扩展'checking for igbinary includes... configure: error: Cannot find igbinary.h'解决方法...
  8. SylixOS 任务调度源代码分析
  9. [技巧]如何绕过MaxtoCode的15天限制
  10. ftp工具绿色版,四款好用的绿色版ftp工具
  11. 睡眠不好怎么办?提升睡眠质量的小妙招
  12. 谈女人 作者:张爱玲
  13. c1任务如何通过进制转换修改关卡和金币
  14. ElasticSearch教程——创建索引、类型、文档
  15. 洪柱森老师介绍--沪师经纪-刘建
  16. [机器学习]Logistic回归
  17. \t\tMy philosophy
  18. Java——【案例】Java坦克大战游戏[版本1]能控制移动的GUI界面坦克大战游戏
  19. 稳定软件研发团队组织结构
  20. 主流开源软件是否会被闭源,github能封杀个人账户请转战gitee

热门文章

  1. 未来教育计算机一级ms百度云,未来教育全国计算机二级VFP
  2. 浅谈软件质量保证SQA角色和职能
  3. “终端服务临时客户端许可证过期”的解决方法
  4. 火狐firebug和firepath插件安装
  5. 专业的PRD撰写模板
  6. PRD产品需求文档原型模版
  7. python译为中文_Python中文手册(汉译)
  8. 第一部分 Word练习题
  9. 解决AD不能复制粘贴
  10. 服务器 异常自动关机,服务器自动关机