日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Python Link SDK

本文以夜燈開關為例,介紹如何快速地使用Python Link SDK,模擬設備采用MQTT協議接入物聯網平臺,并通過自定義Topic上報數據至物聯網平臺的完整操作。

前提條件

開通物聯網平臺服務

說明

免費開通后,您可先試用物聯網平臺服務,試用流程,請參見阿里云免費試用的物聯網平臺產品。物聯網平臺服務的計費標準,請參見計費概述

創建產品和設備

  1. 登錄物聯網平臺控制臺,單擊目標實例卡片。

  2. 在左側導航欄,選擇設備管理 > 產品,單擊創建產品

  3. 新建產品頁面,輸入產品名稱:夜燈開關,所屬品類選擇自定義品類,其他參數使用默認值,單擊確認

    創建產品

  4. 在完成創建產品的頁面,單擊添加設備下的前往添加

  5. 設備頁面,單擊添加設備

  6. 添加設備對話框中,輸入設備名稱,例如:LightSwitch。然后,單擊確認

    添加設備

  7. 添加完成對話框中,單擊一鍵復制設備證書。將設備證書信息保存至本地備用。關于設備證書的更多信息,請參見設備證書

準備開發環境

本示例的開發環境為Python 3.6,開發工具為PIP 3.6。關于環境的更多說明,請參見環境要求與配置

  1. 安裝Python開發環境。

    更多信息,請參見Python

  2. 可選:安裝Python的包管理工具PIP。

    更多信息,請參見PIP

  3. 根據需要,選擇以下方式安裝Demo運行所需的依賴庫。

    • 已安裝PIP:

      在任意目錄下,執行以下命令。

      pip install aliyun-iot-linkkit
      pip install paho-mqtt==1.6.1
    • 未安裝PIP:

      請手動下載以下開源庫并解壓至本地,然后依次在每個解壓后的目錄下,執行命令python setup.py install

配置設備端SDK

  1. 下載Demo文件至開發環境并解壓。

  2. 打開./mqtt_quick_start.py文件,配置如下參數。

    • 配置設備接入信息,使設備接入物聯網平臺。示例代碼如下:

      lk = linkkit.LinkKit(
          host_name="cn-shanghai",
          product_key="a18wP******",
          device_name="LightSwitch",
          device_secret="uwMTmVAMnGGHaAkqmeDY6cHxxB******")
      lk.config_mqtt(endpoint="iot-cn-6ja******.mqtt.iothub.aliyuncs.com")

      參數

      示例

      說明

      host_name

      cn-shanghai

      設備接入的地域ID。更多信息,請參見地域和可用區

      product_key

      a18wP******

      設備認證信息。即完成添加設備后,您保存至本地的設備證書。

      您也可以在物聯網平臺的設備詳情頁查看設備的認證信息。更多信息,請參見獲取設備認證信息

      device_name

      LightSwitch

      device_secret

      uwMTmVAMnGGHaAkqmeDY6cHxxB******

      endpoint

      iot-cn-6ja******.mqtt.iothub.aliyuncs.com

      接入域名。

      您可在物聯網平臺控制臺的實例詳情頁面,單擊查看開發配置,獲取設備接入域名。

      更多信息,請參見查看實例終端節點

    • 配置設備訂閱Topic接收來自物聯網平臺的消息。示例代碼如下:

              elif msg == "3":
                  rc, mid = lk.subscribe_topic(lk.to_full_topic("user/get"))
                  if rc == 0:
                      print("subscribe topic success:%r, mid:%r" % (rc, mid))
                  else:
                      print("subscribe topic fail:%d" % rc)

      參數

      示例

      說明

      subscribe_topic

      lk.to_full_topic("user/get")

      具有訂閱權限的Topic,設備通過該Topic,可接收物聯網平臺的消息。

      您可以填入lk.to_full_topic("user/get")或者/a18wP******/LightSwitch/user/get

      lk.to_full_topic("user/get")是一個Topic自動生成接口,您在前面已經填入了ProductKey、DeviceName等參數,該接口調用后將返回一個字符串,其值等同于/a18wP******/LightSwitch/user/get

    • 配置設備用于發送信息的Topic,例如/a18wP******/LightSwitch/user/update,并設置要發送的信息內容。示例代碼如下:

              elif msg == "5":
                  rc, mid = lk.publish_topic(lk.to_full_topic("user/update"), "{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}")
                  if rc == 0:
                      print("publish topic success:%r, mid:%r" % (rc, mid))
                  else:
                      print("publish topic fail:%d" % rc)

      參數

      示例

      說明

      publish_topic

      lk.to_full_topic("user/update"), "{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}"

      要發送消息的Topic和內容。其中:

      • 示例值中的user/update為Topic的后綴,將其修改為指定值后,可向對應的Topic發送消息。該Topic需具備發布權限。

        您可以在物聯網平臺的產品詳情頁的Topic類列表下的自定義Topic頁簽下,查看您的自定義Topic。更多信息,請參見什么是Topic

        本示例要發送消息的Topic為/a18wP******/LightSwitch/user/update

        • a18wP******為設備的ProductKey

        • LightSwitch為設備的DeviceName

      • {\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}為上報至物聯網平臺的消息內容。

        本示例使用自定義Topic,您可自定義消息的數據格式。

  3. 配置參數后,保存文件。

運行結果

  • 在Demo可執行文件所在目錄下,執行以下命令,運行Demo可執行文件。

    python mqtt_quick_start.py
    • Demo運行成功后,設備端運行如下日志,設備(LightSwitch)成功接入物聯網平臺。

      2021-05-07 15:27:10,725-6508-14504 - linkkit:linkkit:info - INFO - config_mqtt enter
      2021-05-07 15:27:10,725-6508-14504 - linkkit:linkkit:debug - DEBUG - connect_async
      2021-05-07 15:27:10,727-6508-4408 - linkkit:linkkit:debug - DEBUG - LoopThread thread enter
      2021-05-07 15:27:10,727-6508-4408 - linkkit:linkkit:debug - DEBUG - enter
      2021-05-07 15:27:10,727-6508-4408 - linkkit:linkkit:info - INFO - start connect
      2021-05-07 15:27:10,729-6508-4408 - linkkit:linkkit:debug - DEBUG - current working directory:D:\******
      2021-05-07 15:27:10,799-6508-4408 - Paho:client:_easy_log - DEBUG - Sending CONNECT (u1, p1, wr0, wq0, wf0, c1, k60) client_id=b'a18wP******&LightSwitch|securemode=2,signmethod=hmacsha1,ext=1,lan=Python,_v=1.2.0,sii=Eth|03ACDEFF0032|Eth|03ACDEFF0031,timestamp=1620372430|'
      2021-05-07 15:27:10,831-6508-4408 - Paho:client:_easy_log - DEBUG - Received CONNACK (0, 0)
      2021-05-07 15:27:10,831-6508-4408 - linkkit:linkkit:info - INFO - __on_internal_connect
    • 在運行的Demo中,輸入3,模擬設備LightSwitch訂閱Topic /a18wP******/LightSwitch/user/get

      2021-05-07 16:03:52,423-25352-26452 - Paho:client:_easy_log - DEBUG - Sending SUBSCRIBE (d0, m2) [(b'/a18wP******/LightSwitch/user/get', 1)]
      subscribe topic success:0, mid:2
      2021-05-07 16:03:52,440-25352-24916 - Paho:client:_easy_log - DEBUG - Received SUBACK
      2021-05-07 16:03:52,440-25352-24916 - linkkit:linkkit:debug - DEBUG - post_message :'on_subscribe'
      2021-05-07 16:03:52,440-25352-24916 - linkkit:linkkit:debug - DEBUG - post_message success
      2021-05-07 16:03:52,441-25352-25544 - linkkit:linkkit:debug - DEBUG - thread runnable pop cmd:'on_subscribe'
      2021-05-07 16:03:52,441-25352-25544 - linkkit:linkkit:debug - DEBUG - __on_internal_subscribe mid:2  granted_qos:1
      on_subscribe_topic mid:2, granted_qos:1

      Topic訂閱成功后,您可以返回物聯網平臺,在設備詳情頁面的Topic列表頁簽,單擊訂閱的Topic操作欄的發布消息,然后在發布消息對話框的消息輸入欄中,輸入一條消息,例如:This is a test message from Alibaba Iot Platform.,模擬從物聯網平臺向設備發送消息。發送消息

    • 在運行的Demo中,輸入5,模擬設備LightSwitch通過Topic /a18wP******/LightSwitch/user/update,向物聯網平臺上報了一條消息。

      2021-05-07 16:06:23,786-30364-20372 - Paho:client:_easy_log - DEBUG - Sending PUBLISH (d0, q1, r0, m3), 'b'/a18wP******/LightSwitch/user/update'', ... (53 bytes)
      publish topic success:0, mid:3
      2021-05-07 16:06:23,799-30364-27344 - Paho:client:_easy_log - DEBUG - Received PUBACK (Mid: 3)
      2021-05-07 16:06:23,799-30364-27344 - linkkit:linkkit:debug - DEBUG - post_message :'on_publish'
      2021-05-07 16:06:23,806-30364-27344 - linkkit:linkkit:debug - DEBUG - post_message success
      2021-05-07 16:06:23,806-30364-11596 - linkkit:linkkit:debug - DEBUG - thread runnable pop cmd:'on_publish'
      2021-05-07 16:06:23,808-30364-11596 - linkkit:linkkit:debug - DEBUG - __on_internal_publish message:3
      on_publish_topic mid:3
  • 您可以在物聯網平臺控制臺,查看設備的狀態和運行日志。

    • 左側導航欄,選擇設備管理 > 設備,找到設備,查看設備狀態。設備狀態顯示為在線,則表示設備與物聯網平臺成功連接。

    • 在左側導航欄,選擇監控運維>日志服務,選擇夜燈開關產品后,查看設備上線、訂閱Topic和上報消息的日志。

      說明

      您可以忽略關于訂閱Topic/sys/a18wP******/LightSwitch/thing/deviceinfo/update_reply的日志。該訂閱為SDK自帶默認功能,不影響您的體驗。

如果在調試過程中出現錯誤,請參見設備端接收的錯誤碼,根據提示解決問題。

后續步驟

設備接入物聯網平臺后,您可以管理設備并對其進行監控運維。關于物聯網平臺的更多功能,請參見物聯網平臺產品功能

使用Python Link SDK配置相關高級功能,請參見Python Link SDK概述