rafal2366 Napisano Listopad 25, 2024 Udostępnij Napisano Listopad 25, 2024 Cześć, przygotowuję pewien projekt, w którym muszę połączyć się z siecią z poziomu STM32, a jako że moja wiedza na tematy sieciowe jest niewielka chciałbym prosić o poradę. Zamysł całości jest taki, aby STM32, a dokładniej płytkę Nucleo F767ZI podłączyć do sieci za pomocą wbudowanego gniazda Ethernet. STM zbiera dane z innych urządzeń po RS485 i przechowuje je lokalnie. Chciałbym połączyć się z nim poprzez sieć i odczytywać właśnie te dane, docelowo poprzez skrypt napisany w Pythonie i uruchomiony na serwerze. I tutaj pytanie jak najlepiej się za to zabrać? Z tego co czytałem i jeśli dobrze to rozumiem, STM powinien działać jako serwer, tak aby właśnie z poziomu dowolnego innego skryptu czy urządzenia można było wysłać mu jakąś komendę, na która procesor zareaguje i odeśle konkretny pakiet danych. Co ważne dostęp do danych powinien być możliwy z poziomu wielu zewnętrznych urządzeń, przykładowo na serwerze uruchomiony jest Pythonowy skrypt, ale jeśli uruchomię go na komputerze to tez powinien działać. Nie rozumiem jednak do końca samych tajników komunikacji poprzez Ethernet. Widziałem sporo poradników dla przykładowo ModBus, komunikacji UDP, TCP i innych, ale nie wiem do końca, który kiedy się wykorzystuje i, który sposób wymiany danych byłby najlepszy w tym przypadku. Znalazłem też coś takiego jak adaptery RS485/Ethernet, które wydają mi się ciekawe, bo eliminują całkowicie obsługę sieci z poziomu STM i zastanawiam się nad ich wykorzystaniem. Jesteście w stanie wyjaśnić mi w miarę prosto i przystępnie, co byłoby najlepszym wyborem do takiego rodzaju komunikacji i dlaczego?
H1M4W4R1 Listopad 25, 2024 Udostępnij Listopad 25, 2024 (edytowany) 1 godzinę temu, rafal2366 napisał: Jesteście w stanie wyjaśnić mi w miarę prosto i przystępnie, co byłoby najlepszym wyborem do takiego rodzaju komunikacji i dlaczego? Dla mnie? Jakiś koprocesor ESP32 - wbudowane WiFi i zero problemów (chyba, że musi być po kablu to musisz się przemęczyć z IwIP)... Ewentualnie Wiznet W5500 1 godzinę temu, rafal2366 napisał: Widziałem sporo poradników dla przykładowo ModBus, komunikacji UDP, TCP i innych, ale nie wiem do końca, który kiedy się wykorzystuje i, który sposób wymiany danych byłby najlepszy w tym przypadku. UDP - "masz tutaj info, ale mnie nie obchodzi czy je dostałeś" (coś jak KPA w Polsce - jak nie odbierzesz poleconego to i tak uznaje się go za doręczony) TCP - "jak nie dostałeś to wyślę ponownie" (coś jak sprzedawca, gdy kurier nawali, bo nie potrafi trafić pod Twój adres... true story) Modbus - to akurat jest protokół wymiany danych i raczej jest używany tylko do komunikacji między modułami urządzenia/maszyny UDP używa się tylko w miejscach, gdzie dane są wysyłane w ogromnej ilości i nie przejmujesz się tym, że coś zgubiłeś (np. jakieś odczyty z czujnika do dziennika zdarzeń) TCP jak dane muszą dotrzeć (np. komendy do urządzenia) Edytowano Listopad 25, 2024 przez H1M4W4R1
ethanak Listopad 25, 2024 Udostępnij Listopad 25, 2024 Są płytki ESP32 (ETH01-EVO na przykład) z ethernetem właśnie po to zrobione (gateway). Nie próbowałem. 1
rafal2366 Listopad 27, 2024 Autor tematu Udostępnij Listopad 27, 2024 Dzięki za pomoc, stety/niestety STM32 i połączenie kablowe jest tutaj wymagane i nie mogę zmienić platformy. Z pierwszych prób i rozeznania wygląda na to, że TCP będzie dla mnie wystarczalne, do prostej wymiany danych. Przerobiłem też kilka tutoriali i najbardziej pomógł mi konkretnie ten, zostawię go dla potomnych.
MR1979 Grudzień 10, 2024 Udostępnij Grudzień 10, 2024 Zerknij na przykładową aplikacją dołączoną do pakietu HAL dla twojej płytki: https://github.com/STMicroelectronics/STM32CubeF7/tree/master/Projects/STM32F767ZI-Nucleo/Applications Jest tam implementacja prostego serwera HTTP. Mam nadzieję że to ci pomoże. Pozdrawiam, Marek
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »