色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

WIFI智能配網簡介及操作流程說明

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-26 14:09 ? 次閱讀

1.WIFI智能配網簡介

Wi-Fi 配網,指由外部向 Wi-Fi 設備提供 SSID 和密碼(PSW),讓 Wi-Fi 設備可以連接指定的熱點或路由器,并加入后者所建立的 Wi-Fi 網絡
對于具備豐富人機界面包括屏幕/鍵盤的設備,例如電腦手機,可以直接輸入 SSID/PSW 進行連接。
對于不具備豐富人機交互界面的物聯網 Wi-Fi 設備,例如智能燈、掃地機器人等,則可以借助手機等智能設備,以某種配網方式將 SSID/PSW 傳遞該設備。

配網有多種方式,包括 SmartConfig、softAP、Airkiss 等,各自的特點比較如下:

配網方式 特點
WPS 存在安全性問題
SmartConfig 較便捷,但一般為各廠商采用私有協議,兼容性和互操作性較差
softAP 適配性兼容性較好,但手機端需要做兩次 Wi-Fi 連接設置的切換,步驟較復雜
Airkiss 操作便捷無需熱點配置,但為微信客戶端私有協議,需設備端適配兼容
ble combo 操作便捷,但需要設備端支持 Wi-Fi+BLE 的 Combo 芯片方案

下面我們將以SmartConfig配網模式為例實戰應用。相關操作步驟可參考騰訊云平臺SmartConfig 配網開發文檔

SmartConfig 配網開發文檔:https://cloud.tencent.com/document/product/1081/48405

SmartConfig智能配網主要便于物聯網設備接入云平臺,只需相應app或者相關微信小程序(例騰訊連連)即可讓設備快速入圍,接入服務器。下面以微信小程序騰訊連連、云平臺為騰訊云服務器,接入協議為MQTT3.1為例說明。

2.配網流程

1.在騰訊云平臺選擇智能配網模式。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

2.通過騰訊連連小程序進入配網模式,則可以在物聯網開發平臺服務獲取到當次配網的 Token值;

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

3.配網調試信息

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_centerwatermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

4.微信小程序騰訊連連查看設備信息

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

3.軟件設計

3.1 設置WIFI工作模式為:STA+TCPClinet,獲取wifi連接狀態,連接失敗則進入配網模式,最終實現騰訊云平臺連接

/****************STA+TCPclinet初始化*************/
u8 Esp8266_STA_TCPclinet_Init(u8 *wifi_name,u8 *wifi_key,u8 *server_ip,u16 server_port)
{
	char buff[100];
	/*退出透傳模式*/
	u16 i=0;
    u8 stat=0;
	for(i=0;i<5;i++)
	{
		Usartx_SendString(USART3,(u8 *)"+++");//退出透傳模式
		Delay_Ms(500);
		if(Esp8266_SendCmdCheckStat("ATrn","OKrn")==0)
		{
			i=0;
			break;
		}
	}
	if(i!=0)
	{
		printf("1.退出透傳模式失敗rn");
		return 0x7f;
	}
	printf("2.模塊復位rn");
	if(Esp8266_SendCmdCheckStat("AT+RSTrn","OKrn"))return 1;	
	Delay_Ms(1000);
	Delay_Ms(1000);
	printf("3.關回顯rn");
	if(Esp8266_SendCmdCheckStat("ATE0rn","OKrn"))return 2;   
	printf("4.設置模式STArn");
	if(Esp8266_SendCmdCheckStat("AT+CWMODE=1rn","OK"))return 4;
	if(ESP8266_GetWifi_Stat())//查詢WIFI連接狀態,未連接成功則進入配網模式
    {
        BEEP=1;
        Delay_Ms(100);
        BEEP=0;
        Delay_Ms(100);
        BEEP=1;
        Delay_Ms(100);
        BEEP=0;
        stat=1;//進入配網模式標志位         
        if(ESP8266_SetSmartMode())return 4;//配網失敗  
    }
	printf("5.設置單連接rn");
	if(Esp8266_SendCmdCheckStat("AT+CIPMUX=0rn","OK"))return 5;		
	snprintf(buff,sizeof(buff),"AT+CIPSTART="TCP","%s",%drn",server_ip,server_port);
//	printf("buff:%srn",buff);
	printf("6.連接服務器rn");
	if(Esp8266_SendCmdCheckStat(buff,"OK"))return 6;	  
	printf("7.配置透傳模式rn");
	if(Esp8266_SendCmdCheckStat("AT+CIPMODE=1rn","OKrn"))return 7;	
	printf("8.開始發送數據rn");
	if(Esp8266_SendCmdCheckStat("AT+CIPSENDrn",">"))return 8;	
	if(stat)return 0x80;//進入配網模式并且正常退出
    else return 0;//未進入配網模式,正常退出
}

3.2 smartconfig配網函數

本函數主要共能為配置WIFI 模式為Smart配網模式,連接WIFI熱點,獲取token信息上報到服務器。

/*開啟Smart模式*/
u8 ESP8266_SetSmartMode(void)
{
    char buff[200];
    printf("1.進入smart配網模式rn");
    u32 time1=0,time2=0;
    if(Esp8266_SendCmdCheckStat("AT+CWSTARTSMARTrn","OK"))return 0x81;//開啟Smart失敗
    usart3_cnt=0;
    usart3_flag=0;
    while(1)
    {
        if(usart3_flag)
        {
            usart3_rx_buff[usart3_cnt]='?';
            printf("rx:%srn",usart3_rx_buff);
            if(strstr((char *)usart3_rx_buff,"smartconfig connected wifi"))//連接熱點成功
            {
                usart3_cnt=0;
                usart3_flag=0;
                printf("2.關Smart模式rn");
                if(Esp8266_SendCmdCheckStat("AT+CWSTOPSMARTrn","OK"))return 0x82;  
                break;
            }
            else
            {
                usart3_cnt=0;
                usart3_flag=0;
                memset(usart3_rx_buff,0,sizeof(usart3_rx_buff));
            }
        }
        Delay_Ms(1);
        time1++;
        time2++;
        if(time2>=100)//配網模式100ms閃爍一次
        {
            time2=0;
            LED1=!LED1;
        }
        if(time1>=1000*300)return 0x83;//超時退出
    }
    printf("3.顯示端口rn");
    if(Esp8266_SendCmdCheckStat("AT+CIPDINFO=1rn","OK"))return 0x84;
    printf("4.查詢IPrn");
    if(ESP8266_GetIP())return 0x85; 
    printf("5.設置要連接的UDPrn"); 
    snprintf(buff,sizeof(buff),"AT+CIPSTART="UDP","%s",8266,8266,0rn",esp8266_info.esp8266_ip);
    if(Esp8266_SendCmdCheckStat(buff,"OKrn"))return 0x86; 
    printf("6.網絡數據解析rn");
    if(ESP8266_NetworkConfig())return 7;  
    printf("7.模塊復位rn");
    if(Esp8266_SendCmdCheckStat("AT+RSTrn","OKrn"))return 0x87;	
    Delay_Ms(1000);
    Delay_Ms(1000);    
    return 0;
}

3.3.微信小程序配網數據訂閱與發布

通過訂閱微信小程序信息,獲取token值,將獲取到的信息上報到微信小程序,從而實現設備配網。

//微信小程序配網數據訂閱與發布
#define SET_WEIXIN_TOPIC  "$thing/down/service/LA54WTHWL3/Smart_123"http://訂閱
#define POST_WEIXIN_TOPIC "$thing/up/service/LA54WTHWL36/Smart_123"http://發布 
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center

3.4 主函數

int main()
{
    int i=0,key;
	u8 stat=0;
	u32 time=0;
	u16 cnt=0;
	float temp;
	Beep_Init();//蜂鳴器初始化
	Led_Init();//LED初始化
	Key_Init();//按鍵初始化
	Usartx_Init(USART1,115200,72);
	Usartx_Init(USART3,115200,36);
	TIMx_Init(TIM2,72,20000);//通過定時器2輔助串口接收數據,20ms
	TIMx_Init(TIM4,72,20000);//通過定時器2輔助串口接收數據,20ms
	DS18B20_Init();	
//	RTC_Init();//RTC初始化
	printf("初始化完成rn");
	while(1)
	{
		stat=Esp8266_STA_TCPclinet_Init((u8 *)WIFI_NAME,(u8 *)WIFI_PASSWORD,(u8 *)SERVER_IP,SERVER_PORT);
		if(stat==0 || stat==0x80)break;
		printf("stat=%drn",stat);  
	}
	printf("服務器連接成功rn");
	while(1)
	{
		MQTT_Init();
		if(MQTT_Connect(ClientID,Username,Password)==0)break;
		Delay_Ms(500);
		printf("正在連接....rn");
	}
	printf("連接成功rn");
    if(stat==0x80)//進入配網模式需要給微信小程序返回token值
    {
          //訂閱微信topic
         if(MQTT_SubscribeTopic(SET_WEIXIN_TOPIC,0,1))printf("訂閱失敗rn"); 
        //返回平臺數據,告知微信連連連接服務器成功
        snprintf(mqtt_message,sizeof(mqtt_message),"{"method":"app_bind_token","clientToken":"client-1234","params": {"token":"%s"}}",esp8266_info.token);
        MQTT_PublishData(POST_WEIXIN_TOPIC,mqtt_message,0);
        //Smart_home{"method":"app_bind_token_reply","clientToken":"client-1234","code":0,"status":"success"} 配網成功后微信小程序返回數據
    }
    //訂閱物聯網平臺數據
    stat=MQTT_SubscribeTopic(SET_TOPIC,0,1);
    if(stat)printf("訂閱失敗rn");   
	while(1)
	{
		if(usart3_flag)
		{
            for(i=0;i=5000)
		{
			time=0;
			MQTT_SentHeart();//發送心跳包
		}
		if(cnt>=2000)
		{
			cnt=0;
			temp=DS18B20_GetTemp()*0.0625;
			sprintf(mqtt_message,"{"method":"report","clientToken":"123","params":{"LED1":1,"temp":%.2f,"L":356}}",temp);//溫度
			MQTT_PublishData(POST_TOPIC,mqtt_message,0);
		}
	}
}
;i++)>


審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9123

    瀏覽量

    85324
  • wi-fi
    +關注

    關注

    14

    文章

    2132

    瀏覽量

    124422
  • 智能配電
    +關注

    關注

    0

    文章

    97

    瀏覽量

    9943
收藏 人收藏

    評論

    相關推薦

    掃碼時,LCD出現分屏是什么原因導致的?

    在掃碼或者智能時,中間看串口好像是少了6,7幀畫面,如圖下圖日志所示,應該是WIFI寫f
    發表于 06-11 06:27

    根據espesp-idfexampleswifismart_config例程來編寫的智能,怎么做才能判斷智能連接是否失敗?

    (wifi_config_t)); /* 將結構體數據清零 */ /* 將智能設備發送來的WiFi的ssid、password及MAC
    發表于 06-19 07:00

    ESP32C3 wifi失敗的原因?

    1, 采用官方提供的at固件,固件版本V2.4.2; 2,發送AT+CWSTARTSMART進入WiFi,啟動app; 問題:在2
    發表于 06-26 06:00

    迪文屏說明

    。 DGUS 2平臺支持手動和一鍵兩種網絡配置方式,適用于智能家居、智慧建筑、檢測儀表等多種應用場景中。
    發表于 04-29 16:05

    wifi模塊問題

    在網上搜了索到了兩種方式,不過都還有一下疑惑, 在這里請教一下大家:1 AP 模式連接疑問地方: 設備設置為AP模式,創建了一個沒有密碼的SSID,設備需要進入怎樣的環境才能收到手機端發過來
    發表于 06-04 02:14

    鴻蒙直播:WiFi IoT 彈出式

    `主題:WiFi IoT 彈出式簡介:本次課程由鴻蒙社區活躍、資深的項目經理來給大家帶來,在WiFi IoT 開發板上實現的彈出式
    發表于 03-15 10:43

    流程概述

    流程概述協議承載層(Provisioni
    發表于 07-22 08:53

    智能設備zigbee模式

    智能設備有AP個EZ兩種模式,如果有Zigbee網關,添加設備時在APP網關界面點添加設備,按下設備叫鍵就能添加設備,這是不是EZ
    發表于 12-08 15:32

    Hi3861:智能錄音筆【環境搭建+

    直接入網(flash存儲掉電WIFI信息),若不能直接聯網則進行操作,此時拒絕聯網只能實現基礎錄音放音功能,當使用數字管家進行
    發表于 12-31 10:35

    在使用智能時如果輸入WiFi的密碼是錯的,為什么會反復嘗試連接WiFi

    我是根據\esp\esp-idf\examples\wifi\smart_config例程來編寫的智能,如果輸入密碼是錯的,程序也不會返回信息給手機APP,要怎么做才能判斷
    發表于 02-17 07:07

    JDBC操作流程說明

    JDBC操作流程說明JDBC操作流程說明JDBC操作
    發表于 11-10 15:32 ?4次下載

    【技術分享】WiFi模塊常見的方式簡介

    方式。WiFi模塊常見的WiFi模塊方式,一般可以歸類為直接
    的頭像 發表于 05-07 22:54 ?7916次閱讀
    【技術分享】<b class='flag-5'>WiFi</b>模塊常見的<b class='flag-5'>配</b><b class='flag-5'>網</b>方式<b class='flag-5'>簡介</b>

    關于Wifi設備的問題

    今天寫個物聯網的技術文章——關于Wifi設備為什么失敗。這相信是很多做過Wifi產品的制造業企業遇到的客訴最多的問題——消費者因Wifi
    的頭像 發表于 06-04 14:09 ?7604次閱讀
    關于<b class='flag-5'>Wifi</b>設備的<b class='flag-5'>配</b><b class='flag-5'>網</b>問題

    WIFI模塊的各種方式之比較(串口AT、SmartConfig、微信Airkiss、WEB網頁....)

    不夠好的WIFI模組,在使用智能時,經常會遇到很難成功的情形。而在終端用戶那邊,因為操作的復雜性,導致
    的頭像 發表于 08-09 19:22 ?5830次閱讀

    涂鴉智能聯手亞馬遜,推出藍牙無感知解決方案

    “每次買智能設備,最煩的就是第一次流程太麻煩了,操作步驟少說也有9步左右,中間還很容易連接錯誤之類的,但凡一個步驟不對,都需要從頭開始
    的頭像 發表于 11-21 09:50 ?796次閱讀
    涂鴉<b class='flag-5'>智能</b>聯手亞馬遜,推出藍牙無感知<b class='flag-5'>配</b><b class='flag-5'>網</b>解決方案
    主站蜘蛛池模板: 好男人的视频在线观看| 国产精品久久久久久人妻精品流| 2019午夜福利757视频第12集| 综合久久伊人| fyeex性欧美人与曾| 成人中文字幕在线观看| 国产精品夜夜春夜夜爽久久小| 好想被狂躁A片免费久99| 久久综合久久伊人| 内射老妇BBX| 熟妇无码乱子成人精品| 亚洲精品国产自在现线最新| 在线综合 亚洲 欧美| adc高清在线观看| 国产免费变态视频网址网站| 精品夜夜澡人妻无码AV蜜桃| 男女疯狂一边摸一边做羞羞视频| 人人插人人射| 亚洲精品中文字幕一二三四区| 真实国产乱子伦精品一区二区三区| 97SE亚洲国产综合自在线不卡| 高潮久久久久久久久不卡| 激情内射亚洲一区二区三区爱妻| 蜜桃传媒视频| 午夜国产精品视频在线| 中文成人在线视频| 国产1769一七六九视频在线| 精品少妇爆AV无码专区| 啪啪啪社区| 野花日本高清在线观看免费吗 | 午夜福利试看120秒体验区| 亚洲一区高清| 成人在线免费视频| 久久九九日本韩国精品| 日韩一卡二卡三卡四卡免费观在线| 亚洲精品视频在线观看免费| 99视频在线看观免费| 黄桃AV无码免费一区二区三区| 欧美末成年videos在线| 亚洲欧美激情精品一区二区| www.日本 高清.com|