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

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

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

    關注

    2564

    文章

    52706

    瀏覽量

    764638
  • Ubidots
    +關注

    關注

    0

    文章

    10

    瀏覽量

    3937
  • ESP32
    +關注

    關注

    21

    文章

    1012

    瀏覽量

    18955
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本質上是讓 ESP32 設備與豆包的 API 進行通信,以獲取相關服務
    的頭像 發表于 02-05 13:40 ?1781次閱讀
    <b class='flag-5'>esp32</b>如何接入豆包

    原來ESP32竟可《一“芯”兩用》既做人體檢測傳感器也做Wi-Fi數據傳輸

    今天將介紹ESP32如何"一芯兩用",既做人體檢測傳感器也做Wi-Fi數據傳輸模塊;對于使用ESP32做Wi-Fi數據通訊,相信玩
    的頭像 發表于 12-18 18:12 ?3582次閱讀
    原來<b class='flag-5'>ESP32</b>竟可《一“芯”兩用》既做人體檢測<b class='flag-5'>傳感器</b>也做Wi-Fi<b class='flag-5'>數據</b>傳輸

    ESP32 微控制系列指南

    2024-05-29 Don Wilcher [微控制] ESP32 微控制已成為物聯網 (IoT) 和嵌入式控制領域的核心部分。 ESP32
    的頭像 發表于 10-02 18:21 ?4840次閱讀
    <b class='flag-5'>ESP32</b> 微控制<b class='flag-5'>器</b>系列指南

    將一個第15.4層堆棧傳感器連接多個網關

    電子發燒友網站提供《將一個第15.4層堆棧傳感器連接多個網關.pdf》資料免費下載
    發表于 09-26 11:05 ?0次下載
    將一個第15.4層堆棧<b class='flag-5'>傳感器</b><b class='flag-5'>連接</b>到<b class='flag-5'>多個</b>網關

    esp32esp8266代碼共用嗎

    本文將介紹ESP32ESP8266兩款流行的微控制在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯網技術的飛速發展,越來越多的智能設備開始進入我們的生活。其中,ESP32
    的頭像 發表于 08-19 18:23 ?2240次閱讀

    esp8266和esp32區別是什么

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

    esp32用什么軟件編程

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

    如何將多個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 ?1.6w次閱讀
    <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 后綴字母代表的意思是?

    ESP32能取代STM32嗎?哪個更好?

    不能!首先二者不存在哪個更好的問題,因為這兩個芯片使用場景各不相同,在嵌入式系統領域,ESP32和STM32都是常見的單片機系列,它們各自具有一定的優勢和適用場景。本文主要探討ESP32是否能夠取代
    的頭像 發表于 07-06 08:04 ?1.8w次閱讀
    <b class='flag-5'>ESP32</b>能取代STM32嗎?哪個更好?

    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 SPP 藍牙連接數如何設置,藍牙連接數設成大于1時,手機和ESP32藍牙配對和數據通信都正常。把藍牙設備
    發表于 06-28 07:50

    ESP32做為主機連接多個從設備時,主機端如何修改默認的連接參數?

    我在測試ESP32做主機連接5個從機,從機設備不會發起更新連接參數請求, 協議棧選的Bluedroid, 實測ESP32默認的連接間隔是15
    發表于 06-21 16:56

    樂鑫esp32系列在睡眠模式下保持藍牙連接的功耗測試

    本教程適用于ESP32-S3、ESP32-C3、ESP32-C6睡眠模式介紹ESP32系列常見的休眠方式有三種,分別為Modem-sleep、Light-sleep和Deep-slee
    的頭像 發表于 06-21 08:04 ?5310次閱讀
    樂鑫<b class='flag-5'>esp32</b>系列在睡眠模式下保持藍牙<b class='flag-5'>連接</b>的功耗測試
    主站蜘蛛池模板: 特黄一级大片 | 人人爽天天碰天天躁夜夜躁 | 成人伊人电影 | 午夜dy888理论三级 | 免费香蕉视频国产在线看 | 亚洲国产第一区二区香蕉 | 亚洲男人的天堂久久无 | 免费黄色一级毛片 | 色综合网址 | 69日本人xxxxxxxx18| 欧美成人精品一级高清片 | 亚洲国产精品久久网午夜 | 国模极品一区二区三区 | 看片午夜| 婷婷六月综合网 | 狠狠色丁香九九婷婷综合五月 | 同性同男小说肉黄 | 久久男人精品 | 久久人精品| av网址在线看 | 色四月婷婷 | 五月婷婷色网 | 久久手机免费视频 | 亚洲伊人久久大香线蕉影院 | 99久久精品免费看国产免费 | 久久综合九色综合网站 | 日本最顶级丰满的aⅴ艳星 日本最好的免费影院 | 一区视频免费观看 | 国产男女免费视频 | 欧美在线激情 | 在线黄色.com | 最新中文字幕在线资源 | 午夜影院网站 | 欧美精品xxxⅹ欧美 欧美精品高清在线xxxx | 狠狠色噜噜噜噜狠狠狠狠狠狠奇米 | 天天射天天草 | 欧美黄色tv | 欧美大全 | 可以免费看黄色的网站 | 亚1洲二区三区四区免费 | 天天色综合久久 |