Komunikacja i2c pomiędzy NodeMCU a ProMini - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Sieciowe Protokoły i Urządzenia (https://forum.arduinopolska.pl/dzial-sieciowe-protoko%C5%82y-i-urz%C4%85dzenia) +--- Wątek: Komunikacja i2c pomiędzy NodeMCU a ProMini (/watek-komunikacja-i2c-pomi%C4%99dzy-nodemcu-a-promini) |
Komunikacja i2c pomiędzy NodeMCU a ProMini - itepe - 05-04-2020 Witajcie! Do mojego projektu muszę skomunikować NodeMCU v3 oraz ProMini za pomocą szyny i2c. Teoria jest całkiem jasna i zrozumiała, ale... nie działa tak jak należy, w zasadzie, nie działa wcale. Kiedy robię zwykłą komunikację i2c typu master -> slave, wszystko jest super. Jednak kiedy master requestuje slave już tak fajnie nie jest. Zastanawiam się, czy to ja popełniam błąd w kodzie, czy to jednak jakaś inna przyczyna. Robiłem testy z rezystorami podciągającymi oraz bez i nie przynosi to rezultatów. Dystans między urządzeniami to ok. 15 cm, docelowo będzie ok. 6-8m. Czy możecie spojrzeć w mój kod i stwierdzić, czy są tam jakieś rażące błędy? Master Kod: #include <Wire.h> Slave Kod: #include <Wire.h> Z góry dzięki za pomoc! K. RE: Komunikacja i2c pomiędzy NodeMCU a ProMini - Agregacik - 05-04-2020 Czy nie lepiej rozważyć komunikację po UART. W wątku I2C "zacina" się poruszyłem problem biblioteki wire, która powoduje, że, najprawdopodobniej podczas zakłócenia, zawiesza się program i tylko reset pomaga. No ale niech wypowiedzą się specjaliści. RE: Komunikacja i2c pomiędzy NodeMCU a ProMini - kaczakat - 05-04-2020 ESP8266 z I2C jest wyjątkowo cienki, bo ma to robione tylko programowo, jako master powinno działać. Dodatkowo działa różnie z różnymi wersjami core (czytałem na Elektrodzie). Pobaw się między AVR na początek i sprawdź czy działa jak chcesz. Przykład odczytu slava: Kod: Master: RE: Komunikacja i2c pomiędzy NodeMCU a ProMini - itepe - 06-04-2020 Dzięki za odpowiedź! Zgadza się, ten przykład działa bez pudła. Problem w tym, że mam już zrobioną stacje pogody na ESP8266, a teraz chcę wykorzystać ją do pomiaru wilgotności gleby. Czujnik światła, temperatury powietrza, wilgotności i ciśnienia śmigają tak od ponad roku. Znalazłem bardzo fajny czujnik pojemnościowy na i2c, ale wychodzi drogo dla jednej sztuki. https://www.tindie.com/products/miceuz/i2c-soil-moisture-sensor/ Czas mnie nagli, bo niedługo sezon na podlewanie ogrodu się zacznie Może jednak iść w kierunku UART? KST RE: Komunikacja i2c pomiędzy NodeMCU a ProMini - kaczakat - 06-04-2020 Kupiłem kiedyś garść takich, ale na razie nie miałem czasu się pobawić: link. Za pozostałe 10$ można kupić 6 ESP8266 lub 3 ESP32 i zrobić odczyt analogiem, przesłać przez WIFI do drugiego ESP, garść scalaków RS485 i przesłać kablem. RE: Komunikacja i2c pomiędzy NodeMCU a ProMini - itepe - 06-04-2020 Dokładnie na takim oparty jest mój czujnik plus ProMini. I ten "zestaw" chcę połączyć z ESP8266 po i2c. Ponieważ całość będzie zakopana pod ziemią jakieś 10 cm WiFi raczej odpada, ale sprawdze to Obecnie do ESP8266 mam podłączony ten czujnik na długim kablu, ale pojemność kabla i zmieniająca się wartość wilgotności gleby, powodują kompletna niestabilność odczytów. Wykonam testy połączenia "spod ziemi" i być może to będzie rozwiązaniem problemu. Póki co walczę z i2c. Dzięki KST RE: Komunikacja i2c pomiędzy NodeMCU a ProMini - fast_rabbit - 06-04-2020 Poszukaj na Elektrodzie o problemie blokowania magistrali przez niektóre slave lub źle napisana obsługę I2C slave. Jest na to metoda. Kolejny temat zawieszanie TWI w AVR. Są na to procedury ale wire.h ich nie ma. Musisz więc sam napisać obsługę I2C dla AVR. RE: Komunikacja i2c pomiędzy NodeMCU a ProMini - itepe - 25-04-2020 Dzięki za wszelkie podpowiedzi! Cobym nie robił, nie zadziałało. Ostatecznie użyłem komunikacji szeregowej i poszło od kopa. Przy okazji chciałbym podzielić się moja obserwacją dotyczącą przytoczonego czujnika wilgotności. Kiedy napięcie na nim jest w granicach 3,1 - 3,3V wszystko gra, ale kiedy spada do ok. 3V czujnik przestaje całkowicie działać. Wypróbowałem 6 sztuk, tylko jedna działa, przy 3,08V, reszta nie startowała. Jeszcze raz dzięki! |