在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Ubidots的MQTT協議簡介

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-13 09:41 ? 次閱讀

第1步:演示

第2步:使用的資源

?ESP32 LoRa Display

?DHT22

?4k7歐姆電阻

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

?Proboardboard

步驟3:MQTT協議

發布和訂閱

步驟4:Ubidots IoT平臺

要解決的問題

?創建一個新帳戶

?創建新的儀表板

?創建ESP32-DHT設備

?獲得MQTT數據-設備ID和主題

?獲得MQTT數據-令牌

?在Ubidots中創建變量

?創建濕度和溫度小部件

步驟5:創建新帳戶

要創建帳戶,請訪問www.ubidots.com并單擊在注冊后

A。公司名稱

B。項目階段:

B-我們選擇了發現階段,表明它是一個測試項目。

C。創建應用程序

D。您的姓名

您的電子郵件

創建個人資料

E。登錄

密碼

開始免費試用

步驟6:創建新儀表板

一個。單擊創建一個新的儀表板

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

步驟7:創建ESP32-DHT設備

A。單擊設備管理和設備

B。單擊創建設備或+

C。將打開一個選項卡,列出help.ubidots站點上的教程,以根據各自的制造商對微控制器進行配置和編程。我們將創建一個空白設備。

D。填寫字段

1。設備名稱

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

3。創建

電子。創建設備后,它將在設備頁面上列出,如圖所示

1。設備名稱

2。上次更新

3。設備創建日期/時間

4。與設備有關的組織

5。添加組織并刪除設備

步驟8:獲取MQTT數據-設備ID和主題

一個。選擇設備

B。設備ID值和主題是根據圖像寫入的。

使用的端口為1883。

C。根據圖像3.1和3.2獲得令牌。

步驟9:創建變量

要創建引用設備中變量的窗口小部件,必須已經在設備上創建了它。

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

A。在設備中,選擇設備

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

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

C。輸入標簽(VARIABLE_LABEL_TEMPERATURE)

D。重復濕度變量的步驟

(VARIABLE_LABEL_HUMIDITY)

步驟10:創建小部件

一個。轉到儀表板頁面

B。單擊按鈕之一

步驟11:創建小部件-溫度

A。選擇溫度計選項

B。點擊添加變量

C。請按照以下步驟選擇溫度變量

D。單擊“確認”

步驟12:創建窗口小部件-濕度

A。添加另一個小部件

B。選擇“坦克”選項

C。點擊添加變量

D。選擇ESP32-DHT,單擊濕度,然后確認

E。最后,點擊確認

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

G。您可以通過拖動窗口來安排

步驟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

設置

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”);

}

循環

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);

}

循環-從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;

}

循環-在顯示屏上顯示值

//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-引導

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-提交(發布)

//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:安裝庫

SimpleDHT

https://github.com/winlinvip/SimpleDHT

Pubsubclient

https://github.com/knolleary/pubsubclient

*顯示LoRa附加到項目中的

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • MQTT
    +關注

    關注

    5

    文章

    652

    瀏覽量

    22573
  • Ubidots
    +關注

    關注

    0

    文章

    10

    瀏覽量

    3866
收藏 人收藏

    評論

    相關推薦

    基于MQTT協議的車云通信設計

    隨著智能汽車的發展,車云通信的功能場景及數據量也逐漸增多,具有輕量化、可靠性等特點的MQTT協議成為很多OEM車云通信協議的選擇。本文主要介紹。 什么是MQTT
    的頭像 發表于 01-08 10:24 ?152次閱讀
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>的車云通信設計

    MQTT-3.1.1標準協議文檔

    電子發燒友網站提供《MQTT-3.1.1標準協議文檔.pdf》資料免費下載
    發表于 11-21 16:20 ?4次下載

    MQTT.fx 連接Onenet 多協議接入平臺 MQTT協議(舊版)詳解

    此文檔可以作為中間態MQTT版本,默認參數獲取教程 多協議接入地址 td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt
    的頭像 發表于 09-30 15:20 ?825次閱讀
    <b class='flag-5'>MQTT</b>.fx 連接Onenet 多<b class='flag-5'>協議</b>接入平臺 <b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>(舊版)詳解

    物聯網行業中MQTT通信協議詳解以及使用

    一 概述 MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一種基于發布/訂閱(publish/subscribe)模式的“輕量級”通訊協議
    的頭像 發表于 09-20 17:08 ?1556次閱讀
    物聯網行業中<b class='flag-5'>MQTT</b>通信<b class='flag-5'>協議</b>詳解以及使用

    MQTT協議網關的工作原理及功能特性

    在物聯網的快速發展中,MQTT協議網關作為連接物聯網設備與消息代理服務器的重要橋梁,扮演著不可或缺的角色。MQTT是一種基于發布/訂閱模式的輕量級通信協議,特別適用于低帶寬、不穩定網絡
    的頭像 發表于 09-18 17:00 ?551次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>網關的工作原理及功能特性

    鋇錸技術Modbus轉MQTT網關:橋接Modbus協議MQTT協議

    提供了一鍵對接亞馬遜云平臺的解決方案。 BL101網關是鋇錸技術研發的一款高性能工業物聯網設備,通過橋接Modbus協議MQTT通信協議,實現了工業設備與云端平臺之間的高效互聯。支持Modbus RTU、Modbus TCP和
    的頭像 發表于 07-30 16:28 ?414次閱讀
    鋇錸技術Modbus轉<b class='flag-5'>MQTT</b>網關:橋接Modbus<b class='flag-5'>協議</b>與<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>

    基于MQTT協議云平臺的Modbus轉MQTT網關

    鋇錸Modbus轉MQTT網關BL100是一款高性能、高性價比的物聯網網關,它支持將Modbus協議(包括Modbus RTU和Modbus TCP)的數據轉換為MQTT協議的數據格式
    的頭像 發表于 07-29 17:59 ?795次閱讀
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>云平臺的Modbus轉<b class='flag-5'>MQTT</b>網關

    鋇錸協議網關輕松實現Modbus轉MQTT協議

    Modbus是一種在工業自動化領域廣泛使用的通信協議,以其簡單性和可靠性而著稱。然而,隨著物聯網技術的興起,傳統的Modbus協議需要與通信協議MQTT相結合,以實現更廣泛的應用場景和
    的頭像 發表于 07-23 15:51 ?382次閱讀
    鋇錸<b class='flag-5'>協議</b>網關輕松實現Modbus轉<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>

    mqtt協議和tcp協議區別

    MQTT協議和TCP協議在設計和應用上存在以下主要區別: 1. 起源與設計:MQTT協議誕生于1999年互聯網初期,而TCP
    的頭像 發表于 04-01 09:15 ?1673次閱讀

    MQTT和Modbus的物聯網網關協議的區別分析

    MQTT和Modbus的物聯網網關協議區別分析 MQTT(Message Queuing Telemetry Transport)與Modbus是兩種廣泛應用在物聯網環境中的通信協議
    的頭像 發表于 03-18 16:50 ?864次閱讀
    <b class='flag-5'>MQTT</b>和Modbus的物聯網網關<b class='flag-5'>協議</b>的區別分析

    MQTT協議網關解決方案設計與實施

    MQTT協議網關是一個中間件,負責接收來自不同MQTT客戶端的消息,并將這些消息轉發到MQTT服務器;同時,也能接收來自MQTT服務器的消息
    的頭像 發表于 03-11 14:07 ?530次閱讀

    什么是MQTTMQTT協議中的方法

    MQTT是一種輕量級消息傳遞協議,由IBM開發,于1999年首次發布。它使用發布/訂閱模式并在設備、服務器和應用程序之間轉換消息。
    的頭像 發表于 02-25 17:04 ?1382次閱讀
    什么是<b class='flag-5'>MQTT</b>?<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>中的方法

    mqtt協議與終端監測設備結合

    mqtt協議與終端監測設備結合 摘要: MQTT是一個基于客戶端-服務器的消息發布/訂閱傳輸協議, 優點是輕量,簡單,開放和易于實現的,這樣的特點在于物聯網設備中就十分適用,這也是它在
    的頭像 發表于 01-30 13:13 ?416次閱讀
    <b class='flag-5'>mqtt</b><b class='flag-5'>協議</b>與終端監測設備結合

    BL102 PLC To MQTT網關產品簡介

    電子發燒友網站提供《BL102 PLC To MQTT網關產品簡介.pdf》資料免費下載
    發表于 01-26 11:36 ?0次下載

    mqtt協議和http協議區別

    MQTT(Message Queuing Telemetry Transport)是一種基于發布/訂閱模式的“輕量級”通訊協議,構建于TCP/IP協議上。它是由IBM在1999年發布的。MQT
    的頭像 發表于 01-19 15:56 ?6985次閱讀
    主站蜘蛛池模板: 免费国产午夜在线观看| 欧美性色xo影院永久禁欲| 人人草人人爽| 日本高清一区二区三区不卡免费| 国产成人悠悠影院| 免费国产成人午夜私人影视| 美女午夜| aa国产| 日本69av| 美女被免费网站91色| 久久夜靖品| avtom影院永久地址人人影院| 亚洲haose在线观看| 免费又爽又黄禁片视频在线播放| 屁屁影院在线| 天天射天天拍| 国产片翁熄系列乱在线视频| 日本精品三级| 五月婷婷啪啪| 亚洲成a人片在线观看尤物| 色香蕉在线视频| 全色网站| 国产中日韩一区二区三区| www.色.com| 国产精品五月天| 久久精品高清视频| 成人在线网站| 大量喷潮free| 五月婷综合网| 亚洲国产系列| 久久久久久久免费| 91三级在线观看| 在线免费黄| 最近2018中文字幕免费视频| 性做久久久久久免费观看| 永久黄网站色视频免费观看| 中国业余老太性视频| 四虎影院在线播放| 久久2017| 天天插天天搞| 欧美人与zoxxxx|