91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级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)不再提示

使用Ubidots的MQTT協(xié)議簡(jiǎn)介

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-13 09:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:演示

第2步:使用的資源

?ESP32 LoRa Display

?DHT22

?4k7歐姆電阻

?帳戶(試用30天或已付款)

?Proboardboard

步驟3:MQTT協(xié)議

發(fā)布和訂閱

步驟4:Ubidots IoT平臺(tái)

要解決的問(wèn)題

?創(chuàng)建一個(gè)新帳戶

?創(chuàng)建新的儀表板

?創(chuàng)建ESP32-DHT設(shè)備

?獲得MQTT數(shù)據(jù)-設(shè)備ID和主題

?獲得MQTT數(shù)據(jù)-令牌

?在Ubidots中創(chuàng)建變量

?創(chuàng)建濕度和溫度小部件

步驟5:創(chuàng)建新帳戶

要?jiǎng)?chuàng)建帳戶,請(qǐng)?jiān)L問(wèn)www.ubidots.com并單擊在注冊(cè)后

A。公司名稱

B。項(xiàng)目階段:

B-我們選擇了發(fā)現(xiàn)階段,表明它是一個(gè)測(cè)試項(xiàng)目。

C。創(chuàng)建應(yīng)用程序

D。您的姓名

您的電子郵件

創(chuàng)建個(gè)人資料

E。登錄

密碼

開(kāi)始免費(fèi)試用

步驟6:創(chuàng)建新儀表板

一個(gè)。單擊創(chuàng)建一個(gè)新的儀表板

B。輸入儀表板的名稱,然后單擊

步驟7:創(chuàng)建ESP32-DHT設(shè)備

A。單擊設(shè)備管理和設(shè)備

B。單擊創(chuàng)建設(shè)備或+

C。將打開(kāi)一個(gè)選項(xiàng)卡,列出help.ubidots站點(diǎn)上的教程,以根據(jù)各自的制造商對(duì)微控制器進(jìn)行配置和編程。我們將創(chuàng)建一個(gè)空白設(shè)備。

D。填寫(xiě)字段

1。設(shè)備名稱

2。標(biāo)簽(它將是MQTT客戶端使用的主題的一部分)

3。創(chuàng)建

電子。創(chuàng)建設(shè)備后,它將在設(shè)備頁(yè)面上列出,如圖所示

1。設(shè)備名稱

2。上次更新

3。設(shè)備創(chuàng)建日期/時(shí)間

4。與設(shè)備有關(guān)的組織

5。添加組織并刪除設(shè)備

步驟8:獲取MQTT數(shù)據(jù)-設(shè)備ID和主題

一個(gè)。選擇設(shè)備

B。設(shè)備ID值和主題是根據(jù)圖像寫(xiě)入的。

使用的端口為1883。

C。根據(jù)圖像3.1和3.2獲得令牌。

步驟9:創(chuàng)建變量

要?jiǎng)?chuàng)建引用設(shè)備中變量的窗口小部件,必須已經(jīng)在設(shè)備上創(chuàng)建了它。

注意:變量是在Json上傳后由Ubidots自動(dòng)創(chuàng)建的,但為此,必須至少連接一次ESP32。要引用小部件而不必連接ESP,我們必須遵循以下步驟。

A。在設(shè)備中,選擇設(shè)備

B。單擊“添加變量”,然后單擊“原始”。

注意:定義相同的源代碼標(biāo)簽(在MQTT_Client.h文件中)

C。輸入標(biāo)簽(VARIABLE_LABEL_TEMPERATURE)

D。重復(fù)濕度變量的步驟

(VARIABLE_LABEL_HUMIDITY)

步驟10:創(chuàng)建小部件

一個(gè)。轉(zhuǎn)到儀表板頁(yè)面

B。單擊按鈕之一

步驟11:創(chuàng)建小部件-溫度

A。選擇溫度計(jì)選項(xiàng)

B。點(diǎn)擊添加變量

C。請(qǐng)按照以下步驟選擇溫度變量

D。單擊“確認(rèn)”

步驟12:創(chuàng)建窗口小部件-濕度

A。添加另一個(gè)小部件

B。選擇“坦克”選項(xiàng)

C。點(diǎn)擊添加變量

D。選擇ESP32-DHT,單擊濕度,然后確認(rèn)

E。最后,點(diǎn)擊確認(rèn)

F。濕度小部件將顯示在溫度G以下。

G。您可以通過(guò)拖動(dòng)窗口來(lái)安排

步驟13:匯編

聲明和變量

#include

#include //Biblioteca referente ao DHT22

#include “displayESP32LoRa.h” //Arquivo com as fun??es referentes ao display lora

#include “MQTT_Client.h” //Arquivo com as fun??es de mqtt

float temperature; //Temperatura que será obtida pelo sensor DHT

float humidity; //Umidade que será obtida pelo sensor DHT

const int pinDHT = 22; //Pino que é ligado no sensor DHT

SimpleDHT22 dht22(pinDHT); //Objeto que possui os métodos de leitura dos valores do sensor DHT

設(shè)置

void setup()

{

//Para debug, iniciamos a comunica??o serial com 115200 bps

Serial.begin(115200);

//Inicializa display lora

if(!loraDisplayConfig())

ESP.restart();

//Exibe mensagem no display

showDisplay(0, “Setting up mqtt.。.”, true);

Serial.println(“Setting up mqtt.。.”);

//Inicializa mqtt (conecta o esp com o wifi, configura e conecta com o servidor da ubidots)

if(!mqttInit())

{

delay(3000);

showDisplay(0, “Failed!”, false);

Serial.println(“Failed!”);

ESP.restart();

}

showDisplay(0, “OK”, false);

Serial.println(“OK”);

}

循環(huán)

void loop()

{

//Se o esp foi desconectado do ubidots, tentamos reconectar

if(!client.connected())

reconnect();

//Lê a temperatura e umidade e exibimos no display passando uma flag (que sinaliza sucesso na leitura)

if(getClimate())

showClimate(true);

else

showClimate(false);

//Esperamos 2.5s antes de exibir o status do envio para dar efeito de pisca no display

delay(2500);

if(sendValues(temperature, humidity))

{

Serial.println(“Successfully sent data”);

showDisplay(4,“Successfully sent data”, false);

}

else

{

Serial.println(“Failed to send sensor data”);

showDisplay(4,“Failed to send sensor data”, false);

}

//Esperamos 2.5s para dar tempo de ler as mensagens acima

delay(2500);

}

循環(huán)-從DHT22讀取值

//Obtém temperatura e umidade do sensor

bool getClimate()

{

int err = SimpleDHTErrSuccess;

//Passamos as variáveis ‘temperature’ e ‘humidity’ por parametro na fun??o chamada ‘read2’, elas ser?o retornadas por referência

//Se n?o for retornado o código de SimpleDHTErrSuccess (sucesso), exibimos o valor de erro obtido

if ((err = dht22.read2(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess)

{

Serial.print(“Read DHT22 failed, err=”);

Serial.println(err);

//Zera valores

temperature = humidity = 0;

return false;

}

return true;

}

循環(huán)-在顯示屏上顯示值

//Essa fun??o exibe os valores com suas respectivas unidades de medida para caso a flag ‘success’ seja true

//Caso a flag ‘success’ seja false, exibimos apenas um tra?o ‘-’

void showClimate(bool success)

{

if(success)

{

showDisplay(0, “Temperature: ”+String(temperature)+“ °C”, true);

showDisplay(1, “Humidity: ”+String(humidity)+“ %”, false);

Serial.println(“Temperature: ”+String(temperature)+“ °C”);

Serial.println(“Humidity: ”+String(humidity)+“ %”);

}

else

{

showDisplay(0, “Temperature: -”, true);

showDisplay(1, “Humidity: -”, false);

Serial.println(“Temperature: -”);

Serial.println(“Humidity: -”);

}

}

MQTT_Client-聲明和變量

#include

#include //Biblioteca para as publica??es via mqtt

#include “displayESP32LoRa.h” //Arquivo com as fun??es referentes ao display lora

#define WIFISSID “MEU_SSID” //Coloque seu SSID de WiFi aqui

#define PASSWORD “MEU_PASSWORD” //Coloque seu password de WiFi aqui

#define TOKEN “xxxxxx” //Coloque seu TOKEN do Ubidots aqui

#define VARIABLE_LABEL_TEMPERATURE “temperature” //Label referente a variável de temperatura criada no ubidots

#define VARIABLE_LABEL_HUMIDITY “humidity” //Label referente a variável de umidade criada no ubidots

#define DEVICE_ID “xxxxxx” //ID do dispositivo (Device id, também chamado de client name)

#define SERVER “things.ubidots.com” //Servidor do Ubidots (broker)

//Porta padr?o

#define PORT 1883

//Tópico aonde ser?o feitos os publish, “esp32-dht” é o DEVICE_LABEL

#define TOPIC “/v1.6/devices/esp32-dht”

//Objeto WiFiClient usado para a conex?o wifi

WiFiClient ubidots;

//Objeto PubSubClient usado para publish–subscribe

PubSubClient client(ubidots);

MQTT_Client-引導(dǎo)

bool mqttInit()

{

//Inicia WiFi com o SSID e a senha

WiFi.begin(WIFISSID, PASSWORD);

//Loop até que o WiFi esteja conectado

while (WiFi.status() != WL_CONNECTED)

{

delay(1000);

Serial.println(“Establishing connection to WiFi.?!保?

}

//Exibe no monitor serial

Serial.println(“Connected to network”);

//Seta servidor com o broker e a porta

client.setServer(SERVER, PORT);

//Conecta no ubidots com o Device id e o token, o password é informado como vazio

while(!client.connect(DEVICE_ID, TOKEN, “”))

{

Serial.println(“MQTT - Connect error”);

return false;

}

Serial.println(“MQTT - Connect ok”);

return true;

}

MQTT_Client-重新連接

void reconnect()

{

//Loop até que o MQTT esteja conectado

while (!client.connected())

{

//sinaliza desconex?o do mqtt no display

showDisplay(0,“Disconnected”, true);

showDisplay(1, “Trying to reconnect mqtt.。.”, false);

Serial.println(“Attempting MQTT connection.。.”);

//Tenta conectar

if (client.connect(DEVICE_ID, TOKEN,“”))

Serial.println(“connected”);

else

{

Serial.print(“failed, rc=”);

Serial.print(client.state());

Serial.println(“ try again in 2 seconds”);

//Aguarda 2 segundos antes de retomar

delay(2000);

}

}

//Sinaliza reconex?o do mqtt no display

showDisplay(4,“Reconnected”, false);

}

MQTT_Client-提交(發(fā)布)

//Envia valores por mqtt

//Exemplo: {“temperature”:{“value”:24.50, “context”:{“temperature”:24.50, “humidity”:57.20}}}

bool sendValues(float temperature, float humidity)

{

char json[250];

//Atribui para a cadeia de caracteres “json” os valores referentes a temperatura e os envia para a variável do ubidots correspondente

sprintf(json, “{”%s“:{”value“:%02.02f, ”context“:{”temperature“:%02.02f, ”humidity“:%02.02f}}}”, VARIABLE_LABEL_TEMPERATURE, temperature, temperature, humidity);

if(!client.publish(TOPIC, json))

return false;

//Atribui para a cadeia de caracteres “json” os valores referentes a umidade e os envia para a variável do ubidots correspondente

sprintf(json, “{”%s“:{”value“:%02.02f, ”context“:{”temperature“:%02.02f, ”humidity“:%02.02f}}}”, VARIABLE_LABEL_HUMIDITY, humidity, temperature, humidity);

if(!client.publish(TOPIC, json))

return false;

//Se tudo der certo retorna true

return true;

}

步驟14:ESP32代碼

Json

(圖像)

顯示LoRa

#ifndef _DISPLAY_LORA_

#define _DISPLAY_LORA_

#include “SSD1306.h”

//Define os pinos que ser?o utilizados pelo display LoRa

#define SCK 5 // GPIO5 -- SX127x‘s SCK

#define MISO 19 // GPIO19 -- SX127x’s MISO

#define MOSI 27 // GPIO27 -- SX127x‘s MOSI

#define SS 18 // GPIO18 -- SX127x’s CS

#define RST 14 // GPIO14 -- SX127x‘s RESET

#define DI00 26 // GPIO26 -- SX127x’s IRQ(Interrupt Request)

SSD1306 display(0x3c, 4, 15); //Construtor do objeto do display LoRa

顯示LoRa-loraDisplayConfig

//Configura Display LoRa

bool loraDisplayConfig()

{

//Configura RST do oled como saida

pinMode(16,OUTPUT);

//Reseta o OLED

digitalWrite(16, LOW);

//Aguarda 50ms

delay(50);

//Enquanto o OLED estiver ligado, GPIO16 deve estar HIGH

digitalWrite(16, HIGH);

//Inicializa display

if(!display.init())

return false;

//Inverte a tela verticalmente (de ponta cabe?a)

display.flipScreenVertically();

//Configura a fonte do display

display.setFont(ArialMT_Plain_10);

//Aguarda 200ms

delay(200);

//Limpa display

display.clear();

return true;

}

#endif

Display LoRa-showDisplay

//Exibe mensagem recebida como parametro

void showDisplay(int line, String msg, bool clear)

{

//Limpa o display

if(clear)

{

display.clear();

//Configura alinhamento de texto à esquerda

display.setTextAlignment(TEXT_ALIGN_LEFT);

//Configura fonte do texto

display.setFont(ArialMT_Plain_10);

}

//Escreve na pos 0,25 a mensagem

display.drawString(0 , line*10 , msg);

//Exibe no display

display.display();

}

步驟15:安裝庫(kù)

SimpleDHT

https://github.com/winlinvip/SimpleDHT

Pubsubclient

https://github.com/knolleary/pubsubclient

*顯示LoRa附加到項(xiàng)目中的

責(zé)任編輯:wv

聲明:本文內(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)投訴
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    734

    瀏覽量

    25131
  • Ubidots
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    MQTT協(xié)議為什么成為物聯(lián)網(wǎng)協(xié)議

    MQTT協(xié)議之所以成為物聯(lián)網(wǎng)領(lǐng)域的核心通信協(xié)議,主要得益于其 輕量級(jí)設(shè)計(jì)、高效資源利用、靈活可靠的消息傳遞機(jī)制、強(qiáng)大的安全支持以及廣泛的生態(tài)兼容性 ,這些特性精準(zhǔn)解決了物聯(lián)網(wǎng)設(shè)備在資源受限、網(wǎng)絡(luò)
    的頭像 發(fā)表于 12-10 09:15 ?468次閱讀

    MQTT網(wǎng)關(guān)支持5G通信嗎

    MQTT網(wǎng)關(guān)可以支持5G通信 ,且在實(shí)際應(yīng)用中,5G與MQTT協(xié)議的結(jié)合為物聯(lián)網(wǎng)領(lǐng)域帶來(lái)了顯著優(yōu)勢(shì),以下為具體分析: 一、5G與MQTT協(xié)議
    的頭像 發(fā)表于 12-08 11:13 ?780次閱讀

    工業(yè)智能網(wǎng)關(guān)可以通過(guò)MQTT協(xié)議對(duì)接到哪些平臺(tái)

    工業(yè)智能網(wǎng)關(guān)通過(guò)MQTT協(xié)議可對(duì)接的平臺(tái)范圍廣泛,涵蓋主流公有云、私有云及第三方云平臺(tái),具體可分為以下四類: 一、主流公有云平臺(tái) 阿里云物聯(lián)網(wǎng)平臺(tái) 支持MQTT協(xié)議直接接入,提供設(shè)備管
    的頭像 發(fā)表于 09-29 11:29 ?693次閱讀

    MQTT_協(xié)議中文資料

    電子發(fā)燒友網(wǎng)站提供《MQTT_協(xié)議中文資料.pdf》資料免費(fèi)下載
    發(fā)表于 09-02 16:19 ?1次下載

    物聯(lián)網(wǎng)MQTT網(wǎng)關(guān)是什么

    物聯(lián)網(wǎng)MQTT網(wǎng)關(guān)是一種采用MQTT物聯(lián)網(wǎng)協(xié)議的智能設(shè)備或軟件組件,其核心功能是連接不同通信協(xié)議的物聯(lián)網(wǎng)設(shè)備與消息代理服務(wù)器,實(shí)現(xiàn)設(shè)備間的數(shù)據(jù)交換與集中管理,同時(shí)支持邊緣計(jì)算、安全防護(hù)
    的頭像 發(fā)表于 08-29 15:24 ?1035次閱讀

    通過(guò)MQTT協(xié)議能接入工業(yè)物聯(lián)網(wǎng)云平臺(tái)中嗎

    通過(guò)MQTT協(xié)議完全可以接入工業(yè)物聯(lián)網(wǎng)云平臺(tái),且因其輕量、高效、可靠等特性,已成為工業(yè)物聯(lián)網(wǎng)場(chǎng)景中的主流通信協(xié)議之一。
    的頭像 發(fā)表于 08-26 18:03 ?866次閱讀

    GraniStudio :MQTT 協(xié)議的深度剖析

    在工業(yè)物聯(lián)網(wǎng)(IIoT)的通信協(xié)議體系中,MQTT(Message Queuing Telemetry Transport)憑借其輕量級(jí)、發(fā)布 - 訂閱模式和低帶寬占用等特性,成為連接邊緣設(shè)備與云端
    的頭像 發(fā)表于 08-04 09:48 ?1054次閱讀
    GraniStudio :<b class='flag-5'>MQTT</b> <b class='flag-5'>協(xié)議</b>的深度剖析

    國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開(kāi)發(fā)板—MQTT通信協(xié)議案例

    Demomqtt-demos”目錄下。 MQTT通信協(xié)議簡(jiǎn)介 概述 MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸
    的頭像 發(fā)表于 07-31 14:34 ?795次閱讀
    國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開(kāi)發(fā)板—<b class='flag-5'>MQTT</b>通信<b class='flag-5'>協(xié)議</b>案例

    MQTT網(wǎng)關(guān)具備邊緣計(jì)算功能嗎?有什么功能?

    現(xiàn)代MQTT網(wǎng)關(guān)通常具備邊緣計(jì)算功能,尤其是為適應(yīng)物聯(lián)網(wǎng)(IoT)場(chǎng)景中低延遲、高可靠、帶寬優(yōu)化等需求而設(shè)計(jì)的新一代網(wǎng)關(guān)。傳統(tǒng)MQTT網(wǎng)關(guān)的核心功能是協(xié)議轉(zhuǎn)換(如將Modbus、ZigBee等設(shè)備
    的頭像 發(fā)表于 07-15 15:01 ?901次閱讀
    <b class='flag-5'>MQTT</b>網(wǎng)關(guān)具備邊緣計(jì)算功能嗎?有什么功能?

    MQTT介紹

    的消息傳輸協(xié)議,近年來(lái)被廣泛應(yīng)用于智能家居、工業(yè)控制、車聯(lián)網(wǎng)等場(chǎng)景。 MQTT 是一種基于發(fā)布/訂閱(Pub/Sub)模式的輕量級(jí)消息協(xié)議,設(shè)計(jì)初衷是為低帶寬、不穩(wěn)定網(wǎng)絡(luò)環(huán)境下的設(shè)備通信而生。它更像是廣播電臺(tái):你訂閱頻道,誰(shuí)在頻
    的頭像 發(fā)表于 07-14 09:34 ?3706次閱讀
    <b class='flag-5'>MQTT</b>介紹

    簡(jiǎn)析Modbus和MQTT協(xié)議

    Modbus和MQTT協(xié)議在設(shè)計(jì)目標(biāo)、通信模式、應(yīng)用場(chǎng)景、網(wǎng)絡(luò)結(jié)構(gòu)、數(shù)據(jù)傳輸效率、設(shè)備兼容性及安全性等方面存在顯著差異,具體分析如下: 一、設(shè)計(jì)目標(biāo)與定位 Modbus :誕生于1979年,由施耐德
    的頭像 發(fā)表于 07-10 14:25 ?809次閱讀

    MQTT為何成為物聯(lián)網(wǎng)協(xié)議

    MQTT(Message Queuing Telemetry Transport)即消息隊(duì)列遙測(cè)傳輸協(xié)議,已成為物聯(lián)網(wǎng)領(lǐng)域廣泛應(yīng)用的協(xié)議,這主要得益于其在資源占用、通信效率、可靠性、擴(kuò)展性等多方面
    的頭像 發(fā)表于 05-20 09:54 ?856次閱讀

    KaihongOS操作系統(tǒng):MQTT物聯(lián)網(wǎng)通訊協(xié)議

    @ohos.net.khMqtt (MQTT物聯(lián)網(wǎng)通訊協(xié)議) 說(shuō)明: 本模塊首批接口從API version 8開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 目前支持3.1.1
    發(fā)表于 05-08 07:51

    《DNESP32S3使用指南-IDF版_V1.6》第五十五章 基于MQTT協(xié)議連接阿里云服務(wù)器

    實(shí)現(xiàn)的,所以我們只需要在單片機(jī)端實(shí)現(xiàn) TCP 客戶端程序并使用 lwIP提供的MQTT文件來(lái)連接阿里云服務(wù)器。本章分為如下幾個(gè)部分:55.1 MQTT協(xié)議簡(jiǎn)介55.2 硬件設(shè)計(jì)55.3
    發(fā)表于 03-18 09:22

    MQTT物聯(lián)網(wǎng)平臺(tái)有哪些?有哪些功能?

    MQTT(Message Queuing Telemetry Transport)是一種基于客戶端-服務(wù)器架構(gòu)的發(fā)布/訂閱模式的消息傳輸協(xié)議,它廣泛應(yīng)用于機(jī)器與機(jī)器的通信(M2M)以及物聯(lián)網(wǎng)環(huán)境
    的頭像 發(fā)表于 03-15 14:23 ?1499次閱讀
    <b class='flag-5'>MQTT</b>物聯(lián)網(wǎng)平臺(tái)有哪些?有哪些功能?