Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Pytania, kody i porady dotyczące nie tylko Bascom.
ODPOWIEDZ
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Post autor: pimowo » 20 kwie 2020, 15:18

Witam,
Chciałbym Was prosić o pomoc w zrealizowaniu pomysłu odnośnie jak odczytywać liczniki: wody, energii elenktycznej czy gazu drogą bezprzewodową. Dokładnie to chciałbym przekazywać tylko (i aż) same impulsy. "namalowałem" schemat połączeń jak to ma wyglądać - mikrokontrolery wybrałem tak: master (1szt) ATmega328 i slave (max 6szt) ATtiny13-85. Master będzie zasilany zasilaczem sieciowym 3V3, a slave będzie miał zasilanie z baterii - tu zależy mi aby "satelita" była jak najmniej prądożerna. Zasilanie to myślałem aby dać dwie baterie "paluszki" lub akumulator 18650 - temperatura gdzie będzie to pracować będzie się wahać od około +5°C do około +35°C
Na schemacie dałem przycisk w "satelicie", ale docelowo będzie kontaktron, w masterze dałem diody LED, ale docelowo będzie ten impuls przekazywany do Raspberry Pi.
.
schemat.png
.
Działać miałoby tak:
- naciskam przycisk w "satelicie" 1
- "satelita" wysyła do mastera "1"
- master odbiera informację i zapala LED 1 na 100ms
Dodatkowo:
- "satelita" 1 to LED 1, "satelita" 2 to LED 2 ... "satelita" 6 to LED 6
- nieważne jak długo trzymam przycisk to dioda ma się zapalić tylko na 100ms i zgasnąć

Jak do tego wszystkiego podejść? Czy mój pomysł w ogóle ma prawo zadziałać?
Wybrałem moduły nRF24L01 ponieważ czytałem, że są bezproblemowe i mają dobry zasięg oraz są energooszczędne - wcale się nie upieram przy nich, może są inne tego typu moduły, które lepiej by się sprawdziły w moim przypadku?

Z góry dziękuję za pomoc.
Piotrek
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Post autor: niveasoft » 20 kwie 2020, 15:43

A to akurat może być proste. Satelitka sobie nada sygnalik i czeka 10ms na odpowiedź, że dotarło. A gdyby nie dotarło to losuje sobie jakiś czas między np 10ms a 30ms i ponawia sygnał z info że to już ponowienie. Takich powtórek może zrobić np. trzy. Ten losowy czas to dlatego, że jak dwa moduły chciałyby nadać na raz to jeden poczeka np. 10ms a drugi 20ms i wiadomość powinna dotrzeć. A tak to niech sobie śpią :D
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Post autor: pimowo » 20 kwie 2020, 17:25

Jak dobrze rozumiem to moduły nRF24L01 nadadzą się do mojego celu?
Jakie mikrokotrolery wybrać na satelitki? Czy ATmega328 jako master będzie OK?

Teraz jeszcze pytanie odnośnie programu. Czy Twoja biblioteka będzie dobra do tego celu?
Przepraszam za tyle pytań ale nie bawiłem się jeszcze tymi modułami oraz też nigdy nic nie robiłem zasilanego z baterii. Najlepiej byłoby użyć ESP8266, ale to żre tyle prądu, że odpada na samym starcie.
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Post autor: niveasoft » 20 kwie 2020, 17:35

Testy robiłem na dwóch Megach328P. Jedna była w domu a drugą na dwóch paluszkach zabrałem na spacer. To ma zasięg chyba jak WiFi bo ma chyba tę samą częstotliwość. Lepsza antena lepszy zasięg. Z tymi antenami ze zdjęć zasięg tak ~około sto metrów w terenie otwartym.

Procek oraz radio mógłbyś uśpić i czekać na wybudzenie przerwaniem.

Czy biblioteka się nada - no nie wiem - trzeba sprawdzić :D Skompilowany program ma niecałe 3KB
Teoretycznie do Tiny85 by wszedł, ale to chodzi po SPI i zostanie chyba tylko jeden wolny pin...a chyba będzie potrzebny na IRQ
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Post autor: pimowo » 20 kwie 2020, 19:24

U mnie zasięg nie musi być jakiś ogromny ponieważ ja mieszkam na pierwszym piętrze, a jedna satelita ma być w piwnicy czyli dwa drewniane stropy, druga na parterze czyli jeden drewniany strop, a trzecia i czwarta na tym samym poziomie co master. Odnośnie baterii to zależy mi aby to długo działało bez wymiany czy ładowania satelity.

Co do IRQ... To sam już nie wiem, ponieważ oglądając projekty na Arduino ten pin nie jest używany. Na ATtiny wykorzystałem jeden pin jako wejście, gdyby jednak trzeba było użyć IRQ to wymienię uC na jakiś inny.

Na dniach spróbuję poskładać sprzęt testowy i trzeba będzie próbować bo teraz to wszytko tak po omacku, że nawet nie wiem od czego zacząć.
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Post autor: niveasoft » 20 kwie 2020, 19:41

W sumie może działać bez IRQ, ale wtedy oczywiście program musi sprawdzać co jakiś czas co nadeszło. Wymaga małej zmiany w jednym Sub.
Myślę, że w bazie na M328P bym IRQ podłączył i obsługiwał a w nadajnikach nie. Mają ustawioną trzykrotną retransmisję w razie niedostarczenia wiadomości. Jak będzie działać w zasięgu i stabilnie to może sprawdzanie programowe już niepotrzebne.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Przekazywanie impulsów miedzy AVR za pomocą nRF24L01

Post autor: pimowo » 22 kwie 2020, 9:50

Biblioteka działa wyśmienicie ;)
Testowo złożyłem dwa zestawy na ATmega328 i nRF24L01 i to to sobie gada. Teraz muszę jakoś wymyśleć aby gadały po mojemu czyli satelitka ze switchem musi nadać sygnał, a master zaświecić diodę LED.
Tak się zastanawiam co mam nadawać, czy np każda satelitka ma nadać po prostu wiadomość w formie cyfry czy coś więcej? Przykładowo satelitka 1 prześle "1" po naciśnięciu przycisku, a satelitka 2 prześle "2" etc

Jeszcze pytanie odnośnie nRF24L04, mam dwie szt gdzie antena jest na PCB, dwie szt gdzie antena jest dokręcana i dwie sztuki gdzie antena jest dokręcana, ale dodatkowo scalak gdzie to niby jest jakiś wzmacniacz.
Czy mogę zastosować przy masterze moduł ze wzmacniaczem, a reszta bez wzmacniacza? Te najbardziej oddalone satlitki dałbym z przykręcana anteną, a te z anteną na PCB najbliżej mastera. Czy to wszystko jakoś się nie "pogryzie"?
Z oo ego co czytałem to moduły ze wzmacniaczem mają dużo lepsze zasięgi, ale potrzebują też dużo większy prąd, więc do zasilania bateryjnego w moim przypadku nie nadadzą się ponieważ chcę aby satelitka działała jak najdłużej na baterii.
ODPOWIEDZ