数字温度探头和 ESP8266 出现问题

Trouble with Digital Temperature Probe and ESP8266

我很难对我的这个项目构建进行故障排除。我正在尝试将 DS18B20 温度传感器与 ESP8266 结合使用来创建温度信标。

我 运行 遇到的问题与 ESP8266 解释的数据有关。我正在使用 Arduino IDE 对 HUZZAH ESP8266 突破进行编程。

WiFi 客户端表现正常,但温度感应不正常。当我将相同的草图上传到 Arduino Mega2560(显然是重新编译),并将数据线插入 2560 的数字引脚时,探头温度完美地进入,根据温度变化。如果我拔下数据线,我得到 -196.80,我假设是接地值。

只需将数据线移入 ESP8266 引脚,我收到的温度为 262.29,无论传感器温度如何,这在两次读取之间都不会改变。

我已经确保所有的电缆都正确连接,没有奇怪的接地或任何东西。我试过改变串行接口的波特率,可能认为时钟与它有关,但这似乎没有任何影响。

任何 idea/direction 总是受到赞赏!


我已经根据位于 this link here.

的图表连接了电路

Here is a Gist to the code 我一直在上传到 ESP。该代码旨在设置一个 WiFi 客户端(连接到本地 AP,它工作得很好),请求温度,并提交给具有监听服务器的主机。引脚 (2) 指的是 ESP8266 上的 GPIO2 [我认为]


所以我找到了解决这个问题的方法。我不确定是否每个人都遇到了这个特殊问题,但是,在我的情况下,数据线上的寄生电源没有为 IC 充电足以完成正确的计算。

我所要做的就是将 VDD 引脚取消接地并将其连接到 5V 电源轨。将数据线上的 4.7kOhm 电阻也拉高至 5V 轨。这样做之后,程序会报告 PARASITIC POWER: OFF,并如我所愿地报告温度!

我更改了上面的 post 以包含一个有效的解决方案!

DS18B20 器件可以在 2 种电源模式(正常和寄生)下运行。在寄生电源的情况下,VDD 引脚跳转到 GND,IC 从连接回微控制器的数据线接收电源。

DS18B20 的一个有趣特性是温度感测期间的功耗。在寄生模式下运行时,主机设备需要能够为 IC 提供足够的电源来完成计算,否则设备将 return 一个错误的答案。

我的解决方案(使用 Adafruit HUZZAH ESP8266 微控制器)是不使用寄生电源。我不能确定这个设置的问题是什么,但是,在正常模式下配置电路时,探头按预期工作。我想数据线没有得到足够的电力。

要更改上面链接图中的电路:

  • 移除 VDD 和 GND 引脚之间的跳线
  • 将 VDD 连接到 5V 轨
  • 保持 GND 到 GND 导轨
  • 保持 4.7kOhm 电阻将数据线拉至 5v 轨