小程序模擬設備端!經過CFC函數計算實現設備註冊流程,並可經過MQTT鏈接雲端發送消息

本文做者:天工智能物聯網html

最近沉迷於對物聯網的各類探索。前幾天在研究物接入的時候忽然想到,當咱們擁有大量設備等待接入物聯網時,比起一臺一臺的給設備燒錄獨一無二的用戶名和密碼,是否有更爲快捷的處理方式呢?後來看了網上的一些教程和分享,發現其實能夠最開始統一給全部設備燒錄默認的用於初始化的鏈接信息(物模型),而後在設備首次聯網時,上報設備標識藉助雲端服務(CFC函數)生成新的獨一無二專屬於此設備的設備影子(物影子)。然後斷開初始化鏈接,鏈接這個剛生成的物影子,開始正常工做。大致示意圖以下:python

惋惜我如今身邊沒有這麼多設備,想了半天發現能夠用微信小程序來模擬設備端;只要每次上報的設備標識不一樣,就能夠被認定爲不一樣設備啦。因此花了幾天時間搞了一個微信小程序,今天就給你們分享一下!!主要是實現瞭如下幾個功能:1. 小程序模擬設備端,https鏈接百度雲天工裏提早設置好的用於註冊新設備的CFC函數計算(代碼會分享)完成新設備的初始化流程,建立新設備物影子。 2. 經過MQTT鏈接建立好的新設備或已有設備,向設備發送信息。3. 創建了一個消息列表存儲了用戶過往在小程序上發送過的消息能夠供用戶查看。git

【代碼】github

微信小程序源代碼倉庫github:https://github.com/Lizxxxx/Wechat-connect-BaiduIoT小程序

CFC函數計算相關代碼github:https://github.com/Lizxxxx/createDevice-CFC-BaiduIoT (直接下載裏面的zip file就好)微信小程序

【微信小程序開發】微信

我也是第一次接觸微信小程序,開發的時候才發現,因爲小程序的限制,僅容許備案域名經過加密協議(https或wss)鏈接,所以咱們的MQTT鏈接雲端是經過MQTT over wss的方式實現的。在小程序裏使用MQTT能夠直接借用開源庫,這裏我藉助了以下開源庫:https://github.com/mqttjs/MQTT.js,你們能夠參考一下。函數

【CFC函數計算——新設備初始化】加密

使用小程序前,咱們首先要在雲端配置好函數計算的代碼。url

首先直接下載我上方github連接裏的zip file便可。而後在百度雲天工的控我的制臺界面開通CFC函數計算,建立一個函數。這裏咱們的demo是python的,因此語言選擇python而後直接上傳zip包便可。記得必定要配置一下環境變量!!以下圖,先添加本身百度雲帳戶專屬的AK和SK,點擊查看如何獲取AK/SK(https://cloud.baidu.com/doc/Reference/s/9jwvz2egb/);

而後再添加一下默認的設備描述和scheme ID。如何得到scheme ID:打開物接入項目中的物模型列表,選擇你後面即將新建的設備物影子想要參考的物模型,打開其詳情頁,以下圖所示,紅圈部分就是schemaID啦。

注意!這裏CFC函數代碼裏我設置了一個用於覈對設備標識的白名單驗證!這個你們能夠按需修改。

設置好函數代碼後,由於微信小程序是經過https來鏈接函數,咱們須要配置http觸發器。在觸發器頁面點擊新增觸發器,類型選擇http觸發器,url按喜愛填寫,http方法這裏只需選擇 (POST,PUT,GET) 就夠用了,身份驗證爲了方便,這裏先選擇不驗證。配置完成後,複製一下生成的URL路徑!這個就是後續咱們須要用到的能讓咱們經過https鏈接並使用函數的地址啦!

【Demo】

這裏簡單介紹一下這個微信小程序。UI比較簡陋,請不要介意!

首頁,若是是鏈接已有設備的話輸入信息直接點鏈接就行;新建設備的話就直接點下方新建設備。

輸入信息註冊新設備。

新設備註冊好後會返回註冊信息,記得保存。

發送信息以前咱們須要鏈接物影子。

這裏注意下若是是首次向該主題發送消息,在發送消息以前,最好必定要先訂閱該主題。以及自定義消息必定要按格式輸入;消息的發送格式能夠在代碼裏本身按需修改哈~

訂閱主題很方便,訂閱後點返回發送消息就好啦。

  

按格式輸入消息而後發送,發送成功後能夠看到消息被封裝後的發送格式。

  

前往消息列表就能夠看到剛剛發的消息啦。而後選擇返回首頁或者繼續發送消息均可以。

【參考】

關於百度雲天工的物接入使用有疑問的,能夠參考一下相關幫助文檔:https://cloud.baidu.com/doc/IOT/index.html

 

原文連接地址:https://developer.baidu.com/topic/show/290297

相關文章
相關標籤/搜索