我试图获得一个温度读数使用一个单一的dsb1820温度传感器连接到一个esp32微控制器。传感器连接到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);
}发布于 2020-04-12 16:24:37
检查你的电缆,然后:
const int oneWireBus = 32; // on pin 32 /GPIO7/D0 on pcb (a 4.7K resistor is necessary)
OneWire oneWire(oneWireBus);它应该是传感器的中间销(见我的图表)。

编辑 DevKit没有引脚4,您可以使用GPIO4 (在pcb上使用4),这是在Arduino 24中,但是
下面的带带引脚: 0、2、4、5(启动时高)、12 (启动时低)和15 (启动时高)用于将ESP32放入引导加载程序或闪烁模式。不要将外设连接到这些引脚上!如果您这样做,您可能有困难,试图上传代码,闪存或重置板。
连接到32 (pcb上的GPIO7或D0 ),因为这是安全的测试。
如果你有这个错误或没有/错误的电阻,它会给你-127 (或者你杀死传感器/它是DOA)。
https://stackoverflow.com/questions/61172204
复制相似问题