• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    24小時(shí)聯(lián)系電話(huà):18217114652、13661815404

    中文

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

    行業(yè)資訊

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


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

    物聯(lián)網(wǎng) (IoT) 設備最重要的功能之一是其與網(wǎng)絡(luò )對話(huà)的能力。一個(gè)設備與另一個(gè)設備成功通信所必須采取的步驟稱(chēng)為通信協(xié)議。

    協(xié)議是一組管理特定事務(wù)的官方程序和規則。就物聯(lián)網(wǎng)設備而言,通信協(xié)議規定了設備為了發(fā)送/接收信息而必須采取的程序。通信協(xié)議分為兩類(lèi),網(wǎng)絡(luò )連接協(xié)議和數據通信協(xié)議

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

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

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

    在我們的案例中,網(wǎng)絡(luò )協(xié)議和數據協(xié)議攜手合作,以促進(jìn)通信通道(道路),允許數據通過(guò)互聯(lián)網(wǎng)傳輸到其預期目的地。

    作為快速復習,開(kāi)放系統互連 (OSI) 模型概述了計算機系統通過(guò)網(wǎng)絡(luò )進(jìn)行通信時(shí)必須使用的 7 層(步驟)。下圖顯示了這 7 個(gè)步驟以及用于層的通信協(xié)議示例。

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

    在大多數應用程序中,在設計或編程您的物聯(lián)網(wǎng)設備時(shí),您使用的通信模塊將負責網(wǎng)絡(luò )協(xié)議,您只需關(guān)注應用程序和數據協(xié)議。

    為了演示 MQTT 在實(shí)際應用中的使用,我們將展示如何通過(guò)本地網(wǎng)絡(luò )將 ESP32 開(kāi)發(fā)模塊連接到 Raspberry Pi,并通過(guò) MQTT 進(jìn)行通信以發(fā)送輕量級數據。

    MQTT 是為物聯(lián)網(wǎng)設備制定的協(xié)議。它允許設備和服務(wù)器之間的輕量級通信。該協(xié)議在MQTT 官方網(wǎng)站中有詳細記錄。

    簡(jiǎn)單來(lái)說(shuō),它允許設備訂閱和發(fā)布主題(端點(diǎn)),以便通過(guò)網(wǎng)絡(luò )協(xié)議發(fā)送小數據。

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

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

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

    在實(shí)際應用中,安全性是必須考慮的第三層。在我們的例子中,我們不會(huì )太擔心安全性,因為它在沒(méi)有外部連接的本地網(wǎng)絡(luò )中運行。

    但是,如果您將經(jīng)紀人暴露在互聯(lián)網(wǎng)上,您希望確保您的網(wǎng)絡(luò )安全。

    我們將演示分為以下幾個(gè)部分:

    ESP32

    光傳感器

    MQTT 客戶(hù)端

    無(wú)線(xiàn)網(wǎng)絡(luò )連接

    樹(shù)莓派

    MQTT 代理

    樹(shù)莓派

    Raspberry Pi 將充當 MQTT 代理服務(wù)器。它將我們所有的消息路由到相應的訂閱者并接受來(lái)自發(fā)布者的消息。

    1

    首先,在您的 Raspberry Pi 上啟用 SSH,以便您從主機 PC 訪(fǎng)問(wèn)終端。如果您使用的是 Windows,請務(wù)必安裝 SSH 客戶(hù)端,例如 PuTTy。

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

    2

    安裝 mosquitto mosquitto-clients 以啟動(dòng) MQTT 代理服務(wù)器并使用 mosquitto-clients 測試服務(wù)器。使用以下命令安裝 mosquitto

    sudo apt install mosquitto mosquitto-clients

    3

    此時(shí) mosquitto MQTT 代理服務(wù)應該正在運行。要確認這一點(diǎn),請運行以下命令:

    sudo systemctl 狀態(tài)蚊子

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

    4

    要在每次 Raspberry Pi 重新啟動(dòng)時(shí)自動(dòng)啟動(dòng) mosquitto 服務(wù),請運行以下命令:

    sudo systemctl 啟用 mosquitto.service

    5

    配置 mosquitto conf 文件,以便您可以通過(guò)啟用端口 1883 通過(guò)本地網(wǎng)絡(luò )連接到它。

    從以下命令開(kāi)始編輯 mosquitto.conf 文件:

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

    然后,移動(dòng)到文件的最后并輸入以下行:

    聽(tīng)眾 1883

    allow_anonymous

    接下來(lái),按 CRTL-X 退出,然后重新啟動(dòng)您的 Raspberry Pi。

    6

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

    7

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

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

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

    ESP32

    在開(kāi)始使用 ESP32 板之前,請務(wù)必完成以下先決條件:

    您將需要一個(gè)基于 ESP32 的開(kāi)發(fā)板

    使用這些詳細說(shuō)明安裝和設置 ESP-IDF 的開(kāi)發(fā)環(huán)境(使用VS Code Extension

    購買(mǎi)光傳感器——最好是這種類(lèi)型的光敏電阻。

    你還需要一個(gè)面包板

    1

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

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

    ESP32_模擬

    GPIO34

    2

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

    3

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

    4

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

    WiFi SSID:您的 WiFi SSID 名稱(chēng)

    WiFi密碼:您的WiFi網(wǎng)絡(luò )密碼

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

    5

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

    6

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

    您看到的是直接從 ESP32 通過(guò)本地網(wǎng)絡(luò )發(fā)布到 Raspberry Pi 上的 MQTT 代理的 ADC 數據。

    結論

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

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

    請輸入搜索關(guān)鍵字

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>