本文來源電子發(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)原生的功能實(shí)現(xiàn)配網(wǎng),快來連接一下吧
2.初衷
傳統(tǒng)的配網(wǎng)方式一般是搭配一個專用的app,操作比較繁瑣,用戶體驗(yàn)不太好,彈出式配網(wǎng)就是為了解決這個問題開發(fā)的,而且有種很酷炫的感覺而且學(xué)會了原理,把網(wǎng)頁文件一換,換成一個創(chuàng)意動畫神馬的哄女朋友開心也是不錯的
3.原理
其實(shí)彈出式配網(wǎng)的原理并不復(fù)雜,整體的原理是先創(chuàng)建一個熱點(diǎn)讓手機(jī)連接到熱點(diǎn),然后開啟dns劫持,利用web服務(wù)器將訪問地址跳轉(zhuǎn),然后把預(yù)先準(zhǔn)備好的網(wǎng)頁文件發(fā)送到連接熱點(diǎn)的設(shè)備上,在網(wǎng)頁上提供按鈕點(diǎn)擊操作讀取wifi列表,然后輸入密碼,發(fā)送到板子去連接,保存,連接的設(shè)備可以是手機(jī),電腦等等,連接完成之后就可以重啟開發(fā)板執(zhí)行真正的任務(wù)了.
4.實(shí)現(xiàn)
1).參考了潤和倉庫里的demo代碼很快就創(chuàng)建好了熱點(diǎn):
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/04_wifi
創(chuàng)建熱點(diǎn)之后測試一下手機(jī)能連接熱點(diǎn)第一步就成功了
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)頁文件到手機(jī),這一步著實(shí)花費(fèi)了一些時間,倒不是網(wǎng)頁的發(fā)送,而是網(wǎng)頁文件的存儲,整整花了我5,6個小時之久,到處問人也沒問到,查閱了海量的官方文檔,最后還是誤打誤撞(串口抓包研究固件下載流程發(fā)現(xiàn)的)找到了方法,具體是什么大家在視頻中也可以看到
4).后面就是用戶點(diǎn)擊手機(jī)上的網(wǎng)頁來搜索網(wǎng)絡(luò)和配網(wǎng)了,板子接收到手機(jī)發(fā)過來的用戶名和密碼就嘗試連接對應(yīng)的wifi,如果連接成功就保存起來,然后重啟板子就行了,這里還有一個問題就是配網(wǎng)的ssid和密碼的保存和讀取,這里有兩種方法,一種是利用鴻蒙自帶的kv系統(tǒng)來實(shí)現(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)里面有沒有保存賬號密碼,如果沒有就啟動熱點(diǎn)模式讓用戶配網(wǎng),如果有就直接用sta模式連接對應(yīng)的wifi,然后該干啥干啥就行了
6).如果想重新配網(wǎng)就搞一個按鈕長按恢復(fù)出廠就行,這個不用我來說了吧,大家應(yīng)該都會.
怎么樣,是不是挺簡單的,具體的細(xì)節(jié)我就不過多碼字了,這里我就直接把視頻放出來,大家感受一下最終的效果就行.
5.來談?wù)剰棾鍪脚渚W(wǎng)的小缺點(diǎn):
1.跟手機(jī)兼容性有關(guān),可能有的手機(jī)不會自動彈出配網(wǎng)界面,而是在系統(tǒng)通知欄出現(xiàn)一個通知,然后手機(jī)點(diǎn)擊通知才能跳轉(zhuǎn)到對應(yīng)的網(wǎng)頁,關(guān)于手機(jī)的兼容報告還有待大家共同測試,畢竟個人力量有限
2.需要占用比較大的flash空間,因?yàn)閺棾鍪脚渚W(wǎng)有一個網(wǎng)頁要存儲在芯片上,然后這個網(wǎng)頁因?yàn)殇秩竞蚸s腳本會占用比較多的字節(jié),對于flash吃緊的設(shè)備不是那么友好
6.最后
有感興趣想了解的同學(xué)可以跟我或者版主綠波電龍聯(lián)系,視大家的意愿再公開源碼,以免被yxh盜用
1.前情提要
繼上次重磅發(fā)布對接騰訊云的帖子之后,地址在這:https://bbs.elecfans.com/jishu_2032877_1_1.html
有一個問題沒有解決,那就是wifi聯(lián)網(wǎng)問題,本期就來介紹一下不要任何app,直接用系統(tǒng)原生的功能實(shí)現(xiàn)配網(wǎng),快來連接一下吧
2.初衷
傳統(tǒng)的配網(wǎng)方式一般是搭配一個專用的app,操作比較繁瑣,用戶體驗(yàn)不太好,彈出式配網(wǎng)就是為了解決這個問題開發(fā)的,而且有種很酷炫的感覺而且學(xué)會了原理,把網(wǎng)頁文件一換,換成一個創(chuàng)意動畫神馬的哄女朋友開心也是不錯的
3.原理
其實(shí)彈出式配網(wǎng)的原理并不復(fù)雜,整體的原理是先創(chuàng)建一個熱點(diǎn)讓手機(jī)連接到熱點(diǎn),然后開啟dns劫持,利用web服務(wù)器將訪問地址跳轉(zhuǎn),然后把預(yù)先準(zhǔn)備好的網(wǎng)頁文件發(fā)送到連接熱點(diǎn)的設(shè)備上,在網(wǎng)頁上提供按鈕點(diǎn)擊操作讀取wifi列表,然后輸入密碼,發(fā)送到板子去連接,保存,連接的設(shè)備可以是手機(jī),電腦等等,連接完成之后就可以重啟開發(fā)板執(zhí)行真正的任務(wù)了.
4.實(shí)現(xiàn)
1).參考了潤和倉庫里的demo代碼很快就創(chuàng)建好了熱點(diǎn):
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/04_wifi
創(chuàng)建熱點(diǎn)之后測試一下手機(jī)能連接熱點(diǎn)第一步就成功了
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)頁文件到手機(jī),這一步著實(shí)花費(fèi)了一些時間,倒不是網(wǎng)頁的發(fā)送,而是網(wǎng)頁文件的存儲,整整花了我5,6個小時之久,到處問人也沒問到,查閱了海量的官方文檔,最后還是誤打誤撞(串口抓包研究固件下載流程發(fā)現(xiàn)的)找到了方法,具體是什么大家在視頻中也可以看到
4).后面就是用戶點(diǎn)擊手機(jī)上的網(wǎng)頁來搜索網(wǎng)絡(luò)和配網(wǎng)了,板子接收到手機(jī)發(fā)過來的用戶名和密碼就嘗試連接對應(yīng)的wifi,如果連接成功就保存起來,然后重啟板子就行了,這里還有一個問題就是配網(wǎng)的ssid和密碼的保存和讀取,這里有兩種方法,一種是利用鴻蒙自帶的kv系統(tǒng)來實(shí)現(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)里面有沒有保存賬號密碼,如果沒有就啟動熱點(diǎn)模式讓用戶配網(wǎng),如果有就直接用sta模式連接對應(yīng)的wifi,然后該干啥干啥就行了
6).如果想重新配網(wǎng)就搞一個按鈕長按恢復(fù)出廠就行,這個不用我來說了吧,大家應(yīng)該都會.
怎么樣,是不是挺簡單的,具體的細(xì)節(jié)我就不過多碼字了,這里我就直接把視頻放出來,大家感受一下最終的效果就行.
5.來談?wù)剰棾鍪脚渚W(wǎng)的小缺點(diǎn):
1.跟手機(jī)兼容性有關(guān),可能有的手機(jī)不會自動彈出配網(wǎng)界面,而是在系統(tǒng)通知欄出現(xiàn)一個通知,然后手機(jī)點(diǎn)擊通知才能跳轉(zhuǎn)到對應(yīng)的網(wǎng)頁,關(guān)于手機(jī)的兼容報告還有待大家共同測試,畢竟個人力量有限
2.需要占用比較大的flash空間,因?yàn)閺棾鍪脚渚W(wǎng)有一個網(wǎng)頁要存儲在芯片上,然后這個網(wǎng)頁因?yàn)殇秩竞蚸s腳本會占用比較多的字節(jié),對于flash吃緊的設(shè)備不是那么友好
6.最后
有感興趣想了解的同學(xué)可以跟我或者版主綠波電龍聯(lián)系,視大家的意愿再公開源碼,以免被yxh盜用
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
wi-fi
+關(guān)注
關(guān)注
14文章
2147瀏覽量
124612 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1979瀏覽量
30274 -
HiSpark
+關(guān)注
關(guān)注
1文章
156瀏覽量
6938
發(fā)布評論請先 登錄
相關(guān)推薦
Wi-Fi 8要來了!未來Wi-Fi技術(shù)演進(jìn)方向揭秘
電子發(fā)燒友網(wǎng)報道(文/梁浩斌)Wi-Fi 7芯片早在2022年就有產(chǎn)品推出,直到去年年底,Wi-Fi 7設(shè)備開始大量推出市場。但從普及率來看,根據(jù)奧維云網(wǎng)的數(shù)據(jù),截至2024年9月,線
我司承研的南網(wǎng)科技項(xiàng)目“配網(wǎng)在線觀冰/融冰裝置”通過現(xiàn)場驗(yàn)收
電網(wǎng)配網(wǎng)
jf_96960730
發(fā)布于 :2025年01月03日 16:38:45
智能家居之旅(14):安信可IoT Blufi配網(wǎng)工具新功能介紹
今天給大家介紹一下小程序配網(wǎng)工具-安信可 IoT,近期剛發(fā)布了新的版本,新增了服務(wù)器地址配置的功能。這個新功能,給我們帶來了不少便利,特別是 HomeAssistant 固件使用這
BLE Mesh節(jié)點(diǎn)配網(wǎng)后如何不清除配網(wǎng)信息,進(jìn)入待配網(wǎng)狀態(tài)?
esp_ble_mesh_node_local_reset()會清除配網(wǎng)信息
需求:待配網(wǎng)節(jié)點(diǎn)設(shè)備超時未配
發(fā)表于 07-19 06:27
ESP8266配網(wǎng)失敗如何返回消息給APP?
我想知道,用ESP-TOUCH給8266配網(wǎng)時,如果8266由于某種原因(例如密碼不對)無法連上AP,8266可以把失敗的原因返回給APP嗎?
我之前想過另外單獨(dú)建立一個UDP連接,
發(fā)表于 07-11 07:53
ESP32C3 wifi配網(wǎng)失敗的原因?
1, 采用官方提供的at固件,固件版本V2.4.2;
2,發(fā)送AT+CWSTARTSMART進(jìn)入WiFi配網(wǎng),啟動app配網(wǎng);
問題:在2
發(fā)表于 06-26 06:00
智能配網(wǎng)如果輸入密碼錯誤,程序怎么提示給手機(jī)APP?
如果密碼輸入錯誤,程序還是處于配網(wǎng)模式,如何提示給手機(jī)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é)果會失敗報錯。導(dǎo)致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進(jìn)不去,時序不對了而分屏,有什么方法可以解決這個協(xié)調(diào)問題呢,看
發(fā)表于 06-11 06:27
使用愛星云配網(wǎng)失敗了,我該怎么辦?
使用了5G配網(wǎng)失敗,可長按設(shè)備上的恢復(fù)出廠按鈕(一般打開設(shè)備開關(guān),并長按即為恢復(fù)出廠,如果是模組發(fā)送AT+RESTORE),待恢復(fù)出廠后使用非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
Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別
Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別? Wi-Fi是一種無線網(wǎng)絡(luò)技術(shù),可以連接到互聯(lián)網(wǎng)或局域網(wǎng),為用戶提供無線上網(wǎng)的便利。隨著科技的
BT Wi-Fi模式是否可以通過ModustoolBox對套件進(jìn)行編程來實(shí)現(xiàn)?
想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型開發(fā)套件。
瀏覽文檔我無法弄清楚如何在不同的 Wi-Fi 和藍(lán)牙模式(電源模式、連接模式等)下配置套件
發(fā)表于 01-22 06:19
評論