项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理

2023-05-16

项目实战-外卖自提柜 1.项目介绍、协议制定
项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门
项目实战-外卖自提柜 3. FreeRTOS主要API的应用
项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧
项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理
项目实战-外卖自提柜 6. 硬件工作与测试(原理图、PCB绘制、测试视频)

 

        其实不想ESP8266还要单独水一篇,以前玩过,以为AT指令挺好调的,实际调的时候遇到不少小问题,有的问题在网上没找到,自己摸索摸索了挺久,所以就单独写了。

ESP8266 01S

在这里插入图片描述
配置TCP透传,用到的AT指令如下:

AT指令功能
AT测试硬件是否正常
ATE0关闭回显
AT+CWMODE=1设置为客户端
AT+CIPSTATUS判断状态:返回2表示已正常连接WIFI;返回3表示已正常连接服务器
AT+CWJAP=“MyWIFI”,“123456”连接WIFI
AT+CWAUTOCONN=1设为自动连接WIFI模式
AT+CIPSTART=“TCP”,“192.111.1.1”,8888连接服务器
AT+CIPMODE=1设为透传模式
AT+CIPSEND开始透传
+++关闭透传

初始化流程图:
在这里插入图片描述

返回值的处理方法

        基本思路是,开辟一个数组,收到的返回值存入数组,发送完指令后,等待一段时间,读取数组,利用**strstr()**这个函数,判断数组中是否有期望的返回值,查找完成后清空数组
        以AT指令为例:

usart3_tx_dma_enable((uint8_t*)"AT",2);	//发送AT指令
osDelay(50);	//等待50ms
if(strstr(mes_buf,"OK")!=NULL)	//找到对应字符串
	res = 1;			//返回1,否则返回0
else
	res = 0;
clear_mes_buf();	//清空缓冲
return res;

退出透传出错解决办法

        发送“+++”,不加\r\n,
        但这会导致这之后的一个AT指令失效,所以,在发送完+++以后,还要再发送一个\r\n,后面的AT指令才能生效。

//关闭透传
void close_tran()
{
	usart3_tx_dma_enable((uint8_t*)"+++",3);	//发送+++
	osDelay(500);	//延时500ms
	usart3_tx_dma_enable((uint8_t*)"\r\n",2);	//实际测试时,发完+++以后,还需要一个指令(带\r\n)激活模块
	osDelay(100);	//延时100ms
}

如何判断服务器是否离线

        一般情况下,在透传过程中服务器突然离线,会返回一个closed,但由于此前一直处于透传模式,单片机想要捕捉这个closed比较困难,所以需要用别的手段判断服务器是否异常离线。

        这个项目的协议中,有心跳和回复帧的机制,可以根据发出的心跳是否得到回复来判断服务器是否在线。
        如果检测到异常离线,再去重新初始化ESP8266,再进一步判断WIFI是否异常、服务器是否异常,定位问题。

代码和测试视频在这里:
https://oshwhub.com/doee/wai-mai-zi-ti-gui-she-bei-duan-z

项目实战-外卖自提柜 1.项目介绍、协议制定
项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门
项目实战-外卖自提柜 3. FreeRTOS主要API的应用
项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧
项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理
项目实战-外卖自提柜 6. 硬件工作与测试(原理图、PCB绘制、测试视频)

https://blog.csdn.net/weixin_44578655/article/details/106004124

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理 的相关文章

  • 使用 Keil uVision 和 STM32CubeMX 对 STM32F103C8 进行编程

    采用ARM Cortex M架构的STM32微控制器因其特性 成本和性能而在许多应用中得到广泛应用 在之前的教程中 xff0c 我们已经使用Arduino IDE编程了STM32F103C8 使用Arduino IDE编程STM32很简单
  • 适用于 STM32F103C8 的 FreeRTOS,STM32的多任务同时进行

    概述 xff1a 适用于 STM32F103C8 的 FreeRTOS STM32F103C 是一款ARM Cortex M3 处理器 我们可以在 Arduino IDE 中使用适用于 STM32F103C8 的 FreeRTOS 我们也可
  • PLC为什么会被上位机取代

    随着我们进入高速发展的轨道 xff0c 许多工厂都已经完成了自动化流水线生产的打造 我们可以看到很多大厂已经搭建了智能生产线 所以越来越多的plc工程师开始感觉到 xff0c 只会传统的plc控制 xff0c 已经无法满足公司的企业发展业务
  • 【Vue2】生命周期——钩子函数

    钩子函数 xff1a 在一个Vue实例从创建到销毁的过程自动执行的函数 1 分析生命周期 1 xff09 初始化阶段 xff1a beforeCreate xff08 xff09 生命周期中第一个函数 xff0c 在该函数执行时Vue实例仅
  • 计算机考研全年规划

    此文转载的 xff0c 作为参考 文章目录 一 关于考研常识二 择校择专业 xff08 一 xff09 为什么要考研 xff08 二 xff09 怎么样才能考上研究生 xff08 三 xff09 如何择校选专业1 学硕和专硕该如何选择 xf
  • c#串口编程(傻瓜教程,手把手教你学会)

    在单片机项目开发中 xff0c 上位机也是一个很重要的部分 xff0c 主要用于数据显示 xff08 波形 温度等 xff09 用户控制 xff08 LED xff0c 继电器等 xff09 xff0c 下位机 xff08 单片机 xff0
  • CMakeLists.txt编写规则

    一 基本语法 语法格式 指令 参数1 参数2 1 参数间用空格或分号隔开 2 指令大小写无关 参数和变量大小写相关 3 变量用 方式取值 但在if语句中直接用变量名 二 重要指令 1 cmake minimum required 指定CMa
  • [stm32] Start Tour-一些元件的连接

    如果觉得有帮助的话就点个赞吧 持续更新 目录 一 蜂鸣器 注意点 xff1a 二 独立按键 一 蜂鸣器 根据原理图连的实物图如右 xff1a 注意点 xff1a 1 xff09 蜂鸣器分正负极 2 xff09 VCC和GND是32板的总电源
  • ROS中Gazebo无响应解决办法

    标题ROS中Gazebo无响应解决办法 在终端输入gazebo没有反映 xff0c 进行下面两句操作 首先输入下面的代码 gazebo verbose 观察到报错显示原因为有另一个gazebo进程于是杀死这个进程则问题解决代码如下 xff1
  • 别害羞,开源社区真的很需要你,教你如何参与开源社区~

    前言 相信各位开发者多多少少会在实际开发的过程中会使用一些开源的技术 xff0c 例如前端的 vue react 以及大量的第三方库如 echart xff0c color js day js 等等 xff0c 后端就更多了 xff0c 从
  • VBox 快照备份虚拟机

    目录 虚拟机快照概念 什么是虚拟机快照 VBox 快照备份恢复 FreeBSD 系统 拍摄 Snapshots 快照 拍摄快照示例 恢复快照 虚拟机快照概念 什么是虚拟机快照 简单来说 xff0c 就是将你当前状态的虚拟机复制保存一份镜像
  • [Linux 调试 Android]-Linux 命令行调试 Android 设备

    目录 Slackware 15 0 下调试安卓 4 4 2 系统环境配置 获取 linux 版本的 adb 程序 将 ADB 程序安装到 Linux 系统上 配置 adb 环境变量 在 Linux 系统上 adb 调试安卓系统 Slackw
  • docker 容器如何查看正在运行容器的端口映射

    1 查看docker容器的版本 root 64 opt docker version Docker version 19 03 5 build 633a0ea 2 查看正在运行的容器 root 64 opt docker ps CONTAI
  • docker退出关闭容器

    可以使用 docker stop 来终止一个运行中的容器 此外 xff0c 当Docker容器中指定的应用终结时 xff0c 容器也自动终止 例如对于上一章节中只启动了一个终端的容器 xff0c 用户通过 exit 命令或 Ctrl 43
  • STM32收入高也好找工作,所以我学嵌入式linux终究是错付了吗

    STM32收入高也好找工作 xff0c 所以我学嵌入式linux终究是错付了吗 经常有同学纠结问我 xff1a 我到底是学STM32还是学嵌入式linux 这个问题很多人都会有自己的看法 xff0c 今天我试着从多个角度 xff0c 把了解
  • Java面试基础篇

    Java面试基础篇 基础总结 博客链接导航 Java语言基础常识 https blog csdn net article details 88531257 J2EE基础知识 https blog csdn net article detai
  • 项目实战-外卖自提柜 3. FreeRTOS主要API的应用

    项目实战 外卖自提柜 1 项目介绍 协议制定 项目实战 外卖自提柜 2 CubeMX 43 FreeRTOS入门 项目实战 外卖自提柜 3 FreeRTOS主要API的应用 项目实战 外卖自提柜 4 FreeRTOS 堆栈分配 调试技巧 项
  • [Spring] IntelliJ IDEA 新建工程时没有Spring选项的解决方法

    Spring IntelliJ IDEA 新建工程时没有Spring选项的解决方法 专业版 xff08 ultimate xff09 社区版 xff08 community xff09 刚开始学习Java Spring框架 xff0c 也是
  • MySQL下载与安装教程(超详细)

    一 MySQL下载 下载地址 xff1a https dev mysql com downloads mysql 根据自己需要下载对应的版本 xff0c 我下载的是mysql 5 7 31 二 MySQL安装教程 1 解压安装包 下载后得到
  • docker 开发编译环境搭建

    参与docker开源社区 xff0c 成为docker项目的contributor xff0c 首先要搭建docker的开发编译环境 xff0c 下面是docker官网介绍的编译环境的搭建 xff0c 这里做个笔记 docker的编译环境准

随机推荐

  • qt基础入门教程

    1 t的介绍 优点 成功案例 5 8 0 Qt是一个跨平台的C 43 43 图形用户界面应用程序框架 它为应用程序开发者提供建立艺术级图形界面所需的所有功能 爸是完全面向对象的 xff0c 很容易扩展 xff0c 并且允许真正的组件编程 推
  • Java开发自学教程!japonensisjava东莞

    三大内容 xff1a Java并发编程Java高并发编程高并发系统设计 Java并发编程 1 概览 2 进程与线程 3 Java 线程 4 共享模型之管程 5 共享模型之内存 6 共享模型之无锁 7 共享模型之不可变 8 共享模型之工具 并
  • MySQL 5.7 安装教程(全步骤、保姆级教程)

    2022年05月30日更新 本文介绍的是只安装MySQL数据库的过程 xff0c 并不包含各种其他附加工具 安装完成之后通常使用Navicat或SQLyog进行可视化操作 清华的镜像网站只保存最新的几个MySQL版本 xff0c 所以直链可
  • 手把手教你如何Vue项目打包dist文件并Tomcat发布【超级详细】

    作者 xff1a bug菌 博客 xff1a CSDN 掘金等 公众号 xff1a 猿圈奇妙屋 特别声明 xff1a 原创不易 xff0c 转载请附上原文出处链接和本文声明 xff0c 谢谢配合 版权声明 xff1a 文章里可能部分文字或者
  • node 14.19.0 版本成功解决:安装 node-sass 和 sass-loader 的过程及各 node 版本对应的 node-sass 版本号

    1 node 版本 node sass 版本及 sass loader 版本查看 xff1a 其一 我的 node 版本查看 xff1a 在命令行输入查询命令 xff1a node v 我的 node 版本为 xff1a v14 19 0
  • Shiro反序列化漏洞【详细解析】

    Shiro是什么东西 Shiro 是 Java 的一个安全框架 xff0c 执行身份验证 授权 密码 会话管理shiro默认使用了CookieRememberMeManager xff0c 其处理cookie的流程是 xff1a 得到rem
  • Go语言面试题

    1 Go有哪些数据类型 f 2 方法与函数的区别 在Go语言中 xff0c 函数和方法不太一样 xff0c 有明确的概念区分 xff1b 函数是指不属于任何结构体 类型的方法 xff0c 也就是说函数是没有接收者的 xff1b 而方法是有接
  • 项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧

    项目实战 外卖自提柜 1 项目介绍 协议制定 项目实战 外卖自提柜 2 CubeMX 43 FreeRTOS入门 项目实战 外卖自提柜 3 FreeRTOS主要API的应用 项目实战 外卖自提柜 4 FreeRTOS 堆栈分配 调试技巧 项
  • ubuntu中关于通过编辑.bashrc文件修改提示符的简单过程

    这两天在看关于shell变量的一些内容 xff0c 突然有个想法 xff0c 就是修改下自己终端的提示符 记得先前的提示符应该是 xff1a wjl 64 wjl desktop 使用wjl账户在 home wjl目录下 root 64 w
  • MySQL高级篇知识点——索引优化与查询优化

    目录 1 数据准备 1 1 建库建表1 2 创建相关函数1 3 创建存储过程1 4 调用存储过程1 5 删除某表上的索引 2 索引失效案例 2 1 全值匹配2 2 最佳左前缀匹配原则2 3 主键插入顺序2 4 计算 函数 类型转换 xff0
  • Vue路由&&无痕浏览 - nodeJs环境搭建

    目录 一 Vue路由 1 1 路由的使用步骤 1 2 无痕浏览 二 nodeJs环境搭建 2 1 Node js是什么 2 2 配置NodeJS环境 2 3 下载github的Vue项目 一 Vue路由 1 1 路由的使用步骤
  • Docker的数据管理和端口映射实现容器访问

    Docker的数据管理 存储资源类型 在使用Docker的过程中 xff0c 需要查看容器内应用产生的数据 xff0c 或者需要将容器内数据进行备份 xff0c 甚至需要多个容器之间进行数据共享时 xff0c 势必会设计到容器的数据管理 x
  • 爬取CSDN专栏文章到本地,并保存为html、pdf、md格式

    前言 突然想爬取CSDN的专栏文章到本地保存了 xff0c 为了影响小一点 xff0c 特地挑选CSDN的首页进行展示 综合资讯这一测试点是什么找到的呢 xff1f 就是点击下图的热点文章 xff0c 然后跳转到具体文章 xff0c 然后再
  • Docker-desktop(Docker桌面版)——入门篇

    前言 本章内容主要涉及内容 xff1a 在Windows10系统下进行安装和简单使用 Docker desktop Docker桌面版 如果你是docker初学者 xff0c 或者压根就不知道docker是什么 xff0c 那你一定要先知道
  • Docker安装以及修改Docker的默认存储路径

    文章目录 1 Docker安装 1 1 使用官方安装脚本自动安装1 2 建立 docker 用户组1 3 卸载 docker 2 修改Docker的默认存储路径 1 Docker安装 1 1 使用官方安装脚本自动安装 curl fsSL h
  • Docker 快速删除所有容器、镜像

    Docker 快速删除所有容器 镜像 废话不多说先上命令 1 删除全部容器 如果容器已经全部停止的话可以这样使用 docker rm docker ps aq 2 停止并删除全部容器 如果不想挨个去停用容器 xff0c 可以使用这条命令 d
  • Docker 创建docker用户组,应用用户加入docker组

    1 创建docker用户组 sudo groupadd docker 2 应用用户加入docker用户组 sudo usermod aG docker USER 3 重启docker服务 sudo systemctl restart doc
  • 【Docker创建指定版本rabbitMq镜像和容器】

    1 下载镜像 鼠标右键点击 开始 运行 Windows Powershell 管理员 xff0c 命令 xff08 rabbitmq版本3 6 6 xff09 xff1a docker pull rabbitmq 3 6 6 managem
  • 【计算机视觉】OpenCV实现单目相机标定

    文章目录 单目相机标定 基于Python OpenCV 1 上期填坑2 单目相机标定 2 1 数据采集2 2 角点提取2 3 参数求解2 4 参数评估 重投影误差 2 5 相机位姿 棋盘位姿 可视化2 6 同Matlab标定结果比较 单目相
  • 项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理

    项目实战 外卖自提柜 1 项目介绍 协议制定 项目实战 外卖自提柜 2 CubeMX 43 FreeRTOS入门 项目实战 外卖自提柜 3 FreeRTOS主要API的应用 项目实战 外卖自提柜 4 FreeRTOS 堆栈分配 调试技巧 项