沈樵综合在线,一区二区三区乱码,免费资源一区二区三区,91超碰碰,av极品一线天,日韩免费高清一区二区,国产蜜尤福利在线,嗯啊91在线观看,精品一区二三

行業(yè)產(chǎn)品

  • 行業(yè)產(chǎn)品

上海維立勝衡傳感器有限公司


當(dāng)前位置:上海維立勝衡傳感器有限公司>技術(shù)文章>如何使用Arduino IDE通過ESP32讀取多個(gè)DS18B20溫度傳感器的溫度

    暫無信息


    暫無信息

經(jīng)營模式:其他

商鋪產(chǎn)品:108條

所在地區(qū):上海上海

技術(shù)文章

如何使用Arduino IDE通過ESP32讀取多個(gè)DS18B20溫度傳感器的溫度

閱讀:79發(fā)布時(shí)間:2025-3-3

首先,我們需要了解DS18B20溫度傳感器。DS18B20溫度傳感器是一款1線數(shù)字溫度傳感器。每個(gè)傳感器都有一個(gè)的64位序列號(hào),這意味著可以在同一數(shù)據(jù)總線上使用許多傳感器。這對(duì)于數(shù)據(jù)記錄和溫度控制項(xiàng)目特別有用。

DS18B20溫度傳感器的主要規(guī)格如下:

1.通過1線總線通信進(jìn)行通信

2.工作溫度范圍:-55°C至125°C

3.精度+/-0.5℃(范圍-10℃至85℃)

4.引腳從左到右:個(gè)引腳是接地,第二個(gè)引腳是數(shù)據(jù),最右邊的引腳是電壓控制電路。

連接DS18B20溫度傳感器時(shí),需要在VCC和數(shù)據(jù)線之間添加一個(gè)4.7k歐姆的電阻。以下使用Arduino IDE通過ESP32讀取三個(gè)DS18B20溫度傳感器的溫度的示例:

使用Arduino IDE通過ESP32讀取三個(gè)DS18B20溫度傳感器的溫度

準(zhǔn)備Arduino IDE

Arduino IDE有一個(gè)附加組件,允許使用Arduino IDE及其編程語言對(duì)ESP32進(jìn)行編程。在上傳代碼之前,需要在Arduino IDE中安裝兩個(gè)庫。OneWire庫和Dallas Temperature library庫。

獲取DS18B20傳感器地址

每個(gè)DS18B20溫度傳感器都分配有一個(gè)序列號(hào)。首先,您需要找到該編號(hào)來相應(yīng)地標(biāo)記每個(gè)傳感器。您需要這樣做,以便稍后您知道您正在從哪個(gè)傳感器讀取溫度。

將以下代碼上傳到ESP32。確保是正確的板和COM端口。

/*
 * Rui Santos 
 * Complete Project Details
 */

#Include

// Based on the OneWire library example

OneWire ds(4);  //data wire connected to GPIO 4

void setup(void) {
  Serial.begin(115200);
}

void loop(void) {
  byte i;
  byte addr[8];
  
  if (!ds.search(addr)) {
    Serial.println(" No more addresses.");
    Serial.println();
    ds.reset_search();
    delay(250);
    return;
  }
  Serial.print(" ROM =");
  for (i = 0; i < 8; i++) {
    Serial.write(' ');
    Serial.print(addr[i], HEX);
  }
}

一次僅連接一個(gè)傳感器以查找其地址(或連續(xù)添加一個(gè)新傳感器),以便能夠通過其地址識(shí)別每個(gè)傳感器。然后,可以為每個(gè)傳感器添加物理標(biāo)簽。以9600的波特率打開串行監(jiān)視器,得到如下內(nèi)容:

獲取三個(gè)DS18B20傳感器地址

取消選中“自動(dòng)滾動(dòng)”選項(xiàng),以便能夠復(fù)制地址。在該例子中,有以下地址:

傳感器1:28 FF 77 62 40 17 4 31

傳感器2:28 FF B4 6 33 17 3 4B

傳感器3:28 FF A0 11 33 17 3 96

從多個(gè)傳感器獲取溫度

從同一公共數(shù)據(jù)總線上的多個(gè)傳感器獲取溫度非常簡(jiǎn)單。下面的示例代碼從每個(gè)傳感器讀取攝氏溫度和華氏溫度,并在串行監(jiān)視器中打印結(jié)果。

/*
 * Rui Santos 
 * Complete Project Details
 */

// Include the libraries we need
#Include
#Include

// Data wire is connected to GPIO15
#define ONE_WIRE_BUS 15
// Setup a oneWire instance to communicate with a OneWire device
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature sensor 
DallasTemperature sensors(&oneWire);

DeviceAddress sensor1 = { 0x28, 0xFF, 0x77, 0x62, 0x40, 0x17, 0x4, 0x31 };
DeviceAddress sensor2 = { 0x28, 0xFF, 0xB4, 0x6, 0x33, 0x17, 0x3, 0x4B };
DeviceAddress sensor3= { 0x28, 0xFF, 0xA0, 0x11, 0x33, 0x17, 0x3, 0x96 };

void setup(void){
  Serial.begin(115200);
  sensors.begin();
}

void loop(void){ 
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
  
  Serial.print("Sensor 1(*C): ");
  Serial.print(sensors.getTempC(sensor1)); 
  Serial.print(" Sensor 1(*F): ");
  Serial.println(sensors.getTempF(sensor1)); 
 
  Serial.print("Sensor 2(*C): ");
  Serial.print(sensors.getTempC(sensor2)); 
  Serial.print(" Sensor 2(*F): ");
  Serial.println(sensors.getTempF(sensor2)); 
  
  Serial.print("Sensor 3(*C): ");
  Serial.print(sensors.getTempC(sensor3)); 
  Serial.print(" Sensor 3(*F): ");
  Serial.println(sensors.getTempF(sensor3)); 
  
  delay(2000);
}

以115200的波特率打開串行監(jiān)視器,應(yīng)該會(huì)得到類似的結(jié)果:

讀取到的傳感器溫度


儀表網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ? Copyright(C)?2021 http://m.liuyangwu.com,All rights reserved.

以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),儀表網(wǎng)對(duì)此不承擔(dān)任何保證責(zé)任。 溫馨提示:為規(guī)避購買風(fēng)險(xiǎn),建議您在購買產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。

會(huì)員登錄

×

請(qǐng)輸入賬號(hào)

請(qǐng)輸入密碼

=

請(qǐng)輸驗(yàn)證碼

收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
郁南县| 金山区| 黔东| 汶上县| 亳州市| 新巴尔虎左旗| 灌南县| 安福县| 遂溪县| 高密市| 修水县| 碌曲县| 定远县| 繁峙县| 凤山县| 崇左市| 青州市| 育儿| 象山县| 江口县| 额尔古纳市| 五峰| 隆德县| 元朗区| 吉安县| 浮山县| 福海县| 德昌县| 浮山县| 金湖县| 罗平县| 阿坝| 宜丰县| 含山县| 宜宾县| 巴东县| 宜昌市| 利辛县| 东兰县| 瓦房店市| 河北区|