Van egy Heltec Wifi Kit 32 eszközöm, amivel szeretnék egy BME280 szenzort életrekelteni.
Természetesen az összes példakód, amiket találtam mégcsak le sem fordulnak. Megpróbáltam a kóddarabokból összerakni egy működő programot, egyelőre sikertelenül.
Az OLED kijelsző a 15-ös és 4-es GPIO-t használja az I2C kommunikációra. A BME280 is I2C-vel kommunikálna. Próbáltam itt is a 15 és 4-es GPIO-ra kötni, de próbáltam saját GPIO-kat is adni neki (5,17). Egyikkel sem sikerült életet lehelnem bele.
Próbáltam az I2C órajelét levenni 100000-ról 1000-re, de ez sem segített.
Mivel konkrét hibaüezenetem nincs, csak annyi, hogy nem tudja inicializálni a BME280-at, bárminemű ötletnek örülnék, ami előbbre vihet.
- 232 megtekintés
Hozzászólások
mindenkepp sajat cucc kell? csak mert ezeket mar regesreg megoldottak pl esphome-al...
https://esphome.io/components/i2c/
- A hozzászóláshoz be kell jelentkezni
Alapvetően érdekelne, hogy miért nem megy, nem haragudnék, ha saját kódot össze tudnék rakni, de most még azzal is megelégednék, ha bárhogy elindulna.
Ezt az esphome cuccost csak feltöltöm a Heltec Wifi Kit 32-re, és már megy is vele minden? Mert ha ezt is ki kell tanulni, akkor nem látom még az előnyét a közvetlen programozáshoz képest.
- A hozzászóláshoz be kell jelentkezni
feltoltod, aztan van egy webes interfesz, ami dockerben fut, a neve ESPHome Device Builder
https://esphome.io/guides/getting_started_command_line/#esphome-device-…
de van CLI opcio is (python az egesz): https://esphome.io/guides/cli/
Ha mar a firmware rajta van, onnantol szimpa yaml config fajlal allithatod be, hogy mit csinaljon. Ha lattat mar eletedben yaml -t (nyilvan lattal :) ) kb fel ora megerteni hogyan mukodik :)
- A hozzászóláshoz be kell jelentkezni
Próbálj ki egy I2C scannert (BME280 kihúzva egyelőre): https://learn.adafruit.com/scanning-i2c-addresses/arduino
Ha az OLED címe 0x77 vagy 0x76, akkor valamelyik lábat a BME280-nál össze kell kötnöd egy másikkal, hogy megváltozzon a címe: https://www.bosch-sensortec.com/media/boschsensortec/downloads/datashee…
Bedugva a BME280-at (ugyanazokra a lábakra mint az OLED) látszania kell a scanneren.
Utána ezt a libet javaslom, faék egyszerű: https://docs.arduino.cc/libraries/pocketbme280/
Ha vannak nagyjából OK számaid ezzel, utána lehet kalibrálni: https://learn.adafruit.com/calibrating-sensors/so-how-do-we-calibrate
A fent említett i2s scannert és a pocketbme280 példáit is próbáltam, lefordulnak. Ha neked nem jó, vszeg a fordítód beállításaiban van a hiba.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez jó ötletnek tűnt, kipróbáltam, de "No I2C devices found" az üzenet. :(
Persze azt sem látom, ebben a kódban hol kell megadnom, hogy milyen PIN-eken csatlakozna, tehát lehet, hogy az a baj, hogy ezt nem állítottam be.
- A hozzászóláshoz be kell jelentkezni
Ezt kifelejtettem:
WIRE.begin();
helyett
WIRE.begin(SDA_PIN, SCL_PIN);
Ha jól látom, valamelyik libjükben meg is van adva, hogy melyek az SDA_OLED és SCL_OLED lábak, ezt lehet, hogy fel is tudod használni: https://docs.heltec.org/en/node/esp32/wifi_kit_32/example.html
Abból a példából az is látható, hogy SSD1306-os az OLED kijelző, annak a címe az interneten fellelhető "0x3C, but it can also be changed to 0x3D", tehát szinte kizárt, hogy az legyen a gond.
Inkább a lábkiosztás lesz, azzal annyi a szívás, hogy van az ESP32 szerint egy számozás a lábakra, aztán a dev board készítői elnevezik ezeket, pl. 8-> GPIO0, 9->GPIO21.
- A hozzászóláshoz be kell jelentkezni
Ebben mar van felhuzoellenallas? Ha nincs, 1-1, mondjuk 4k7-es ellenallast tennek a tap es a 2 adatlab koze. (konkret ertek a rendszer kapacitasatol is fugg, kiindulasnak jo lesz)
Ha a hardware layer jo, akkor mennek feljebb.
Oszcilloszkopod/logikai analizatorod van keznel? Abbol is kiderulhet, hogy egyaltalan probal-e kommunikalni.
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Ha a webes interfesz jobban fekszik neked, ott a Tasmota is, ott nem kell allitani semmit....
https://tasmota.github.io/docs/
Itt siman ratoltheted a board-ra:
https://tasmota.github.io/install/
A boardodhoz van template, csak rahuzod es kesz.
https://templates.blakadder.com/heltec_wifi_kit_32.html
Ha ez megvan, megy a display, akkor mar csak rahuzod az i2s buszra a BME280-at
- A hozzászóláshoz be kell jelentkezni
Ebben a doksiban (feltéve, hogy ugyanarról a panelről beszélünk) az OLED I2C vonalak az ESP32-S3 procin a GPIO17 - OLED_SDA és GPIO18 - OLED_SCL vonalakra van kötve ami csak két tesztpontra van kihozva, de nincs kihozva a J2/J3 tüskesorra. A második I2C port a GPIO36/37 már foglalt, mert ott a akkutöltő vezérlése van.
Ha ráforrasztasz a tesztpontokra egy vezetékpárat, akkor osztozhat a BME280 a kijelzővel az I2C buszon, de a kijelzőnek kell valami fura Reset procedúra, hogy a scan folyamat sikeresen lefusson. Itt már van 2x10k felhúzó ellenállás.
A második lehetőség a "bitbang" I2C, vagy software emulated I2C amit bármelyik szabad GPIO lábra pakolhatsz. Kicsit lassabb, bizonytalanabb, de egy BME280-nak tökéletesen megfelel, csak ne feledd a két 10k felhúzó ellenállást.
Én a WiFi LoRa V3 használom, ott még kevesebb szabad GPIO van.
- A hozzászóláshoz be kell jelentkezni