国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

物聯(lián)網(wǎng)實(shí)踐教程(終章):微信小程序結(jié)合OneNET平臺(tái)MQTT實(shí)現(xiàn)51/STM32單片機(jī)智能控制與溫度等數(shù)據(jù)實(shí)時(shí)顯示【微信小程序篇】

這篇具有很好參考價(jià)值的文章主要介紹了物聯(lián)網(wǎng)實(shí)踐教程(終章):微信小程序結(jié)合OneNET平臺(tái)MQTT實(shí)現(xiàn)51/STM32單片機(jī)智能控制與溫度等數(shù)據(jù)實(shí)時(shí)顯示【微信小程序篇】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

章節(jié)

本項(xiàng)目教程總共分為四節(jié)
1.創(chuàng)建OneNET新版MQTT設(shè)備:為微信小程序與單片機(jī)通信打基礎(chǔ)(微信小程序通信單片機(jī)前置任務(wù))

2.ESP8266-01s入門:燒錄AT固件與OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信單片機(jī)前置任務(wù))

3.物聯(lián)網(wǎng)實(shí)踐教程:微信小程序結(jié)合OneNET平臺(tái)MQTT實(shí)現(xiàn)51/STM32單片機(jī)智能控制【單片機(jī)代碼篇】

4.(當(dāng)前文章)物聯(lián)網(wǎng)實(shí)踐教程(終章):微信小程序結(jié)合OneNET平臺(tái)MQTT實(shí)現(xiàn)51/STM32單片機(jī)智能控制【微信小程序篇】

前言


項(xiàng)目最終成品演示

ESP8266視頻演示

微信小程序簡(jiǎn)介

微信小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的理念,用戶掃一掃或搜一下即可打開應(yīng)用。由于它具有使用門檻低、加載速度快等優(yōu)點(diǎn),微信小程序在物聯(lián)網(wǎng)(IoT)場(chǎng)景中扮演著越來越重要的角色,特別適合于智能設(shè)備的遠(yuǎn)程控制和數(shù)據(jù)監(jiān)測(cè)。

物聯(lián)網(wǎng)設(shè)備通常需要與用戶的手機(jī)或其他智能設(shè)備進(jìn)行交互,微信小程序就極大簡(jiǎn)化了這一過程。用戶無需下載復(fù)雜的應(yīng)用程序,只需在微信中搜索或掃碼即可實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)產(chǎn)品的控制,如智能家居設(shè)備的管理、實(shí)時(shí)數(shù)據(jù)監(jiān)控等。微信小程序的跨平臺(tái)特性也讓設(shè)備廠商無需針對(duì)不同操作系統(tǒng)開發(fā)多個(gè)應(yīng)用程序,從而大大節(jié)省了成本和時(shí)間。

OneNET API介紹

OneNET是中國(guó)移動(dòng)旗下的物聯(lián)網(wǎng)平臺(tái),它提供了強(qiáng)大的數(shù)據(jù)存儲(chǔ)和管理能力,支持各類物聯(lián)網(wǎng)設(shè)備的接入。通過OneNET,設(shè)備可以實(shí)現(xiàn)數(shù)據(jù)的上傳與存儲(chǔ),開發(fā)者也可以利用提供的API來獲取這些數(shù)據(jù)進(jìn)行分析或顯示,亦或是發(fā)送控制指令到遠(yuǎn)端設(shè)備。

OneNET的API基于RESTful架構(gòu),支持標(biāo)準(zhǔn)的HTTP/HTTPS協(xié)議,使得各種平臺(tái)和設(shè)備都能方便地集成和使用。通過API,開發(fā)者可以實(shí)現(xiàn)如下功能:

  • 數(shù)據(jù)上傳:物聯(lián)網(wǎng)設(shè)備可以通過API將采集到的數(shù)據(jù)上傳到OneNET平臺(tái),例如溫度、濕度、光照強(qiáng)度等傳感器數(shù)據(jù)。

  • 指令下發(fā):開發(fā)者可以使用API發(fā)送指令到設(shè)備,實(shí)現(xiàn)遠(yuǎn)程控制,如開關(guān)燈、調(diào)節(jié)溫度等。

對(duì)于微信小程序開發(fā)者而言,這意味著可以通過發(fā)送HTTPS請(qǐng)求來與OneNET平臺(tái)進(jìn)行交互,無需搭建獨(dú)立的服務(wù)器。小程序中的每一個(gè)用戶界面,都可以嵌入對(duì)API的調(diào)用,實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)更新和設(shè)備的即時(shí)控制。

在本教程中,我們將詳細(xì)介紹如何在微信小程序中調(diào)用OneNET API,來達(dá)到獲取設(shè)備MQTT數(shù)據(jù)和下發(fā)控制指令至51單片機(jī)的目標(biāo)。


圖片

小程序如何與單片機(jī)連接,物聯(lián)網(wǎng),單片機(jī),物聯(lián)網(wǎng),微信小程序,小程序

小程序如何與單片機(jī)連接,物聯(lián)網(wǎng),單片機(jī),物聯(lián)網(wǎng),微信小程序,小程序

微信小程序中使用OneNET API的Token

這個(gè)不同于Token1.0使用
在此之前我一直找不到這個(gè)軟件,在網(wǎng)上搜免費(fèi)的東西別人還要收費(fèi),最后在OneNET官方技術(shù)支持找到了,我這里就免費(fèi)把連接放出來,順便給你們那個(gè)官方的網(wǎng)址
服務(wù)與技術(shù)支持
Token2.0計(jì)算
生成的Token就是微信小程序里面要用的了
例如 const authInfo = "version=2022-05-01&res=userid%2F341108&et=1733816371&method=sha1&sign=%2BVN%2BgKOork6IMDt4ZfaSrag%3D";
小程序如何與單片機(jī)連接,物聯(lián)網(wǎng),單片機(jī),物聯(lián)網(wǎng),微信小程序,小程序

介紹如何在微信小程序調(diào)用OneNET的API(GET請(qǐng)求)

官方說明在

小程序如何與單片機(jī)連接,物聯(lián)網(wǎng),單片機(jī),物聯(lián)網(wǎng),微信小程序,小程序

只要弄懂了這一個(gè)調(diào)用方法,其他的也都會(huì)了,所有調(diào)用幾乎都是這樣
這個(gè)是獲取最新物模型數(shù)據(jù),記得更改為你自己的信息

fetchDeviceStatus() {
    // 這里應(yīng)替換為用戶的實(shí)際鑒權(quán)信息
    const authInfo = "version=2022-05-01&res=userid%2F341108&et=1733816371&methodign=%2BVNoDSm%2BgKOork6IMDt4ZfaSrag%3D"; 
    wx.request({
      url: 'https://iot-api.heclouds.com/device/status-history?product_id=05Dy8U26rg&device_name=test&start_time=1701090060000&end_time=1703511540000&limit=1',
      method: "GET",
      header: {
        'Authorization': authInfo
      },
      success: (res) => {
        // 更新設(shè)備狀態(tài)信息數(shù)據(jù)
        this.setData({
          deviceStatus: res.data
        });
      },
      fail: (err) => {
        console.log("設(shè)備狀態(tài)信息請(qǐng)求失敗");
        console.error(err); // 處理請(qǐng)求失敗的情況
      }
    });
  }

這段 JavaScript 代碼是微信小程序中的一個(gè)函數(shù),它用于向OneNET平臺(tái)發(fā)送HTTP GET請(qǐng)求來獲取已連接設(shè)備的狀態(tài)歷史信息。下面分部分進(jìn)行詳細(xì)解釋:

  1. fetchDeviceStatus 函數(shù)

    • 這是在微信小程序頁面對(duì)象中定義的一個(gè)方法,其名稱為 fetchDeviceStatus。
    • 它被設(shè)計(jì)為調(diào)用 OneNET 的 RESTful API,獲取特定設(shè)備的狀態(tài)歷史數(shù)據(jù)。
  2. 鑒權(quán)信息(authInfo)

    • authInfo 是一個(gè)字符串,包含通過 HTTP 請(qǐng)求頭發(fā)送給 OneNET 的鑒權(quán)信息。
    • 通常這里包含 API 版本、用戶標(biāo)識(shí)、過期時(shí)間、請(qǐng)求方法和簽名等信息。
    • 鑒權(quán)信息用于驗(yàn)證請(qǐng)求的合法性,確保是有權(quán)訪問該API的用戶發(fā)起的請(qǐng)求。
    • 出于教程示例的目的,這里的鑒權(quán)信息應(yīng)被讀者替換為他們自己的有效信息。
  3. wx.request

    • wx.request 是微信小程序提供的網(wǎng)絡(luò)請(qǐng)求API,用于發(fā)起網(wǎng)絡(luò)請(qǐng)求。
    • 該函數(shù)接收一個(gè)對(duì)象,其中包含進(jìn)行HTTP請(qǐng)求所需的各種參數(shù),如URL、方法、頭部信息等。
  4. 請(qǐng)求配置

    • url 指明了向哪個(gè)地址發(fā)送請(qǐng)求。這里是 OneNET 的API端點(diǎn),用于獲取設(shè)備狀態(tài)歷史信息。
    • method 設(shè)置請(qǐng)求的 HTTP 方法,這里為 “GET”。
    • header 包含發(fā)送到服務(wù)器的頭部信息,這里主要傳遞 Authorization 來認(rèn)證請(qǐng)求。
  5. 發(fā)送請(qǐng)求并處理響應(yīng)

    • successfail 是請(qǐng)求成功或失敗時(shí)執(zhí)行的回調(diào)函數(shù)。
    • success 回調(diào)中,通過 this.setData 更新小程序頁面的 deviceStatus 數(shù)據(jù),即將服務(wù)器返回的數(shù)據(jù)設(shè)置到頁面數(shù)據(jù)上,從而可以在頁面上展示這些信息。
    • 如果請(qǐng)求失敗,fail 回調(diào)將執(zhí)行,通常這里會(huì)打印錯(cuò)誤信息到控制臺(tái),可以在這里處理錯(cuò)誤,比如更新UI提示用戶請(qǐng)求失敗。
  6. 請(qǐng)求參數(shù)

    • 請(qǐng)求的URL中包含的查詢參數(shù)(product_id, device_name, start_time, end_time, limit)用于指定想要查詢的設(shè)備狀態(tài)信息。
    • product_iddevice_name 分別指定產(chǎn)品ID和設(shè)備名。
    • start_timeend_time定義了查詢狀態(tài)的時(shí)間范圍。
    • limit 表示返回結(jié)果的數(shù)量限制,這里設(shè)置為1表示只獲取最新的一個(gè)狀態(tài)數(shù)據(jù)。

請(qǐng)注意,實(shí)際使用時(shí)需要確保所有參數(shù)都是正確的,尤其是鑒權(quán)信息,它需要替換為有效的憑據(jù)才能讓API請(qǐng)求成功。如果請(qǐng)求失敗,要檢查網(wǎng)絡(luò)狀態(tài)、URL地址、API端點(diǎn)參數(shù)和鑒權(quán)信息是否正確。

介紹如何在微信小程序調(diào)用OneNET的API(POST請(qǐng)求)

這里是類同與下發(fā)指令的代碼 記得更改為你自己的信息

setOnenetData(ledValue) {
    // 以下數(shù)據(jù)和URL應(yīng)根據(jù)實(shí)際情況進(jìn)行修改
    const authInfo = "version=2022-05-01&res=userid%2F341108&et=1733816371ha1&sign=%2BVNoDSm%2BgKOork6IMDt4ZfaSrag%3D"; // 替換為用戶的實(shí)際鑒權(quán)信息 
    wx.request({
      url: 'https://iot-api.heclouds.com/thingmodel/set-device-property',
      method: 'POST',
      header: {
        'Authorization': authInfo,
      },
      data: {
        "product_id": "05Dy8U26rg",
        "device_name": "test",
        "params": {
          "LED": ledValue // 使用傳入的ledValue設(shè)置LED的狀態(tài)
        }
      }
    });
  }

這段代碼是微信小程序中的一個(gè)方法,名為setOnenetData,它用于發(fā)送HTTP POST請(qǐng)求到OneNET平臺(tái),以設(shè)置特定設(shè)備的屬性值。下面是對(duì)該方法的詳細(xì)解釋:

  1. setOnenetData 方法

    • 此方法接受一個(gè)參數(shù)ledValue,這個(gè)參數(shù)代表需要設(shè)置給設(shè)備LED屬性的值。
  2. 鑒權(quán)信息(authInfo)

    • authInfo是一個(gè)字符串,包含了API鑒權(quán)信息,一般包括API版本、資源標(biāo)識(shí)、過期時(shí)間、加密方法和簽名。
    • 請(qǐng)求時(shí)使用HTTP頭Authorization傳遞鑒權(quán)信息進(jìn)行身份驗(yàn)證,保證請(qǐng)求安全性。
    • 這個(gè)示例中的鑒權(quán)信息需要用實(shí)際有效的信息替換。
  3. wx.request 方法

    • wx.request 是微信小程序用來發(fā)起網(wǎng)絡(luò)請(qǐng)求的API。
    • 通過傳入一組參數(shù)配置,定義了如何向服務(wù)器發(fā)送請(qǐng)求。
  4. 請(qǐng)求配置

    • url 指明了向哪個(gè)地址發(fā)送請(qǐng)求,這里是OneNET的API端點(diǎn),用于設(shè)置設(shè)備屬性。
    • method 表明這是一個(gè)POST請(qǐng)求,用于向服務(wù)器提交數(shù)據(jù)。
    • header 設(shè)置HTTP頭部信息,在這種情況下是包含Authorization的鑒權(quán)信息。
  5. 發(fā)送數(shù)據(jù)

    • data 對(duì)象中包含具體要發(fā)送的數(shù)據(jù)。
    • product_iddevice_name 指定了哪個(gè)產(chǎn)品下的哪個(gè)設(shè)備需要設(shè)置屬性。
    • params 是一個(gè)對(duì)象,其中的“LED”鍵對(duì)應(yīng)設(shè)備的屬性名,“LED”鍵的值就是傳入setOnenetData方法的ledValue參數(shù),它表示用來設(shè)置設(shè)備的LED屬性的值。
  6. 發(fā)送請(qǐng)求

    • wx.request 發(fā)出請(qǐng)求,但在這段代碼里,沒有定義回調(diào)函數(shù)來處理響應(yīng)。
    • 實(shí)際使用應(yīng)加上successfail回調(diào)函數(shù),用于處理請(qǐng)求成功時(shí)返回的數(shù)據(jù)或請(qǐng)求失敗時(shí)的錯(cuò)誤信息。
  7. 注意事項(xiàng)

    • 在編寫實(shí)際代碼時(shí),除了替換示例中的authInfo,還需確保product_iddevice_name與你要控制的設(shè)備相匹配。
    • 同樣,傳給OneNET平臺(tái)的參數(shù)(如LED的狀態(tài)值)應(yīng)該滿足平臺(tái)及設(shè)備端的預(yù)定協(xié)議,以確保設(shè)備能正確理解和響應(yīng)。

這個(gè)setOnenetData方法允許微信小程序與OneNET平臺(tái)進(jìn)行交互,實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)設(shè)備的遠(yuǎn)程控制。

資源包下載

資源包下載

https://pan.baidu.com/s/15iw7kzn4GMUKP3g8809PUA?pwd=jq91

結(jié)束語

在這個(gè)教程的旅程中,我們一起跨越了從硬件的細(xì)節(jié)世界到云端的數(shù)據(jù)流,最終觸達(dá)了用戶手中的微信小程序界面,實(shí)現(xiàn)了一個(gè)物聯(lián)網(wǎng)系統(tǒng)的全棧開發(fā)。感謝您的陪伴和努力,希望通過這些章節(jié)的學(xué)習(xí),您能獲得寶貴的實(shí)戰(zhàn)經(jīng)驗(yàn)和深刻的理解。

物聯(lián)網(wǎng)技術(shù)是連接物理世界和數(shù)字世界的橋梁,通過您對(duì)單片機(jī)、ESP8266和傳感器技術(shù)的探索,我們已經(jīng)成功搭建起了這座橋梁。不僅如此,您現(xiàn)在還可以遠(yuǎn)程監(jiān)控?cái)?shù)據(jù),甚至向設(shè)備下發(fā)指令,例如控制LED的開關(guān)狀態(tài)等操作。我相信您已經(jīng)感受到了物聯(lián)網(wǎng)帶來的便利和魅力。

我們始終相信每個(gè)人都有創(chuàng)造奇跡的潛力,只要勇敢地邁出探索的第一步,并持續(xù)地提升自己。隨著您深入學(xué)習(xí)和實(shí)踐,這些知識(shí)和技能將成為您解決實(shí)際問題和實(shí)現(xiàn)自我創(chuàng)新的重要基石。無論是為了個(gè)人的知識(shí)增長(zhǎng),還是為了社會(huì)的技術(shù)進(jìn)步,您的每一次嘗試都是極有價(jià)值的。

如果您在學(xué)習(xí)過程中遭遇難題,請(qǐng)勿灰心,教程始終是您可靠的參考資源。此外,加入相關(guān)的在線社區(qū)、參加研討會(huì)或是小組討論也是獲取幫助和啟發(fā)的好方式。每一次的交流和討論都可能為您打開新的認(rèn)知視角,幫助您找到解答。

請(qǐng)記得,技術(shù)是為了讓生活更美好而服務(wù)的。您現(xiàn)在掌握的技能,未來在智能家居、自動(dòng)化工業(yè)、智慧城市等領(lǐng)域,都將大放異彩??纯粗車?,每一項(xiàng)技術(shù)的進(jìn)步都潛藏著您潛在的影響力。

最后,再次感謝您選擇了這個(gè)教程。相信未來的您定將在物聯(lián)網(wǎng)的領(lǐng)域里獲得更多成就。無論是在技術(shù)的深度,還是在項(xiàng)目的廣度上,都期待著您的卓越表現(xiàn)。繼續(xù)保持您對(duì)技術(shù)的熱愛,對(duì)未來的憧憬和對(duì)可能的探求吧!祝學(xué)習(xí)愉快,創(chuàng)造您想要的智能世界!文章來源地址http://www.zghlxwxcb.cn/news/detail-773143.html

到了這里,關(guān)于物聯(lián)網(wǎng)實(shí)踐教程(終章):微信小程序結(jié)合OneNET平臺(tái)MQTT實(shí)現(xiàn)51/STM32單片機(jī)智能控制與溫度等數(shù)據(jù)實(shí)時(shí)顯示【微信小程序篇】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包