M M
Guest
Tue Feb 15, 2022 2:17 pm
Potrzebuję sklecić jednostkowo coś co by odczytywało dane z czujnika po SPI 3,3V po czym pakowało w ramki UDP i wysyłało do dalszej obróbki. Ilość danych taka że wystarczy Ethernet 10 Mb/s (czujnik to akcelerometr 3-osiowy ADXL313 - max próbkowanie 3200 Hz, trochę za dużo danych dla I2C i RS232), mile widziane zasilanie PoE. Coś małego i odpornego na ekstremalne temperatury (w puszce hermetycznej na szczycie masztu antenowego - ma monitorować jego drgania, czy coś się nie poluzowało po kolejnej wichurze), jakieś Raspberry Pi to chyba trochę "strzelanie z armaty do muchy". Poleci ktoś coś aktualnie dostępnego?
Dawid Rutkowski
Guest
Tue Feb 15, 2022 2:28 pm
wtorek, 15 lutego 2022 o 13:17:59 UTC+1 M M napisał(a):
Quote:
Potrzebuję sklecić jednostkowo coś co by odczytywało dane z czujnika po SPI 3,3V po czym pakowało w ramki UDP i wysyłało do dalszej obróbki. Ilość danych taka że wystarczy Ethernet 10 Mb/s (czujnik to akcelerometr 3-osiowy ADXL313 - max próbkowanie 3200 Hz, trochę za dużo danych dla I2C i RS232), mile widziane zasilanie PoE. Coś małego i odpornego na ekstremalne temperatury (w puszce hermetycznej na szczycie masztu antenowego - ma monitorować jego drgania, czy coś się nie poluzowało po kolejnej wichurze), jakieś Raspberry Pi to chyba trochę "strzelanie z armaty do muchy". Poleci ktoś coś aktualnie dostępnego?
Ja się bawię z atmegą i W5500 - ale zasilacz poe musisz znaleźć/zrobić sam.
Ale 3200Hz i od razu ethernet? RS485 mógłby wystarczyć.
Albo zrobić obróbkę na miejscu i wysyłać raporty i alarmy - chyba że taka skomplikowana ma być?
Atlantis
Guest
Tue Feb 15, 2022 2:33 pm
On 15.02.2022 13:17, M M wrote:
Quote:
Potrzebuję sklecić jednostkowo coś co by odczytywało dane z czujnika
po SPI 3,3V po czym pakowało w ramki UDP i wysyłało do dalszej
obróbki. Ilość danych taka że wystarczy Ethernet 10 Mb/s
Coś takiego robiłem niecałą dekadę temu korzystając z zestawu ENC28J6 +
Atmega328 + prosty stos TCP/IP od Tuxgraphics.
Jak nie chce Ci się bawić w rzeźbienie płytek i chcesz mieć dostęp do
nieco lepszego stosu, to zestaw Arduino + Arduino Ethernet załatwi
sprawę. Będziesz musiał tylko zadbać o translację poziomów na SPI, bo
Arduino pracuje na logice 5V.
Albo ewentualnie możesz wziąć dowolny zestaw deweloperski Discovery lub
Nucleo na STM32, z wbudowanym modułem Ethernet.
M M
Guest
Tue Feb 15, 2022 2:59 pm
Ethernet jest już "pod ręką" (na maszcie switch CRS318-16P-2S+OUT do którego dochodzi zasilanie i światłowód, a wychodzą porty Ethernet z PoE do wyboru 24V lub 48V).
3 osie * 12 bitów * 3200 * 10/8 (start+stop) = 144 kb/s + coś by rozpoznać początek ramki, RS485 musiałby mieć "niestandardową" prędkość (powyżej 115200 co pewnie jest max dla tanich przejściówek z USB - choć może się mylę, trzeba by sprawdzić).
Obróbka najchętniej w bardziej przyjaznym miejscu (kolejna maszyna wirtualna na serwerze, jedna dla 2 czujników w 2 lokalizacjach), to co na górze najlepiej jak najprostsze i bezobsługowe (sam tam nie wejdę tylko zlecam komuś).
Dawid Rutkowski
Guest
Tue Feb 15, 2022 4:06 pm
wtorek, 15 lutego 2022 o 13:59:13 UTC+1 M M napisał(a):
Quote:
Ethernet jest już "pod ręką" (na maszcie switch CRS318-16P-2S+OUT do którego dochodzi zasilanie i światłowód, a wychodzą porty Ethernet z PoE do wyboru 24V lub 48V).
3 osie * 12 bitów * 3200 * 10/8 (start+stop) = 144 kb/s + coś by rozpoznać początek ramki, RS485 musiałby mieć "niestandardową" prędkość (powyżej 115200 co pewnie jest max dla tanich przejściówek z USB - choć może się mylę, trzeba by sprawdzić).
Obróbka najchętniej w bardziej przyjaznym miejscu (kolejna maszyna wirtualna na serwerze, jedna dla 2 czujników w 2 lokalizacjach), to co na górze najlepiej jak najprostsze i bezobsługowe (sam tam nie wejdę tylko zlecam komuś).
No tak, bliski ethernet robi wręcz "big russian" "golden hammer".
Chociaż utrudnia w wielu innych miejscach (co właśnie czyni go "golden hammerem") - począwszy od zasilania.
Dyskusja robi się więc nieco akademicka niestety.
Ew. do przemyślenia jeszcze sprawdzenie, czy może w tej skrętce, która idzie do switcha, nie ma przypadkiem 2 par wolnych (bo 100Base-TX) - starczyły by na RS-485 i zasilanie z dołu (choć dawanie 3,3V z dołu to i tak słabo, jakaś przetwornica czy coś stabilizator na górze będzie pewnie niezbędne - hmm, w sumie mając z 24V POE też można dać stabilizator - choć taki moduł z W5500 zżera 100mA z 5V - moduł ma wbudowany stabilizator na 3,3V, ale nie wiem, jak sprawny, nie sprawdzałem, ile żre zasilany bezpośrednio z 3,3V - więc trzeba zapewnić odprowadzenie ciepła do obudowy).
Tanie przejściówki USB (no dobra, z RS232C a nie RS485

, przynajmniej pod Linuxem, spokojnie sobie radzą z 230400bps, a chyba 460800bps też testowałem.
Zaś sama ATmega bez problemu realizuje mi na 819200bps łączność w sieci domofonów z 6 jednoczesnymi rozmowami na jednej parze RS485 (oprócz tego sampluje, odgrywa i realizuje protokół komunikacji - oraz jeszcze drugi na drugim UART).
Mirek
Guest
Tue Feb 15, 2022 8:51 pm
On 15.02.2022 13:17, M M wrote:
Raspberry Pi to chyba trochę "strzelanie z armaty do muchy".
Tylko że ta armata jest w cenie muszkietu, załadowana i z obsługą.
--
Mirek.
Atlantis
Guest
Tue Feb 15, 2022 9:04 pm
On 15.02.2022 20:51, Mirek wrote:
Quote:
Tylko że ta armata jest w cenie muszkietu, załadowana i z obsługą.
A teraz zobacz po ile OBECNIE chodzi Raspberry Pi.
Poza tym jest jeszcze jedna sprawa. Awaryjność.
W RasPi słabym ogniwem jest karta pamięci. Można co prawda kupić
przemysłową, ale to podnosi koszt całości. A i tak wypadałoby
odpowiednio skonfigurować system, żeby po kilku latach zapisywania logów
nośnik nie został zajechany.
No i pozostaje jeszcze kwestia bezpieczeństwa. Masz tam cały system, a w
każdym jego komponencie mogą być jakieś 0-day'e. Wypadałoby wiec dbać o
to, żeby był aktualny. Jednak każda aktualizacja może zepsuć.
Do mikrokontrolera jeden raz wgrywasz firmware i masz spokój.
Mirek
Guest
Tue Feb 15, 2022 9:22 pm
On 15.02.2022 21:04, Atlantis wrote:
Quote:
odpowiednio skonfigurować system, żeby po kilku latach zapisywania logów
nośnik nie został zajechany.
Obecnie to się robi jednym poleceniem i masz system read-only.
Quote:
No i pozostaje jeszcze kwestia bezpieczeństwa. Masz tam cały system, a w
każdym jego komponencie mogą być jakieś 0-day'e. Wypadałoby wiec dbać o
to, żeby był aktualny. Jednak każda aktualizacja może zepsuć.
A na maszcie MikroTik i goła transmisja po UDP - no szczyt bezpieczeństwa

Quote:
Do mikrokontrolera jeden raz wgrywasz firmware i masz spokój.
Chyba Ty, bo ja zawsze coś poprawiam n razy.
--
Mirek.
M M
Guest
Wed Feb 16, 2022 2:38 pm
wtorek, 15 lutego 2022 o 21:22:35 UTC+1 Mirek napisał(a):
Quote:
Obecnie to się robi jednym poleceniem i masz system read-only.
Lokalnie nie trzeba nic zapisywać, wszystko leci przez sieć.
Quote:
A na maszcie MikroTik i goła transmisja po UDP - no szczyt bezpieczeństwa
Własna sieć, wydzielony VLAN bez dostępu do Internetu.
Quote:
Chyba Ty, bo ja zawsze coś poprawiam n razy.
Idealnie jakby flash zawierał tylko prosty bootloader, który ładuje do RAM właściwy soft przez sieć z serwera (DHCP, TFTP).
Wtedy łatwo poprawiać, a trudno popsuć tak by konieczny był fizyczny dostęp.
Atlantis
Guest
Fri Feb 18, 2022 3:08 pm
On 15.02.2022 21:22, Mirek wrote:
Quote:
Obecnie to się robi jednym poleceniem i masz system read-only.
Możesz powiedzieć coś więcej? Wiedziałem, że istnieją metody na
ograniczenie użycia karty pamięci (na wzór rozwiązań stosowanych np. w
OpenWRT) ale gdy szukałem jakichś opisów, to znajdywałem dłuższe
tutoriale. Da się to pod Raspbianem zrobić jednym poleceniem? Jak
wygląda potem kwestia instalacji softu?
Quote:
A na maszcie MikroTik i goła transmisja po UDP - no szczyt
bezpieczeństwa
Ale tutaj nie chodzi o bezpieczeństwo transmisji czy nawet
bezpieczeństwo sieci. Chodzi o bezpieczeństwo tego konkretnego
urządzenia. RasPi to jednak standardowy komputer. Jeśli będziesz miał na
nim przestarzały system albo inny komponent software;owy, to jeśli
atakujący w jakiś sposób się do niego dostanie (chociażby w sytuacji,
gdy uda mu się zinfiltrować twoją sieć) to będzie mógł próbować się do
niego dobrać za pomocą zupełnie standardowych exploitów. W razie sukcesu
stworzy sobie całkiem fajny przyczułek.
A urządzenie na mikrokontrolerze to urządzenie na mikrokontrolerze.
Projektowane do konkretnego celu. Odpala kod, który został wgrany. Nie
instalujesz na nim programów. Tak więc atakujący co najwyżej będzie w
stanie podsłuchać komunikację. Jeśli występuje opcja zdalnej
aktualizacji to istnieje niewielka szansa, że będzie w stanie wgrać
zmodyfikowany firmware, ale to będzie już wymagało od niego znacznie
więcej wysiłku. O wiedzy na temat samego urządzenia nie wspominając.
Quote:
Do mikrokontrolera jeden raz wgrywasz firmware i masz spokój.
Chyba Ty, bo ja zawsze coś poprawiam n razy.
Chodzi mi o to, że w przypadku urządzenia wbudowanego musisz
aktualizować tylko jego firmware. W przypadku komputera musisz
aktualizować wszystko, bo co chwilę będzie się okazywało, że któryś z
komponentów użytych w systemie ma podatność, która może być eksploitowana.
I jasne, obecnie granica też się zaciera, bo biblioteki wchodzące w
skład SDK ESP8266/ESP32 też co jakiś czas warto aktualizować ze względów
bezpieczeństwa.
Mirek
Guest
Fri Feb 18, 2022 9:21 pm
On 18.02.2022 15:08, Atlantis wrote:
Quote:
On 15.02.2022 21:22, Mirek wrote:
Obecnie to się robi jednym poleceniem i masz system read-only.
Możesz powiedzieć coś więcej? Wiedziałem, że istnieją metody na
ograniczenie użycia karty pamięci (na wzór rozwiązań stosowanych np.
w OpenWRT) ale gdy szukałem jakichś opisów, to znajdywałem dłuższe
tutoriale. Da się to pod Raspbianem zrobić jednym poleceniem?
Normalnie w raspi-config wchodzisz, potem (z pamięci) prerformance i
overlay file system.
Quote:
Jak wygląda potem kwestia instalacji softu?
Wchodzisz, przełączasz z powrotem na rw, reboot i instalujesz.
Quote:
Ale tutaj nie chodzi o bezpieczeństwo transmisji czy nawet
bezpieczeństwo sieci. Chodzi o bezpieczeństwo tego konkretnego
urządzenia. RasPi to jednak standardowy komputer.
Ja wszystko rozumiem. Słyszałeś o jakiejś podatności w SSH i włamaniach
tą drogą na Pi?
A na MikroTika miałem konkretne włamanie przez paskudną podatność.
Niestety ufam bardziej Raspberry, którego sam skonfigurowałem niż
MikroTik-owi, w którym nie wiem co jest.
Quote:
A urządzenie na mikrokontrolerze to urządzenie na mikrokontrolerze.
Projektowane do konkretnego celu. Odpala kod, który został wgrany.
Nie instalujesz na nim programów. Tak więc atakujący co najwyżej
będzie w stanie podsłuchać komunikację.
Ale wyłożyć można go zwykłym pingiem.
Ale żeby nie było:
Do tego celu takie rozwiązanie się jak najbardziej nadaje, ale dla
jednej sztuki to szkoda czasu.
Żeby chociaż były gotowe moduły dla ethernetu takie jak są na esp8266
dla wifi...
Można oczywiście podpiąć moduł Wiznet-u albo enc28j60 pod atmegę, ale to
jest trochę dłubaniny w sprzęcie i w kodzie, a autor wątku ma jeszcze
marzenia o PoE...
Takie Raspberry Pi Zero z PoE HUB-em - załatwia sprawę.
--
Mirek.
Zbych
Guest
Sat Feb 19, 2022 12:42 pm
M M wrote on 15.02.2022 13:17:
Quote:
Potrzebuję sklecić jednostkowo coś co by odczytywało dane z czujnika po SPI 3,3V po czym pakowało w ramki UDP i wysyłało do dalszej obróbki. Ilość danych taka że wystarczy Ethernet 10 Mb/s (czujnik to akcelerometr 3-osiowy ADXL313 - max próbkowanie 3200 Hz, trochę za dużo danych dla I2C i RS232), mile widziane zasilanie PoE. Coś małego i odpornego na ekstremalne temperatury (w puszce hermetycznej na szczycie masztu antenowego - ma monitorować jego drgania, czy coś się nie poluzowało po kolejnej wichurze), jakieś Raspberry Pi to chyba trochę "strzelanie z armaty do muchy". Poleci ktoś coś aktualnie dostępnego?
Coś z EPS32?
https://nettigo.pl/products/modul-olimex-esp32-poe
https://www.olimex.com/Products/IoT/ESP32/ESP32-GATEWAY/open-source-hardware
Oczywiście skoro to ma pracować na maszcie, to koniecznie wykonałbym
testy odporności na surge.
M M
Guest
Sat Feb 19, 2022 9:17 pm
sobota, 19 lutego 2022 o 12:42:43 UTC+1 Zbych napisał(a):
Quote:
Dzięki, to chyba będzie to - ESP32-POE-ISO-IND nawet jest w TME na magazynie.
Co do odporności zastanawiam się jakie pudełko lepsze - całe izolowane, czy całe metalowe?
Izolowane daje pełną separację galwaniczną (dodatkową oprócz przetwornicy PoE), ale sporo tam w pobliżu nadajników radiowych (głównie 5,5 - 6,5 GHz) i nie wiem jak to może wpływać na wyniki z akcelerometru (czy nie dojdzie do pasożytniczej demodulacji AM - choć akcelerometr zintegrowany z ADC w jednej strukturze), może warto całość ekranować.
Z trzeciej strony... maszt ma 12m wysokości, stoi 12 lat i albo ani razu nie dostał piorunem, albo dostał ale był na tyle dobrze uziemiony że pozostało to niezauważone