物聯網系統搭建

實驗項目名稱

構建物聯網系統

實驗目的

掌握物聯網系統的一般構建方法。

實驗要求

1.構建物聯網系統,實現前后端的交互。

實驗內容:

  • CS模式+MQTT(不帶數據分析處理功能)

實現智能設備與應用客戶端的交互(智能設備發送數據在應用客戶端上顯示,應用客戶端發送數據在智能設備上顯示)

二、步驟

單擊開始菜單,輸入cmd,選擇以管理員身份運行。(可以說一下powershell的區別)

  1. 在命令行里輸入cd 并單擊鼠標右鍵,會粘貼剛才復制的EMQX的bin目錄,然后回車鍵,意為跳轉目錄至?E:\emqx-5.3.2-windows-amd64\bin
  2. 安裝EMQX服務,執行命令:.\emqx.cmd install
    此命令只需要運行一次,以后再開機就不用執行它了。
  3. 卸載EMQX服務,執行命令:.\emqx.cmd uninstall
  4. 提示ChangeServiceConfig 成功,則說明服務安裝成功
  1. 啟動 emqx服務,輸入命令:.\emqx.cmd console
  2. 啟動 emqx服務,輸入命令:.\emqx.cmd console
    提示EMQX 版本號 is running now!,則說明運行成功
  1. 瀏覽器輸入localhost:18083回車,即可訪問EMQX控制臺,在登錄頁面輸入初始化賬號 :用戶名:admin 密碼:public
  2. 輸入初始密碼后,會跳轉到修改密碼頁面,修改初始密碼
  3. 單擊確定后。出現如下界面,說明EMQX安裝完成.
  4. 雙擊打開下載的MQTTX-Setup-1.9.7-x64.exe,開始安裝MQTT客戶端,選擇安裝目錄,點擊完成
  5. 不習慣英語話,可以先設置軟件為中文。單擊設置齒輪按鈕,在第一項Language語音選擇菜單中選擇簡體中文,整個界面即刻變成中文界面
  6. 測試連接:單擊連接按鈕,單擊新建連接按鈕,來創建一個新連接

接下來按如下操作步驟來創建連接

1)名稱隨便輸入,我這里輸入的是test

2Client ID默認即可

3)服務器地址為剛才創建的MQTT本地服務器,因為客戶端在同一臺電腦上,所以地址為127.0.0.1,當然你使用你的局域網的IP地址也是可以的,你可以使用ipconfig來查看.

4)端口號默認1883

5)然后單擊右上角的連接按鈕

6)我這里創建了兩個來模擬發表方和訂閱方,這里的ip地址是不一樣的,一個表示本地回環地址,一個就是IP地址,如果使用云服務器這里就填寫IP地址只是我這里的在自己的電腦上模擬的云服務器所以就可以使用本地回環地址.

7sub這里我是訂閱方,訂閱的主題Apub發布方發布A主題時,就會接收到該信息.

  1. node驗證:由于node-red是基于node.js的,首先要確保機器上是否安裝,使用指令查詢node版本:node -v

  1. 如果沒有版本信息,請先安裝:node.js卸載、安裝、配置詳解
    如果已經安裝,可點擊跳轉到下一步

  1. nodered安裝:跳過SSL證書檢查,執行命令:npm set strict-ssl=false
  1. 清除npm緩存,執行命令:npm cache clean –force
  1. Node-RED安裝為全局模塊有兩種方式:

1)在cmd下執行以下命令:npm install -g --unsafe-perm node-red使用該種方式安裝的為系統默認的版本。


2)指定安裝的版本:npm install -g --unsafe-perm node-red@版本號

#示例

npm install -g? node-red@2.2.2

  1. 安裝完成后,運行node-red的簡單方法是在命令提示符下使用命令:node-red
  2. 鍵入后,在瀏覽器地址欄中輸入http://127.0.0.1:1880/即可進入nodered

這個是簡易版,但是我們的目標不是這個而是系統的搭建,要看這個地址,就要在傍邊的dashboard里面的Layout的最右邊的分享按鈕點擊它就行了

?

  1. APP的流程框圖
  1. APP框圖
  2. UrsPahoMqttClient1Broker就是你服務器的IP地址,字面翻譯是指代理,比如移動就是一個代理商.一開始我使用的是MQTT官網的公共服務器但是它是有人數上限的可用的機會很少,使用的是broker.emqx.io,這個是一個域名其中emqx.io是頂級域名(或二級域名,取決于io的層級),而broker是該頂級域名下的一個子域名。但是我有自己部署的服務器,沒有域名啊,但是域名和IP是通過DNS映射對應起來的,我就試了試IP,就成了.除了這里能寫你返回設計這里點擊拓展,側面的屬性也能改,兩者容易沖突.
    計時器確保連接并顯示狀態
  3. 這里就是一個發布一個主題消息指揮燈亮滅并對話框顯示告警信息.
  4. 這里是用的多行字符串來解析的,因為正好這里就有這個功能并且可以直接轉成鍵值對然后尋找需要的數值,當然也可以使用Web客戶端的,它有JSON的格式解析,需要用到API.總體用法差不多,格式轉換.

調試與結果測試:
以下就是APP界面完美的實現我現在需要的功能

以下是當我當我按下燈打開時,發送給模擬智能設備的主題信息,和模擬前端需要發送給后端APP的數據.

心得體會: 主要寫在實驗過程中遇到什么問題及如何解決問題等

1,UsPahoMqttClient1 中的 Broker 指的是你服務器的 IP 地址,在字面上它被翻譯為“代理”,就像移動運營商作為一個中介服務商那樣。起初,我使用的是 MQTT 官網提供的公共服務器,但它有用戶數量的限制,而且可用的機會很少。我那時使用的是 broker.emqx.io,這是一個域名,其中 emqx.io 是頂級域名(或者根據 .io 的層級劃分,它可能是二級域名),而 broker 是這個頂級域名下的一個子域名。

但是,我自己部署了一臺服務器,沒有為它注冊域名。不過,域名和 IP 地址是通過 DNS(域名系統)進行映射對應的。因此,我嘗試直接使用了服務器的 IP 地址,結果成功了。

除了可以在指定的位置填寫和修改 Broker 地址外,你還可以點擊“拓展”按鈕,在側面的屬性欄中也能進行修改。不過需要注意的是,這兩個地方的修改容易產生沖突,因此在操作時需要格外小心。
2,WEB客戶端的json轉換,沒有直接的json轉換,所以我采用的是多行字符串轉鍵值對.
3, 步驟一:安裝MQTT客戶端(模擬智能設備)

在這一步中,我使用了MQTT客戶端工具EMQ來快速測試MQTT服務。通過這一工具,我能夠模擬智能設備,向MQTT服務器發送數據,并接收來自服務器的消息。這一過程讓我對MQTT的基本通信原理有了更直觀的理解。同時,我也通過觀看相關的視頻教程,如“07-MQTTX客戶端工具的使用”,進一步加深了對MQTT客戶端使用的掌握。

步驟二:安裝MQTT服務器EMQX(模擬云服務器)

接下來,我安裝了MQTT服務器EMQX,以模擬云服務器的角色。EMQX是一款開源的、高性能的物聯網消息中間件,它支持MQTT協議,能夠處理大量的并發連接和消息傳輸。通過安裝和配置EMQX,我成功搭建了一個MQTT服務器環境,為后續的智能設備與應用客戶端之間的數據交互提供了基礎。在安裝過程中,我參考了EMQX的官方文檔和視頻教程,如“05-MQTT入門案例-EMQX環境搭建”,這些資源對我順利完成安裝和配置起到了很大的幫助。

步驟三:開發應用客戶端(App Inventor + MQTT插件)

最后一步是開發應用客戶端。我選擇了Google App Inventor這一完全在線開發的Android編程環境,它使用積木式的堆疊法來完成Android程序,大大降低了編程的門檻。在開發過程中,我使用了App Inventor的MQTT插件來實現與MQTT服務器的通信。通過這一插件,我能夠輕松地將應用客戶端與MQTT服務器連接起來,實現數據的發送和接收。同時,我也觀看了相關的視頻教程和課程講義,如“App Inventor-零基礎Android移動應用開發”和“試用新發現的APPinventor的MQTT插件記錄”,這些資源對我理解和掌握App Inventor及MQTT插件的使用起到了很大的幫助。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897157.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897157.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897157.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從零開始用HTML、CSS和JavaScript制作貪吃蛇網頁小游戲

〇、前言 貪吃蛇是一款經典的休閑游戲,在諾基亞手機時代風靡全球。 作為編程入門者,實現一個貪吃蛇游戲是學習Web前端技術的絕佳練習。 名人說:博觀而約取,厚積而薄發。——蘇軾《稼說送張琥》 創作者:Code_流蘇(CSDN…

LeetCode1328

非常抱歉,我理解錯了你的要求!現在我會嚴格按照你的要求重新組織內容,確保在代碼段中不加入注釋,并在代碼逐行講解中加入代碼段。 LeetCode1328 目錄 題目描述示例思路分析代碼段代碼逐行講解復雜度分析總結的知識點整合總結 題…

STM32點亮LED燈

1.1 介紹: LED模塊。它的控制方法非常簡單,要想點亮LED,只要讓它兩端有一定的電壓就可以;實驗中,我們通過編程控制信號端S的高低電平,從而控制LED的亮滅。我們提供一個測試代碼控制LED模塊上實現閃爍的效果…

【華三】STP端口角色與狀態深度解析

STP端口角色與狀態深度解析:構建無環網絡的基石 引言一、STP基礎回顧二、端口角色詳解1. 根端口(Root Port)2. 指定端口(Designated Port)3. 非指定端口(阻塞端口) 三、端口狀態轉換流程四、角色…

計算機畢業設計Python+Django+Vue3微博數據輿情分析平臺 微博用戶畫像系統 微博輿情可視化(源碼+ 文檔+PPT+講解)

溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 作者簡介:Java領…

稚暉君級硬核:智元公司開源機器人通信框架AimRT入駐GitCode平臺

在科技的浪潮中,機器人技術正以前所未有的速度發展。它們不再只是科幻小說中的概念,而是逐漸融入到我們的日常生活中,從工廠的自動化生產線到家庭的智能助手,機器人的身影無處不在。然而,隨著機器人應用的日益復雜&…

[項目]基于FreeRTOS的STM32四軸飛行器: 四.LED控制

基于FreeRTOS的STM32四軸飛行器: 四.LED控制 一.配置Com層二.編寫驅動 一.配置Com層 先在Com_Config.h中定義燈位置的枚舉類型: 之后定義Led的結構體: 定義飛行器狀態: 在Com_Config.c中初始化四個燈: 在Com_Config.h外部聲明…

Ubuntu20.04雙系統安裝及軟件安裝(一):系統安裝

Ubuntu20.04雙系統安裝及軟件安裝(一):系統安裝 Ubuntu系統卸載Ubuntu20.04安裝BIOS進入系統安裝 許久沒寫博客了,今天開始重新回歸了。首先記錄我在雙系統上重裝Ubuntu20.04的安裝過程記錄以及個人見解。 Ubuntu系統卸載 參考雙…

cursor+deepseek實現完整的俄羅斯方塊小游戲

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>俄羅斯方塊</title><style>body {margin: 0;display: flex;justify-content: center;align-items: center;height: 100vh;background: …

人工智能開發面經AI、大數據、算法

以下是一份AI算法開發崗位的面試面經&#xff0c;結合最新行業趨勢和經典問題&#xff0c;涵蓋技術解析與實戰案例&#xff0c;供參考&#xff1a; 一、機器學習基礎&#xff08;占比約30%&#xff09; 1. 過擬合與欠擬合的解決方案 問題&#xff1a;如何解決模型過擬合&…

【原創】Ollama Test API For Linux/MacOS/Unix

安裝Json解析工具 Linux/Unix sudo apt-get install jq -yMacOS brew install jq -y設置環境變量 export IP"192.168.250.229" export PORT"8080" export MODEL"deepseek-r1:7b"檢查Ollama版本 curl http://"$IP":"$PORT&qu…

【Git】基本指令

工作區、暫存區、版本庫 工作區&#xff1a;是在電腦上你要寫代碼或文件的目錄。暫存區&#xff1a;英文叫 stage 或 index。一般存放在 .git 目錄下的 index 文件&#xff08;.git/index&#xff09;中&#xff0c;我們把暫存區有時也叫作索引&#xff08;index&#xff09;。…

從數據到決策,永洪科技助力良信電器“智”領未來

在數字經濟浪潮洶涌的時代&#xff0c;數字化轉型已成為企業增強競爭力、實現可持續發展的必由之路。良信電器&#xff0c;作為國內知名的電氣設備制造企業&#xff0c;積極響應時代號召&#xff0c;攜手永洪科技&#xff0c;共同開啟了數字化轉型的新篇章。 上海良信電器股份有…

帶觸屏筆記本關閉屏幕觸控方法

以聯想yogaPro16s2023為例 該筆記本顯示器為觸控屏&#xff0c;不想使用屏幕觸控功能&#xff1b; 關閉方法如下&#xff1a; Win11與win10操作一樣 鼠標放到開始&#xff0c;右鍵&#xff0c;選擇&#xff0c;設備管理器 找到&#xff0c;人體學輸入設備&#xff0c;符合H…

大模型——基于 DIFY 的自動化數據分析實戰

基于 DIFY 的自動化數據分析實戰 簡介: 本文介紹如何使用DIFY搭建數據分析自動化流程,實現從輸入需求到查詢數據庫、LLM分析再到可視化輸出的全流程。基于經典的employees數據集和DIFY云端環境,通過LLM-SQL解析、SQL執行、LLM數據分析及ECharts可視化等模塊,高效完成數據分…

中原銀行:從“小機+傳統數據庫”升級為“OceanBase+通用服務器”,30 +系統成功上線|OceanBase DB大咖說(十五)

OceanBase《DB 大咖說》第 15 期&#xff0c;我們邀請到了中原銀行金融科技部數據團隊負責人&#xff0c;呂春雷。本文為本期大咖說的精選。 呂春雷是一位資歷深厚的數據庫專家&#xff0c;從傳統制造企業、IT企業、甲骨文公司到中原銀行&#xff0c;他在數據庫技術與運維管理…

django各種mixin用法

在 Django 中,Mixin 是一種用于擴展類功能的設計模式。通過 Mixin,可以在不修改原有類的情況下,為其添加新的方法或屬性。Django 中的 Mixin 廣泛應用于視圖(View)、表單(Form)、模型(Model)等組件中。以下是 Django 中常見 Mixin 的用法和示例: 一、視圖(View)中的…

SpringBoot集成Netty實現Ws和Tcp通信

本教程將指導你如何在 Spring Boot 項目中集成 Netty&#xff0c;實現 WebSocket 和 TCP 通信。以下是詳細的步驟和代碼示例。 環境準備 在 你的pom.xml 中添加 Netty 依賴&#xff1a; <dependency><groupId>io.netty</groupId><artifactId>nett…

與中國聯通技術共建:通過obdiag分析OceanBase DDL中的報錯場景

中國聯通軟件研究院&#xff08;簡稱聯通軟研院&#xff09;在全面評估與廣泛調研后&#xff0c;在 2021年底決定采用OceanBase 作為基礎&#xff0c;自研分布式數據庫產品CUDB&#xff08;即China Unicom Database&#xff0c;中國聯通數據庫&#xff09;。目前&#xff0c;該…

機器學習-隨機森林解析

目錄 一、.隨機森林的思想 二、隨機森林構建步驟 1.自助采樣 2.特征隨機選擇 3構建決策樹 4.集成預測 三. 隨機森林的關鍵優勢 ?**(1) 減少過擬合** ?**(2) 高效并行化** ?**(3) 特征重要性評估** ?**(4) 耐抗噪聲** 四. 隨機森林的優缺點 ?優點 ?缺點 五.…