• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Łączność bezprzewodowa 2x arduino Pro Mini + 2x RFM69CW
#1
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?
 
Odpowiedź
#2
Prosty, to nie będzie kontrolował błędów. Jak coś "nie tak" to program się zawiesi albo wykona nieprzewidziane działanie.
Kod z delay to nie kod, to DEMO!
Możliwości sprzętowe uC trzeba wykorzystywać a nie /machać/. GPIO!
Jestem a usilnie chcę być amatorem to dwie różne rzeczy.

http://er-mik.prv.pl/projekty edw.php 
http://er-mik.prv.pl/projekty_avt.php
 
Odpowiedź
#3
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
 
Odpowiedź
#4
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ą.
 
Odpowiedź
#5
(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.
Kod z delay to nie kod, to DEMO!
Możliwości sprzętowe uC trzeba wykorzystywać a nie /machać/. GPIO!
Jestem a usilnie chcę być amatorem to dwie różne rzeczy.

http://er-mik.prv.pl/projekty edw.php 
http://er-mik.prv.pl/projekty_avt.php
 
Odpowiedź
#6
W dużym stopniu pomocna okazała się ta biblioteka z obszernym opisem na stronie: https://learn.sparkfun.com/tutorials/rfm...-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ć?
 
Odpowiedź
#7
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#8
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
 
Odpowiedź
#9
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ć?
 
Odpowiedź
#10
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
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości