Problematyka Rutowania W Bezprzewodowych Sieciach Sensorowych

Problematyka Rutowania W Bezprzewodowych Sieciach Sensorowych

Transmisja radiowa Arduino & nRF24L01P Zygmunt Kubiak Instytut Informatyki Politechnika Poznaska Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst W tym trybie ramka ma prost struktur: Zakoczona jest opcjonalnym polem kontrolnym, ktre obsugiwane jest sprztowo wewntrz ukadu RF Programista wybiera adres 3-5 bajtw

Wysanie preambuy i realizacja synchronizacji bitowej i bajtowej realizowane jest przez ukad RF Taka organizacja ramki pozwala na wykorzystanie ukadu nRF24L01 do pracy w bardzo rnych protokoach transmisji Pole adunku moe by wypenione rn treci, wymagan przez dany protok. 11-2016 Zygmunt Kubiak 2 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst

Mona wykorzysta specyficzn cech ukadu RF, dostpn w trybie RX a polegajc na uyciu do 6 kanaw logicznych (adresw) w ramach danego kanau radiowego 11-2016 Zygmunt Kubiak 3 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Mona wykorzysta specyficzn cech ukadu RF, dostpn w trybie RX a polegajc na uyciu do 6

kanaw logicznych (adresw) w ramach danego kanau radiowego (MultiCeiver) 11-2016 Zygmunt Kubiak 4 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Przykadowe adresowanie w MultiCeiver 11-2016

Zygmunt Kubiak 5 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Biblioteka RF24 https://maniacbug.github.io/RF24/classRF24.html 11-2016 Zygmunt Kubiak 6

Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Biblioteka RF24 https://maniacbug.github.io/RF24/classRF24.html 11-2016 Zygmunt Kubiak 7 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Biblioteka RF24

https://maniacbug.github.io/RF24/classRF24.html 11-2016 Zygmunt Kubiak 8 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Biblioteka RF24 https://maniacbug.github.io/RF24/classRF24.html 11-2016

Zygmunt Kubiak 9 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Biblioteka RF24 https://maniacbug.github.io/RF24/classRF24.html 11-2016 Zygmunt Kubiak 10

Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst Biblioteka RF24 https://maniacbug.github.io/RF24/classRF24.html 11-2016 Zygmunt Kubiak 11 Transmisja radiowa - Arduino & nRF24L01P nRF24L01 transmisja w trybie Shockburst

11-2016 Zygmunt Kubiak 12 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino //*************************************************** // Transmisja typu N->O #include #include nRF24L01.h #include RF24.h #include printf.h #define TXBUF_SIZE

0x20 #define RXBUF_SIZE 0x20 unsigned char [TXBUF_SIZE] = {xxxxxxImie Nazwisko}; unsigned char[RXBUF_SIZE] = {}; 11-2016 Zygmunt Kubiak 13 Transmisja radiowa - Arduino & nRF24L01P

Szkic Arduino // Konfiguracja const int Btn = 5; const int Led = 13; // Poczenie sygnaw CE i CSN ukadu nRF24L01+ z Arduino // CE -> 9; CSN -> 10 // Pozostae sygnay SPI zgodne z Arduino // MOSI -> 11; MISO -> 12; SCK -> 13 RF24 radio(9,10); 11-2016 Zygmunt Kubiak

14 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino // Ustalenie roli wza. Poczenie role_pin do GND nadajnik // Bez poczenia odbiornik const int role_pin = 7; // Tryby pracy wza typedef enum {nadajnik = 1, odbiornik} rola_e; // Nazwy rl const char* stan_wezla[] = {Niedostepny, Nadajnik, Odbiornik}; // Zmienna okrelajca biec rol wza rola_e rola; unsigned char frcnt = 0;

11-2016 // licznik ramek wza Zygmunt Kubiak 15 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino // Topologia // Adresy do komunikacji dwukierunkowej const uint64_t pipes[2] = {0xE2E2E2E231LL, 0xE2E2E2E253LL};

11-2016 Zygmunt Kubiak 16 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino void setup() { pinMode(Led, OUTPUT); pinMode(Btn, INPUT_PULLUP); // Konfiguracja pinu roli wza (wejcie) pinMode(role_pin, INPUT_PULLUP); digitalWrite(role_pin,HIGH);

delay(20); // Wymagane opnienie // Oczyt roli wza if (!digitalRead(role_pin)) rola = nadajnik; else rola = odbiornik; 11-2016 Zygmunt Kubiak 17 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino // Informacja startowa

Serial.begin(19200); printf_begin(); printf(\n\ nRF24L01+ transmisja N -> O/\n\r); printf(Rola wezla: %s\n\r, stan_wezla[rola]); 11-2016 Zygmunt Kubiak 18 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino // Konfiguracja ukadu RF radio.begin();

// radio.disableCRC(); // bez CRC radio.setCRCLength(RF24_CRC_16); // sprztowe CRC radio.setChannel(33); // 2433 MHz // Wybr trybu Shock Burst radio.setPayloadSize(TXBUF_SIZE); // l. bajtw 1-32 radio.setAutoAck(false); // blokada potwierdze radio.setDataRate(RF24_1MBPS); // lub RF_250KBPS radio.setRetries(0,0); 11-2016 // zerowa liczba powtrze Zygmunt Kubiak 19

Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino // Otwarcie kanaw logicznych dla komunikacji // Przydzia adresw dla nadawania i odbioru if (rola == nadajnik) // tu tylko pipes[0] { radio.openWritingPipe(pipes[0]); // radio.openWritingPipe(1, pipes[1]); } else { // radio.openWritingPipe(pipes[1]); radio.openWritingPipe(1, pipes[0]); } 11-2016

Zygmunt Kubiak 20 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino // Start nasuchu radio.startListening(); // Wydruk konfiguracji wybranych rejestrw radio.printDetails(); } // Koniec funkcji setup() 11-2016

Zygmunt Kubiak 21 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino - funkcja loop() void loop() { // Rola nadajnika if (rola == nadajnik) { // Zatrzymanie nasuchu radio.stopListening();

11-2016 Zygmunt Kubiak 22 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino - funkcja loop() /* Wysa ramk z nastpujcym adunkiem TxBuf[0] - rozmiar pola adunku TxBuf[1] - stan przycisku Btn TxBuf[2] - nr sekwencyjny ramki (frcnt) TxBuf[3] - stay bajt 0xFF Pozostaa cz bufora od i=6 tekst ASCII

Wydruk zawartoci wysanej ramki */ radio.startListening(); delay(1000); } // koniec nadawania 11-2016 Zygmunt Kubiak 23 Transmisja radiowa - Arduino & nRF24L01P

Szkic Arduino - funkcja loop() // Rola nadajnika skorzysta z funkcji radio.write() 11-2016 Zygmunt Kubiak 24 Transmisja radiowa - Arduino & nRF24L01P Szkic Arduino - funkcja loop() // Rola odbiornika if (rola == odbiornik) { // Jeli s dane do odczytu

if (radio.available()) { /* Odczyt danych do bufora RxBuf Wydruk: dane (Rxbuf[0] RxBuf[3]), tekst od RxBuf[6] */ } } } // koniec odbioru 11-2016 Zygmunt Kubiak 25 Transmisja radiowa - Arduino & nRF24L01P

Szkic Arduino - funkcja loop() // Rola odbiornika skorzysta z funkcji radio.read() 11-2016 Zygmunt Kubiak 26 Dzikuj 11-2016 Zygmunt Kubiak

27

Recently Viewed Presentations

  • Outsourcing - Florida Department of Transportation

    Outsourcing - Florida Department of Transportation

    Vehicle History Files. Chapter 14-90.004(h)(4)(d) of the Florida Administrative Code requires that "records are maintained and provide written documentation of preventative maintenance, regular maintenance, inspections, lubrication and repairs performed for each vehicle under their control."This is also a requirement in...
  • khdzamlit.weebly.com

    khdzamlit.weebly.com

    Antithesis. Antithesis is when you have parallelism in phrases with contrasting ideas close together. The nations of Asia and Africa are moving with jet-like speed toward the goal of political independence, and we still creep at horse-and-buggy pace toward the...
  • Rhetorical Terms Challenge - Mrs. Mehrens' English Page

    Rhetorical Terms Challenge - Mrs. Mehrens' English Page

    Rhetorical Terms Challenge. To the victors go the spoils! (hehehe that's an anastrophe) ... This is an example of what literary term? Alliteration. ... Which term is another word for a claim? Allusion. OR. Epistrophe. OR.
  • How and why did the Democracy Movement develop?

    How and why did the Democracy Movement develop?

    Wei Jingsheng. Wei Jingshenghad been arrested by Jiang Qing. He was an accomplished writer and, on March 25th 1979, published an article with the title 'Democracy or New Dictatorship' which made a strong attack on Deng. He accused Deng of...
  • Health Promotion: Safety and The Elderly Population

    Health Promotion: Safety and The Elderly Population

    Dorothea Orems Theory "Self-care is a human need, self-care deficits requirenursing action" (Taylor et al., 2011, pg. 74) Falls place a burden on family members "Needs Theory describes people as whole, with many complex needs that motivate behavior" (Maville &...
  • History File - prosv.ru

    History File - prosv.ru

    The game of football is the oldest of all the English national sports. Football has been played in one form or another for hundreds of years. First it was a very rude game. This game is believed to have descended...
  • Eye and Vision - PCC

    Eye and Vision - PCC

    Human vision is limited to wavelengths ranging from about 400 to 700nm. (visible electromagnetic radiation) ... Histology of the Retina. Eye Dissection. ... The degree of curvature in the cornea or lens varies from one axis to another (is uneven...
  • FAA Public Meeting in Baltimore, MD- April 2010

    FAA Public Meeting in Baltimore, MD- April 2010

    Aerion Supersonic Business Jet FAA Civil Supersonic Aircraft Panel Discussion Baltimore, April 21, 2010 * The Supersonic Challenge Supersonic business jet mission To place a high-value team where they are needed in the shortest possible time.