Arduino的nodemcu 8266开发板使用MicroPython开发的整体流程

news2024/11/15 20:00:15

程序安装准备

  • 安装开发板驱动,官网:(https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads)这里不是CH340驱动,而是CP210x USB to USART 驱动,最终也是在“设备管理器查看COM口”
  • 为NodeMCU刷入固件(一个bin文件),(官网:www.micropython.org)就像是手机的系统一样。可以用来用户上传和管理开发板
  • 安装python环境,为了安装pytools库,而pytools可以把下载的bin文件刷到NodeMCU中
  • 安装putty,官网putty.org,这是一个串行接口连接软件,用于设置连接口COM设置后,启动连接测试

各个部件的分配和认知

在这里插入图片描述

Micropython固件下载

使用多种方式下载的过程中,一定要保证当时只有一种方式对传输串口访问,否则会失败。

1,使用官方工具直接下载,

但个人测试没能成功,个人认为很可能是地址问题
https://www.espressif.com.cn/zh-hans/support/download/other-tools
在这里插入图片描述

2.使用python的esptool安装

这种方式主要是依赖python环境。先安装python,然后下载esptool库。使用esptool把固件烧录到开发板,但这种方式个人测试并没有成功。

3,最简单的方式,使用 uPyCraft

尝试过后,感觉这种方式是最简单的
软件地址:https://gitee.com/dfrobot/upycraft_cn
在这里插入图片描述
在这里插入图片描述
**经过个人尝试,前两种安装方式很难成功(个人是没成功),但显示确实是传入了)就是重启不能在串口正常工作。但使用这种方式,即使自己下载的固件bin文件,也可以安装成功,但同样的文件上传,上面两种方式就不能成功(**若有大神看见请告知,为什么这样)

putty

这是一个串口检测和交互软件,在设置好COM口的各项内容后,点击打开会出现一个很像命令提示符(cmd)窗口的内容
这时就可以对这个软件连接的串口发送命令。若串口连接的设备有系统,也会根据putty发出的命令,返回对应的信息。这里就是开发板的micropython系统返回到putty
在这里插入图片描述
下面这种情况,就是前两种固件下载方式后,这种并不是成功显示。
在这里插入图片描述
这是使用uPyCraft下载后,重启,现象正常。是下载地址问题?,这个不太知道。
在这里插入图片描述

webREPL

这是在开发板做为一个WiFi点的时候使用,也就是开饭的接入点模式,有一个本地的webRepl,用于在自己电脑浏览器打开后和开发板交互,下载地址(https://github.com/micropython/webrepl)
还有一个在micropython中的一个库,可以使用putty发送import webrepl setup命令给开发板连接的COM口,让开发板安装这个库,设置好这个库在开发板启动的配置后。重启后会在putty窗口返回一个IP,
在这里插入图片描述

开发板接入点模式做为路由连接网络

通过上面的尝试,个人最终选择使用了upycraft ide这个专门为micropython使用的软件。
通过前面步骤需要准备的东西:upycraft,webRepl(从GitHub下载下来的一个压缩包)。
首先使用upycraft安装好nodemcu的固件(micropython的文件),然后第一次设置wifi
环境,若是第一次需要一下步骤

  1. import webrepl_setup #设置web热点,注意如果重启,就需要重新导入这句,否则其他设备连接这个wifi很难
  2. 询问是否在boot执行
  3. 询问想要设置的密码这不是wifi密码(是使用webrepl网页中交互的登录密码),并会有一次确认输入
  4. 这样就将nodemcu做为一个路由使用,但这个路由的名字是以下图中的格式,后面数值不一样.(这个wifi密码是:micropythoN)注意最后一个字母就是大写的
  5. 然后将电脑和这个WiFi连接,一定不要忘记
  6. 打开下载好的webrepl压缩包,并打开其中的“webrepl.html”文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后就能,通过网页和交互,也可以传文件。**但是这样由于开发板没有连接外网,且做为了节点,所有整个范围的设备不能连接internet。**所以使用无线连接模式,让开发板做为一个网络终端。
    在这里插入图片描述

开发板做为终端,无线连接模式连接网络

参考:http://micropython.com.cn/en/latet/esp8266/tutorial/network_basics.html,http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-micropython/micropython-webrepl-4/
只需要通过Putty对接入板进行网络配置,在类似cmd窗口中配置,使用下面的命令

import network,
wlan = network.WLAN(network.STA_IF)  ##STA_IF站点/终端接入模式,AP_IF是access point接入模式
wlan.active(True)
wlan.connect('自己wifi网络名字', 'WiFi密码')
wlan.ifconfig()  # 返回四个ip分别是IP 地址、网络掩码、网关、DNS

这种情况即可以连接WIFI也可以访问开发板内容,当然还是在putty中其中webRepl,然后看到多个IP,这个IP可能因自动分配而不同时刻连接后的IP不一样。当然,可以通过设置静态IP和查看当时连接的IP完成设置。这里使用了参考中的图片,然后打开本地下载的WebRepl对开发板发送文件。
在这里插入图片描述

在这里插入图片描述

下面是对开发板进行传输数据

向开发板传入一个main.py的文件,文件里就写一句打印print("hello world").
在这里插入图片描述

从开发板读取数据

首先通过上面的步骤将一个名字为main.py的文件传入到开发板中。同样的准备工作。

  1. 在upycraft或putty中,需要保证开发板固件烧录,且程序和开发板通信
  2. 其中需要在连接好的软件窗口,使用import webrepl; webrepl.start()分开输入两个命令,查看下面的那个webREPL的ip(这个上面开发板做为接入点使用的IP不同)
  3. 然后打开下载到本地的webrepl文件夹中的WebREPL.html文件。输入第2步得到的IP,然后正常连接
  4. 注释:前三步和前面操作除了查看IP不同,其他都一样,后面通过图片介绍这些步骤(以upycraft为例)。
  5. 连接好就可以传送或从开发板下载文件

1,步骤中就是确定安装好固件,并串口交互软件通过设置com口等参数实现通信,最终结果如下(第三张图)
第一张图是设置开发板接入网络的模式。配置局域网参数
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
2,启动开发板上的webrepl功能,若重启则需要重新启动webrepl,第二个IP是将开发板设置为无线终端模式下被非匹配的ip
在这里插入图片描述
3,打开下载到本地的webrepl.html,设置好地址输入自己设置的开发板登录密码
在这里插入图片描述
5,可以开始下载了。
在这里插入图片描述

整体文件流程

  1. 先执行boot.py文件,这就是第一次设置wlan后再次重启不需要重新设置的原因
  2. 然后执行main.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode:33. 搜索旋转排序数组~~~二分】

题目描述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…

操作系统真相还原_第5章第1节:利用BIOS中断0x15 获取内存信息

文章目录功能号返回信息功能号详解子功能号&#xff1a;0xE820子功能号&#xff1a;0xE801子功能号&#xff1a;0x88内存检测示例当前内存分布说明程序boot.incmbr.sloader.s编译并写入硬盘启动bochs运行功能号 EAX0xE820&#xff1a;遍历主机上全部内存 AX0xE801&#xff1a;…

分享121个ASP源码,总有一款适合您

ASP源码 分享121个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 121个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1wwsIoZidHihm5WHPKjlvMg?pwdew3b 提取码&#x…

如何在linux服务器部署sonar服务?

文章目录前言一、上传sonar插件二、设置sonar插件的权限三、启动插件四、配置环境变量前言 sonar服务是代码质量扫描的工具,我们如何利用sonar进行代码质量扫描还有在linux服务器上部署呢?下面这篇文章详细的记录了我在sonar的使用过程中所遇到的各种坑。 一、上传sonar插件…

十大经典排序算法【算法思想+图解+代码】【数据结构与算法笔记】

前言&#xff1a;文中大部分为本人收集整理&#xff0c;综合学习资料&#xff0c;个人理解……。希望能帮助你少掉写头发&#xff0c;早日走出理解的深渊。因为写作较为仓促文中内容难免会有纰漏&#xff0c;发现可评论区回复&#xff08;无奖&#xff09;。排序(Sort)分析排序…

StudioOne6旗舰版DAW2023跨版本升级新功能介绍

PreSonus2023发布了Studio One 6旗舰级DAW的跨版本升级。他们获奖的DAW软件的这一最新版本引入了大量的新功能和增强功能&#xff0c;包括用户界面的定制选项&#xff0c;PreSonus说这使第6版成为他们迄今为止最个性化的升级。PreSonus发布了旗舰级DAW的跨版本升级&#xff0c;…

Leetcode:131. 分割回文串(C++)

目录 问题描述&#xff1a; 实现代码与解析&#xff1a; 回溯&#xff1a; 原理思路&#xff1a; 问题描述&#xff1a; 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都…

客快物流大数据项目(一百零六):实时ETL处理

文章目录 实时ETL处理 一、业务流程 二、​​

Kettle简介

一、Kettle基本介绍 Kettle(现更名为Pentaho Data Integration-Pentaho)是一款国外开源的ETL工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;绿色无需安装。它允许你管理来自不同数据库的数据&#xff0c;通过提供一个图形化的用户环境来…

盒模型应用 改变宽高范围 改变背景覆盖范围 溢出处理 断词规则 空白处理

目录盒模型应用改变宽高范围改变背景覆盖范围溢出处理断词规则 word-break空白处理 溢出的空白处理盒模型应用 改变宽高范围 默认情况下&#xff0c;width 和 height 设置的是内容盒宽高。 页面重构师&#xff1a;将psd文件&#xff08;设计稿&#xff09;制作为静态页面 衡量…

【竞赛题】6297. 根据第 K 场考试的分数排序

题目 班里有 m 位学生&#xff0c;共计划组织 n 场考试。给你一个下标从 0 开始、大小为 m x n 的整数矩阵 score &#xff0c;其中每一行对应一位学生&#xff0c;而 score[i][j] 表示第 i 位学生在第 j 场考试取得的分数。矩阵 score 包含的整数 互不相同 。 另给你一个整数…

【机器学习】多标签分类

目录&#xff1a;多标签分类一、算法1.1 One-vs-Rest1.2 AdaBoost-MH1.3 ML-KNN一、算法 多标签分类的适用场景较为常见&#xff0c;比如&#xff0c;一份歌单可能既属于标签旅行也属于标签驾车。有别于多分类分类&#xff0c;多标签分类中每个标签不是互斥的。多标签分类算法…

Python使用K-means聚类分析

Python使用K-means聚类分析 文章目录Python使用K-means聚类分析介绍1.集群标签作为特征一、k-均值聚类二、示例 - 加州住房2.KMeans总结介绍 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 本文将使用所谓的无监督学习算法。 无监督算法不使用目标&#xff…

软件测试复习11:自动化测试

专栏&#xff1a;《软件测试》 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录自动化测试的前提自动化测试的过程自动化测试的5个级别自动化测试的局限自动化测试的前提 自动化测试可以很好地代替人&#xf…

Facebook运营策略中的SEO优化:10个提示

在过去的一年中&#xff0c; Facebook上的品牌营销预算激增&#xff0c;这就是为什么许多人正在使用 Facebook来推广其业务。然而&#xff0c;并非所有新品牌都可以通过在社交媒体上进行成功的 SEO优化而获得成功。如果你想在 Facebook上销售你的产品或服务&#xff0c;你需要从…

2022年终总结——从打工到创业的转折

目录一、机会的创造和紧抓二、时间线的诉说1.1-4月份&#xff0c;在外面工作的过程中也在考虑这个事情&#xff1b;是在一个自己刚熟悉的金融行业学习提升&#xff1f;还是回归到自己铺垫了很久的教育行业深耕&#xff1f;2.5月份&#xff0c;孤身一人奔赴创业之路&#xff1b;…

《深入浅出计算机组成原理》学习笔记 Day7

电路基础1. 使用电信号的优势2. 继电器3. “与”、“或”、“非”参考1. 使用电信号的优势 从信息编码的角度来说&#xff0c;金、鼓、灯塔、烽火台类似电报的二进制编码。 电报传输的信号有两种&#xff0c;一种是短促的点信号&#xff08;dot 信号&#xff09;&#xff0c;…

【Go基础】包与工程化和常用标准库

文章目录一、包与工程化1. 用go mod管理工程2. 包引入规则3. init调用链4. 可见性二、常用标准库1. 数学计算2. 时间函数3. I/O操作4. 编码一、包与工程化 1. 用go mod管理工程 初始化项目&#xff1a; go mod init $module_name$module_name和目录名可以不一样 上述命令会生…

OpenMP 原子指令设计与实现

OpenMP 原子指令设计与实现 前言 在本篇文章当中主要与大家分享一下 openmp 当中的原子指令 atomic&#xff0c;分析 #pragma omp atomic 在背后究竟做了什么&#xff0c;编译器是如何处理这条指令的。 为什么需要原子指令 加入现在有两个线程分别执行在 CPU0 和 CPU1&…

LeetCode102_102. 二叉树的层序遍历

LeetCode102_102. 二叉树的层序遍历 一、描述 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff…