ESP8266远程控制:实现网络通信与设备控制

概述:

最近一直在弄esp8266的网络通信,但是一直都还没搞懂到底esp8266可不可以通过连接一个网络过后,在很远的地方使用网络将其关掉

在网上找了两个教程都有程序,都跑通了

第一个

第二个找不到了,但是程序有

CSDN上放文件好像你们取不了,三连私聊找我取也可以

下面是获取资料的途径和开发工具的途径: https://docs.ai-thinker.com/esp8266

https://docs.ai-thinker.com/tools

有一篇文章提到:http://tcp.doit.am/

这个网站,你们可以打开看看,有一个网址是115开头的,这个IP地址的意思是你在给你esp8266写入AT指令时写入服务器的IP地址,也就是说,写入后,你的esp8266就连上的公用的IP只不过和别人使用的通道可能不同(还必须连一个网络才可以),然后你的手机端就可以通过输入信息到这个IP和通道就可以让esp8266接收信息了

ESP8266远程控制:实现网络通信与设备控制

一、背景与目标

在物联网项目中,远程控制设备是一个常见的需求。ESP8266作为一种低功耗、高性能的WiFi模块,被广泛应用于各种远程控制场景。本文将探讨如何通过ESP8266实现远程控制功能,特别是如何在连接到网络后,通过网络指令远程关闭设备。

二、实现远程控制的方案

(一)硬件与网络基础

ESP8266模块通过WiFi连接到网络,可以接收来自网络的指令来控制设备。为了实现远程控制,需要以下硬件和网络基础:

  • ESP8266模块:用于连接WiFi网络并接收控制指令。
  • 稳定的WiFi网络:ESP8266需要连接到一个可访问互联网的WiFi网络。
  • 云平台或服务器:用于转发控制指令到ESP8266模块。

(二)云平台的选择

在实现远程控制时,选择一个可靠的云平台至关重要。云平台的作用是作为中间人,转发手机或电脑发送的指令到ESP8266模块。Doit.am远程信息转发服务是一个不错的选择,它提供了简单的使用步骤和稳定的转发服务。

(三)编程实现

1. 连接到WiFi网络

首先,需要让ESP8266连接到一个WiFi网络。这可以通过发送AT指令AT+CWJAP来实现,指定WiFi的名称和密码。

c 复制代码
char c[]="AT+CWJAP=\"WIFI名称\",\"WIFI密码\"";
esp8266_send_cmd1((u8 *)c);
2. 建立TCP连接

连接到WiFi后,需要建立一个TCP连接到云平台提供的服务器。使用AT+CIPSTART命令来建立连接,指定服务器的IP地址和端口号。

c 复制代码
char e[]="AT+CIPSTART=0,\"TCP\",\"IP地址\",端口号";
esp8266_send_cmd1((u8 *)e);
3. 接收与处理控制指令

一旦TCP连接建立,ESP8266就可以接收来自云平台转发的控制指令。通过串口接收中断服务函数,可以实时接收并处理这些指令。

c 复制代码
void USART3_IRQHandler(void)
{
    u8 res;
    if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据
    {
        res =USART_ReceiveData(USART3);
        if(res != 'A')                     //以'A'为结束位,收到'A'表示一次接收消息完成
        {
            if((USART3_RX_STA&(1<<15))==0)//接收完的一批数据,还没有被处理,则不再接收其他数据
            {
                USART3_RX_BUF[USART3_RX_STA++]=res;	//记录接收到的值
            }
            else
            {
                USART3_RX_STA|=1<<15;				//没有收到结束符'A',收到的字节数>=0x80,强制标记接收完成
            }
        }
        else
        {
            USART3_RX_STA|=1<<15;				//接收消息完成
        }
    }
}

在主函数中,根据接收到的指令控制设备。例如,收到"on"指令时打开LED,收到"off"指令时关闭LED。

c 复制代码
int main(void)
{
    USART_Config();
    delay_init();
    LED_Init();

    usart3_init(115200);

    esp8266_start_trans();

    printf("初始化完成\n");

    USART3_RX_STA=0;
    while(1)
    {
        if(USART3_RX_STA&0x8000)   //如果消息接收完成,则处理
        {
            if(strstr((const char*)USART3_RX_BUF,"on"))  //这里是看接收到的消息中有没有自己设置的命令"on"
            {
                GPIO_ResetBits(GPIOC,GPIO_Pin_13);
            }
            if(strstr((const char*)USART3_RX_BUF,"off"))
            {
                GPIO_SetBits(GPIOC,GPIO_Pin_13);
            }
            USART3_RX_STA=0;    //消息处理完成,开始重新接收
            memset(USART3_RX_BUF,0,600);         //将接收区清0
        }
    }
}

(四)开发工具与资源

为了方便开发,可以使用以下工具和资源:

  • SDK一体化开发环境 :支持ESP32和ESP8266的开发,可以从安信可科技获取。
  • 烧录工具 :用于烧录WiFi固件,可以从安信可科技下载。
  • 串口调试助手 :用于调试串口通信,可以从安信可科技获取。

三、测试与验证

(一)测试环境搭建

  1. 连接ESP8266到WiFi网络:确保ESP8266能够成功连接到指定的WiFi网络。
  2. 建立TCP连接:使用云平台提供的IP地址和端口号,建立TCP连接。
  3. 发送控制指令:通过手机或电脑端的网络调试助手,发送控制指令到ESP8266。

(二)测试结果

通过测试,验证了ESP8266模块可以成功连接到WiFi网络,并通过云平台接收来自手机或电脑的控制指令。当发送"on"指令时,LED灯亮起;发送"off"指令时,LED灯熄灭。


如果需要手机端或者电脑端网络调试软件的可以三连支持一下,私信我获取

使用ESP8266模块连接到一个特定的TCP服务器,这个服务器是由http://tcp.doit.am/提供的远程信息转发服务。

使用AT+CIPSTART命令用于建立一个TCP或UDP连接。

c 复制代码
AT+CIPSTART=<id>,"<type>","<ip_addr>",<port>

使用这个特定的IP和端口可以确保您的ESP8266模块能够连接到这个公共服务器,并与其他客户端进行通信。

如果你想要用APP或者网页来控制你的esp8266,你需要创建一个自己的IP

这是我自己做的一个网页

如果需要这个网页可以私信我获取

通过这个网页向esp8266发送请求对IO口进行控制拉高或者拉低

四、总结与展望

本文介绍了如何使用ESP8266模块实现远程控制功能。通过连接到WiFi网络和云平台,ESP8266可以接收来自网络的控制指令,并根据指令控制设备。未来,可以进一步优化控制逻辑,增加更多的控制功能,如温度监控、湿度监控等,以满足更多的应用场景需求。


如果您需要获取相关代码或进一步的帮助,可以通过私信联系我。

相关推荐
前端码虫7 分钟前
JS分支和循环
开发语言·前端·javascript
GISer_Jing9 分钟前
MonitorSDK_性能监控(从Web Vital性能指标、PerformanceObserver API和具体代码实现)
开发语言·前端·javascript
岸边的风16 分钟前
JavaScript篇:JS事件冒泡:别让点击事件‘传染’!
开发语言·前端·javascript
bubiyoushang8882 小时前
matlab雷达定位仿真
开发语言·matlab
promising-w2 小时前
【stm32开发板】单片机最小系统原理图设计
stm32·单片机·嵌入式硬件
韩立 •2 小时前
GD32F103系列工程模版创建记录
stm32·单片机·嵌入式硬件
真的想上岸啊2 小时前
学习STC51单片机22(芯片为STC89C52RCRC)
单片机·嵌入式硬件·学习
yezipi耶不耶3 小时前
Rust入门之并发编程基础(一)
开发语言·后端·rust
电子科技圈4 小时前
芯科科技推出首批第三代无线开发平台SoC,高度集成的解决方案推动下一波物联网实现突破
嵌入式硬件·mcu·物联网·网络安全·智能家居·智能硬件·iot
DIY机器人工房4 小时前
[9-2] USART串口外设 江协科技学习笔记(9个知识点)
笔记·科技·stm32·单片机·学习·江协科技