[ESP] 私有版Rainmaker User Mapping
1. 裝置燒錄的程式rainmaker自帶gpio範例
我這裡是自己的工程,可以參照
- idf.py set-target esp32
- idf.py build
- idf.py -p /dev/ttyUSB0 flash monitor
串列埠輸出顯示如下:
特別記住以下資訊:
- name
- pop
- node id
- transport
2. swaggerapis登入賬戶
- 因為使用的私有版Rainmaker,所以API Url需要修改,這個不方便上傳。
- 使用POST建立使用者,因為我之前已經建立過,所以不重複步驟。
- 使用POST登入之前建立的使用者,並複製返回的accesstoken。
- 點選最上面API Url右側的Authorize,輸入剛才複製的accesstoken。
- 使用GET獲取User id,後面需要傳給裝置和雲端。
3. 呼叫Rainmaker封裝好的py指令碼充當Client
- esp-rainmaker/cli/rmaker_tools/rmaker_prov/esp_rainmaker_prov.py
esp_rainmaker_prov.py報錯
解決方法:
- 開啟esp-rainmaker/cli/rmaker_tools/rmaker_prov/proto/init.py檔案
- 刪除*
from* rmaker_lib.logger *import* log
- 刪除
log.error(load_source_err)
步驟
- 電腦連線裝置的AP,我們這裡就是看到的OG901_14faf2。
- 連線AP成功後執行esp_rainmaker_prov.py做對映,需要設定引數主要有以下幾項:
- --transport
- --pop
- --userid
- --secretkey(隨機碼,我這裡寫了1234567890)
- --ssid(連線的WIFI名,比如sharkrobot)
- --passphrase(連線的WIFI密碼,比如sharkrobot的密碼)
- esp_rainmaker_prov.py執行截圖
- 裝置串列埠截圖
到這裡裝置和Client之間的配網和對映就做好了,然後需要用swaggerapis和雲端做對映。
4. swaggerapis和雲端做對映
- 在第二大步(swaggerapis登入賬戶)的基礎上進行以下步驟:
- 使用PUT將node_id和secret_key傳送給雲端,並複製返回的request_id。
- 使用GET獲取雲端對映的狀態,返回
confirmed
代表成功。
- 使用GET獲取當前使用者對映了哪些node,GET的引數有幾點需要注意:
- node_id這欄選為空
- tags這欄選為空