Stránka 1 z 1
Náhrada MCP9808
Napsal: 17 lis 2025, 13:13
od hafca
Zaujal mě termostat z
https://www.instructables.com/Thermostat-ESP8266/ kde je použité čidlo MCP9808. Pro moje potřeby by mi stačilo BMP280, které mi leží v šuplíku. Zkoušel jsem to v programu upravit, ale ve výpisu mám jen 0.00 °C. Mohl by mě někdo poradit, co a kde změnit?
Nevím, jestli sem mám dávat celý program co má přes 600 řádků nebo jen dvě části bez výpisu na web.
Re: Náhrada MCP9808
Napsal: 17 lis 2025, 14:34
od AstroMiK
Bez záruky, bez ověření - zkusil bych provést změny v těchto řádkách:
(P: původní kód; N: nový kód)
Kód: Vybrat vše
P: #include "Adafruit_MCP9808.h"
N: #include <Adafruit_BME280.h>
P: Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();
N: Adafruit_BME280 tempsensor;
P: tempsensor.begin(0x18);
N: tempsensor.begin(0x76);
P: tempsensor.setResolution(2);
N: // tempsensor.setResolution(2);
P: tempsensor.wake();
N: // tempsensor.wake();
P: temp = tempsensor.readTempC();
N: temp = tempsensor.readTemperature();
Re: Náhrada MCP9808
Napsal: 17 lis 2025, 16:01
od Caster
Zde jsou jen ty části, které musíš změnit/nahradit:
Kód: Vybrat vše
// === NA ZAČÁTKU (místo MCP9808) ===
#include <Wire.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; // <-- nové čidlo
// === V setup() – nahraď inicializaci MCP9808 tímto ===
// Staré:
// tempsensor.begin(0x18);
// tempsensor.setResolution(2);
// Nové:
if (!bmp.begin()) {
Serial.println(F("BMP280 nenalezeno! Zkontroluj zapojení (0x76/0x77)"));
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_5x7_tf);
u8g2.setCursor(0, 30);
u8g2.print("BMP280 error!");
u8g2.sendBuffer();
while (1);
}
Serial.println("BMP280 nalezeno a inicializováno");
// === V loop() – čtení teploty ===
// Staré:
// tempsensor.wake();
// temp = tempsensor.readTempC();
// Nové:
temp = bmp.readTemperature(); // jednoduché a rychlé
// A smaž tento řádek úplně:
// tempsensor.shutdown_wake(1);
Re: Náhrada MCP9808
Napsal: 17 lis 2025, 17:21
od hafca
Stále nevidím žádnou hodnotu, protože hlásí, že čidlo není nalezeno. Ale problém bude asi mezi židlí a klávesnicí.
On tam používá ESP8266-01 ale s nějakým podivným řazením pinů. Já nakonec použil ESP8266 D1 mini, kde to bez problému funguje i s výpisem na telefonu. Ale nedokážu najít porty pro čidlo. Ani s jeho řazením SCL GPIO2 a SDA GPIO0 a ani podle obrázku z internetu SCL GPIO5 a SDA GPIO4. Pořád to hlásí, že čidlo není.
Re: Náhrada MCP9808
Napsal: 18 lis 2025, 18:49
od jankop
Předchozí rady jsou na místě.
Nejčastější chyba začátečníků je nezapojená zem - GND na senzorech.
HW připojení čidla na WeMos by mělo vypadat takto:

Re: Náhrada MCP9808
Napsal: 18 lis 2025, 19:26
od hafca
Zkusil jsem to, ale čidlo není vidět. Mělo by být dobré, zkoušel jsem ho otestovat přes scanner I2C na UNO a tam je vidět i s adresou 0x76.
Objednal jsem ty malé ESP8266-1 a uvidím, jestli to s nimi pojede.
Re: Náhrada MCP9808
Napsal: 18 lis 2025, 20:42
od jankop
To je nesmysl, WeMos D1 mini je naprosto dokonalý pro tyhle experimenty. S ESP8266-1 potřebuješ ještě USB/RS232 TTL převodník a při tvých zkušenostech do něj program ani nenahraješ. Pusť I2C scanner na WeMosu s připojeným čidlem jako první krok. Pak se budeme bavit o dalším. Neměl by být problém to dát dohromady.
Re: Náhrada MCP9808
Napsal: 19 lis 2025, 09:43
od hafca
ESP8266-1 nahrát umím, oba běžné přípravky mám. Dělal jsem s ní do hodin převodník z WiFi na DCF.
Tester s ESP8266 Mini čidlo najde, ale ten termostat ne. Zkusil jsem do setup přidat řádek s definicí, ale ani to nezabralo.
Re: Náhrada MCP9808
Napsal: 19 lis 2025, 11:16
od jankop
Podle mě je problém především v tom, že default piny I2C jsou GPIO4, GPIO5 a nikoliv GPIO0 a GPIO2. Ve značení Wemos D1 mini je to D1,D2 a D3,D4.
Ale nikde v programu nevidím přesměrování I2C. Bez něj to nemůže fungovat
Re: Náhrada MCP9808
Napsal: 20 lis 2025, 19:14
od hafca
ESP8266-1 dorazila, ale ani ta čidlo nevidí. Displej připojený na SCL a SDA vidí a píše na něj. Na tohle moje zanalosti nestačí. Asi to bude složitější než jsem si myslel.