我很难对我的这个项目构建进行故障排除。我正在尝试将DS18B20温度传感器与ESP8266结合使用来创建温度信标。
我遇到的问题与ESP8266解释的数据有关。我正在使用Arduino IDE来编程HUZZAH ESP8266突破。
WiFi客户端表现得如此,但温度感应不是。当我将相同的草图上传到Arduino Mega2560(显然重新编译),并将数据线插入2560的数字引脚时,探头温度完全变化,根据温度变化。如果我拔掉数据线,我得到-196.80,我假设是基值。
只需将数据线移入ESP8266引脚,我就会收到262.29的温度,无论传感器温度如何,读数之间都不会改变。
我确保所有电缆都正确接线,没有奇怪的接地或任何东西。我曾尝试改变串行接口的波特率,可能认为时钟与它有关,但这似乎没有任何影响。
任何想法/方向总是受到赞赏!
我根据位于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,并报告我希望的温度!
答案 0 :(得分:1)
我上面的帖子改为包含一个有效的解决方案!
DS18B20器件可在2种功耗模式下工作(正常和寄生)。在寄生电源的情况下,VDD引脚跳转到GND,IC从连接回微控制器的数据线接收电源。
DS18B20的有趣品质是温度感应时的功耗。在寄生模式下工作时,主机设备需要能够为IC提供足够的功率来完成计算,否则设备将返回错误的答案。
对我来说(使用Adafruit HUZZAH ESP8266微控制器)的解决方案是不使用寄生功率。我无法确定此设置的问题是什么,但是,在正常模式下配置电路时,探头按预期工作。我认为数据线没有足够的功率。