• 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
LoRa 433
#1
Cześć,
Występuje z problemem, którego nie mogę przeskoczyć podczas mojej nauki z Arduino, z którym zacząłem bawić się nie dawno i porwałem się na komunikację radiową LoRa.
Na początku chciałem zgodnie z jakimś łatwym poradnikiem internetowym zrealizować przesłanie wiadomości z Arduino Uno, na drugie Uno i wyświetlenie jej w porcie szeregowym. Znalazłem szybko kilka poradników, ale postanowiłem przetestować ten, który wydawał mi się najprostszy. Opiszę jak działa mój kod:
Po wgraniu kodów na obie płytki, na dwóch niezależnych komputerach uruchomiłem w obu porty szeregowe. W odbiorniku wysłałem byle jaki znak, żeby zainicjować działanie programu. W monitorze UART zaczęło wpisywać tylko "Odebrałem: ". I tu jest problem. Niestety nie potrafię przesłać najprostszej wiadomości z jednej płytki UNO, na drugą.


Dodaję link do kodu mojego odbiornika i nadajnika. Dodam też link do poradnika, zgodnie z którym próbowałem zrealizować projekt. Jeżeli ktoś mógłby rzucić okiem, byłbym bardzo wdzięczny.

Co do urządzeń, które wykorzystuje:
2x Arduino Uno
2x LoRa E32 433T20D

https://www.youtube.com/watch?v=wYjALYK7pqU – poradnik
https://pastebin.pl/view/b4a2f087 - nadajnik
https://pastebin.pl/view/225f3ae1 - odbiornik
 
Odpowiedź
#2
Bo ci się nie chce dlatego nie potrafisz, pierw kursy przerób https://forbot.pl/blog/kurs-arduino-uart...nne-id3836
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
Przerabiałem ten kurs z forbota. Sam UART działa mi przecież tak jak powinien. Dane które chce wysłać wyświetlają się, a sposób odbioru wydaje się działać, ale nie zawiera żadnych wartości. Uprościłem kod zostawiając tylko wysyłanie wiadomości na sztywno. Niestety dalej jest dokładnie tak samo. W UART nadajnika spamuje ładnie tekst. W UART odbiornika spamuje "Odebrałem: ". Natomiast zmienna input która ma być odczytana z loraSerial się nie pojawia. Nie wiem, czy czegoś tutaj brakuje, bo zasadniczo te kilka linijek wydaje się być ubogie i niewystarczające, ale z tego co rozumiem poradnik, powinien umożliwić przesłanie i odbiór wiadomości.

Kod po uproszczeniu:
https://pastebin.pl/view/cfa3f4e3 - nadajnik
https://pastebin.pl/view/e6f51378 - odbiornik

Prościej się już raczej nie da, ale ciągle nie wiem gdzie jest problem.
 
Odpowiedź
#4
No to widocznie nic nie zrozumiałeś przerabiaj aż do skutku......
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#5
A nie próbowałeś wykorzystać biblioteki EBYTE.h?
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#6
A co mu po bibliotekach jak on nie rozumie podstawowej komunikacji UART
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#7
Bibliotekę już dodałem, ale w tym podstawowym wariancie poradnika jej funkcje ni są za bardzo wykorzystywane.

Jarewa0606

A co do moich umiejętności i zrozumienia UARTu. Może i nie są wielkie i czegoś nie rozumiem, ale pisaniem takich tekstów nic nie wnosisz do wątku, bo nie pomagasz mi tym w żaden sposób.
 
Odpowiedź
#8
Pomaga, ale nie skorzystasz jak nie zrozumiesz. Zastanów się który UART do czego służy (używasz dwóch, sprzętowego i softowego), co gdzie wysyłasz i jaki to ma sens. Do testów nie potrzebujesz modułu LORA, możesz podłączyć jakiś konwerter UART-USB pod piny 2/3 i na razie ogarnąć sam UART. Jak potrzebujesz dwóch UART to lepiej użyj Arduino z dwoma sprzętowymi - MICRO/LEONARDO gdy tylko jeden zewnętrzny (ten do USB jest na natywnym USB), MEGA gdy ma być więcej zewnętrznych.
 
Odpowiedź
#9
Wykonałem właśnie połączenie dwóch Arduino Uno przez porty szeregowe i przesłałem między nimi dane. Zasadniczo nasuwa mi się myśl odnośnie RX i TX. W przypadku gdy wykorzystuje moduł LoRa podłączam piny RX i TX modułu do przykładowo 2 i 3 na Uno. Wtedy RX i TX LoRa z drugiej strony muszą być odwrotnie? Do 3 i 2? Trochę tego nie rozumiem.

Wykorzystałem już kilka gotowych projektów. Przesłanie danych nie działa. Nabieram teorii że być może któryś moduł jest uszkodzony.
 
Odpowiedź
#10
Jest tylko jedno prawidłowe podłączanie: TX-RX. PIN TX można sobie opisać, że to TX, transmiter, można sobie tu też nabazgrać RX, że trzeba tu podłączyć RX z innego odbiornika. Tego drugiego sposobu oznaczania się nie stosuje. Jak widzisz linię TX-RX to dla jednej strony kabelka/ścieżki to jest RX, dla drugiej TX. Gdy ktoś podłącza pod pin 1 UNO to łączy się faktycznie do TX płytki, ale jednocześnie RX modułu konwertera na UNO. Z modułem konwertera UNO też się można komunikować, wtedy podłączasz TX do pinu obazgranego na płytce UNO jako TX, ale jest to jednocześnie RX konwertera. Co do zasady UART to komunikacja dwóch urządzeń, dlatego się nie łączy trzeciego do takiej linii, a w UNO/NANO lepiej nie wykorzystywać pinów 0 i 1 do niczego.
No, to na razie kabelkologia, błąd miałeś w programie, ogarnij co gdzie chcesz wysyłać.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości