ESP8266物联网远距离控制实现

ESP8266物联网远距离控制实现

转载请注明出处!

重要的事情放在前面源码在GitHub上面欢迎issue,如果可以的话Star一下也是表示对作者的支持,有很多不足,希望可以得到指教。

https://github.com/yesbutter/ESP8266-Data-Transmission

  不多说废话,开门见山。实现功能。单片机通过轮询查询服务器端的指定文件夹
下的内容,在显示屏上显示。手机端可以发送消息到服务器端来实现更改显示屏的
内容。
  实际扩展可以实现手机端和单片机进行远程通信。理论上只需要有网络就可以实
现联系手机端发送消息到服务器,实际实现方式:服务器发送信息给单片机,单片
机返回信息给服务器,并将服务器返回的信息给手机。
  心里路程,寒假接触了stm32,esp8266。没有实际去使用,加入的嵌入式要做结
营作品。就准备摸索一下ESP8266实现远距离控制。然后就在考完4级之后去学习做
这个通信。

工具

  • Android studio
  • Keil5
  • STM32开发板
  • ESP8266WIFI模块
  • 网络调试工具,串口调试工具
  • Eclipse
遇到的坑:
  1.单片机调试的时候没能清楚理解单片机程序发送的信息在那里显示。单片机发送消
息给网络的代码是导致调试了很久。
  2.单片机和服务器通信的时候,当单片机发送AT+CIPMODE=1和AT+CIPSEND需要服务
器返回信息OK
  3.寻找单片机接受服务器的消息的代码,实际ESP8266打开了USART2串口,然后根据
返回信息进行判断,额外加了一个代码判断返回信息的标志。加了一个标志位即当读
到'\n'就认为是结束。
        if(ucCh=='\n')
        {
            ESP8266_Fram_Record_Struct .InfBit .FramFinishFlag = 1;
        }
4.服务器端的代码确保能打开端口,实现端口通信。如果不太懂可以打开防火墙,要
是被自己的防火墙给墙了也是一种极好的体验。
开发过程:
  第一天:实现单片机和网络调试工具通信,通过网络调试工具发送信息给单片机。
  第二天:继续做第一天任务,寻找服务器代码实现,学习之后实现自己的功能,实
现了服务器和单片机通信。
  第三天:编写Android 移动程序实现和服务器的通信,继续编写服务器代码实现数
据通信。
  第四天:收尾工作,写代码,写历程。emm该爬去复习了。溜了

ESP8266AT指令

  • ESP8266初始化设置通信波特率。
  • 1.发送AT指令看是否收到OK,没有就重启ESP8266
  • 2.发送AT+CWMODE=1,设置工作模式为station,直到设置成功
  • 3.AT+CWJAP=”你的WiFi名字”,”你的WiFi密码”,直到加入成功
  • 4.发送AT+CIPMUX=0,设置禁止多连接模式
  • 5.发送AT+CIPSTART=”TCP”,”192.168.1.111”,8080。表示去连连接192.168.1.111 的8080端口
  • 6.发送AT+CIPMODE=1设置进入透传模式,响应为��。
  • 7.发送AT+CIPSEND表示发送数据,等待服务器返回信息。
    数据显示
//回想代码:
//KEIL STM32 
int main()
{
    SysTick_Init(72);
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组
    LED_Init();//LED灯初始化
    USART1_Init(115200);//串口1初始化
    ESP8266_Init(115200);//ESP8266初始化
    ESP8266_STA_TCPClient_Test();//主函数          
}

//主要函数
void ESP8266_STA_TCPClient_Test(void)
{
    char str[100]= {
  0};
    TFTLCD_Init();          //TFT屏幕初始化
    ESP8266_CH_PD_Pin_SetH;//设置高电平
    ESP8266_AT_Test();//ESP8266初始化
    ESP8266_Net_Mode_Choose(STA);//设置工作模式staion
    while(!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD));//加入WIFI
    ESP8266_Enable_MultipleId ( DISABLE );//设置为单连接模式
    while(!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT, Single_ID_0));//连接通信服务器的ip和端口
    while(!ESP8266_UnvarnishSend());//发送数据测试 
    while ( 1 )
    {
        while(!ESP8266_UnvarnishSend());//发送数据测试
        if(ESP8266_Fram_Record_Struct .InfBit .FramFinishFlag)//判断是否有数据接收       
        {
            USART_ITConfig ( USART2, USART_IT_RXNE, DISABLE ); //关闭串口2通信
            ESP8266_Fram_Record_Struct .Data_RX_BUF [ ESP8266_Fram_Record_Struct .InfBit .FramLength ]  = &
  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值