• 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
sieć odbiorników na arduino i nRF24L01
#1
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?
 
Odpowiedź
#2
(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?
 
Odpowiedź
#3
Zrobiłbym coś na wzór TTL z Ethernetu.
 
Odpowiedź
#4
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.
 
Odpowiedź
#5
(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.
 
Odpowiedź
#6
(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ę.
 
Odpowiedź
#7
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.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości