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í. :oops:
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:
Obrázek

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.

Kód: Vybrat vše

Wire.begin(4, 5); 

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.