项目实战-外卖自提柜 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绘制、测试视频)

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

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

  • keil5编译错误error: #5: cannot open source input file “core_cm3.h“: No such file or directory

    用Keil vision5编译时出现 xff1a error 5 cannot open source input file core cm3 h No such file or directory 可能是MDK版本太新了 xff0c 我装
  • IPv6基础详解

    IPv6 由于internet规模的扩大 xff0c IPv4地址空间已经消耗殆尽 xff0c IETF在90年代提出了下一代互联网协议IPv6 xff0c IPv6支持几乎无限的地址空间 xff0c 并且配置更加简单 xff0c IPv6
  • Pycharm中debug使用学习

    1 运行环境 1 1 运行 xff1a 先确认项目运行环境 点击右下角python查看 向任务中添加环境 xff0c 一般加入anaconda的环境 xff0c 配置方便 切换到自己所需环境 添加运行环境 初次搭建 xff0c 哔哩哔哩中新
  • 对项目的梳理、流程和总结

    过程 我在制作 中国汽车技术研究中心 的一个演讲PPT前 xff0c 也已经有第一版的基础了 xff0c 不过 xff0c 第一版的PPT客户并不满意 xff0c 因为这个风格不是客户想要的 xff0c 所以客户对第一版的PPT并不是很满意
  • 【ROS】xxx is neither a launch file in package xxx nor is xxx a launch file name……解决

    在ros中新增加一个功能包时 xff0c 如果没有处理得当的话 xff0c 在执行时很有可能报如下错误 xff1a xxx is neither a launch file in package xxx nor is xxx a launc
  • FreeRTOS——流和消息缓冲区

    FreeRTOS 基础系列文章 基本对象 FreeRTOS 任务 FreeRTOS 队列 FreeRTOS 信号量 FreeRTOS 互斥量 FreeRTOS 任务通知 FreeRTOS 流和消息缓冲区 FreeRTOS 软件定时器 Fre
  • FreeRTOS——静态与动态内存分配

    FreeRTOS 基础系列文章 基本对象 FreeRTOS 任务 FreeRTOS 队列 FreeRTOS 信号量 FreeRTOS 互斥量 FreeRTOS 任务通知 FreeRTOS 流和消息缓冲区 FreeRTOS 软件定时器 Fre
  • CAS 6.5.5项目初始化搭建运行

    一 项目背景介绍 公司项目重构 xff0c 决定使用CAS中央认证系统 在GitHub上找到最新的稳定版本6 5 5 CAS项目在5 x版本的运行环境是jdk8 xff0c 使用maven做的项目管理 6 x使用的是jdk11作为运行环境
  • GoogleTest中gMock的使用

    GoogleTest中的gMock是一个库 xff0c 用于创建mock类并使用它们 当你编写原型或测试 prototype or test 时 xff0c 完全依赖真实对象通常是不可行或不明智的 not feasible or wise
  • 基于Autoware制作高精地图(一)

    基于Autoware制作高精地图 xff08 一 xff09 开始进入正题 xff0c 也是最近在忙的一件事 xff0c 制作高精地图 高精地图的制作大概分为以下四个流程 xff08 不一定完全正确 xff09 xff1a 1 构建点云地图
  • Ubuntu sh文件编写,开多终端,自动读取密码

    Ubuntu sh文件编写 xff0c 开多终端 xff0c 自动读取密码 开启多个终端自动读取密码 在最近的项目调试中经常需要开多个终端启动多个launch xff0c 这样的操作多了难免会感到烦躁并且时间一长再回去使用一些功能包的时候就
  • 控制理论——自动控制原理若干概念

    1 对自动控制系统的基本要求 稳定性 被控量因扰动偏离期望值后 xff0c 经过过渡过程可以恢复到原来的期望值状态 快速性 包含两方面 xff1a 过渡过程的时间 最大超调量 xff08 震荡幅度 xff09 准确性 指稳态误差 xff1a
  • Optitrack下通过mavros实现offbord控制

    参考文章 xff1a 树莓派通过MAVROS与Pixhawk PX4通信 PX4使用Optitrack进行室内定位 通过optitrack与妙算连接在同一局域网下 xff0c 关闭防火墙 xff0c 并设置刚体发布 vrpn安装 cd ca
  • 【场景图生成】Unbiased Scene Graph Generation from Biased Training

    文章下载地址 xff1a https arxiv org pdf 2002 11949 pdf 代码地址 xff1a GitHub KaihuaTang Scene Graph Benchmark pytorch 发表地点 xff1a CV
  • 【场景图生成】Graphical Contrastive Losses for Scene Graph Parsing

    文章下载地址 xff1a Graphical Contrastive Losses for Scene Graph Parsing 代码地址 xff1a https github com NVIDIA ContrastiveLosses4V
  • jquery无法获取到textarea中的值详解

    问题描述 xff1a 今天在springboot中jquery读取前端的值通过jquery打包为json传入后端 xff0c 发现其中textarea区域中的内容无法获取 解决办法 xff1a 首先看你的textarea中是否有 name属
  • 阿里云大学——Java语言基础自测考试 - 初级难度

    1 假设有如下程序 xff1a span class token keyword public span span class token keyword class span span class token class name Dem
  • could not transfer artifact org.springframework.boot:spring-boot-starter-parent

    Springboot异常 could not transfer artifact org springframework boot spring boot starter parent pom 2 3 0 RELEASE from to c
  • 阿里云ECS搭建个人简历网站

    能在自己的网站上搭建简历是不是很酷 xff0c 今天我就教大家如何在自己的服务器上搭建一个个人简历网站 因为主流网站的搭站环境是LAMP环境 xff0c 所以第一步就是先去把服务器环境 一 修改为LAMP环境 停止ECS实例运行 点击使用就
  • GitHub加速神器FastGithub的使用

    clone GitHub上的项目时经常超时 pull或push的时候也有类似情况 有时GitHub也打不开 xff0c 这里推荐GitHub上的一个工具FastGithub xff0c 开启它后 xff0c 可大大减少超时情况的发生 这里介

随机推荐