Náhrada MCP9808
Náhrada MCP9808
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.
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
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)
(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
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
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í.
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
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:

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
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.
Objednal jsem ty malé ESP8266-1 a uvidím, jestli to s nimi pojede.
Re: Náhrada MCP9808
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
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.
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
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
Ale nikde v programu nevidím přesměrování I2C. Bez něj to nemůže fungovat
Re: Náhrada MCP9808
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.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host