基于 arduino Nodemcu 读取DS18B20

/**************************************************************
 * Multiple Temperature Sendor Test
 * 
 *  2 x OneWire Sensor: DS18B20
 *  Connected to NodeMCU D4 (or Arduino Pin 2)
 * 
 * Developed by Marcelo Rovai - 25 August 2017
 **************************************************************/

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // DS18B20 on NodeMCU pin D4 
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);

void setup() 
{
  Serial.begin(115200);
  DS18B20.begin();
  Serial.println("Testing Dual Sensor data");
}

void loop() {
  float temp_0;
  float temp_1;
  DS18B20.requestTemperatures(); 
  temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 will capture Temp in Celcius
  temp_1 = DS18B20.getTempFByIndex(1); // Sensor 0 will capture Temp in Fahrenheit

  Serial.print("Temp_0: ");
  Serial.print(temp_0);
  Serial.print(" oC . Temp_1: ");
  Serial.print(temp_1);
  Serial.println(" oF");
  delay(1000);
}

 如果编译提示没有OneWire.h或DallasTemperature.h,可以直接在库管理器中搜索安装,见图:

 正确的输出结果(只连接了一个DS18B20,所以Temp_1输出是负的最大值):

发布了20 篇原创文章 · 获赞 6 · 访问量 7499

猜你喜欢

转载自blog.csdn.net/armcsdn/article/details/103163094