基于51单片机+ESP8266WiFi模块的网络TCP通信(控制LED亮灭)
一、准备
硬件:一块51单片机开发板、一个ESP8266-01S WiFi模块、USB-TTL转串口;
软件:Keil 单片机编程软件、安信可串口调试助手、网络助手;
基础知识:C语言、单片机串口通信基础 、ESP8266AT指令集;
- AT指令使用事项
其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个
字符的长度(包括最后的空字符)。
每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response
响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。 - USB转TTL测试esp8266
接线说明
USB转TTL模块 ESP8266
RX TX
TX RX
GND GND
3.3V 3.3V
上电后通过串口助手发送指令AT,若返回OK,则通信及模块功能正常。接下依次发送下列指令:
配置串口波特率: AT+UART=9600,8,1,0,0
连接WiFi:AT+CWJAP="WIFI名","密码"
连接TCP服务器:AT+CIPSTART="TCP","192.168.1.110",8080
开启透传模式:AT+CIPMODE=1
发送数据:AT+CIPSEND
二、单片来发送指令联网
ESP8266与51单片机的连接
51单片机 esp8266
VCC 3.3V
RX TX
TX RX
GND GND
-
代码结构
数据类型定义
AT指令封装
延时函数
串口初始化
发送函数
main函数
串口中断服务函数 -
头文件的引用和变量的定义``
- AT指令的封装
- 延时函数
- 串口配置
WiFi模块和单片机配置在同一波特率下进行通信
发送字符和字符串函数封装
1个8位寄存器SBUF作为数据缓存
- 主函数
- 中断处理函数
服务器连接成功ALL Connections括号里的0会变成1。
在TCP服务器端发送open、close命令就会通过WiFi模块发送到串口,单片机读取到指令变灰点亮或熄灭LED。
三、小结
WiFi模块联网代码还可以优化,延时函数使用太多,可以用一个标志位判断WiFi模块是否联网成功,成功则进行下一步。
WiFi模块使用过程中需注意,vcc最好接3.3v,当我接5v是模块发烫严重,第一个模块就这样烧了。
__EOF__

本文链接:https://www.cnblogs.com/xiaohuzaixue/p/16705214.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界