Forum: Mikrocontroller und Digitale Elektronik ESP8266 onewire library, wie merk ich wenn was schiefgeht?


von Alt G. (altgr)


Lesenswert?

Mein ESP8266 hat sechs DS18B20 sensoren dran. Gelesen werden die 6 
sensoren mit onewire lib:
1
  ds.reset();
2
  ds.select(addr);
3
  ds.write(0x44);
4
5
  delay(1000);
6
7
  ds.reset();
8
  ds.select(addr);
9
  ds.write(0xBE);
10
  data_0 = ds.read();
11
  data_1 = ds.read();

Wenn jetzt ein sensor im betrieb ausfällt, wie merke ich das?

von Falk B. (falk)


Lesenswert?

Alt G. schrieb:
> Wenn jetzt ein sensor im betrieb ausfällt, wie merke ich das?

Wenn die Lib was taugt, liefern die Methoden Rückgabewerte. Was sagt die 
Doku?

von Alt G. (altgr)


Lesenswert?

Nur reset liefert einen wert, und reset ist nicht adresspezifisch.

von Falk B. (falk)


Lesenswert?

Alt G. schrieb:
> Nur reset liefert einen wert, und reset ist nicht adresspezifisch.

Wo ist die Doku?

von Alt G. (altgr)


Lesenswert?

https://github.com/PaulStoffregen/OneWire

Ich fürchte ich muss die ganzen 9 bytes lesen und die checksumme prüfen.

von Falk B. (falk)


Lesenswert?

Alt G. schrieb:
> Ich fürchte ich muss die ganzen 9 bytes lesen und die checksumme prüfen.

Auch du Ärmster! Man könnte auch mal die Augen aufmachen und diese 
Methode finden.
1
    // Compute a Dallas Semiconductor 8 bit CRC, these are used in the
2
    // ROM and scratchpad registers.
3
    static uint8_t crc8(const uint8_t *addr, uint8_t len);

von Alt G. (altgr)


Lesenswert?

Ich check jetzt einfach die 2 bytes auf 0xFF.
Das liest er wenn kein sensor dran ist.
Ist einfacher.
1
  data_0 = ds.read();
2
  data_1 = ds.read();
3
  if ((data_0 == 0xFF) && (data_1 == 0xFF)) return -1.0;

von EAF (Gast)


Lesenswert?

Wenn man schon die eine Lib nutzt, warum nicht dann auch die 2te

Hier ein Link zu den Fehlermeldungen, welche sie liefert:
https://github.com/milesburton/Arduino-Temperature-Control-Library/blob/master/DallasTemperature.h#L36

Alt G. schrieb:
> Wenn jetzt ein sensor im betrieb ausfällt, wie merke ich das?
Die Frage ist damit beantwortet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.