Arduino / ESP8266 使用 DS18B20的例程
接线:
VDD–5V
GND–GND
DQ–D7(此处为8266,Arduino连2)
注意:DQ和5V之间需要连接一个4.7k的电阻,或者用两个10k的电阻并联也实现相同的效果。
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 13//8266连接GPIO13即D7,Arduino连接port 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer, outsideThermometer;
void setup() {
Serial.begin(115200);
sensors.begin();
if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0");
if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1");
}
float tempC;
//温度相关函数
void printTemperature(DeviceAddress deviceAddress)
{
tempC = sensors.getTempC(deviceAddress);
Serial.print("Temp C: ");
Serial.print(tempC);
}
void printData(DeviceAddress deviceAddress)
{
printTemperature(deviceAddress);
Serial.println();
}
void checkAlarm(DeviceAddress deviceAddress)
{
if (sensors.hasAlarm(deviceAddress))
{
printData(deviceAddress);
}
}
void loop(){
sensors.requestTemperatures();
checkAlarm(insideThermometer);
checkAlarm(outsideThermometer);
delay(300);
}
在这里插入图片描述