Программа не видит ни одного датчика ds18b20

Sergei R

New member
Привет, имеется ESP8266 NodeMcu v3 (китай) и датчики ds18b20 от туда же. Две платы и с десяток датчиков, все одинаково не работают.

Подключаю датчик по схеме:
3V3 to VCC замерил на датчик идет 3,2В
GND to GND
D5 to Data (with 4,7kOm)

В Android IDE из примеров загружаю single вывод получаю:
Код:
Locating devices...Found 0 devices.
13:43:15.162 -> Parasite power is: OFF
13:43:15.196 -> Unable to find address for Device 0
13:43:15.230 -> Device 0 Address: 0000000000000000
Читал что возможно недостаточно питание для датчика. Но подключить 4-5В на D5 вроде может подгореть.
В общем готов ответить на наводящие вопросы, но хотелось бы разобраться как все настроить.
 

nikolz

Well-known member
Привет, имеется ESP8266 NodeMcu v3 (китай) и датчики ds18b20 от туда же. Две платы и с десяток датчиков, все одинаково не работают.

Подключаю датчик по схеме:
3V3 to VCC замерил на датчик идет 3,2В
GND to GND
D5 to Data (with 4,7kOm)

В Android IDE из примеров загружаю single вывод получаю:
Код:
Locating devices...Found 0 devices.
13:43:15.162 -> Parasite power is: OFF
13:43:15.196 -> Unable to find address for Device 0
13:43:15.230 -> Device 0 Address: 0000000000000000
Читал что возможно недостаточно питание для датчика. Но подключить 4-5В на D5 вроде может подгореть.
В общем готов ответить на наводящие вопросы, но хотелось бы разобраться как все настроить.
проверьте туда ли подключили
для этого поставьте обращение к датчику в цикле.
если есть осциллограф или хотя бы тестер или хотя бы светодиод,
то проверьте изменяется ли сигнал на D5, когда вы запускаете свой тест.
 

Sergei R

New member
проверьте туда ли подключили
для этого поставьте обращение к датчику в цикле.
если есть осциллограф или хотя бы тестер или хотя бы светодиод,
то проверьте изменяется ли сигнал на D5, когда вы запускаете свой тест.
Физически я подключил на D5 (GPIO14) по инструкции это Arduino alias 14

код:
Код:
#include <OneWire.h>
#include <DallasTemperature.h>

#define esp_birate 9600
#define one_wire_bus 14

OneWire oneWire(one_wire_bus);
DallasTemperature sensors(&oneWire);


void setup(void) {
  Serial.begin(esp_birate);
  sensors.begin();
}

void loop(void) {
  Serial.print("Numbers of devices found: ");
  Serial.print(String(sensors.getDS18Count()) + "\n");  // Numbers of devices found: 0
  delay(5000);
}
Есть только тестер, на D5:
при 1,5кОм 3,26В - 3,27В прыгает
при 4,7кОм 3,25В - 3,26В прыгает
 

CodeNameHawk

Moderator
Команда форума
Неправильно, надо ставить возле есп.
Какую плату выбрали в ардуиноиде?
Попробуйте другой вывод.
 

Sergei R

New member
Неправильно, надо ставить возле есп.
Какую плату выбрали в ардуиноиде?
Попробуйте другой вывод.
Не очень понял что значит воле есп? Резистор напаять как можно ближе к контактам есп?
в Arduino IDE выбирал Generic ESP8266 Module
Но по дефолту использую Platform IO, настройка:
Код:
[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
lib_debs=
    OneWire
    DallasTemperature
 

Sergei R

New member
Поставил Node mcu 1.0, диод пока не сдвинул ближе к есп, чуть времени займет.
Код:
Executable segment sizes:


IROM   : 235112          - code in flash         (default or ICACHE_FLASH_ATTR)


IRAM   : 26892   / 32768 - code in IRAM          (ICACHE_RAM_ATTR, ISRs...)


DATA   : 1248  )         - initialized variables (global, static) in RAM/HEAP


RODATA : 740   ) / 81920 - constants             (global, static) in RAM/HEAP


BSS    : 24976 )         - zeroed variables      (global, static) in RAM/HEAP


Скетч использует 263992 байт (25%) памяти устройства. Всего доступно 1044464 байт.
Глобальные переменные используют 26964 байт (32%) динамической памяти, оставляя 54956 байт для локальных переменных. Максимум: 81920 байт.
esptool.py v2.8
Serial port COM7
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: ec:fa:bc:63:44:64
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 268144 bytes to 197542...

Writing at 0x00000000... (7 %)
Writing at 0x00004000... (15 %)
Writing at 0x00008000... (23 %)
Writing at 0x0000c000... (30 %)
Writing at 0x00010000... (38 %)
Writing at 0x00014000... (46 %)
Writing at 0x00018000... (53 %)
Writing at 0x0001c000... (61 %)
Writing at 0x00020000... (69 %)
Writing at 0x00024000... (76 %)
Writing at 0x00028000... (84 %)
Writing at 0x0002c000... (92 %)
Writing at 0x00030000... (100 %)
Wrote 268144 bytes (197542 compressed) at 0x00000000 in 17.4 seconds (effective 123.3 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
 

Sergei R

New member
И так проблема решена. А проблема была вот в чем.
У продавца в описании к датчику было написано
Выходные разъемы: желтый (VCC), красный (DATA), черный (GND)
Я так и соединял. Были в глубине души странные чувства, красный == дата? это китай, ОК.
Гложели меня вопросы как так, паять резистор к плате у других то работает и начал искать примеры физического подключения, а не по схеме.
нашел на ютубе видос где автор говорит что желтый это дата. Изменил подключение, все работает.
Всем кто помогал спасибо, ваши комменты навели меня на поиск решения, так бы не догадался!
 
Сверху Снизу