• 单片机根据应答发送AT指令控制ESP8266设置为服务器—AP模式


    单片机根据应答发送AT指令控制ESP8266(AP模式)

    在明白了串口发送AT指令控制ESP8266设置为AP模式并用客户端连接通信后,将手动发送AT指令控制ESP8266的活交给单片机来做,程序跟之前设置Station模式差不多,只是AT指令和应答判断稍有不同

    (若不明白设置ESP8266为AP模式可参考文章:https://blog.csdn.net/weixin_46251230/article/details/126217770)

    1.编写好代码后,把程序烧录到单片机中,也是使用之前分线的测试方法,能清晰看到单片机AT指令的发送情况,同时也能看到ESP8266的应答信息

    在这里插入图片描述

    2.接线接好后,ESP8266上电,单片机上电,可通过安信可串口助手看到指令发送和应答信息

    AT+CWMODE=2			//设置为AP模式
    OK
    AT+CIPMUX=1			//设置为多连接
    OK
    AT+CIPSERVER=1		//开启多连接后,才能建立TCP server
    OK
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    void main()
    {
    	Uart_Init();
    	//初始化之后延时1秒让ESP8266输出初始化信息
    	Delay1ms(1000);			
    	
    	//设置成双模
    	Uart_SendString(CWMODE);
    	while(!AT_OK_Flag);
    	AT_OK_Flag = 0;
    	
    	//开启多连接
    	Uart_SendString(CIPMUX);
    	while(!AT_OK_Flag);
    	AT_OK_Flag = 0;
    	
    	//建立TCP Server
    	Uart_SendString(CIPSERVER);
    	while(!AT_OK_Flag);
    	
    	//客户端连接上来
    	while(!Client_Connect_Flag);
    	AT_OK_Flag = 0;
    	
    	if(Client_Connect_Flag)
    	{
    		LED1 = 0;		//灯亮表示客户端连接成功
    		LED2 = 0;
    	}
    	
    	while(1)
    	{
    		Uart_SendString(CIPSEND);
    		Delay1ms(2000);
    		Uart_SendString("hello");
    		Delay1ms(2000);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    但信息卡在最后一个OK应答后就不再显示了,说明建立TCP Server后,单片机在等待客户端的连接,卡死在了while循环里面,此时要打开网络调试助手(电脑提前连接好ESP8266的WIFI),选择客户端模式,选择与ESP8266同一个网段的主机地址,服务器端口默认333,

    在这里插入图片描述

    点击连接按钮,连接上服务器(ESP8266),则安信可助手中可看到"0,CONNECT"的应答信息,说明客户端连接上来了,单片机获取到了连接标志,跳出了循环,继续向下执行

    3.发送数据,单片机先发送AT指令AT+CIPSEND=0,5,说明要向通道0发送5个字符的数据,ESP8266应答OK,则单片机便把字符串“hello”发送给ESP8266,ESP8266再通过网络传给客户端,可在网络调试助手(客户端)看到ESP8266(服务器)发来的数据“hello”,如果想继续发送,则要再次输入AT指令AT+CIPSEND=0,5,然后发送数据(注意:这样是服务器向客户端发送数据

    在这里插入图片描述

    在这里插入图片描述

    4.如果客户端想向服务器发送数据,则直接在网络调试助手的发送区发送数据即可,可无限发送

    在这里插入图片描述

    ESP8266接收到客户端的信息后,经过分线,一根传到了电脑助手上查看,另一根传到单片机RX上

    在这里插入图片描述

    5.最后可以实现客户端发送 op 和 cl 特殊字符串控制单片机的LED开启和关闭,只需在程序的串口中断函数中判断接收的字符串是否是开关灯指令,是就对LED灯进行开关操作,一个简单的通过网络点灯的实验就完成了,只要连接到局域网,都能通过网络与单片机通信,从而控制单片机

  • 相关阅读:
    冒泡排序与快速排序
    如何用蓝牙实现无线定位(五)--双定位显示
    Elasticsearch优化
    从.net开发做到云原生运维(二)——.net core生态
    基础知识笔记:协程基础元素
    Web of science,scopus,Google scholar的介绍和区别
    Python之人机猜拳游戏
    【23-24 秋学期】NNDL 作业3
    ant design form数组修改 关联展示
    什么是内存泄漏,为什么threadlocal会造成内存泄漏?
  • 原文地址:https://blog.csdn.net/weixin_46251230/article/details/126244615