Arduino Polska Forum
Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW (/watek-%C5%82%C4%85czno%C5%9B%C4%87-bezprzewodowa-2x-arduino-pro-mini-2x-rfm69cw)

Strony: 1 2


Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - leoj - 28-02-2020

Chcę zbudować sobie bezprzewodowy czujnik ciśnienia. Chcę połączyć za pośrednictwem RFM69CW dwie płytki arduino Pro Mini i przesyłać pomiędzy sobą zmienne. Ma to być transmisja dwukierunkowa aby jeden i drugi moduł wymieniał ze sobą dane w postaci zmiennych.

Pobrałem sobie bibliotekę do RFM69CW jednak jest ona dla mnie strasznie skomplikowana. Zależałoby mi na jednym przykładzie kodu w arduino który pozwoliłby przesłać zmienną float/byte z jednego złożonego zestawu na drugi - i odwrotnie.

Posiada może ktoś taki prosty przykład?


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - MERASerwis - 28-02-2020

Prosty, to nie będzie kontrolował błędów. Jak coś "nie tak" to program się zawiesi albo wykona nieprzewidziane działanie.


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - leoj - 28-02-2020

Prosty - w sensie z jakimiś adnotacjami, żebym wiedział co dana linijka robi. Jeśli będę to rozumiał to już powinienem resztę dostosować do moich potrzeb


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - Agregacik - 28-02-2020

Jak przesyłane dane nie są krytyczne, czyli nie zależy od tego poprawne działanie jakiegoś systemu to można uprościć przesyłanie danych kontrolując tylko np długość pakietu.
Może przeanalizuj przykłady Struct_receive i Struct_send.
Nie miałem z tym ustrojstwem do czynienia i niewiele Ci pomogę, ale na czuja wydaje mi się, że dane w strukturze i zamiana na string to właściwy kierunek. W Struct_send. w wierszach 68 - 72 masz strukturę czyli taki pakiet danych. Tam jest przykład z trzema danymi. W Struct_receive są to wiersze 64 - 68.
Więcej nic nie podpowiem bo musiałbym to rozkmicić na makiecie a takiej nie mam.
Może inni coś podpowiedzą.


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - MERASerwis - 29-02-2020

(28-02-2020, 16:23)leoj napisał(a): Prosty - w sensie z jakimiś adnotacjami, żebym wiedział co dana linijka robi. Jeśli będę to rozumiał to już powinienem resztę dostosować do moich potrzeb
To ,usisz sam wszystko od zera napisać. Wtedy wiesz co każda linijka kodu robi.

Dobra rada - nie wzoruj się na przykładach z Internetu a tym bardziej bibliotekach Arduino.


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - leoj - 02-03-2020

W dużym stopniu pomocna okazała się ta biblioteka z obszernym opisem na stronie: https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide/all

Na pewno jeszcze wiele mnie zaskoczy, ale już trochę więcej rozumiem. Ale powstało kolejne pytanie: chcę przesyłać do odbiornika różne dane, a więc jak można to zrobić, żeby program wiedział do której zmiennej ma każdą z danych zapisać?


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - kaczakat - 03-03-2020

Agregacik podał Ci wyżej, zrób strukturę, w strukturę wrzucasz cały zestaw danych, zmienne mogą być różnego typu, aktualizujesz sobie wybraną zmienną, co stały czas lub gdy zmieniasz element przesyłasz całą strukturę, aktualizujesz wszystkie zmienne w strukturze odbiornika - tak jest najprościej. Przykłady przesyłania struktur masz w bibliotece do tego modułu zawartej w wyszukiwarce managera bibliotek Arduino IDE.


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - Agregacik - 03-03-2020

To jest przykładowa struktura:
struct Nadawanie {
unsigned int PMZad ;
float WilgWew = 0;
float TempWew = 0 ;
} DaneDoWyslania;
Teraz dostęp do takich zmiennych uzyskuje się tak :
Zapis
DaneDoWyslania.TempWew = 25;
DaneDoWyslania.WilgWew = 50;
A odczyt podobnie:
Do zmiennej np. Temperatura = DaneDoWyslania.TempWew;
Struktura to taki zespół zmiennych


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - leoj - 09-03-2020

Dzięki Agregacik Smile A czy czasami Twoja przykładowa struktura nie miała się nazywać DaneDoWyslania? Bo najpierw odwołujesz się do struktury Nadawanie, a później do DaneDoWysłania. Chyba, że czegoś nie rozumiem.

W bibliotece jest taki kod dotyczący struktury:
typedef struct {
int nodeId; //store this nodeId
unsigned long uptime; //uptime in ms
float temp; //temperature maybe?
} Payload;
Payload theData;


Późniejszy program odwołuje się do struktury theData więc wnioskuje, że ten kod tak definiuje nazwę owej struktury. Jednak ma on zupełnie inną składnie niż wcześniej pisałeś Agregacik. Możesz to objaśnić?


RE: Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW - Agregacik - 10-03-2020

Hm, wiesz jestem początkujący i też nie spotkałem się jeszcze z typedef struct . Z tego co wyczytałem na gorąco to jest jakieś "uproszczenie" w języku C++ aby coś tam itd. Niech się tu wypowiedzą mądrzejsi bo ja jestem cienki w ten klocek.
Tu znalazłem coś o strukturach: https://www.p-programowanie.pl/cpp/struktury-c/ .
A do tego co Ci napisałem to ja tak rozumiem.
Tworzymy strukturę o nazwie np. Nadawanie i dalej w klamerkach podajemy jakie zmienne będą w strukturze. I teraz powiem tyle co wiem. Ta nazwa dotyczy tylko sposobu rozmieszczenia zmiennych i nie służy mi dalej do niczego, tak jak rura w skeczu z Kobuszewskim i dwoma pozostałymi panami. Ważne jest do co mam za klamerką dalej bo to jest już nazwa, można powiedzieć, zmiennej, w moim przykładzie DaneDoWyslania.
Nie wiem czy wytłumaczyłem to, czego sam nie rozumiem do końca Smile