BME280 ve spojeni s ESP jsem vzal a hyhodil do kose. Po nekolika dnech se zasekla i2c komunikace a pomohl jen restart. A to se jak je pravidlem stava ve chvili, kdyz jste na dovolene. Nahradil jsem to za cinske wifi tuya cidla, ktere jsem prefleshoval by delali to co maji. Cidlo z API za 50kc v plastove krabice vs. BME chip za skoro stovku + ESP + jako bonus musite resit krabicku. To se nevyplati.
Vysledne pouceni. HW se nevyplati stavet. Ten je lepsi vzdy koupit
No na kodu neni nic sloziteho, stravil jsem s tim spoustu bezesnych noci https://github.com/karotka/smart.home/blob/main/temp.sensor/src/temp.sensor.ino deska je taky profi vyrobena problem jsme nenasel
No, já tam vidím problémů dost...
1) Průměrujete 10x tu stejnou hodnotu (čtení ze senzoru probíhá pouze jednou při volání getEvent!) [0][1]
2) Žádné timeouty nikde.. pracujete s hardware, rádiem a sítí! Musíte počítat s tím, že ke ztrátě packetu, nedostupnosti sítě, wifi nebo externímu rušení může dojít. [2][3]
3) Žádný watchdog, aby se to resetovalo na hardwarové úrovni, když už software skončí ve smyčce.
[0] https://github.com/karotka/smart.home/blob/main/temp.sensor/src/temp.sensor.ino#L79
[1] https://github.com/adafruit/Adafruit_BME280_Library/blob/master/Adafruit_BME280.cpp#L564
[2] https://github.com/karotka/smart.home/blob/main/temp.sensor/src/temp.sensor.ino#L40
[3] https://github.com/karotka/smart.home/blob/main/temp.sensor/src/temp.sensor.ino#L104
BMP280 považuji za nejspolehlivější čidlo ve své kategorii. Teplotu a tlak s ním měřím už 10 let. Napřed bylo připojené k RPi, teď už několik let k ESP32 - senzor je vlastního návrhu. Zasekávání I2C jsem taky zažil. Ano. A taky jsem měl chuť to hodit do koše. Ale pak jsem si přečetl datasheet a kód napsal tak, aby splňoval to, co si žádá datasheet. Hlavně pauzy mezi požadavkem a čtením odpovědi. S BME280 je to to samé. Od té doby se mi nezaseklo ani jedno čidlo.
BME280 jsem používal taky, ale není úplně schopné dlouhodobě pracovat ve venkovních podmínkách - odcházely mi. Proto na vlhkost používám SHTněco.
A jsi spokojený s přesností? SHT10 bylo spíš hádač vlhkosti než měřák (dokázalo mi tvrdit, že vlhkost je 110% a podobně). Použij raději SHT3x.
Každopádně to nic nemění na tom, že ty BM**80 čidla jsem používal a používám a pokud jsem dodržel časování, tak byla/jsou spolehlivá.
18. 1. 2024, 18:58 editováno autorem komentáře
Jo, zasekávání I2C jsem taky viděl. Rádiové vysílání blízkého rádia (ESP má Wifi, že ano..) umí někdy naindukovat dost, aby to zmátlo připojenou periferii.
Proto je potřeba bitbang způsobem umět odblokovat sběrnici (poslat data až do NACKu, STOP a zajistit IDLE).
https://www.analog.com/media/en/technical-documentation/application-notes/54305147357414AN686_0.pdf