使用esp32+micropython+microdot搭建web(http+websocket)服务器(超详细)第一部分

这篇具有很好参考价值的文章主要介绍了使用esp32+micropython+microdot搭建web(http+websocket)服务器(超详细)第一部分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用esp32+micropython+microdot搭建web(http+websocket)服务器(超详细)第一部分

  • microdot文档速查 什么是Microdot?Microdot是一个可以在micropython中搭建物联网web服务器的框架
  • micropyton文档api速查 Quick reference for the ESP32

先来个小demo先体验一下

演示视频链接

esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot

视频中我们简单的实现了

  • 使用esp32搭建web服务器
  • 实现get请求
  • 上传网页到服务器
  • 手机打开网址访问该网页
  • 服务器处理请求,实现开灯关灯操作

准备工作

百度网盘:https://pan.baidu.com/s/1ZKbaGjdjuBMJgK9l6w9mdg?pwd=1234 提取码:1234

  • esp32开发板一个
  • micro数据线一条(支持数据传输,有些只能充电)
  • micropython固件,下载地址MicroPython - Python for microcontrollers或者网盘中获取(esp32-20220618-v1.19.1.bin)
  • esp32电脑驱动(没有他电脑不能识别esp32),网盘中获取(esp32usbDriver.zip)
  • Thonny,下载地址Thonny, Python IDE for beginners 或者网盘中获取(thonny-4.1.1.exe)
  • vscode,下载地址Documentation for Visual Studio Code 或者网盘中获取(VSCodeUserSetup-x64-1.79.2.exe)
  • microdot Microdot是一个可以在micropython中搭建物联网web服务器的框架(点击查看)

安装esp32电脑驱动

  • 解压该文件esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 点击安装该驱动(64位电脑选择上面,32位电脑选择下面)esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 安装完记得重启电脑,不然可能不生效

安装Thonny

  • 点击安装esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • thonny切换中文,点击tools

    • esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
    • 点击optionsesp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
    • 选择language,中文esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
    • 重启就汉化成功
  • 新建一个空文件夹,然后新建一个main.py文件

  • 使用thonny打开它esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot

给esp32刷入micropython固件

  • micro数据线连接电脑,然后连接esp32
  • esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 点击配置解释器esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 选择Micropython(esp32)解释器和选择端口,这个端口就安装电脑驱动之后生成的,名字可能不一样(如果没有端口,可能是驱动没装上或者线没连好)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dUJJotD8-1687272884567)(<转存失败,建议直接上传图片文件 >)]
  • 点击Install or update MicroPython选择端口和固件(网盘里面有)esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot

  • 等待进度条走完就好了esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot

  • 如果一直不显示百分比 按住 esp32上的boot键

    • ESP32开发板上有2个按键,分别是bootEN。烧录前需要先打开Download模式:长按boot键,按一下EN键,即可烧录。烧录完毕,按EN返回运行模式。
  • 完成!esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot

  • 右下角已经可选esp32开发板了esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot

  • esp32首先执行的是boot.py文件。该文件是由MicroPython系统创建的。因此您无需自己创建该文件就可以在刚刚刷好固件的NodeMCU开发板根目录下找到它。我不建议MicroPython的初学者对该文件进行修改,因为boot.py文件出现问题能会导致MicroPython无法正常启动,严重的会导致系统崩溃。要修复可能只有重新刷固件才行。所以除非您很了解MicroPython,否则请不要自行修改该文件。

    执行完boot.py以后,启动中的NodeMCU接下来将会执行main.py文件。如果您希望NodeMCU在每次启动后都执行一系列操作的话,可以将您的指令代码写入该文件。由于main.py文件是用户自己建立的而不是MicroPython系统建立的,因此在刚刚刷好固件的开发板根目录下是不存在该文件的。假如MicroPython在启动中找不到main.py文件,它会在系统启动时报错(如下图所示)。

  • 所以我们新建main.py,删除boot.py,main.py作为项目的主入口文件

安装vscode

  • 双击(VSCodeUserSetup-x64-1.79.2.exe)文件

esp32web服务器接口的搭建

  • 解压网盘中的microdot-main.zip

    • microdot-main\src下面有我们需要的文件esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 在MicroPython设备 新建目录结构

    • lib 存放一些库文件

      • microdot.py (microdot-main\src中)
    • common

      • connect_wifi.py (连接热点)
    • public 存放网页内容

      • index.html 网页
    • main.py (程序主入口)

connect_wifi.py

# 操作esp32引脚
from machine import Pin
​
# 操作时间 延迟几秒等
import time
​
# 网络相关的函数
import network
​
# esp32 引脚2是一颗自带的 led的灯
light = Pin(2,Pin.OUT)
def do_connect():
    # wifi模式
    wlan = network.WLAN(network.STA_IF)
    # 激活
    wlan.active(True)
    print("开始连接...")
    print("连接中...")
    #  连接超时设置
    start_time = time.time()
    if not wlan.isconnected():
        # 自家的wifi名和密码        
        wlan.connect("Xiaomi_A246","zy415415666")
        while not wlan.isconnected():
            # 灯亮
            light.value(1)
            # 延迟一秒
            time.sleep(1)
            # 灯灭
            light.value(0)
            time.sleep(1)
            # 15秒内没连接上就是超时了
            if time.time() - start_time > 15:
                print("wifi连接超时!!!")
                break
        return False
    else:
        print("连接成功!!!!")
        light.value(0)
        # 打印 网络信息
        print("网络配置:",wlan.ifconfig())
        return True
​

main.py

# 导入Microdot
from lib.microdot import Microdot
# 连接wifi
from common.connect_wifi import do_connect
# 导入引脚
from machine import Pin
# esp32 引脚2是一颗自带的 led的灯
light = Pin(2,Pin.OUT)
​
# 开始连接wifi
do_connect()
# 实例化这个类
app = Microdot()
​
# 设置一个get请求 如果
@app.get('/on')
def index(request):
    # 如果收到get请求on就开灯
    light.value(1)
    return "开灯了"
​
@app.get('/off')
def index(request):
    # 如果收到get请求off就关灯
    light.value(0)
    return "关灯了"
# 端口号为5000
app.run(host='0.0.0.0', port=5000, debug=False, ssl=None)

执行main.py

  • esp32指示灯闪烁
  • 控制台打印ip地址等信息 就表示服务器已经启动好了 esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 打开浏览器输入ip+端口 成功啦!!!esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot

新建网页

打开vscode编写一个网页

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>esp32服务器网页</title>
    <style>
        *{margin: 0;
        padding: 0;}
        button{
            width: 200px;
            height: 200px;
        }
    </style>
</head>
<body>
    <h1>开灯小网页</h1>
    <button class="on">
        开灯
    </button>
    <button class="off">
        关灯
    </button>
    <script>
        const onBtn = document.querySelector(".on");
        const offBtn = document.querySelector(".off");
        // 监听按钮点击事件
        onBtn.addEventListener("click",(e)=>{
            fetch("/on",{
                method:"get",
            }).then(e=>{
                console.log("消息",e);
            }).catch(error=>{
                console.log("报错了",error);
            })
        })
        offBtn.addEventListener("click",(e)=>{
            fetch("/off").then(e=>{
                console.log("消息",e);
            }).catch(error=>{
                console.log("报错了",error);
            })
        })
​
    </script>
</body>
​
</html>

esp32部署网页

  • 将index.html文件放在public文件下面

  • 修改main.py

    # 导入Microdot
    from lib.microdot import Microdot,send_file
    # 连接wifi
    from common.connect_wifi import do_connect
    # 导入引脚
    from machine import Pin
    # esp32 引脚2是一颗自带的 led的灯
    light = Pin(2,Pin.OUT)
    ​
    # 开始连接wifi
    do_connect()
    # 实例化这个类
    app = Microdot()
    ​
    # 返回一个网页
    @app.route('/')
    def index(request):
        return send_file('public/index.html')
    ​
    # 设置一个get请求 如果
    @app.get('/on')
    def index(request):
        # 如果收到get请求on就开灯
        light.value(1)
        return "开灯了"
    ​
    @app.get('/off')
    def index(request):
        # 如果收到get请求off就关灯
        light.value(0)
        return "关灯了"
    ​
    # 端口号为5000
    app.run(host='0.0.0.0', port=5000, debug=False, ssl=None)
    ​
    

开发完成

  • 重新运行main.py,
  • 打开浏览器输入地址
  • esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 点击网页上的开灯和关灯按钮,可以看到esp32上面的灯亮和灯灭
  • esp32 websocket,物联网,服务器,前端,http,websocket,物联网,esp32,microdot
  • 开发结束!!!!!

第二部分马上就来!文章来源地址https://www.toymoban.com/news/detail-714915.html

到了这里,关于使用esp32+micropython+microdot搭建web(http+websocket)服务器(超详细)第一部分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ESP32 Micropython编程(Thonny)01----环境搭建&点灯

    本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~ ok,接下来我们就进入Micropython的学习吧(因为我是一边学习一边记录,因此肯定会出现一些错误,欢迎大家指正,大家一起学习进步) 下载地址:Thonny 选择对应版

    2024年02月02日
    浏览(27)
  • 物联网开发笔记(62)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:环境搭建

    一、目的         这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程的第一步:环境搭建。 :3.2寸SPI串口TFT液晶显示屏模块 ILI9341驱动 LCD触摸屏 240*320 LVGL图形化编程 XPT2046触摸屏芯片IC 二、环境         ESP32 + 3.2寸 ILI934

    2023年04月15日
    浏览(41)
  • micropython,esp32,RFID-RC522的使用

    一、RFID 射频技术(RF)是Radio Frequency的缩写。较常见的应用有无线射频识别(Radio Frequency Identification,RFID),常称为感应式电子晶片或近接卡、感应卡、非接触卡、电子标签、电子条码等。其原理为由扫描器发射一特定频率之无线电波能量给接收器,用以驱动接收器电路将

    2024年02月13日
    浏览(34)
  • 使用micropython(ESP8266、ESP32)驱动SES 2.66寸墨水屏显示中文

    由于需要做一些低功耗的东西,所以最近在尝试玩墨水屏。出于成本考虑(没钱的另一种委婉说法)从咸鱼淘到2块便宜的二手SES 2.66寸三色墨水屏,并使用micropython将其驱动起来,并用字库的方法显示中文。 1.硬件连线 SES 2.66墨水屏 SES 2.66墨水屏带驱动小板 买到的屏幕是图上

    2024年01月22日
    浏览(24)
  • 手把手使用Micropython+合宙Esp32c3(驱动安装,为合宙Esp32c3安装Micropython固件库,代码上传到ESP32C3中)含Thonny和vscode两种方法

    CH343驱动下载 下载最新版本就好 驱动下载好后,以管理员身份运行,并点击“安装” 安装完成之后连接设备就可以在设备管理器中看到自己设备及端口 MicroPython 是一种精简版的 Python 语言实现,专门用于嵌入式系统和物联网设备。它提供了一个适用于微控制器的交互式解释

    2024年02月10日
    浏览(41)
  • ESP32-CAM 使用 MicroPython 进行开发 - 使用图形化工具 Thonny (Windows)

    ESP32-CAM是安信可发布小尺寸的摄像头模组。该模块可以作为最小系统独立工作,尺寸仅为2740.54.5mm。 ESP32-CAM可广泛应用于各种物联网场合,适用于家庭智能设备、工业无线控制、无线监控、人脸识别以及其它物联网应用,是物联网应用的理想解决方案。 ESP32-CAM采用DIP封装,直

    2024年02月16日
    浏览(31)
  • ESP32-Web-Server编程- WebSocket 编程

    在前述 ESP32-Web-Server 实战编程-通过网页控制设备的 GPIO 中,我们创建了一个基于 HTTP 协议的 ESP32 Web 服务器,每当浏览器向 Web 服务器发送请求,我们将 HTML/CSS 文件提供给浏览器。 使用 HTTP 服务器库的缺点是,**如果多个客户端连接到 Web 服务器,当 A 浏览器改变了网页的内

    2024年01月18日
    浏览(33)
  • 物联网开发笔记(87)- 使用Micropython开发ESP32开发板之烧录合宙ESP32C3开发板

    一、目的         这一节我们学习如何使用我们的ESP32开发板来学习合宙ESP32C3开发板,该开发板有两种:一种是带串口通讯的,一种是通过使用USB通讯接口的。  二、环境         ESP32 + 合宙ESP32C3开发板 + USB转type-C线  + Win10 接线方法:         开发板通过USB线插到

    2024年02月14日
    浏览(32)
  • 物联网开发笔记(74)- 使用Micropython开发ESP32开发板之UART串口通信

    一、目的         这一节我们学习如何使用我们的ESP32开发板来进行串口通信,使用串口实现数据收发。 二、环境         ESP32 + USB转TTL线(3.3V) + Thonny IDE + 几根杜邦线 + Win10 接线方法:         ESP32和USB转TTL线都接在电脑USB口上,USB转TTL线的Tx接ESP32 P32,USB转TTL线

    2024年02月16日
    浏览(39)
  • 物联网开发笔记(68)- 使用Micropython开发ESP32开发板之使用官方工具esptool烧录

    一、目的         这一节我们学习如何使用我们的ESP32开发板来烧录。 二、环境         ESP32 + esptool + Win10 + python3.10 + 其他工具。 ESP32开发板购买地址: https://item.taobao.com/item.htm?spm=a1z09.2.0.0.39352e8dy0hBq0id=679204453863_u=2p01rched2a https://item.taobao.com/item.htm?spm=a1z09.2.0.0.39352e8dy0hBq0

    2024年02月05日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包