Arduino Polska Forum

Pełna wersja: sieć odbiorników na arduino i nRF24L01
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
mam takie problem i mam nadzieję na poradę.

Robię małą sieć sterowników na arduino i na modułach nRF24L01
Załóżmy że mamy nadajnik i trzy odbiorniki (ten trzeci jest poza zasięgiem nadajnika więc on odbiera sygnał wysłany pośrednio przez dwa bliższe odbiorniki)
Nadajnik wysyła sygnał do wszystkich odbiorników. Odebrały go dwa pierwsze i przesyłają dalej.
Problem w tym że odbiornik trzeci dostanie ten sam sygnał dwa razy, odbiornik pierwszy dostanie sygnał z odbiornika drugiego i odwrotnie. I w ten sposób mogą się zapętlić!
Jak się zabezpieczyć przed takim problemem?
(14-06-2018, 14:05)pele napisał(a): [ -> ]mam takie problem i mam nadzieję na poradę.

Robię małą sieć sterowników na arduino i na modułach nRF24L01
Załóżmy że mamy nadajnik i trzy odbiorniki (ten trzeci jest poza zasięgiem nadajnika więc on odbiera sygnał wysłany pośrednio przez dwa bliższe odbiorniki)
Nadajnik wysyła sygnał do wszystkich odbiorników. Odebrały go dwa pierwsze i przesyłają dalej.
Problem w tym że odbiornik trzeci dostanie ten sam sygnał dwa razy, odbiornik pierwszy dostanie sygnał z odbiornika drugiego i odwrotnie. I w ten sposób mogą się zapętlić!
Jak się zabezpieczyć przed takim problemem?

Może do przesyłanych informacji dodać coś np. timestamp lub jakiś counter, porównanie i odrzucanie powtórzonych?
Zrobiłbym coś na wzór TTL z Ethernetu.
tak jak napisał inzynier.domu  
Może do przesyłanych informacji dodać coś np. timestamp lub jakiś counter, porównanie i odrzucanie powtórzonych?

pomyślałem o dodaniu daty i czasu (w postaci liczby float)



Ale mam jeszcze inne pytanie.
Chciałbym moje sterowniki podzielic na sekcje, a więc muszę je jakoś rozróżniać.
Jak mam to zrobić jesli chciałbym do każdego wgrać taki sam kod.
Po mac adresach?

Ale nie wiem jak odczytać (znaleźc) wszystkie odbiorniki.
(15-06-2018, 12:45)pele napisał(a): [ -> ]pomyślałem o dodaniu daty i czasu (w postaci liczby float)
Timestamp to long czy unsigned long, po co pchać się w float?

(15-06-2018, 12:45)pele napisał(a): [ -> ]Po mac adresach?
MAC, możesz dać DS2401

(15-06-2018, 12:45)pele napisał(a): [ -> ]Ale nie wiem jak odczytać (znaleźc) wszystkie odbiorniki.
Bradcast, jak np ARP w Ethernecie.
(15-06-2018, 13:10)es2 napisał(a): [ -> ]Bradcast, jak np ARP w Ethernecie.


Ale brodcast działa tych na urządzenia które mają IP, a ja robię to na modułach nRF24L01. One nie są podłączone do wifi.
Chyba że się mylę.
W ARP nie wysyła sie na IP bo jeszcze jest nieznany (przeważnie). ARP służy właśnie po poznania adresu IP. Wysyłany jest pakiet na MAX FF:FF:FF:FF:FF:FF. Karty sieciowe odpowiadają (jak ustawi się maskę) gdy MAC jest zgodny lub = FF:FF:FF:FF:FF:FF. Od i cała (prawie) tajemnica zapytania ARP.