[ESP] 私有版Rainmaker User Mapping

2023-06-14 18:18:50

[ESP] 私有版Rainmaker User Mapping

1. 裝置燒錄的程式rainmaker自帶gpio範例

我這裡是自己的工程,可以參照

  1. idf.py set-target esp32
  2. idf.py build
  3. idf.py -p /dev/ttyUSB0 flash monitor

串列埠輸出顯示如下:

特別記住以下資訊:

  1. name
  2. pop
  3. node id
  4. transport

2. swaggerapis登入賬戶

  1. 因為使用的私有版Rainmaker,所以API Url需要修改,這個不方便上傳。

  1. 使用POST建立使用者,因為我之前已經建立過,所以不重複步驟。

  1. 使用POST登入之前建立的使用者,並複製返回的accesstoken

  1. 點選最上面API Url右側的Authorize,輸入剛才複製的accesstoken

  1. 使用GET獲取User id,後面需要傳給裝置和雲端。

3. 呼叫Rainmaker封裝好的py指令碼充當Client

  • esp-rainmaker/cli/rmaker_tools/rmaker_prov/esp_rainmaker_prov.py

esp_rainmaker_prov.py報錯

解決方法:

  1. 開啟esp-rainmaker/cli/rmaker_tools/rmaker_prov/proto/init.py檔案
  2. 刪除*from* rmaker_lib.logger *import* log
  3. 刪除log.error(load_source_err)

步驟

  1. 電腦連線裝置的AP,我們這裡就是看到的OG901_14faf2
  2. 連線AP成功後執行esp_rainmaker_prov.py做對映,需要設定引數主要有以下幾項:
    1. --transport
    2. --pop
    3. --userid
    4. --secretkey(隨機碼,我這裡寫了1234567890)
    5. --ssid(連線的WIFI名,比如sharkrobot)
    6. --passphrase(連線的WIFI密碼,比如sharkrobot的密碼)
  3. esp_rainmaker_prov.py執行截圖

  1. 裝置串列埠截圖

到這裡裝置和Client之間的配網和對映就做好了,然後需要用swaggerapis和雲端做對映。

4. swaggerapis和雲端做對映

  • 在第二大步(swaggerapis登入賬戶)的基礎上進行以下步驟:
  1. 使用PUTnode_idsecret_key傳送給雲端,並複製返回的request_id

  1. 使用GET獲取雲端對映的狀態,返回confirmed代表成功。

  1. 使用GET獲取當前使用者對映了哪些node,GET的引數有幾點需要注意:
    1. node_id這欄選為空
    2. tags這欄選為空