Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 数字温度探头和ESP8266故障_Arduino_Esp8266_Arduino Esp8266 - Fatal编程技术网

Arduino 数字温度探头和ESP8266故障

Arduino 数字温度探头和ESP8266故障,arduino,esp8266,arduino-esp8266,Arduino,Esp8266,Arduino Esp8266,我有一个困难的时间排除这个项目建设我的。我试图利用DS18B20温度传感器和ESP8266来创建温度信标 我遇到的问题与ESP8266解释的数据有关。我正在使用Arduino IDE编程HUZZAH ESP8266突破 WiFi客户端正常工作,但温度感应不正常。当我将相同的草图上传到Arduino Mega2560(显然是重新编译的)上,并将数据线插入2560的数字管脚时,探针温度完美地进入,随着温度的变化而变化。如果我拔掉数据线,我得到-196.80,我假设是一个接地值 只要将数据线移入ESP

我有一个困难的时间排除这个项目建设我的。我试图利用DS18B20温度传感器和ESP8266来创建温度信标

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

WiFi客户端正常工作,但温度感应不正常。当我将相同的草图上传到Arduino Mega2560(显然是重新编译的)上,并将数据线插入2560的数字管脚时,探针温度完美地进入,随着温度的变化而变化。如果我拔掉数据线,我得到-196.80,我假设是一个接地值

只要将数据线移入ESP8266引脚,我就会收到262.29的温度,无论传感器温度如何,在两次读取之间都不会发生变化

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

任何想法/方向都会受到赞赏


我已根据位于的图表连接电路

我已经上传到ESPs了。该代码设计用于设置WiFi客户端(连接到本地AP,工作完全正常)、请求TEMP并提交给具有侦听服务器的主机。引脚(2)指ESP8266上的GPIO2[我想]


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


我所要做的就是解开VDD引脚并将其连接到5V导轨上。将数据线上的4.7kOhm电阻器也拉至5V导轨。执行此操作后,程序会报告寄生功率:OFF,并报告我希望的温度

我更改了上面的帖子,加入了一个可行的解决方案

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

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

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

要从上面链接的图中更改电路,请执行以下操作:
  • 拆下VDD和GND引脚之间的跳线
  • 将VDD连接至5V导轨
  • 保持接地至接地导轨
  • 保持4.7k欧姆电阻将数据线拉至5v轨道

您是否可以发布或链接到您正在使用的代码,也可以添加一个设置图,包括上拉等。因为这是一个硬件问题,因此不属于SO。您可能需要更改esp与at上的接线地址。坚持下去,它会突然起作用。你在使用OneWire和Dallarstemperature库吗?我用ESP8266上的传感器读取冷冻柜中的温度,它工作正常。我在没有拉升的情况下得到了奇怪的读数。本质上我的代码是
onewireds(D4);达拉斯温度传感器(和ds);传感器。请求温度();浮点摄氏度=传感器。getTempCByIndex(0)@Fraser已编辑以确保完整性。@dandavis I已将ESP8266的pin地址调整为使用GPIO2。如果我拉数据线,我得到-196(低),如果我插入它,我得到262.29(高)。