本文來源電子發(fā)燒友社區(qū),作者:cszzlsw, 帖子地址:https://bbs.elecfans.com/jishu_2037265_1_1.html
1.前情提要
繼上次重磅發(fā)布對接騰訊云的帖子之后,地址在這:https://bbs.elecfans.com/jishu_2032877_1_1.html
有一個問題沒有解決,那就是wifi聯(lián)網(wǎng)問題,本期就來介紹一下不要任何app,直接用系統(tǒng)原生的功能實現(xiàn)配網(wǎng),快來連接一下吧
2.初衷
傳統(tǒng)的配網(wǎng)方式一般是搭配一個專用的app,操作比較繁瑣,用戶體驗不太好,彈出式配網(wǎng)就是為了解決這個問題開發(fā)的,而且有種很酷炫的感覺而且學會了原理,把網(wǎng)頁文件一換,換成一個創(chuàng)意動畫神馬的哄女朋友開心也是不錯的
3.原理
其實彈出式配網(wǎng)的原理并不復雜,整體的原理是先創(chuàng)建一個熱點讓手機連接到熱點,然后開啟dns劫持,利用web服務(wù)器將訪問地址跳轉(zhuǎn),然后把預先準備好的網(wǎng)頁文件發(fā)送到連接熱點的設(shè)備上,在網(wǎng)頁上提供按鈕點擊操作讀取wifi列表,然后輸入密碼,發(fā)送到板子去連接,保存,連接的設(shè)備可以是手機,電腦等等,連接完成之后就可以重啟開發(fā)板執(zhí)行真正的任務(wù)了.
4.實現(xiàn)
1).參考了潤和倉庫里的demo代碼很快就創(chuàng)建好了熱點:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/04_wifi
創(chuàng)建熱點之后測試一下手機能連接熱點第一步就成功了
2).參考潤和倉庫的udp和tcp的代碼demo也比較快的就搞好了dns劫持和web服務(wù)器:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/05_network,這一步做好之后就可以出現(xiàn)彈窗了
3).彈窗出現(xiàn)之后下一步就是下發(fā)網(wǎng)頁文件到手機,這一步著實花費了一些時間,倒不是網(wǎng)頁的發(fā)送,而是網(wǎng)頁文件的存儲,整整花了我5,6個小時之久,到處問人也沒問到,查閱了海量的官方文檔,最后還是誤打誤撞(串口抓包研究固件下載流程發(fā)現(xiàn)的)找到了方法,具體是什么大家在視頻中也可以看到
4).后面就是用戶點擊手機上的網(wǎng)頁來搜索網(wǎng)絡(luò)和配網(wǎng)了,板子接收到手機發(fā)過來的用戶名和密碼就嘗試連接對應(yīng)的wifi,如果連接成功就保存起來,然后重啟板子就行了,這里還有一個問題就是配網(wǎng)的ssid和密碼的保存和讀取,這里有兩種方法,一種是利用鴻蒙自帶的kv系統(tǒng)來實現(xiàn),第二種就是直接讀寫flash,這里我采用的是kv系統(tǒng),之前參考了連老師的帖子:https://zhuanlan.zhihu.com/p/274411574
發(fā)現(xiàn)不行,根本沒有存儲到flash中去,后面我自己在代碼里找,終于找到了真正的接口,見圖片:

在代碼中是這樣:
?
如果是直接用官方的flash存儲是長這樣:

5).到這里我們的彈出式配網(wǎng)就已經(jīng)完成了,后面就是添加板子啟動的時候讀取kv系統(tǒng)里面有沒有保存賬號密碼,如果沒有就啟動熱點模式讓用戶配網(wǎng),如果有就直接用sta模式連接對應(yīng)的wifi,然后該干啥干啥就行了
6).如果想重新配網(wǎng)就搞一個按鈕長按恢復出廠就行,這個不用我來說了吧,大家應(yīng)該都會.
怎么樣,是不是挺簡單的,具體的細節(jié)我就不過多碼字了,這里我就直接把視頻放出來,大家感受一下最終的效果就行.
5.來談?wù)剰棾鍪脚渚W(wǎng)的小缺點:
1.跟手機兼容性有關(guān),可能有的手機不會自動彈出配網(wǎng)界面,而是在系統(tǒng)通知欄出現(xiàn)一個通知,然后手機點擊通知才能跳轉(zhuǎn)到對應(yīng)的網(wǎng)頁,關(guān)于手機的兼容報告還有待大家共同測試,畢竟個人力量有限
2.需要占用比較大的flash空間,因為彈出式配網(wǎng)有一個網(wǎng)頁要存儲在芯片上,然后這個網(wǎng)頁因為渲染和js腳本會占用比較多的字節(jié),對于flash吃緊的設(shè)備不是那么友好
6.最后
有感興趣想了解的同學可以跟我或者版主綠波電龍聯(lián)系,視大家的意愿再公開源碼,以免被yxh盜用
1.前情提要
繼上次重磅發(fā)布對接騰訊云的帖子之后,地址在這:https://bbs.elecfans.com/jishu_2032877_1_1.html
有一個問題沒有解決,那就是wifi聯(lián)網(wǎng)問題,本期就來介紹一下不要任何app,直接用系統(tǒng)原生的功能實現(xiàn)配網(wǎng),快來連接一下吧
2.初衷
傳統(tǒng)的配網(wǎng)方式一般是搭配一個專用的app,操作比較繁瑣,用戶體驗不太好,彈出式配網(wǎng)就是為了解決這個問題開發(fā)的,而且有種很酷炫的感覺而且學會了原理,把網(wǎng)頁文件一換,換成一個創(chuàng)意動畫神馬的哄女朋友開心也是不錯的
3.原理
其實彈出式配網(wǎng)的原理并不復雜,整體的原理是先創(chuàng)建一個熱點讓手機連接到熱點,然后開啟dns劫持,利用web服務(wù)器將訪問地址跳轉(zhuǎn),然后把預先準備好的網(wǎng)頁文件發(fā)送到連接熱點的設(shè)備上,在網(wǎng)頁上提供按鈕點擊操作讀取wifi列表,然后輸入密碼,發(fā)送到板子去連接,保存,連接的設(shè)備可以是手機,電腦等等,連接完成之后就可以重啟開發(fā)板執(zhí)行真正的任務(wù)了.
4.實現(xiàn)
1).參考了潤和倉庫里的demo代碼很快就創(chuàng)建好了熱點:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/04_wifi
創(chuàng)建熱點之后測試一下手機能連接熱點第一步就成功了
2).參考潤和倉庫的udp和tcp的代碼demo也比較快的就搞好了dns劫持和web服務(wù)器:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/05_network,這一步做好之后就可以出現(xiàn)彈窗了
3).彈窗出現(xiàn)之后下一步就是下發(fā)網(wǎng)頁文件到手機,這一步著實花費了一些時間,倒不是網(wǎng)頁的發(fā)送,而是網(wǎng)頁文件的存儲,整整花了我5,6個小時之久,到處問人也沒問到,查閱了海量的官方文檔,最后還是誤打誤撞(串口抓包研究固件下載流程發(fā)現(xiàn)的)找到了方法,具體是什么大家在視頻中也可以看到
4).后面就是用戶點擊手機上的網(wǎng)頁來搜索網(wǎng)絡(luò)和配網(wǎng)了,板子接收到手機發(fā)過來的用戶名和密碼就嘗試連接對應(yīng)的wifi,如果連接成功就保存起來,然后重啟板子就行了,這里還有一個問題就是配網(wǎng)的ssid和密碼的保存和讀取,這里有兩種方法,一種是利用鴻蒙自帶的kv系統(tǒng)來實現(xiàn),第二種就是直接讀寫flash,這里我采用的是kv系統(tǒng),之前參考了連老師的帖子:https://zhuanlan.zhihu.com/p/274411574
發(fā)現(xiàn)不行,根本沒有存儲到flash中去,后面我自己在代碼里找,終于找到了真正的接口,見圖片:

在代碼中是這樣:


如果是直接用官方的flash存儲是長這樣:

5).到這里我們的彈出式配網(wǎng)就已經(jīng)完成了,后面就是添加板子啟動的時候讀取kv系統(tǒng)里面有沒有保存賬號密碼,如果沒有就啟動熱點模式讓用戶配網(wǎng),如果有就直接用sta模式連接對應(yīng)的wifi,然后該干啥干啥就行了
6).如果想重新配網(wǎng)就搞一個按鈕長按恢復出廠就行,這個不用我來說了吧,大家應(yīng)該都會.
怎么樣,是不是挺簡單的,具體的細節(jié)我就不過多碼字了,這里我就直接把視頻放出來,大家感受一下最終的效果就行.
5.來談?wù)剰棾鍪脚渚W(wǎng)的小缺點:
1.跟手機兼容性有關(guān),可能有的手機不會自動彈出配網(wǎng)界面,而是在系統(tǒng)通知欄出現(xiàn)一個通知,然后手機點擊通知才能跳轉(zhuǎn)到對應(yīng)的網(wǎng)頁,關(guān)于手機的兼容報告還有待大家共同測試,畢竟個人力量有限
2.需要占用比較大的flash空間,因為彈出式配網(wǎng)有一個網(wǎng)頁要存儲在芯片上,然后這個網(wǎng)頁因為渲染和js腳本會占用比較多的字節(jié),對于flash吃緊的設(shè)備不是那么友好
6.最后
有感興趣想了解的同學可以跟我或者版主綠波電龍聯(lián)系,視大家的意愿再公開源碼,以免被yxh盜用
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
wi-fi
+關(guān)注
關(guān)注
14文章
2226瀏覽量
126432 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
2052瀏覽量
32109 -
HiSpark
+關(guān)注
關(guān)注
1文章
156瀏覽量
7303
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
SoftAP方案:Wi-Fi配網(wǎng)的黃金法則“100%成功”
遵循SoftAP方案的“黃金法則”,Wi-Fi配網(wǎng)將不再有失敗風險。設(shè)備自組網(wǎng)機制讓連接過程變?yōu)椤皢蜗蛞龑А薄O(shè)備主動開放熱點并智能適配,確保每次配

Wi-Fi 定位服務(wù)
Wi-Fi 是一種著名的無線網(wǎng)絡(luò)技術(shù),用于設(shè)備的局域網(wǎng)和互聯(lián)網(wǎng)接入。Wi-Fi 通過 Wi-Fi 網(wǎng)絡(luò)為家庭、辦公室和學校等環(huán)境提供便捷的
發(fā)表于 04-17 15:01
拯救急性子!涂鴉推出快連Plus配網(wǎng)方案,批量配網(wǎng)速度猛增5倍
一、什么是Wi-Fi配網(wǎng)設(shè)備配網(wǎng)是智能家居系統(tǒng)關(guān)鍵的一

【干貨】AirKiss配網(wǎng)技術(shù)原理+開發(fā)實現(xiàn)指南
AirKiss是騰訊微信團隊于2014年推出的智能設(shè)備Wi-Fi配網(wǎng)協(xié)議,旨在解決物聯(lián)網(wǎng)設(shè)備首次入網(wǎng)時的人機交互難題。相較于傳統(tǒng)的AP配網(wǎng)模

智能家居之旅(14):安信可IoT Blufi配網(wǎng)工具新功能介紹
今天給大家介紹一下小程序配網(wǎng)工具-安信可 IoT,近期剛發(fā)布了新的版本,新增了服務(wù)器地址配置的功能。這個新功能,給我們帶來了不少便利,特別是 HomeAssistant 固件使用這

BLE Mesh節(jié)點配網(wǎng)后如何不清除配網(wǎng)信息,進入待配網(wǎng)狀態(tài)?
esp_ble_mesh_node_local_reset()會清除配網(wǎng)信息
需求:待配網(wǎng)節(jié)點設(shè)備超時未配
發(fā)表于 07-19 06:27
ESP8266配網(wǎng)失敗如何返回消息給APP?
我想知道,用ESP-TOUCH給8266配網(wǎng)時,如果8266由于某種原因(例如密碼不對)無法連上AP,8266可以把失敗的原因返回給APP嗎?
我之前想過另外單獨建立一個UDP連接,
發(fā)表于 07-11 07:53
ESP32C3 wifi配網(wǎng)失敗的原因?
1, 采用官方提供的at固件,固件版本V2.4.2;
2,發(fā)送AT+CWSTARTSMART進入WiFi配網(wǎng),啟動app配網(wǎng);
問題:在2
發(fā)表于 06-26 06:00
智能配網(wǎng)如果輸入密碼錯誤,程序怎么提示給手機APP?
如果密碼輸入錯誤,程序還是處于配網(wǎng)模式,如何提示給手機APP,說密碼輸入錯誤????不能用按鍵長按3s來重新配網(wǎng),我想的是密碼輸入錯誤,如何
發(fā)表于 06-19 06:50
在官網(wǎng)的WiFi/smart_config中把配網(wǎng)的任務(wù)改成一個函數(shù),為什么不能配網(wǎng)?
官方寫的是一個配網(wǎng)任務(wù),我想把配網(wǎng)任務(wù)改成一個函數(shù),結(jié)果發(fā)現(xiàn)
發(fā)表于 06-19 06:08
ESP-IDF-V4.4版本SmartConfig配網(wǎng),APP端無法收到配網(wǎng)結(jié)果怎么解決?
用ESP-IDF-V4.4,SmartConfig配網(wǎng),設(shè)備可以拿到SSID和PASSWORD,但是設(shè)備上報配網(wǎng)結(jié)果會失敗報錯。導致APP端
發(fā)表于 06-18 07:07
請問node怎么設(shè)置不被特定的provision配網(wǎng)?
請教一下大神們node怎么設(shè)置不被某個特定的provision配網(wǎng)
想做到的功能是 我想讓我某個已經(jīng)被provision的node主動脫離這個網(wǎng)絡(luò)然后被另一個provision設(shè)備
發(fā)表于 06-18 06:31
掃碼配網(wǎng)時,LCD出現(xiàn)分屏是什么原因?qū)е碌模?/a>
在掃碼配網(wǎng)或者智能配網(wǎng)時,中間看串口好像是少了6,7幀畫面,如圖下圖日志所示,應(yīng)該是WIFI寫flash原因?qū)е聀sram進不去,時序不對了而分屏,有什么方法可以解決這個協(xié)調(diào)問題呢,看
發(fā)表于 06-11 06:27
使用愛星云配網(wǎng)失敗了,我該怎么辦?
使用了5G配網(wǎng)失敗,可長按設(shè)備上的恢復出廠按鈕(一般打開設(shè)備開關(guān),并長按即為恢復出廠,如果是模組發(fā)送AT+RESTORE),待恢復出廠后使用非5G網(wǎng)絡(luò)配

用ble mesh provisioner示例給onoff cilent配網(wǎng)后無法成功發(fā)送消息怎么解決?
請教一下,我用ble mesh provisioner示例給 onoff cilent配網(wǎng)后無法成功發(fā)送消息,報錯: BLE_MESH: Model not bound to AppKey
發(fā)表于 06-06 06:14
評論