一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣從中傳輸MQTT消息ESP8266/NodeMCU到運(yùn)行MQTT代理的樹(shù)莓派

454398 ? 來(lái)源:工程師吳畏 ? 2019-07-30 09:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

電路圖

怎樣從中傳輸MQTT消息ESP8266/NodeMCU到運(yùn)行MQTT代理的樹(shù)莓派

圖1. 教程電路

什么是MQTT?

消息隊(duì)列遙測(cè)傳輸(MQTT)是一種消息傳遞協(xié)議,可在任何具有Internet連接的設(shè)備上運(yùn)行,使其成為物聯(lián)網(wǎng)中最常用的協(xié)議之一項(xiàng)目。它被設(shè)計(jì)用于具有低帶寬限制的系統(tǒng),因此非常適用于家庭自動(dòng)化或任何物聯(lián)網(wǎng)(IoT)應(yīng)用。

MQTT的優(yōu)勢(shì)包括其低帶寬,簡(jiǎn)單的實(shí)現(xiàn),它適用于不可靠的連接。

圖2. 基于MQTT的系統(tǒng)

MQTT需要使用“代理” - 一個(gè)接收和發(fā)送MQTT消息的應(yīng)用程序。在本教程中,我們的代理是Mosquitto,它將安裝在Raspberry Pi上。 MQTT系統(tǒng)的第二個(gè)組件是“客戶端”,它連接到中央代理并可以發(fā)布或訂閱MQTT消息。

MQTT消息由主題標(biāo)識(shí),該主題是消息的一部分。在本教程中,我們將發(fā)布和訂閱“makerpro/mqtt_tutorial/light”主題。

在Raspberry Pi上安裝Mosquitto Broker

我建議的第一步是更新Raspberry Pi上的軟件。打開(kāi)終端并輸入以下命令:

sudo apt-get update

sudo apt-get upgrade

sudo reboot

一旦你的Pi重新啟動(dòng),你可以再次在終端類型中安裝我們的MQTT代理Mosquitto:

sudo apt install -y mosquitto mosquitto-clients

通過(guò)創(chuàng)建終端的兩個(gè)新實(shí)例來(lái)測(cè)試Mosquitto。在一個(gè)終端輸入以下內(nèi)容:

mosquitto_sub -v -t makerpro/mqtt_tutorial/light

在另一個(gè)新終端輸入:

mosquitto_pub -t makerpro/mqtt_tutorial/light -m ‘helloWorld’

在第二個(gè)終端上按Enter鍵后,您會(huì)看到消息“makerpro/mqtt_tutorial/light helloWorld“在第一個(gè)終端上,如圖3所示。

圖3. Raspberry Pi Mosquitto測(cè)試

在您的Raspberry Pi上成功測(cè)試了Mosquitto,您需要通過(guò)輸入命令 hostname -I 找到其IP地址。

hostname -I

這將返回一個(gè)像192.168.0.47這樣的數(shù)字,如圖4所示。你的Pi可能會(huì)給你一個(gè)稍微不同的數(shù)字。

重要你把這個(gè)數(shù)字寫(xiě)在安全的地方。 NodeMCU需要它才能連接到我們的Mosquitto服務(wù)器。

圖4. Raspberry Pi IP地址

構(gòu)建電路

本教程的電路(如圖5所示)包含LDR,10K電阻和我們的電路NodeMCU開(kāi)發(fā)板。

圖5. 面包板電路

LDR和電阻形成一個(gè)分壓器,NodeMCU的模擬輸入讀取他們之間的電壓。當(dāng)LDR的電阻隨照度變化時(shí),LDR和電阻之間的電壓電平發(fā)生變化,如表1所示。

表1 。照明/電壓/ADC電平

安裝Arduino IDE和PubSubClient您計(jì)算機(jī)上的庫(kù)

您將使用Arduino IDE對(duì)NodeMCU開(kāi)發(fā)板進(jìn)行編程和閃存。在我們進(jìn)入編程之前,需要安裝各種步驟。

下載并安裝IDE

運(yùn)行Arduino并從“文件”菜單中顯示“首選項(xiàng)”對(duì)話框

在“其他板管理器URL”文本框中粘貼以下內(nèi)容文本:http://arduino.esp8266.com/stable/package_esp8266com_index.json

單擊確定

從工具/板菜單中選擇“Board Manager”

在搜索框中鍵入“esp8266”,然后安裝“esp8266 by ESP8266 Community”,

從工具/主板中選擇“通用ESP8266模塊”

通過(guò)工具/打開(kāi)庫(kù)管理器管理圖書(shū)館。..

搜索“PubSubClient”,然后安裝Nick O‘Leary的PubSubClient

圖6。 PubSubClient

調(diào)整并將軟件上傳到NodeMCU

首先,下載副本來(lái)自Github的NodeMCU軟件。

在將代碼上傳到你的主板之前,你需要做一些更改文件頂部的Wi-Fi和代理地址。

const char *WIFI_NETWORK_NAME = “********”;

const char *WIFI_PASSWORD = “*********”;

const char *MQTT_BROKER = “192.168.0.47”;

將WIFI_NETWORK_NAME和WIFI_PASSWORD更改為您的家庭網(wǎng)絡(luò)登錄詳細(xì)信息。例如,如果您的Wi-Fi網(wǎng)絡(luò)名為myWifi,則頂行如下所示:

const char *WIFI_NETWORK_NAME = “myWifi”;

將變量MQTT_BROKER更新為Raspberry Pi的IP地址(您創(chuàng)建了一個(gè)早期的說(shuō)明)。

實(shí)施

將NodeMCU和Raspberry Pi連接到同一網(wǎng)絡(luò)非常重要。請(qǐng)注意,如果重新啟動(dòng)Raspberry Pi,它可能會(huì)更改其IP地址,這也意味著更改NodeMSC的代碼。

一旦啟動(dòng),NodeMCU上的軟件將定期讀取其ADC,然后發(fā)送MQTT消息到存儲(chǔ)在Raspberry Pi上的代理。然后,代理將消息重新分發(fā)給訂閱該主題的任何客戶端。

NodeMCU代碼利用串行端口輸出調(diào)試消息。如果連接Arduino IDE的串行監(jiān)視器,您應(yīng)該看到類似于圖7中的消息的輸出。

圖7. NodeMCU的串行輸出

您應(yīng)該開(kāi)始在您的經(jīng)紀(jì)人處接收MQTT消息,您可以通過(guò)打開(kāi)Pi上的終端窗口并輸入以下內(nèi)容來(lái)確認(rèn):

mosquitto_sub -v -t makerpro/mqtt_tutorial/light

這將允許您在控制臺(tái)中接收常規(guī)消息,如圖8所示。

圖8. 訂閱makerpro/mqtt_tutorial/light主題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    121

    文章

    2009

    瀏覽量

    107481
  • ESP8266
    +關(guān)注

    關(guān)注

    51

    文章

    965

    瀏覽量

    47423
  • NODEMCU
    +關(guān)注

    關(guān)注

    13

    文章

    289

    瀏覽量

    22446
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    682

    瀏覽量

    23723
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    精通 MQTT:消息隊(duì)列遙測(cè)傳輸指南!

    引言MQTT(消息隊(duì)列遙測(cè)傳輸)是一種輕量級(jí)消息協(xié)議,專為低帶寬、高延遲和不可靠的網(wǎng)絡(luò)環(huán)境設(shè)計(jì)。它廣泛應(yīng)用于物聯(lián)網(wǎng)(IoT)應(yīng)用、消息系統(tǒng)以及實(shí)時(shí)數(shù)據(jù)通信領(lǐng)域。本指南深入探討了MQTT的工作原理
    的頭像 發(fā)表于 06-16 16:56 ?485次閱讀
    精通 <b class='flag-5'>MQTT</b>:消息隊(duì)列遙測(cè)<b class='flag-5'>傳輸</b>指南!

    【RA-Eco-RA4M2開(kāi)發(fā)板評(píng)測(cè)】使用RA4M2和ESP8266實(shí)現(xiàn)MQTT協(xié)議上傳傳感器數(shù)據(jù)云服務(wù)器并反向點(diǎn)燈控制

    刑事勘察,非常的智能化! 基于這樣一個(gè)便捷的生活目的,我特地使用瑞薩的RA4M2開(kāi)發(fā)板來(lái)做一個(gè)基于ESP8266 MQTT協(xié)議的IOT遠(yuǎn)程控制設(shè)備,它可以配合板子上搭載的傳感器,比如溫度,濕度
    發(fā)表于 05-29 15:29

    如何在MQTT中發(fā)布和訂閱實(shí)體

    消息發(fā)送到MQTT代理(Broker)上的特定主題(Topic)。發(fā)布者無(wú)需知道有哪些客戶端訂閱了該主題,只需將消息發(fā)送到代理即可。 訂閱(Subscribe):客戶端向MQTT
    的頭像 發(fā)表于 05-20 17:21 ?328次閱讀

    esp8266連接阿里云平臺(tái)時(shí)mqtt連接超時(shí)

    esp8266nodemcu在使用arduino.ide連接阿里云平臺(tái)的時(shí)候,wifi配置正常但連接不上mqtt,顯示報(bào)錯(cuò)如下: Attempting MQTT connection...失敗, rc=-4 5秒! 這是我所
    發(fā)表于 10-26 21:39

    esp8266加入c51單片機(jī)單通道程序怎么寫(xiě)

    要將ESP8266模塊加入C51單片機(jī)的單通道程序中,您需要了解如何通過(guò)串行通信(UART)與ESP8266進(jìn)行通信。以下是如何實(shí)現(xiàn)這一點(diǎn)的步驟和示例代碼。 步驟 1:硬件連接 首先,您需要
    的頭像 發(fā)表于 10-18 11:32 ?1654次閱讀

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示
    的頭像 發(fā)表于 10-08 15:06 ?708次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動(dòng)畫(huà)的 OLED 顯示

    ESP8266 通過(guò) MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程控制

    MQTT協(xié)議
    jf_07365693
    發(fā)布于 :2024年09月25日 16:05:05

    ESP8266 通過(guò) MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程控制

    本文簡(jiǎn)要介紹了搭建 EMQX 服務(wù)器實(shí)現(xiàn)基于 MQTT 協(xié)議遠(yuǎn)程控制 NodeMCU ESP8266 板載 LED 的解決方案。
    的頭像 發(fā)表于 09-25 09:11 ?3029次閱讀
    <b class='flag-5'>ESP8266</b> 通過(guò) <b class='flag-5'>MQTT</b> 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程控制

    MQTT網(wǎng)關(guān):物聯(lián)網(wǎng)中的關(guān)鍵橋梁

    基于發(fā)布/訂閱模式的輕量級(jí)通信協(xié)議,特別適用于低帶寬、不穩(wěn)定網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)傳輸MQTT網(wǎng)關(guān)則是連接物聯(lián)網(wǎng)設(shè)備與消息代理服務(wù)器之間的橋梁,通過(guò)它,物聯(lián)網(wǎng)設(shè)備能夠高效、可靠地進(jìn)行通信和數(shù)據(jù)交換。
    的頭像 發(fā)表于 08-22 14:15 ?786次閱讀
    <b class='flag-5'>MQTT</b>網(wǎng)關(guān):物聯(lián)網(wǎng)中的關(guān)鍵橋梁

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來(lái)越多的智能設(shè)備開(kāi)始進(jìn)入我們的生活。其中,ESP32和ESP82
    的頭像 發(fā)表于 08-19 18:23 ?2344次閱讀

    esp8266esp32區(qū)別是什么

    Xtensa? 32-bit LX6 CPU,主頻可達(dá)240MHz,具有更強(qiáng)大的處理能力。 內(nèi)存 : ESP8266 :通常有64KB512KB的RAM,以及1MB4MB的閃存。 ESP
    的頭像 發(fā)表于 08-19 18:16 ?7351次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目中。然而,如果不進(jìn)行燒錄,ESP8266將無(wú)法正常工作。 1. ESP8266簡(jiǎn)介 ESP8266是一款由Espres
    的頭像 發(fā)表于 08-19 17:28 ?1684次閱讀

    esp8266wifi模塊怎么連接手機(jī)

    ESP8266 WiFi模塊連接手機(jī)主要可以通過(guò)兩種方式實(shí)現(xiàn): 通過(guò)路由器連接(STA模式)和直接作為熱點(diǎn)連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過(guò)路由器連接(STA模式) 配置
    的頭像 發(fā)表于 08-19 17:27 ?7635次閱讀

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
    的頭像 發(fā)表于 08-13 18:04 ?2075次閱讀
    Arduino Nano 和 <b class='flag-5'>NodeMCU</b> <b class='flag-5'>ESP8266</b> 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    ESP8266發(fā)送失敗的原因?如何解決?

    我們有一個(gè)通常運(yùn)行良好的ESP8266(AT 0.5,固件 1.4 - 截至今天的最新版本)。 問(wèn)題是,當(dāng)我們發(fā)送大量數(shù)據(jù)(如 200KB)時(shí),我們偶爾會(huì)從ESP8266收到 SEND FAIL
    發(fā)表于 07-22 06:00