美文网首页思科DevNetIoT-Arduino
ESP8266&网络调试助手控制开发板LED灯

ESP8266&网络调试助手控制开发板LED灯

作者: 你的优先级最高 | 来源:发表于2018-01-02 17:24 被阅读47次

    一、需要的硬件支持:

           开发板(本人使用的是中国移动的 麒麟座开发板(免费申领),非常感谢onenet给了我这么好的学习机会),LED灯,ESP8266 WiFi模块,USB转ttl ( 开发板上自带有可以不需要 )、、、、、、

    二、设置网络调试助手

    网络调试助手配置.png

           根据配置好的服务器信息,我们使用ESP8266进行连接就可以了(当然其他的WiFi模块或者GSM模块都是可行的),连接上了之后我们可以直接双向传输数据;
           调试助手比较方便,我们可以简单完成创建服务器的工作,但是这些都是别人弄好的,有些功能没法实现我们自己想要达到的目的,因此我们可以自己建立一个服务器,用python都是可行的;过几天我会使用python来建立调试其他的功能。

    三、查看发送的数据格式

    1、ESP8266---->网络调试助手:

    数据显示.png

    这里数据显示没法显示字符,估计与固件有关,在这里我就不进行更改了,因为这个用其他产品之后就能正常发送,就我个人而言就不用过多考虑。

    2、网络调试助手----->ESP8266

    发送数据.png

           然后ESP8266传输给单片机的是: +IPD,9:blueled,1# ;我仅仅需要的信息是:”blueled”“1” , “#”,我的想法相对简单,感觉有点拿不出手。” blueled”表示蓝色LED灯;”1”表示LED灯亮;”#”表示发送数据的结尾。数据格式没多难,仅仅只加了个结束位而已。

    1. 关键定义:
    u8 Led[][10] = {"redled","greenled","yellowled","blueled","beep"};
    
    1. 数据接收:
    _Bool GetServelFlag = 0;//接收到服务器传过来数据的结束标志位
    u8 EndNum = 0;
    void USART2_IRQHandler(void)
    {
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断
        {
            if(esp8266_cnt >= sizeof(esp8266_buf))  
              esp8266_cnt = 0; //防止串口被刷爆
            esp8266_buf[esp8266_cnt++] = USART2->DR;
            EndNum = esp8266_cnt-1;//得到 # 的位置
            if(esp8266_buf[EndNum]=='#')
                GetServelFlag = 1;//说明我们想要的数据已经全部接收完毕
            USART_ClearFlag(USART2, USART_FLAG_RXNE);
        }
    }
    
    1. 数据解析:
    if(GetServelFlag==1)
     {
        GetServelFlag = 0;
        UsartPrintf(USART_DEBUG, esp8266_buf);
        for(i=0;i<5;i++)
        {
            if(strstr((char *)esp8266_buf,Led[i])) //匹配关键字
            {
                UsartPrintf(USART_DEBUG, "OK!");//串口调试使用
                switch(i)
                {
                    case 0:Led4_Set(esp8266_buf[EndNum-1]-'0');break;
                    case 1:Led5_Set(esp8266_buf[EndNum-1]-'0');break;
                    case 2:Led6_Set(esp8266_buf[EndNum-1]-'0');break;
                    case 3:Led7_Set(esp8266_buf[EndNum-1]-'0');break;
                    case 4:Beep_Set(esp8266_buf[EndNum-1]-'0');break;
                }   
                break;//达到目的退出
            }
        }       
    }   
    

           得到我们想要的数据之后,便可以控制开发板灯的亮灭;简单的物联网差不多就是这样的一种方式吧。慢慢成长吧!

    续、、、、、、(2017、12、29)
    (今天来用 MarkDown 来编写)

    相关文章

      网友评论

        本文标题:ESP8266&网络调试助手控制开发板LED灯

        本文链接:https://www.haomeiwen.com/subject/xpkqnxtx.html