久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10838|回復: 8
收起左側

ESP8266云連接控制程序

  [復制鏈接]
ID:114320 發表于 2016-5-8 03:14 | 顯示全部樓層 |閱讀模式
        即便不那么懂單片機,按照操作步驟,也可以在地球任何可以上網的地方,控制家里想要控制的東東啦。ESP8266和單片機IAP15W4K58S4是通過串口通信的,除了電源就兩根線……

/************************************************************************************
Copyright,  LCE STUDIO   
程序名稱:ESP8266 云連接控制程序(18.432MHz)
功能說明: 該程序將ESP8266設置為STATION工作模式,并通過家用wifi熱點云服務器建立連接,
                                        手機APP通過注冊后并關聯該ESP8266模塊,通過互聯網發送關燈與開燈的指令,
                                         單片機解析后執行
                                        串口1波特率為9600,用于后臺監控
                                        串口2波特率為115200,用于與ESP8266模塊進行通信
程序版本:1.0 (2015/09)
************************************************************************************/


#include "stc15f2k60s2.h"            // 單片機STC15F2K60S2頭文件,可以不再加入reg51.h
#include <intrins.h>                                        // 加入此頭文件后,可使用_nop_庫函數
#include "delay.h"                        // 延時函數頭文件
#include "uart.h"                                // 串行通信函數頭文件
#include <string.h>           // 加入此頭文件后,可使用strstr庫函數

sbit RST = P2^6;
sbit LED1 = P5^0;
sbit LED2 = P5^1;
sbit LED3 = P5^2;

#define Buf_Max 50

unsigned char xdata Rec_Buf[Buf_Max];
unsigned char i = 0;   
void CLR_Buf(void);                                   
bit  Hand(unsigned char *a);         





char code str1[]="AT\r\n";                                                        //  聯機指令,返回"OK"
char code str2[]="AT+CWMODE=1\r\n";                                               //  設置ESP8266的工作模式,返回"OK"或者"no change"
char code str3[]="AT+CWJAP=\"WiFi362\",\"1234567890\"\r\n";                                   //  連接到WiFi熱點,lces為熱點名稱,88518851為密碼;連接成功返回“OK”     
char code str4[]="AT+CIFSR\r\n";                                             //         本機IP地址查詢指令
char code str5[]="AT+CIPSTART=\"TCP\",\"192.168.191.1\",8234\r\n";    //  連接到TCP服務器,返回“Linked”
char code str6[]="AT+CIPSEND=6\r\n";                                                                                                                             //  發送數據指令
char code str7[]="hello!\r\n";                                                                                                                                                           //  數據內容
char code AT_CLDSTART[]="AT+CLDSTART\r\n";
char code AT_SMARTLINK[]="AT+CWSMARTSTART=1\r\n";
char code AT_LANSTART[]="AT+LANSTART\r\n";


void main()                                                  // 主函數     
{        

        RST = 1;                                      // ESP8266復位功能腳,拉低會將ESP8266復位
        UartInit();                                                                                                // 初始化串口
        ES = 1;                                       // 串口1中斷打開
        IE2 = 0x01;                                   // 串口2中斷打開
        EA = 1;                                       // 總中斷打開
        DelayMS(1000);                                                                          // 延時一段時間,讓ESP8266啟動
        DelayUS(100);
  U1SendString(Rec_Buf);                        // 將ESP8266啟動信息通過串口1打印出  
  U1SendString("\r\n");        
  U1SendString("Welcome to LSE STUDIO, Please wait while we are getting the device ready\r\n");        
        CLR_Buf();                                                 //清除緩存內容        


        while(!Hand("OK"))                            //判斷是否握手成功,如果不成功延時一會,再發送AT握手指令
        {
                U2SendString(str1);                         //發送聯機指令
                DelayMS(500);
        }
        CLR_Buf();                                    //清除緩存內容
  U1SendString("OK,Succee Establish connection with ESP8266\r\n");               
        LED1 = 0;


        while(!(Hand("OK")|Hand("no change")))        //判斷是否設置成功,如不成功,延時后再次發送
        {               
                U2SendString(str2);                         //發送設置ESP8266工作模式指令        
                DelayMS(500);               
        }
        CLR_Buf();                 
  U1SendString("OK,ESP8266 has been set as Station Mode\r\n");        
        U1SendString("OK,Plese Press The Smartlink buttom\r\n");        

        DelayMS(1000);        
        U2SendString(AT_SMARTLINK);
        DelayMS(1000);               
        do                                                                 //此循環完成SMARTLINK 的配置
        {               
                LED1=1;
                DelayMS(500);
                LED1=0;
                DelayMS(500);
//                U1SendString(Rec_Buf);               
        }while(strstr(Rec_Buf,"WIFI GOT")==NULL); //此循環完成SMARTLINK 的配置        
        U1SendString("OK,ESP8266 is configured as SMARTLINK!");        
        CLR_Buf();  

        U2SendString(AT_CLDSTART); //加入安信可云
        DelayMS(1000);
        do                                                                 //此循環完成安信可云的配置
        {               
                LED1=1;
                DelayMS(500);
                LED1=0;
                DelayMS(500);
//                U1SendString(Rec_Buf);               
        }while(strstr(Rec_Buf,"OK")==NULL); //此循環完成SMARTLINK 的配置        
        U1SendString("OK,ESP8266 is Linked with Cloud Sever!\r\n");                        
        CLR_Buf();

        U2SendString(AT_LANSTART);//開啟內網模式(此模式下,模組會用內網回應手機APP 要查詢的ID 和KEY)
        DelayMS(1000);
        do                                                                 //此循環完成安信可云的配置
        {

                LED1=1;
                DelayMS(500);
                LED1=0;
                DelayMS(500);
//                U1SendString(Rec_Buf);               
        }while(strstr(Rec_Buf,"OK")==NULL); //此循環完成SMARTLINK 的配置               
        U1SendString("OK,ESP8266 Internal LAN mode is Started!\r\n");


  while (1)                                                        // 主循環  
    {
                        if(Hand("LIGHT:0"))                            //  收到“openled1”的指令
                                {
                                        ES = 0;
                                        IE2 = 0x00;                                       
                                        LED1 = 0;
                                        LED2 = 0;        
                                        LED3 = 0;                                                
                                        CLR_Buf();
                                        U1SendString("Command: LEDs turn on, Executed!\r\n");                                                
                                        ES = 1;               
                                        IE2 = 0x01;                                                
                                }      
                        else if(Hand("LIGHT:1"))                         //  收到“openled2”的指令
                                {
                                        ES = 0;
                                        IE2 = 0x00;                                                
                                        LED1 = 1;
                                        LED2 = 1;        
                                        LED3 = 1;        

                                        CLR_Buf();
                                        U1SendString("Command: LEDs turn off, Executed!\r\n");                                                
                                        ES = 1;                                       
                                        IE2 = 0x01;                                                                                
                                }                                       
    }
}

bit Hand(unsigned char *a)
{
    if(strstr(Rec_Buf,a)!=NULL)
            return 1;
        else
                return 0;
}

void CLR_Buf(void)
{
        unsigned char k;
    for(k=0;k<Buf_Max;k++)   
            {
                        Rec_Buf[k] = 0;
                }
    i = 0;                    
}

void Uart1() interrupt 4 using 1
{
        ES = 0;
        if (RI)
    {
      RI = 0;                 //清除RI位
                        Rec_Buf = SBUF;
                        i++;               
                        if(i>Buf_Max)         
                                {
                                        i = 0;
                                }           

    }
    if (TI)
    {
        TI = 0;                 //清除TI位

    }
                ES =  1;
}



void Uart2() interrupt 8 using 1
{
                IE2 = 0x00;        
    if (S2CON & S2RI)
    {
        S2CON &= ~S2RI;         
                                Rec_Buf = S2BUF;
                                i++;               
                                if(i>Buf_Max)         
                                {
                                        i = 0;
                                }     
    }
    if (S2CON & S2TI)
    {
        S2CON &= ~S2TI;            
    }
                IE2 = 0x01;               
}



回復

使用道具 舉報

ID:79544 發表于 2016-5-10 14:37 | 顯示全部樓層
樓主你好:手機APP從哪里下載?能附上手機APP嗎》感謝!
回復

使用道具 舉報

ID:134790 發表于 2016-7-24 13:48 | 顯示全部樓層
樓主,手機app可以共享一下嗎?謝謝
回復

使用道具 舉報

ID:140042 發表于 2016-9-21 23:20 來自觸屏版 | 顯示全部樓層
他這個只給了這個完整程序的主程序  其中調用程序都沒有加出來  還有串口通訊等  1406428654  可以相互交流哈  
回復

使用道具 舉報

ID:171355 發表于 2017-4-29 10:58 | 顯示全部樓層
樓主,調用程序,和串口通信的程序分享一下。254637162 感謝!
回復

使用道具 舉報

ID:210861 發表于 2017-9-6 15:04 | 顯示全部樓層
謝謝樓主!再詳細一點就更好了!
回復

使用道具 舉報

ID:106272 發表于 2017-9-22 10:38 | 顯示全部樓層
不夠詳細,全套有沒?
回復

使用道具 舉報

ID:380117 發表于 2019-4-13 15:04 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:360590 發表于 2019-4-15 18:21 | 顯示全部樓層
手機APP從哪里下載?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久吹潮 | 日韩av免费在线观看 | 岛国av免费观看 | 国产一区二区电影网 | 午夜视频一区二区 | 男女羞羞免费网站 | 精品99久久久久久 | 成人在线电影在线观看 | 国产精品日韩一区二区 | 91亚洲精品久久久电影 | 97国产在线观看 | 91操操操| 91在线视频免费观看 | 国产精品乱码一区二区三区 | 日韩免费视频一区二区 | 亚洲狠狠丁香婷婷综合久久久 | 亚洲精品第一页 | 国产精品视频在线播放 | 亚洲免费在线 | 婷婷综合色| 老头搡老女人毛片视频在线看 | 国产美女在线精品免费 | 久久r免费视频 | 日韩一区二区视频 | 青青草av网站 | 亚洲视频一区二区三区四区 | 亚洲一二三区在线观看 | 男人av网 | 国产欧美视频一区 | 国产高清在线精品一区二区三区 | 国产日韩精品久久 | 亚洲国产精久久久久久久 | 国产在线对白 | 国产高清一区二区 | 欧美日韩久久精品 | 成人日批视频 | 日本视频在线 | 男人视频网站 | 欧美在线一区二区三区 | 精品真实国产乱文在线 | 91成人免费电影 |