闪电麦昆 语音控制齿轮行进轨迹,ESP32搭配语音控制板,串口通信,附视频演示地址

演示地址 https://www.bilibili.com/video/BV1cW421d79L/?vd_source=b8515e53f6d4c564b541d98dcc9df990

语音控制板的配置
在这里插入图片描述

web展示页面
在这里插入图片描述

esp32 程序

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <LittleFS.h>
#include <WebSocketsServer.h>ESP8266WebServer server(80);
WebSocketsServer webSocket = WebSocketsServer(81); // WebSocket服务器在端口81上运行void setup() {Serial.begin(115200);WiFi.softAP("ESP8266-AP", "12345678");// 初始化LittleFSif (!LittleFS.begin()) {Serial.println("An Error has occurred while mounting LittleFS");return;}server.on("/", HTTP_GET, handleRoot);server.on("/paper-full.min.js", HTTP_GET, handleJS);server.on("/chilun.svg", HTTP_GET, handleSVG); // 添加路由处理SVG请求server.begin();Serial.println("HTTP server started");webSocket.begin(); // 启动WebSocket服务器webSocket.onEvent(webSocketEvent); // 注册WebSocket事件处理函数
}void handleRoot() {File file = LittleFS.open("/index.html", "r");if (!file) {Serial.println("File not found");return;}server.streamFile(file, "text/html");file.close();
}void handleJS() {File file = LittleFS.open("/paper-full.min.js", "r"); // 打开JavaScript文件if (!file) {Serial.println("File not found");return;}server.streamFile(file, "application/javascript"); // 确保MIME类型是正确的file.close();
}// 处理SVG文件的请求
void handleSVG() {File file = LittleFS.open("/chilun.svg", "r");if (!file) {Serial.println("File not found");return;}server.streamFile(file, "image/svg+xml"); // 确保MIME类型设置为SVGfile.close();
}// WebSocket事件处理函数
void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) {switch(type) {case WStype_DISCONNECTED:Serial.printf("[%u] Disconnected!\n", num);break;case WStype_CONNECTED:{IPAddress ip = webSocket.remoteIP(num);Serial.printf("[%u] Connected from %d.%d.%d.%d\n", num, ip[0], ip[1], ip[2], ip[3]);webSocket.sendTXT(num, "Hello from ESP8266"); // 向连接的客户端发送消息}break;case WStype_TEXT:{Serial.printf("[%u] Received Text: %s\n", num, payload);// 将接收到的消息广播给所有连接的客户端String message = String((char *)payload); // 将payload转换为String对象,以便处理webSocket.broadcastTXT(message); // 使用broadcastTXT直接广播消息}}
}void loop() {server.handleClient();webSocket.loop(); // 确保处理WebSocket事件// 检查串口是否有数据读取if (Serial.available() > 0) {String data = Serial.readString(); // 读取串口数据Serial.print("Received from Serial: "); // 打印接收到的消息Serial.println(data); // 显示串口接收到的数据webSocket.broadcastTXT(data); // 将读取到的数据发送给所有WebSocket客户端}
}

在这里插入图片描述

参考资料
https://github.com/earlephilhower/arduino-littlefs-upload

https://github.com/earlephilhower/arduino-esp8266littlefs-plugin

https://github.com/lorol/arduino-esp32fs-plugin

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

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

相关文章

Arthas常用的命令(三)--monitor、jad 、stack

monitor&#xff1a;监控方法的执行情况 监控指定类中方法的执行情况 用来监视一个时间段中指定方法的执行次数&#xff0c;成功次数&#xff0c;失败次数&#xff0c;耗时等这些信息 参数说明 方法拥有一个命名参数 [c:]&#xff0c;意思是统计周期&#xff08;cycle of ou…

安装TDengine数据库3.3版本和TDengine数据库可视化管理工具

安装TDengine数据库3.3版本和TDengine数据库可视化管理工具 一、下载安装包二、解压安装包三、部署四、启动服务五、进入数据库六、创建数据库、表和往表中插入数据七、测试 TDengine 性能八、使用数据库九、查询数据十、TDengine数据库可视化界面 一、下载安装包 TDengine-cl…

YOLO11改进 | 注意力机制 | 添加SE注意力机制

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 本文介绍了YOLOv11添加SE注意力机制&…

C语言 | 第十五章 | 指针函数 函数指针 内存分配 结构体

P 141 返回指针的函数 2023/2/16 一、基本介绍 C语言 允许函数的返回值是一个指针&#xff08;地址&#xff09;&#xff0c;这样的函数称为指针函数。 二、入门案例 案例&#xff1a;请编写一个函数 strlong()&#xff0c;返回两个字符串中较长的一个。 #include<stdi…

【windows】win10提示‘adb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

问题日志 adb devices adb 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件 解决方案 下载adb&#xff0c;将adb放到如下目录 将 adb.exe AdbWinApi.dll AdbWinUsbApi.dll 文件放到以下目录 C:\Windows\SysWOW64 C:\Windows\System32 测试验证 adb An…

被DNS污染劫持,怎么见招拆招?

在畅游互联网的海洋时&#xff0c;我们可能会遭遇DNS污染劫持这一 “暗礁”&#xff0c;它就像一个隐藏在暗处的 “海盗”&#xff0c;干扰着我们正常的网络航行。那么&#xff0c;当遇到DNS污染劫持时&#xff0c;我们该如何见招拆招呢&#xff1f; 首先&#xff0c;我们要明…

JAVA面向对象的四大特征是什么?

目录 1. 封装&#xff08;Encapsulation&#xff09; 特点&#xff1a; 代码示例&#xff1a; 解释&#xff1a; 2. 继承&#xff08;Inheritance&#xff09; 特点&#xff1a; 代码示例&#xff1a; 解释&#xff1a; 3. 多态&#xff08;Polymorphism&#xff09; …

区块链技术与农产品溯源:实现透明供应链的关键

引言 随着食品安全问题和消费者对产品质量要求的提升&#xff0c;农产品溯源变得越来越重要。消费者希望知道他们购买的农产品从何而来&#xff0c;经历了哪些过程以及是否符合安全标准。区块链技术因其去中心化、不可篡改和透明的特点&#xff0c;成为实现农产品溯源的理想选…

如何解决与kernel32.dll相关的常见错误:详细指南解析kernel32.dll文件缺失、损坏或错误加载问题

当你的电脑中出现错误kernel32.dll丢失的问题&#xff0c;会导致电脑不能出现正常运行&#xff0c;希望能够有效的帮助你有效的将丢失的kernel32.dll文件进行修复同时也给大家介绍一些关于kernel32.dll文件的相关介绍&#xff0c;希望能够有效的帮助你快速修复错误。 kernel32.…

TensorFlow 的核心概念

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发和维护。它提供了一个强大的工具集&#xff0c;用于构建和训练各种机器学习模型。 TensorFlow 的核心概念是计算图&#xff08;Computational Graph&#xff09;。计算图由节点&#xff08;Nodes&#xff09;和…

QT 鼠标和键盘事件

在Qt中&#xff0c;可以使用事件处理机制来监听和处理鼠标事件和键盘事件。具体来说&#xff0c;重载事件处理函数或者使用事件过滤器是最常见的方法。以下是一些常用的事件处理函数以及如何监听鼠标事件和键盘事件的示例。 1. 处理鼠标事件 要处理鼠标事件&#xff0c;可以重…

ES6基础知识

一、定义变量的关键字let和const 1. let 定义变量的语法&#xff1a; let 变量名 值; 2. 和var定义变量的区别 1. 是否支持同一个作用域变量同名 var支持&#xff0c;let不支持 2. 是否支持预解析 var支持&#xff0c;let不支持 3. 是否会挂载在window对象…

Unity RPG梦幻场景素材(附下载链接)

Unity RPG梦幻场景素材 点击下载资源 效果图&#xff1a; 资源链接

OpeneBayes 教程上新 | 打败 GPT-4V?超强开源多模态大模型 LLaVA-OneVision 正式上线!

大语言模型&#xff08;Large Language Model&#xff0c;简称 LLM&#xff09;与多模态大模型&#xff08;Large Multimodal Model&#xff0c;简称 LMM&#xff09;是人工智能领域的两个核心发展方向。 LLM 主要致力于处理和生成文本数据&#xff0c;而 LMM 则更进一步&#…

Git-本地项目同步到远程仓库

一、Git初始化项目 git initgit init 是 Git 中用于初始化一个新仓库的命令&#xff0c;通常用来在现有目录中创建一个 Git 仓库或重新初始化一个现有的 Git 仓库。通过 git init&#xff0c;你可以将一个普通的目录转变为 Git 受控的项目目录。 在当前目录中初始化一个新的 …

CesiumLab介绍

软考鸭小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 CesiumLab是一个围绕Cesium平台设计的完整易用的数据预处理工具集&#xff0c;它旨在最大化提升三维数据可视化效率。本文将详细介绍CesiumLab的安装、主要功能…

【JavaSE】图书系统

目录 当我们学习完Java的语法后&#xff0c;可以写一个简单的项目进行总结梳理一下&#xff0c;这个项目也会用到我们所学过的Java所有的语法知识&#xff1a;目录是咱们用文件夹包装起来的类。 1.book 在面向对象体系中&#xff0c;提出了一个软件包的概念&#xff0c;即&am…

electron-vite_6js-cookie失效

我们项目是用了js-cookie&#xff0c;后续集成的时候发现&#xff0c;无法进入首页&#xff1b;经过排查是js-cookie无法使用&#xff0c;可能是electron打包后的项目运行的时候是file:/// 猜测原因&#xff1a;因为Cookie是与域名相关联的&#xff0c;而file:///协议没有域名&…

k8s微服务

一 、什么是微服务 用控制器来完成集群的工作负载&#xff0c;那么应用如何暴漏出去&#xff1f;需要通过微服务暴漏出去后才能被访问 Service是一组提供相同服务的Pod对外开放的接口。 借助Service&#xff0c;应用可以实现服务发现和负载均衡。 service默认只支持4层负载均…

斯坦福大学提出电影剧本可视化工具ScriptViz:能够根据剧本中的文本和对话自动检索相关的电影画面,帮助剧作家更好地构思和调整剧情

title:斯坦福大学提出电影剧本可视化工具ScriptViz&#xff1a;能够根据剧本中的文本和对话自动检索相关的电影画面&#xff0c;帮助剧作家更好地构思和调整剧情 斯坦福大学的研究者们开发了一个电影剧本可视化工具ScriptViz工具&#xff0c;ScriptViz的工作原理可以简单地理解…