Arduino Polska Forum
Przesyłanie danych pomiędzy 2 arduino - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: Przesyłanie danych pomiędzy 2 arduino (/watek-przesy%C5%82anie-danych-pomi%C4%99dzy-2-arduino)



Przesyłanie danych pomiędzy 2 arduino - endrju1 - 29-03-2021

Witam
Mam taką zagwozdkę.
Mam na arduino (nano328p) i na nim zrobiony sterownik własnoręcznie zrobionego rekuperatora. Jest tam odczyt z 4 czujników temperatury i wilgotności (i2c), sterowanie PWM dla wentylatorów, wyświetlacz po i2c 4x20 i dodatkowo klawiaturą 4x4 jest zrobione proste sterowanie ustawieniami (zmiana zmiennych po wciśnięciu guzików od 1-9 i dodatkowo A-D zmienia wyświetlanie), obecnie od kilku dni próbuję zrobić, aby sterowanie (tj wyświetlacz + klawiatura) przenieść do mieszkania (ok 7-8m po kablu).
Początkowo próbowałem najprostszej metody, czyli i2c, jednak taka odległość jest nieosiągalna.
Obecnie próbuję rozwiązać problem za pomocą drugiego arduino połączonego poprzez serial, jednak na ten moment mnie to przerosło (próbowałem biblioteki SerialTransfer.h, jednak nawet przykłady nie chcą mi poprawnie działać) aby przesyłać co 2 sekundy komplet odczytów z czujników, zaś w drugą stronę naciśnięcia guzików.
Czy w ogóle ma to prawo działać, jeśli nie to dlaczego? A może jest jeszcze inny sposób (ethernet)? A może podłączyć po prostu wyświetlacz i klawiaturę bezpośrednio do I/O na długich kablach?


RE: Przesyłanie danych pomiędzy 2 arduino - Jarewa0606 - 29-03-2021

To co chcesz uzyskać to idzie zrobić... Komunikacja może być różna od ic2 po rs kończąc po wifi a moze i nawet BT po prostu są pewne zasady których trzeba sie trzymać a co najważniejsze zrozumieć komunikację nie korzystając z bibliotek a wszystko zrozumiesz....


RE: Przesyłanie danych pomiędzy 2 arduino - endrju1 - 29-03-2021

Dzięki za potwierdzenie. Na ten moment walczę nadal z serialem, jednak prosiłbym o jakąś podpowiedź, jak zrobić aby móc przesłać zmienne int przez serial który potrafi wysyłać byte (fragmentacja i pisanie własnego protokołu?). Gdzie szukać pomocy lub przykładów?
To może inaczej.
Doszedłem jak wysłać float poprzez " Serial.write((byte *)&x, sizeof(x));" i to potem odczytać, ale jak wysłać kilka danych z różnych czujników?


RE: Przesyłanie danych pomiędzy 2 arduino - Jarewa0606 - 30-03-2021

W internecie tego masz od groma zasada zawsze jest prosta bajt wysłany bajt odebrany... Twoim zadaniem jest tylko wysłać np. Z początkiem znacznikiem dane i koniec transmisji przy odbiorze po prostu odczytujesz początek jeżeli dane to odczytujesz do końca znaku i przekształcasz na zmienna lub string...

Wysyłasz A1234#
Odbierasz A1234# gdzie A to oznaczenie jakie dane, a # to znak końca danych więc 1234 to nasze dane..


RE: Przesyłanie danych pomiędzy 2 arduino - endrju1 - 30-03-2021

Jest to dobry pomysł, ale jak to potem odebrać, aby rozdzielić dane od reszty?


RE: Przesyłanie danych pomiędzy 2 arduino - Jarewa0606 - 30-03-2021

Tam masz wszystko opisane https://forum.arduino.cc/index.php?topic=396450.0 wystarczy przeczytać i zrozumieć szczególnie Example 3