首先,因專案需要WIFI聯網,然后選定了ESP8266模塊
在使用ESP8266的程序中,發現使用默認的SmartConfig配網有兩個問題
1,設備是否連接成功,未給出提示
2,手機微信端局域網未發現設備,無法進行設備系結
因此,我進行基于安信可提供的SDK進行二次開發
開發工具為安信可提供的IDE

安裝好之后,首先打開給的官方SDK,我下載的版本為1.5.4

其中呢提供了幾個例子

首先根據AT指令例程進行參考移植,編譯通過后下載到ESP8266中,測驗AT指令無誤,接著加入airkiss靜態庫
這個靜態庫在什么地方呢?在微信硬體里


因為目前AirKiss3.0僅支持Android及Linux系統,因此選擇了AirKiss2.0,里面有詳細的開發說明和示例代碼


在
那里可以下載到支持的芯片及AIRKISS靜態庫

然后將下載的靜態庫加入到之前的AT例程里


然后手機微信掃碼

手機上按照提示進行填寫密碼,然后等待配網完成,完成后會提示已連接,并顯示出相應的設備,并可以進行系結,(ps:由于我是用的測驗號,無法顯示設備MAC和圖示,正式號可以正常使用,)至此,微信AIRKISS配網和局域網發現已實作,





對于上面所提到的

這個是微信公眾號里分配的設備TYPE和設備ID
微信公眾號里配置也比較繁瑣,首先需要開通正式號或者測驗號,然后獲取正式號或者測驗號的access_token

然后進正式號或者測驗號創建產品






獲取到產品編號(58116)和access_token后,就可以獲取設備TYPE和設備ID了,(并且型號二維碼就是上文提到的配網二維碼),


獲取到device_id后還需要一步,那就是和ESP8266模塊系結,官方建議是用ESP8266的MCA來進行區分,(當然了,如果只有一個設備,或者不需要區分哪個具體設備,這里可以隨意填寫12位資料即可,)


獲取到 "device_id", "device_type"寫入到上面SDK工程中,重新編譯下載,測驗AT指令也木有問題,大公告成,
下面呢,提一下這個SDK程式
首先呢是在AT例程里加入airkiss靜態庫,達到微信配網的目的,進入airkiss配網模式我采用增加一條AT指令和引腳按鍵觸發兩種方式來完成,
進入配網模式則用LED指示燈快閃指示,為了更好的兼容esp8266產品,因為esp01引出可用的引腳只有IO2,并且IO2還是LED的控制引腳,
使用長按IO2(也就是拉低IO2引腳3s以上)來進入配網模式,
然后增加AT指令則為,進入配網無動作60s后退出配網
啟動配網 AT+STARTAIRKISS
停止配網 AT+STOPAIRKISS
總結一下,代碼邏輯或許沒有太多,如果只是單純的AIRKISS配網的話,直接使用SDK工程加已有的二維碼即可
如果需要局域網發現,就是涉及的東西比較多,尤其是微信公眾平臺的設定,
相關檔案下載 https://download.csdn.net/download/qq_22848695/13104739(ps:基本實作功能的工程,大家可以自行修改)
后續:
后面因需要量產又進一步優化了一下,而不必每次創建設備都需要重新編譯下載(使用統一韌體,只需要按各自DEVICE配置的重新設定一下即可)
具體實作方法
1.初始化完成后要把MAC輸出顯示,方便更新系結DEVICE_ID,
2.把DEVICE_TYPE和DEVICE_ID分別用保存到SPI flash
然后通過AT指令進行更新
AT+DEVICE_TYPE=gh_1a43e75a8d76
AT+DEVICE_ID=gh_1a43e75a8d76_07517a6c94ec9c4d

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/212764.html
標籤:其他
