Witam zrobiłem sobie prosty sterownik do basenu i działał w tamtym roku. w tym już nie chce nie wiem co się stało. Dziwne było to że same dsy się grzały więc kupiłem nowe ale nadal nie chodzi na wyświetlaczu zamiast temperatury to jest napis "nan ". sprawdziłem same czujniki na arduino i działają. Myślałem może że jest jakiś zimny lut ale też nie. zasilam dsy z 5v przez rezystor 4.7k. Nie mam pomysłu juz co to może być. Dsy są podłączone do pinu D7 jest takiś sposób żeby sprawdzić ten ten pin jest dobry (miernikiem przedzwoniłem i jest ok ). Może zmieniło sie coś w programowaniu, macie ten program może coś wam się uda wymyśleć
Na początek zmień na 3.3V - zasilaj tak jak cały ESP.
Jeśli nie ruszy tzn. , że grzało i się zgrzało - uszkodził się pin.
Zmień na inny i nie zasilaj tego nigdy z 5V w zastosowaniu z ESP.
Druga kwestia jest taka - nie do końca rozumiem ideę zasilania przez rezystor (no chyba, że chodzi tu o “układ zasilania pasożytniczego” - parasite, zdecydowanie jednak zalecam użycie połączenia 3 żyłowego w przypadku ESP i 1-wire: masa, zasilanie i linia sygnałowa jako osobne przewody).
Natomiast linia danych powinna być podciągnięta pull-up’em do 3V3 (i tu nawet te 4k7 by pasowało).
Kwestia trzecia - trafiłem na “klony” D1 mini, które po prostu się psuły - zastosowano w nich prawdopodobnie podróbkę ME6211 (który w oryginale ma obciążalność 500mA) lub układ zastępczy, który nie ma pożądanej obciążalności, a ponadto często pada robiąc zwarcie z 5V co kończyło się upieczeniem ESP i/lub flasha - ich cecha charakterystyczna to brak sporo większego od tranzystorów układu stabilizatora napięcia AMS1117 (spotykanego w tych lepszych podróbkach).
Rozwiązanie zapewniające długotrwałą pracę to zasilanie ich z zewnętrznego stabilizatora 3,3V.
Zmieniłem pin na D5 i to nic nie dało Może źle się wyraziłem desy z 5 v ale rezystor 4,7 jest na lini zasilania a sygnałowej jest tylko do podciągnięcia i to działało jak już wgrałem ten program to mam takie logi
INFO Reading configuration /config/esphome/basen.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing basen (board: d1_mini; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|-- <ESPAsyncWebServer-esphome> 2.1.0
| |-- <ESPAsyncTCP-esphome> 1.2.3
| |-- <Hash> 1.0
| |-- <ESP8266WiFi> 1.0
|-- <DNSServer> 1.1.1
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|-- <noise-c> 0.1.4
| |-- <libsodium> 1.10018.1
|-- <Wire> 1.0
Compiling /data/basen/.pioenvs/basen/src/main.cpp.o
Linking /data/basen/.pioenvs/basen/firmware.elf
RAM: [==== ] 42.6% (used 34888 bytes from 81920 bytes)
Flash: [===== ] 48.3% (used 504573 bytes from 1044464 bytes)
Building /data/basen/.pioenvs/basen/firmware.bin
esp8266_copy_factory_bin(["/data/basen/.pioenvs/basen/firmware.bin"], ["/data/basen/.pioenvs/basen/firmware.elf"])
========================= [SUCCESS] Took 26.49 seconds =========================
INFO Successfully compiled program.
INFO Resolving IP address of basen.local
INFO -> 192.168.1.185
INFO Uploading /data/basen/.pioenvs/basen/firmware.bin (508720 bytes)
INFO Compressed to 354867 bytes
Uploading: [============================================================] 100% Done...
INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from basen.local using esphome API
WARNING Can't connect to ESPHome API for basen.local: Error resolving IP address: [Errno -5] No address associated with hostname
INFO Trying to reconnect to basen.local in the background
INFO Successfully connected to basen.local
[20:56:37][I][app:102]: ESPHome version 2022.5.1 compiled on Jun 14 2022, 20:55:49
[20:56:37][C][status_led:019]: Status LED:
[20:56:37][C][status_led:020]: Pin: GPIO2
[20:56:37][C][wifi:491]: WiFi:
[20:56:37][C][wifi:353]: Local MAC: 48:3F:DA:48:54:67
[20:56:37][C][wifi:354]: SSID: [redacted]
[20:56:37][C][wifi:355]: IP Address: 192.168.1.185
[20:56:37][C][wifi:356]: BSSID: [redacted]
[20:56:37][C][wifi:358]: Hostname: 'basen'
[20:56:37][C][wifi:360]: Signal strength: -78 dB ▂▄▆█
[20:56:37][C][wifi:364]: Channel: 3
[20:56:37][C][wifi:365]: Subnet: 255.255.255.0
[20:56:37][C][wifi:366]: Gateway: 192.168.0.1
[20:56:37][C][wifi:367]: DNS1: 192.168.1.185
[20:56:37][C][wifi:368]: DNS2: 8.8.4.4
[20:56:37][C][logger:274]: Logger:
[20:56:37][C][logger:275]: Level: DEBUG
[20:56:37][C][logger:276]: Log Baud Rate: 115200
[20:56:37][C][logger:277]: Hardware UART: UART0
[20:56:37][C][i2c.arduino:038]: I2C Bus:
[20:56:37][C][i2c.arduino:039]: SDA Pin: GPIO4
[20:56:37][C][i2c.arduino:040]: SCL Pin: GPIO5
[20:56:37][C][i2c.arduino:041]: Frequency: 50000 Hz
[20:56:37][C][i2c.arduino:044]: Recovery: bus successfully recovered
[20:56:37][I][i2c.arduino:054]: Results from i2c bus scan:
[20:56:37][I][i2c.arduino:060]: Found i2c device at address 0x27
[20:56:37][C][switch.gpio:050]: GPIO Switch 'Pompa'
[20:56:37][C][switch.gpio:051]: Pin: GPIO15
[20:56:37][C][switch.gpio:073]: Restore Mode: Restore (Defaults to OFF)
[20:56:38][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Przycisk'
[20:56:38][C][gpio.binary_sensor:016]: Pin: GPIO5
[20:56:38][C][dallas.sensor:075]: DallasComponent:
[20:56:38][C][dallas.sensor:076]: Pin: GPIO14
[20:56:38][C][dallas.sensor:077]: Update Interval: 3.0s
[20:56:38][W][dallas.sensor:080]: Found no sensors!
[20:56:38][C][dallas.sensor:089]: Device 'Woda'
[20:56:38][C][dallas.sensor:089]: Device Class: 'temperature'
[20:56:38][C][dallas.sensor:089]: State Class: 'measurement'
[20:56:38][C][dallas.sensor:089]: Unit of Measurement: '°C'
[20:56:38][C][dallas.sensor:089]: Accuracy Decimals: 1
[20:56:38][C][dallas.sensor:097]: Address: 0x8f3f01f098a42e28
[20:56:38][C][dallas.sensor:098]: Resolution: 12
[20:56:38][C][dallas.sensor:089]: Device 'woda'
[20:56:38][C][dallas.sensor:089]: Device Class: 'temperature'
[20:56:38][C][dallas.sensor:089]: State Class: 'measurement'
[20:56:38][C][dallas.sensor:089]: Unit of Measurement: '°C'
[20:56:38][C][dallas.sensor:089]: Accuracy Decimals: 1
[20:56:38][C][dallas.sensor:097]: Address: 0x9f3c01f096a41d28
[20:56:38][C][dallas.sensor:098]: Resolution: 12
[20:56:38][C][lcd_pcf8574:024]: PCF8574 LCD Display:
[20:56:38][C][lcd_pcf8574:025]: Columns: 20, Rows: 2
[20:56:38][C][lcd_pcf8574:026]: Address: 0x27
[20:56:38][C][lcd_pcf8574:027]: Update Interval: 1.0s
[20:56:38][C][captive_portal:088]: Captive Portal:
[20:56:38][C][mdns:084]: mDNS:
[20:56:38][C][mdns:085]: Hostname: basen
[20:56:38][C][ota:085]: Over-The-Air Updates:
[20:56:38][C][ota:086]: Address: basen.local:8266
[20:56:38][C][ota:089]: Using Password.
[20:56:38][C][api:138]: API Server:
[20:56:38][C][api:139]: Address: basen.local:6053
[20:56:38][C][api:141]: Using noise encryption: YES
[20:56:40][E][dallas.sensor:112]: Requesting conversion failed
[20:56:40][D][sensor:124]: 'Woda': Sending state nan °C with 1 decimals of accuracy
[20:56:40][D][sensor:124]: 'woda': Sending state nan °C with 1 decimals of accuracy
[20:56:43][E][dallas.sensor:112]: Requesting conversion failed
[20:56:43][D][sensor:124]: 'Woda': Sending state nan °C with 1 decimals of accuracy
[20:56:43][D][sensor:124]: 'woda': Sending state nan °C with 1 decimals of accuracy
[20:56:46][E][dallas.sensor:112]: Requesting conversion failed
…działało przypadkiem na granicy rozpoznawalności stanów Hi/Lo …mogły zmienić się warunki zasilania (np. starzenie kondensatorów).
To Ci trochę wyjaśni w czym jest problem.
@andrzej04
Na podstawie loga który wrzuciłeś widać, że nie ma wcale komunikacji z sensorami Dallasa.
Pomysł zmniejszenia rezystancji pullupu jest dobry
Jeśli chcesz sobie ułatwić życie to zakomentuj (lub tymczasowo wywal) całość kodu oprócz niezbędnych podstaw i “gołej” platformy dallas (wtedy logi będą bardziej przejrzyste, wyświetlacz nikogo przecież nie interesuje).
Daj :), bo to ciekawy przypadek.
Tak jak pisał @szopen odchudź soft albo nawet dla próby uruchom to na tasmocie, żeby wykluczyć przyczynę sprzętową. Spróbuj również tylko jeden czujnik.