Problém s kódem pro senzor CCS811
-
- Příspěvky: 12
- Registrován: 27 kvě 2018, 22:47
- Reputation: 0
Problém s kódem pro senzor CCS811
Zdravím, komunito,
v týdnu mi dorazil CO2 senzor CCS811. Chtěl jsem jej přidat do mé již dlouho běžící meteostanice (WeMos D1 Mini, BME280, BH1750), která každých 15 minut loguje data do Google Tabulek. Vzhledem k tomu, že knihovna od Adafruitu (https://bit.ly/2IO51Xu) způsobovala u WeMosu lenivost při připojování do domácí Wi-Fi sítě, jsem se nakonec rozhodl pro knihovnu od AKstudios (https://bit.ly/2s6lSys). Nejprve jsem tedy vyzkoušel ukázkový kód z této knihovny (https://bit.ly/2s5bqHH), který jsem v surovém stavu nahrál na svůj WeMos. Vše běhalo naprosto v pořádku, CO2 i VOC se v pořádku vypisovaly a když jsem na senzor dýchnul, hodnoty se začaly hýbat. No, a nyní nastala bojová situace: zakomponuj to do svého stávajícího kódu (https://pastebin.com/L7YpTFgA). Bohužel tohle už byla ta smutnější písnička, všechny senzory, které k té meteostanici mám připojeny, jedou přes sběrnici I2C a když je všechny zapojím dohromady, začne to vyhazovat guláš, jako je na obrázku níže. Napadlo mně, že by to mohl způsobovat právě připojený senzor CCS811, tudíž jsem jej zkusil odpojit, bohužel to nepomohlo a ostatní hodnoty zůstaly stále stejně "pomatené." Neboli je jasné, že jde o softwarový problém.
Mohli byste mi prosím pomoci? Kdo to vyřeší, má u mě virtuální pivo (případně jiný nápoj).
Díky za pomoc, JM.
v týdnu mi dorazil CO2 senzor CCS811. Chtěl jsem jej přidat do mé již dlouho běžící meteostanice (WeMos D1 Mini, BME280, BH1750), která každých 15 minut loguje data do Google Tabulek. Vzhledem k tomu, že knihovna od Adafruitu (https://bit.ly/2IO51Xu) způsobovala u WeMosu lenivost při připojování do domácí Wi-Fi sítě, jsem se nakonec rozhodl pro knihovnu od AKstudios (https://bit.ly/2s6lSys). Nejprve jsem tedy vyzkoušel ukázkový kód z této knihovny (https://bit.ly/2s5bqHH), který jsem v surovém stavu nahrál na svůj WeMos. Vše běhalo naprosto v pořádku, CO2 i VOC se v pořádku vypisovaly a když jsem na senzor dýchnul, hodnoty se začaly hýbat. No, a nyní nastala bojová situace: zakomponuj to do svého stávajícího kódu (https://pastebin.com/L7YpTFgA). Bohužel tohle už byla ta smutnější písnička, všechny senzory, které k té meteostanici mám připojeny, jedou přes sběrnici I2C a když je všechny zapojím dohromady, začne to vyhazovat guláš, jako je na obrázku níže. Napadlo mně, že by to mohl způsobovat právě připojený senzor CCS811, tudíž jsem jej zkusil odpojit, bohužel to nepomohlo a ostatní hodnoty zůstaly stále stejně "pomatené." Neboli je jasné, že jde o softwarový problém.
Mohli byste mi prosím pomoci? Kdo to vyřeší, má u mě virtuální pivo (případně jiný nápoj).
Díky za pomoc, JM.
Re: Problém s kódem pro senzor CCS811
Měl jsem podobný problém.
Čidlo Si7021 mě na arduinu Uno fungovalo normálně. Chtěl jsem, ale použít WEMOS D1. Na stejnou knihovnu s I2C, ani ťuk. Až se mě podařilo najít jinou knihovnu, která fungovala. Vyzkoušel bych postupné připojování senzorů, pro zjištění s kterým je problém.
Ota
Čidlo Si7021 mě na arduinu Uno fungovalo normálně. Chtěl jsem, ale použít WEMOS D1. Na stejnou knihovnu s I2C, ani ťuk. Až se mě podařilo najít jinou knihovnu, která fungovala. Vyzkoušel bych postupné připojování senzorů, pro zjištění s kterým je problém.
Ota
-
- Příspěvky: 12
- Registrován: 27 kvě 2018, 22:47
- Reputation: 0
Re: Problém s kódem pro senzor CCS811
Děkuji za radu, vyzkouším. Pro CCS811 existují v podstatě jen tři knihovny: od Adafruitu - ta, jak jsem psal, způsobuje nepřipojování WeMosu k Wi-Fi, pak od SparkFunu - s ní sice ostatní senzory fungují, ale zase nefunguje CCS811 no a do třetice od AKStudios. Nejsem teď doma, ale funkčnost pouze BME280 + BH1750 je v pořádku, ještě vyzkouším BME280 + CCS811 a BH1750 + CCS811.
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Problém s kódem pro senzor CCS811
Je potřeba si také ujasnit jednu věc. Spousta senzorů I2C má na modulu pullup rezistory. Je to povinné vybavení sběrnice. Ale tyhle rezistory by měly být jenom jedenkrát. Pokud má každý senzor rezistory, tak může dojít k přetížení výstupů a nestabilitě.
-
- Příspěvky: 12
- Registrován: 27 kvě 2018, 22:47
- Reputation: 0
Re: Problém s kódem pro senzor CCS811
Jo, to už mi bylo vysvětleno i jinde, ale tady jde spíš o to, že i když nechám připojený třeba jen BME280 a BH1750 (CCS811 zůstane odpojený), tak i tehdy to vyhazuje guláš, neboli mám spíš pocit, že v tom dělá bordel jedna z knihoven. Ale třeba je to jinak.
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Problém s kódem pro senzor CCS811
A adresy všech senzorů tam máš?
Nějak takhle:
Na jakých pinech máš I2C, protože definuješ GPIO4 jako WAKE_PIN a knihovna si ho řídí? Já běžně používám GPIO4 jako SDA.
Nějak takhle:
Kód: Vybrat vše
Wire.begin(4, 5); // SDA a SCL pin
bmp280.begin(0x76); // I2C adresa
...
...
-
- Příspěvky: 12
- Registrován: 27 kvě 2018, 22:47
- Reputation: 0
Re: Problém s kódem pro senzor CCS811
Kód je přímo v odkazu, nicméně odpovím: adresy tam nemám, neboť knihovny BME280.h a BH1750.h si to řídí automaticky (rozuměj: když dám adresu do závorky za "begin", tak při kompilaci se vyjeví chyba, že v závorce takovou věc knihovna "nezná"). WAKE pin sice ve skice je definován na GPIO4, ale pro správnou funkčnost senzoru se má připojit na GND, nikoli na GPIO4... na druhou stranu, myšlenka, že ten GPIO4 může v kódu dělat špatně ostatním senzorům, není marná, zkusím to tedy změnit. Díky za nápad!
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Problém s kódem pro senzor CCS811
Díval jsem se do té knihovny a ona si GPIO4 opravdu jako WAKE_PIN řídí. Pokud máš fyzicky GPIO4 jako SDA, tak to musí dělat problémy.
-
- Příspěvky: 12
- Registrován: 27 kvě 2018, 22:47
- Reputation: 0
Re: Problém s kódem pro senzor CCS811
Jo, teď se na ten pinout WeMosu dívám. Zkusím to tedy přemístit pod nějaký čistý GPIO pin, na kterém není navěšeno milion dalších věcí...
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Problém s kódem pro senzor CCS811
Doporučuji GPIO15, pokud ho nemáš na něco speciálního. Jeho použití je jinak trochu omezeno, protože je použit pro boot mode.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 35 hostů