Skocz do zawartości

Problem z działaniem DS18B20 na esp8266


roz

Pomocna odpowiedź

Hej, ratujcie 😞

Na ESP8266 nie jestem w stanie odczytać temperatury z DS18b20. Cztery czujniki, różne piny w ESP i nie działa.

Podłączyłem do BlackPill (STM32F4) działa od razu, bez problemu.

Sprawdzone na dwóch ESP8266 - ta sama sytuacja.

WAŻNE: rezystor pullup dla DS18b20 JEST.

Zasilanie DS18b20 3.3V.

Nie znajduje w ogóle DS18b20.

Piny, do których podłączam w ESP - sprawdzane po kilka razy.

Kod z przykładów biblioteki:

// Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>


#define ONE_WIRE_BUS 4 //pin D2 esp8266

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

/*
 * The setup function. We only start the sensors here
 */
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
}

/*
 * Main function, get and show the temperature
 */
void loop(void)
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  delay(1000);
  Serial.println("DONE");
  // After we got the temperatures, we can print them here.
  // We use the function ByIndex, and as an example get the temperature from the first sensor only.
  float tempC = sensors.getTempCByIndex(0);

  // Check if reading was successful
  if (tempC != DEVICE_DISCONNECTED_C)
  {
    Serial.print("Temperature for the device 1 (index 0) is: ");
    Serial.println(tempC);
  }
  else
  {
    Serial.println("Error: Could not read temperature data");
  }
}

 

Link do komentarza
Share on other sites

@jand dokładnie Wemos D1 mini.

Podłączyłem drugiego DS18B20 i ta sama sytuacja, nawet adresu nie pobiera.

Podpinam się pod STM32F4 i ten czujnik działa.

Wziąłem na Wemosie w loop ustawiłem cykliczne przełączanie pinu aby sprawdzić czy nie jest uszkodzony - działa, zmienia swój stan.

Totalnie nie wiem o co kaman...

Link do komentarza
Share on other sites

Powiem więcej, ten sam Wemos ma podłączony RTC DS2417+, który działa po onewire, jest podłączony do innego pinu i działa, działa pięknie. Ale DS18B20 nie chce współpracować..

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

56 minut temu, roz napisał:

dokładnie Wemos D1 mini.

Zauważ, że ma on nóżki opisane po swojemu - jeśli używasz nóżki opisanej na płytce jako D4, to jest to naprawdę GPIO 2. Tak ja tu pokazane.

Można zamiast

#define ONE_WIRE_BUS 4

Napisać

#define ONE_WIRE_BUS D2

ale musi być wybrana właściwa płytka.

 

Link do komentarza
Share on other sites

(edytowany)

Chodziło mi o to żeby zmierzył, różnie bywa z tymi małymi stabilizatorami w chińszczyźnie. Do testów z esp8266 możesz zasilić czujnik z 5V @roz edit: te 3.3V to dosyć blisko minimalnego napięcia zasilania 
https://www.analog.com/media/en/technical-documentation/data-sheets/ds18b20.pdf
chrome_eOUyTBlfXa.thumb.png.cbb73a95bcad22179d47dd9127b6e702.png

 

Edytowano przez _LM_
Link do komentarza
Share on other sites

Z całego kodu nie korzystałem tylko z tych ifów niby weryfikujących poprawność transmisji do DS, wywal je i od razu wydrukuj odczytaną temperaturę, to i tak tylko test dla Twoich oczu w wydruku na serial. Nie musisz czekać delay(1000), bez dodatkowych zabiegów biblioteka i tak każe funkcji zlecenia pomiaru czekać w tym miejscu na jej koniec.

Trafiłem kiedyś na 10 czujników z jednego zamówienia, które działały tylko pojedynczo poza tym odczyty były bardzo niestabilne, choć krążyły w okolicach prawdopodobnych wartości, raczej wszystkie z Ali po złotypindziesiąt to podróbki, ale te były wyjątkowo nieudane.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.