<strike id="0k9r3"><p id="0k9r3"></p></strike>
  • <form id="0k9r3"></form>
    <nav id="0k9r3"></nav>
    <em id="0k9r3"><p id="0k9r3"></p></em>
  • <tr id="0k9r3"><source id="0k9r3"></source></tr>
    <form id="0k9r3"></form>
    <sub id="0k9r3"></sub>

      <sub id="0k9r3"><address id="0k9r3"></address></sub>
      1. <form id="0k9r3"></form>

        24小時聯系電話:18217114652、13661815404

        中文

        您當前的位置:
        首頁>
        電子資訊>
        行業資訊>
        如何使用 IoT MQTT 將...

        行業資訊

        如何使用 IoT MQTT 將 ESP32 WiFi 微控制器連接到 Raspberry Pi


        如何使用 IoT MQTT ESP32 WiFi 微控制器連接到 Raspberry Pi

        物聯網 (IoT) 設備最重要的功能之一是其與網絡對話的能力。一個設備與另一個設備成功通信所必須采取的步驟稱為通信協議。

        協議是一組管理特定事務的官方程序和規則。就物聯網設備而言,通信協議規定了設備為了發送/接收信息而必須采取的程序。通信協議分為兩類,網絡連接協議和數據通信協議

        讓我們想象一下,我們正在布局一個新的城市。首先,我們從某處的一塊空地開始。其次,我們必須放置具有不同大小和重量能力的實體道路,以使人們能夠進入新城市。

        如下圖所示,我已經布置了道路。我們比喻中的道路是網絡協議。網絡協議是網絡的物理層。在 OSI 模型中,它們通常被標記為物理層、數據鏈路層和網絡層。

        現在我們需要用汽車和人(應用程序數據協議)填充道路(網絡協議)。正如您在下面的更新圖中所見,不同的車輛可以適應不同的路線,反之亦然。

        在我們的案例中,網絡協議和數據協議攜手合作,以促進通信通道(道路),允許數據通過互聯網傳輸到其預期目的地。

        作為快速復習,開放系統互連 (OSI) 模型概述了計算機系統通過網絡進行通信時必須使用的 7 層(步驟)。下圖顯示了這 7 個步驟以及用于層的通信協議示例。

        今天有許多協議可以促進 OSI 模型的網絡和應用層。在本文中,我們將重點關注數據協議部分,尤其是消息隊列遙測傳輸 (MQTT) 協議。

        在大多數應用程序中,在設計或編程您的物聯網設備時,您使用的通信模塊將負責網絡協議,您只需關注應用程序和數據協議。

        為了演示 MQTT 在實際應用中的使用,我們將展示如何通過本地網絡將 ESP32 開發模塊連接到 Raspberry Pi,并通過 MQTT 進行通信以發送輕量級數據。

        MQTT 是為物聯網設備制定的協議。它允許設備和服務器之間的輕量級通信。該協議在MQTT 官方網站中有詳細記錄。

        簡單來說,它允許設備訂閱和發布主題(端點),以便通過網絡協議發送小數據。

        MQTT 代理用作將所有消息路由到合法所有者(訂閱者)并接受來自不同設備的發布消息的管理器。每個 MQTT 通信機制都必須從規劃要用于服務器端和設備端的主題開始。

        在我們的演示中,我們將使用 Raspberry Pi 作為我們的 MQTT 代理(服務器)和 ESP32 作為發布者,將光傳感器數據發布到 MQTT 代理主題,如下圖所示。

        從上面看到的計劃主題和客戶的流程圖開始通常是一個好主意。我們將使用光傳感器來演示使用 MQTT 將數據推送到 Raspberry Pi 上的 MQTT 代理的想法。

        在實際應用中,安全性是必須考慮的第三層。在我們的例子中,我們不會太擔心安全性,因為它在沒有外部連接的本地網絡中運行。

        但是,如果您將經紀人暴露在互聯網上,您希望確保您的網絡安全。

        我們將演示分為以下幾個部分:

        ESP32

        光傳感器

        MQTT 客戶端

        無線網絡連接

        樹莓派

        MQTT 代理

        樹莓派

        Raspberry Pi 將充當 MQTT 代理服務器。它將我們所有的消息路由到相應的訂閱者并接受來自發布者的消息。

        1

        首先,在您的 Raspberry Pi 上啟用 SSH,以便您從主機 PC 訪問終端。如果您使用的是 Windows,請務必安裝 SSH 客戶端,例如 PuTTy

        找到您的 Raspberry Pi IP 地址并通過 SSH 連接到其中。

        2

        安裝 mosquitto mosquitto-clients 以啟動 MQTT 代理服務器并使用 mosquitto-clients 測試服務器。使用以下命令安裝 mosquitto

        sudo apt install mosquitto mosquitto-clients

        3

        此時 mosquitto MQTT 代理服務應該正在運行。要確認這一點,請運行以下命令:

        sudo systemctl 狀態蚊子

        如果您看到綠色的活動(運行)狀態,這意味著它正在后臺運行,并且到目前為止您的設置很好。

        4

        要在每次 Raspberry Pi 重新啟動時自動啟動 mosquitto 服務,請運行以下命令:

        sudo systemctl 啟用 mosquitto.service

        5

        配置 mosquitto conf 文件,以便您可以通過啟用端口 1883 通過本地網絡連接到它。

        從以下命令開始編輯 mosquitto.conf 文件:

        須藤納米/etc/mosquitto/mosquitto.conf

        然后,移動到文件的最后并輸入以下行:

        聽眾 1883

        allow_anonymous

        接下來,按 CRTL-X 退出,然后重新啟動您的 Raspberry Pi。

        6

        記下您的 Raspberry Pi IP 地址,以便您可以將其用作所有 MQTT 通信的主機名。

        7

        讓我們繼續并啟動一個訂閱者,它將顯示已發送到主題“esp32/light”的所有消息,以便查看 ESP32 將發送到該主題的消息。為此,請運行以下命令:

        mosquitto _sub -h <RPi IP 地址> -t “esp32/light”

        請務必將 <RPi IP 地址> 替換為您的 Raspberry Pi IP 地址。

        ESP32

        在開始使用 ESP32 板之前,請務必完成以下先決條件:

        您將需要一個基于 ESP32 的開發板

        使用這些詳細說明安裝和設置 ESP-IDF 的開發環境(使用VS Code Extension

        購買光傳感器——最好是這種類型的光敏電阻。

        你還需要一個面包板

        1

        在面包板上構建以下電路:

        這里的R_Photo代表光敏電阻,串聯一個10k歐的電阻組成分壓器。我們需要確保光敏電阻輸出連接到 ESP32 ADC 輸入。在我們的設置中,我使用了以下引腳:

        ESP32_模擬

        GPIO34

        2

        Git 從此處克隆示例 ESP-IDF 代碼。

        3

        從您的 VS Code 中打開文件夾并將目標設備更改為 esp32。然后,更改串行 COM 端口并開始配置設置。

        4

        在配置 (menuconfig) 下,轉到示例連接配置和示例配置,輸入以下內容:

        WiFi SSID:您的 WiFi SSID 名稱

        WiFi密碼:您的WiFi網絡密碼

        Broker URL:輸入樹莓派IP,格式如下“mqtt://<ip地址>

        5

        保存配置,然后在 ESP32 板上構建、刷新和監控固件。

        6

        您應該開始看到數據流入您之前設置的 MQTT 代理 SSH 窗口。

        您看到的是直接從 ESP32 通過本地網絡發布到 Raspberry Pi 上的 MQTT 代理的 ADC 數據。

        結論

        該演示可以輕松移植到您計劃使用的任何現有應用程序中。如果您想收集有關您家中特定流程或系統的數據,您可以使用這種方法輕松完成。

        您需要做的就是處理和采集從傳感器到 ESP32 的數據。有兩種類型的傳感器通信,模擬和數字。我們在本文中研究了一個模擬傳感器。

        請輸入搜索關鍵字

        確定
        国产在线视频在线