Transmisja danych nrf24l01 z Arduino pro mini 3.3V do ESP32 wrom-32 - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Mikrokontrolery (https://forum.arduinopolska.pl/dzial-mikrokontrolery) +--- Wątek: Transmisja danych nrf24l01 z Arduino pro mini 3.3V do ESP32 wrom-32 (/watek-transmisja-danych-nrf24l01-z-arduino-pro-mini-3-3v-do-esp32-wrom-32) |
Transmisja danych nrf24l01 z Arduino pro mini 3.3V do ESP32 wrom-32 - javjaff - 25-10-2021 Cześć. Próbuję zastąpić centralkę Arduino mega z dodatkowym internet shield mniejszym rozwiązaniem na ESP32 wroom-32, ale niestety rozsypują mi się odebrane dane. Opis funkcjonalności w skrócie: Pomiar temperatury i wilgotności na Arduino pro mini 3.3V 8Mhz przekazuje po nrf24L01 dane do centralki na Arduino mega z podpiętym internet shield (wystawienie danych do Home Assistanta). Przekazywane dane: Kod: typedef struct { Problem: Bazując na tym samym kodzie (oczywiście zmieniają się piny dla rnf24 w zależności od płytki): Arduino pro mini -> Arduino Mega - dane odebrane poprawnie; Arduino pro mini -> ESP32 wroom-32 - dane niepoprawne (poniżej screen); ESP8266 -> ESP32 wroom-32 - dane odebrane poprawnie. Załącznik (screen z monitora): [attachment=1158] Opis załącznika:odbiornik na ESP32 wroom-32; nadajnik ESP 8266 przykładowa linijka "unit 9: esp|1.00" nadajnik Arduino pro mini przykładowa linijka "unit 1918959625: d|0.00". Tak jakby typedef struct był różny dla Arduino i dla ESP :/ Poniżej testowy kod: Nadajnik: Kod: #include <RF24.h> Odbiornik: Kod: #include <SPI.h> Pytanie: Co przeoczyłem i co poprawić żeby dane z Arduino pro mini do ESP32 były kompatybilne? Dodam, że próbowałem różnych bibliotek nrf24 (instalowanej z bibliotek Arduino IDE i z github-ów) łącznie z software SPI; efekt wciąż ten sam. RE: Transmisja danych nrf24l01 z Arduino pro mini 3.3V do ESP32 wrom-32 - kaczakat - 26-10-2021 int unit_id; - to nie jest jednoznaczne określenie zmiennej, dla AVR int jest 16 bit, dla ESP32 jest 32 bit. Użyj zmiennej typu int32_t albo int16_t w obu. RE: Transmisja danych nrf24l01 z Arduino pro mini 3.3V do ESP32 wrom-32 - javjaff - 27-10-2021 Tak, dzięki kaczakat. Typ zmiennej okazał się częścią rozwiązania. Dodatkowo problem był w przesunięciu. Jako rozwiązanie, po stronie odbiornika (ESP32) użyłem Kod: struct unitDataStructure { a po stronie nadajnika Kod: struct unitDataStructure { |