精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

怎樣使用UbiDots連接ESP32并發布多個傳感器數據

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-12 10:26 ? 次閱讀

步驟1:硬件和軟件規范

ESP32 WiFi/BLE

無線溫濕度傳感器

軟件規格

Arduino IDE

第2步:創建俘虜門戶

強制門戶網站是一個網頁,向新連接的用戶顯示,然后才向他們授予對網絡資源的更廣泛訪問權限。在這里,我們提供三個網頁,供您在DHCP和靜態IP設置之間進行選擇。我們可以通過兩種方式為ESP定義IP地址。

DHCP IP地址-這是一種動態分配IP地址的方法到設備。 ESP的默認IP地址為192.168.4.1

靜態IP地址-為我們的網絡設備分配一個永久IP地址。為了向設備提供靜態IP,我們需要定義IP地址,網關地址和子網掩碼。

第一個網頁位于192.168.1.77。此處為用戶提供了單選按鈕,可以在DHCP和靜態IP設置之間進行選擇。在下一個網頁中,我們必須提供IP相關信息以繼續進行操作。

HTML代碼

可以在以下位置找到網頁的HTML代碼:

您可以使用任何IDE或文本編輯器(例如Sublime或notepad ++)來制作HTML網頁。

首先創建一個包含兩個單選按鈕的HTML網頁,以在DHCP和靜態之間進行選擇IP設置。

現在創建按鈕以提交您的回復

為單選按鈕命名。

ESP Web服務器類將使用這些名稱作為參數,并使用這些參數獲取單選按鈕的響應

現在插入“ SUBMIT”按鈕以將響應發送到設備。網頁上,我們有文本框。

在文本框中輸入名稱值和輸入類型,然后在“ SUBMIT”中添加提交按鈕以提交響應。

創建“ RESET” ‘按鈕以重置文本字段的內容。

步驟3:提供Wi Fi和UbiDots憑據

主要問題是在管理WiFi憑據時發生的。即使我們有WiFiMulti庫,也可以在其中向設備提供多個SSID和密碼,然后設備將連接到可用的網絡。但是,如果可用網絡不在WiFiMulti列表中,該怎么辦。始終刷新 ESP32 設備不是一個可靠的解決方案。

為解決此問題,我們托管了一個網頁,用戶可以在其中提交可用網絡的SSID和密碼。它的工作方式如下。

該網頁托管于用戶從強制門戶中選擇的靜態IP或DHCP IP

此網頁包含用于輸入SSID的文本字段,密碼和UBIDOTS令牌ID將設備連接到 UbiDots 。

在輸入字段中輸入本地WiFi的SSID和密碼,然后輸入 UbiDot 》的令牌ID并輸入SUBMIT

這些憑據將保存在 ESP32 的EEPROM

60秒后,設備將自動與AP

下次打開設備時,用戶無需執行此過程,設備將自動從EEPROM中獲取用戶憑據并繼續發布傳感器讀數到 UbiDots 。

步驟4:將傳感器讀數發布到UbiDots

此處我們正在將無線溫度和濕度傳感器與 ESP 32 設備一起使用,以獲取溫度和H亮度數據。我們正在使用 MQTT 協議將數據發送到UbiDots。 MQTT 遵循發布和訂閱機制,而不是請求和響應。它比HTTP更快,更可靠。這項工作如下。

我們正在使用任務計劃程序來計劃任務,例如從傳感器中獲取數據,發布傳感器讀數,訂閱 MQTT 主題。/li》

首先,包括Task Scheduler頭文件,它是實例并計劃任務。

我們已經計劃了兩個任務,它們涉及兩個不同的控制操作。

#define _TASK_TIMEOUT

#include

Scheduler ts;

//---------Tasks------------//

Task tSensor(4 * TASK_SECOND, TASK_FOREVER, &taskSensorCallback, &ts, false, NULL, &taskSensorDisable);

Task tWiFi(10* TASK_SECOND, TASK_FOREVER, &taskWiFiCallback, &ts, false, NULL, &taskWiFiDisable);

任務1用于讀取傳感器值,該任務運行1秒鐘,直到達到10秒超時。

當Task1超時時,我們正在連接到本地Wifi和 MQTT 代理。

現在已啟用任務2并我們將禁用任務1

任務2用于將傳感器數據發布到 UbiDots MQTT 經紀人,此任務將運行20秒,直到超時20秒

當Task2達到超時時,將再次啟用任務1,并禁用Task2。再次在這里,我們獲取更新的值,并且過程繼續進行。

讀取I2C傳感器數據

我們從無線溫度和濕度傳感器獲得29字節的幀。對該框架進行操作以獲取實際的溫度和濕度數據。

uint8_t data[29];

data[0] = Serial1.read();

delay(k);

//chck for start byte

if(data[0]==0x7E)

{

while (!Serial1.available());

for ( i = 1; i《 29; i++)

{

data[i] = Serial1.read();

delay(1);

}

if(data[15]==0x7F) /////// to check if the recive data is correct

{

if(data[22]==1) //////// make sure the sensor type is correct

{

humidity = ((((data[24]) * 256) + data[25]) /100.0);

humidity /=10.0;

cTempint = (((uint16_t)(data[26])《《8)| data[27]);

cTemp = (float)cTempint /100.0;

cTemp /= 10.0;

fTemp = cTemp * 1.8 + 32;

fTemp /= 10.0;

battery = random(100,327);

voltage = battery/100;

nodeId = data[16];}

連接到UbiDots MQTT API

包括用于 MQTT 流程的頭文件。

#include

為 MQTT 定義其他變量,例如客戶端名稱,代理地址,令牌ID(我們正在從EEPROM中獲取令牌ID)

#define MQTT_CLIENT_NAME “ClientVBShightime123”

char mqttBroker[] = “things.ubidots.com”;

char payload[100];

char topic[150];

//create variable to store token ID

String tokenId;

創建變量以存儲不同的傳感器數據并創建char變量以存儲主題

#define VARIABLE_LABEL_TEMPF “tempF” // Assing the variable label

#define VARIABLE_LABEL_TEMPC “tempC” // Assing the variable label

#define VARIABLE_LABEL_BAT “bat”

#define VARIABLE_LABEL_HUMID “humid” // Assing the variable label

char topic1[100];

char topic2[100];

char topic3[100];

將數據發布到所提到的 MQTT 主題,有效負載將類似于 {“ tempc”: {value:“ tempData”}}

sprintf(topic1, “%s”,“”);

sprintf(topic1, “%s%s”, “/v1.6/devices/”, DEVICE_LABEL);

sprintf(payload, “%s”, “”); // Cleans the payload

sprintf(payload, “{”%s“:”, VARIABLE_LABEL_TEMPC); // Adds the value

sprintf(payload, “%s{”value“:%s}”, payload, str_cTemp); // Adds the value

sprintf(payload, “%s}”, payload); // Closes the dictionary brackets

Serial.println(payload);

Serial.println(client.publish(topic1,payload) ? “published” : “notpublished”);

//Do same for other topic as well

client.publish()將數據發布到UbiDots。

步驟5:可視化數據

轉到Ubidots并登錄到您的帳戶。

從頂部列出的“數據”標簽導航到儀表板。

現在單擊“ + ”圖標以添加然后ew小部件。

從列表中選擇一個小部件,然后添加變量和設備。

可以使用不同的小部件在儀表板上顯示傳感器數據。

責任編輯:wv

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

    關注

    2548

    文章

    50740

    瀏覽量

    752143
  • Ubidots
    +關注

    關注

    0

    文章

    10

    瀏覽量

    3850
  • ESP32
    +關注

    關注

    18

    文章

    960

    瀏覽量

    17114
收藏 人收藏

    評論

    相關推薦

    esp8266和esp32區別是什么

    以下是關于ESP8266和ESP32的主要區別: 處理和架構 : ESP8266 :使用一個Tensilica L106 80MHz的處理
    的頭像 發表于 08-19 18:16 ?4507次閱讀

    esp32用什么軟件編程

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制,廣泛應用于物聯網、智能家居、智能穿戴等領域。要對ESP32進行編程,需要選擇合適的編程軟件和開發環境
    的頭像 發表于 08-19 17:24 ?2963次閱讀

    如何將多個ESP連接到一個ESP并向服務發送數據

    。 該站模式 ESP 連接傳感器。所有這些站模式 esp 收集傳感器數據并將
    發表于 07-19 06:49

    ESP32-WROOM-32E、ESP32-WROOM-32D、ESP32-WROOM-32U 有什么區別?ESP32-WROOM-32 后綴字母代表的意思是?

    相信很多人心里都有這樣的疑問,今天就教大家怎么區分它們。 32D和32U是同一個芯片ESP32-D0WD的模組,主要區別的天線模式,分別是板載和IPEX外接天線。 32E是用的升級版的芯片
    的頭像 發表于 07-17 10:09 ?7958次閱讀
    <b class='flag-5'>ESP32</b>-WROOM-32E、<b class='flag-5'>ESP32</b>-WROOM-32D、<b class='flag-5'>ESP32</b>-WROOM-32U  有什么區別?<b class='flag-5'>ESP32</b>-WROOM-32 后綴字母代表的意思是?

    mq-2傳感器esp32cam wifi有沖突怎么解決?

    一、只要esp32cam 開啟wifi功能,mq-2傳感器一直返回4095,去掉mq-2傳感器,也是一直返回4095。 二、代碼中去掉wifi功能,返回為動態變化的值。 三、排除了傳感器
    發表于 07-02 07:56

    使用ESP32-C3的藍牙進行傳感器數據上傳,ESP-NOW協議的功耗能滿足需求嗎?

    1.使用ESP32-C3的藍牙進行傳感器數據上傳,期望使用紐扣電池供電,ESP-NOW協議的功耗能滿足需求嗎 2.使用ESP-now協議的設
    發表于 07-01 07:22

    esp32作為藍牙主設備時最多可以同時連接多少個從設備來收發數據

    目前我在做一款應用,需要將藍牙作為主設備,然后去連接多個傳感器去實時的獲取數據,我想了解下esp32作為藍牙主設備時最多可以同時
    發表于 06-13 08:18

    使用激光測距傳感器esp32進行can通信,為什么esp32只能接收到6組數據

    目前,我使用激光測距傳感器esp32進行can通信,esp32發送一條讀指令給傳感器傳感器返回16組距離數值,128個字節。can卡能接
    發表于 06-12 08:20

    請問esp32能支持多個客戶端同時連接嗎?

    根據我現在的測試結果,esp32作為ble server時同時支持一個客戶端連接,前一個客戶端必須斷開藍牙連接,后一個才能連接。實際esp32
    發表于 06-11 06:25

    請問esp32之間的藍牙連接esp32與手機的藍牙連接有什么區別?

    請問esp32之間的藍牙連接esp32與手機的藍牙連接有什么區別?為什么我測試的多個藍牙例程中esp3
    發表于 06-06 08:15

    樂鑫科技發布全新ESP32-H4 SoC

    樂鑫信息科技最新發布ESP32-H4,這一創新產品是對其ESP32-H2系列的完美補充,進一步鞏固了公司在802.15.4和Bluetooth LE領域的產品布局。ESP32-H4作
    的頭像 發表于 05-06 15:18 ?934次閱讀

    ESP32-C2在小魔方遙控的應用

    我們經常提起的ESP32-C3和ESP32-S3,ESP32-C2感覺話題度沒有那么多,但其應用上不可小覷。今天小啟就跟大家講講ESP32-C2在小魔方遙控
    的頭像 發表于 01-13 08:03 ?786次閱讀
    <b class='flag-5'>ESP32</b>-C2在小魔方遙控<b class='flag-5'>器</b>的應用

    esp32外置flash的大小

    ESP32是一款功能強大的微控制,廣泛應用于物聯網和嵌入式設備領域。雖然ESP32內置了一定的閃存空間,但有時候我們可能需要更大的儲存空間來存儲更多的數據或者程序。因此,一些廠商推出
    的頭像 發表于 01-09 11:24 ?3900次閱讀

    esp32外接多個傳感器 如何供電

    在將多個傳感器外接到ESP32上時,供電是至關重要的考慮因素。這篇文章將為您詳細介紹如何供電ESP32和外接多個
    的頭像 發表于 01-02 16:13 ?5994次閱讀

    ESP32的接口不能隨便用,如何快速從Arduino過渡到ESP32的新手指南-進階篇

    HSPI_MISO 12 HSPI_CLK 14 HSPI_CS 15 CS 2 SPI是什么 SPI(串行外設接口)是一種用于設備之間連接的技術。通過SPI,ESP32可以與其他同樣使用SPI連接
    的頭像 發表于 12-12 15:54 ?2.6w次閱讀
    <b class='flag-5'>ESP32</b>的接口不能隨便用,如何快速從Arduino過渡到<b class='flag-5'>ESP32</b>的新手指南-進階篇