我正在尝试使用连接到 esp32 微控制器的单个 dsb1820 温度传感器来获取温度读数。传感器连接到 esp32 的 GPIO-4。我打算将温度读数发送到云端。
我面临的问题是温度读数总是给出值-127。
我在网上某处读到,当 dsb1820 返回 -127 时,意味着传感器未连接。
我是否使用了错误的引脚来连接传感器?
#include "OneWire.h"
#include "DallasTemperature.h"
#include <WiFi.h>
#define WIFI_SSID "SSID"
#define WIFI_PASSWORD "PASSWORD"
OneWire oneWire(4);
DallasTemperature tempSensor(&oneWire);
void setup(void)
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
tempSensor.begin();
}
void loop(void)
{
tempSensor.requestTemperaturesByIndex(0);
Serial.print("Temperature: ");
Serial.print(tempSensor.getTempCByIndex(0));
Serial.println(" C");
delay(2000);
}
检查您的电缆并:
const int oneWireBus = 32; // on pin 32 /GPIO7/D0 on pcb (a 4.7K resistor is necessary)
OneWire oneWire(oneWireBus);
它应该是传感器的中间引脚(参见我的图表)
EDITDevKit 没有引脚 4,您也可以使用 Arduino 24 中的 GPIO4(PCB 上的 4),但是
以下捆绑引脚:0、2、4、5(启动期间为高电平)、12(低电平)
启动期间)和15(启动期间高)用于将ESP32置于
引导加载程序或闪存模式。不要将外围设备连接到这些引脚!
如果这样做,您在尝试上传代码、刷新或重置时可能会遇到问题
董事会。
连接到 32(PCB 上的 GPIO7 或 D0),因为这对于测试来说是安全的
如果你有这样的错误或没有/wrong电阻器会给你-127(或者你杀死了传感器/它是DOA)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)