騰訊物聯網項目完結篇(添加微信小程序)


title: 騰訊物聯網項目完結篇(添加微信小程序)
tags: TencentOS
date: 2019-10-05 21:53:00


拖更日記

這是拖更了大概一個多月的視頻,主要記錄一下上次參加騰訊OS內測項目的完結篇

我個人是一個具有重度拖延症的一個人,所以8月份參加了比賽,當時也取得了二等獎的成績,但是其實最終的產品還未完成,心裏一直有疑慮,這不趕着國慶節假期,終於有時間作了最後的完善—》添加微信小程序


在這裏插入圖片描述
在這裏插入圖片描述

部分代碼參考網上的教程,具體通訊部分由自己編寫設計
在這裏插入圖片描述


視頻演示: https://www.bilibili.com/video/av70107007/




而且其中還遇到了一些問題,尤其是json解析的時候:

這個問題我卡了很久,JSON.parse這個api很挑剔,首先我發的json數據在騰訊雲是可以正常識別的,但是發給微信小程序就識別不了了,不是爲啥,最後我測試了一個多小時,最後發現,這貨對於json字符串有極其嚴格的要求,由於我發的數據上面結尾有空格,導致了最終的解析失敗,這也是我手動賦值消息卻可以正常解析的原因。
最後的解決方法: 用正則表達式把數據截取出來,再用json解析出來。 OJBK


MessageProcess: function(topic, payload) {
    var that = this;

    var payload_string = payload.toString();
    console.log(topic);
    if (topic == that.data.topic.HumdTopic) {
      var msg_payload = payload_string.match(/(\S*)}/)[1];
      msg_payload +="}"
      console.log(payload_string + "數據類型爲:" + typeof (payload_string) + "長度:" + payload_string.length);
      //var test_buffer = '{"temperature":26.9,"humidity":48.7,"light":2.0,"PM25":54.0,"wind_speed":0.0,"door":"close"}';
      //var jsonObj = JSON.parse(test_buffer.toString());
      //console.log(jsonObj);
      var jsonObj = JSON.parse(msg_payload);
      //var jsonObj = JSON.stringify(payload_string)
      console.log(jsonObj.door);
      that.setData({  
        'value.HumdValue': jsonObj.humidity,
        'value.TempValue': jsonObj.temperature, 
        'value.PM25_value': jsonObj.PM25,
        'value.G_value': jsonObj.light,
        'value.F_value': jsonObj.wind_speed
      })
    }
    if (topic == that.data.topic.TempTopic) {
      that.setData({
        
      })
    }

  },

最後的源碼和整個工程,可以在QQ羣獲得:476840321
好好學習,天天向上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章