Jak wybrać prosty lekki serwer IoT do programowania?

13

Badamy różne przypadki użycia rozwiązań IoT. Aby ułatwić eksplorację, eksperymentowanie, projektowanie, rozwój i testowanie możliwych rozwiązań, badam możliwość lokalnego skonfigurowania prostego serwera IoT.

Dlatego chciałbym zrozumieć podstawową architekturę serwerów obsługujących urządzenia IoT. Mówiąc ogólnie, urządzenia IoT łączą usługę, która obsługuje dane i udostępniają informacje do wykorzystania przez inne urządzenia. To jest całkiem proste.

Na razie możliwe urządzenia brzegowe IoT będą korzystać z Wi-Fi, ale planują migrację do niskiej prędkości transmisji danych, protokołu o małej mocy, takiego jak ZigBee, BLE, lub może być Z-Wave, w którym to momencie będę potrzebował pewnego rodzaju koncentratora . Ładunek danych będzie wynosił około 100 bajtów, w szczycie transmisja może wynosić nawet jedną transakcję na minutę. Urządzenia brzegowe IoT przeważnie przesyłają dane, od czasu do czasu pobierając je na urządzenia.

Sugeruje się, że patrzę w MQTT i RabbitMQ jako możliwych opcji. Zostałem również skierowany do „ Wyświetlanie wiadomości MQTT w przeglądarce w czasie rzeczywistym ”, na który patrzę w momencie pisania.

Oto kilka pytań, które moim zdaniem są powiązane:

  • Co odróżnia serwer IoT od serwera WWW, serwera poczty lub serwera FTP?
  • Jaka jest podstawowa architektura podstawowego serwera IoT?
  • Jakie cechy są ważne przy rozważaniu prostego, lekkiego serwera IoT?
Mahendra Gunawardena
źródło

Odpowiedzi:

6

Odpowiem na twoje pierwsze pytanie. Myślę, że lepiej byłoby zadać tylko jedno pytanie na ... pytanie :)

Co odróżnia serwer IoT od serwera WWW, serwera poczty lub serwera FTP?

  • Serwer WWW mówi HTTP, aby udostępnić strony internetowe.
  • Serwer pocztowy rozmawia POP / IMAP / SMTP w celu wymiany wiadomości e-mail.
  • Serwer FTP mówi o protokole FTP w celu przesłania pliku.

Zasadniczo są to tylko wszystkie sposoby przesyłania informacji między klientem a serwerem. Serwer IoT niczym się nie różni, po prostu mówi protokół „IoT” do komunikacji między klientem a serwerem. Przekazywane informacje nie są stronami internetowymi, wiadomościami e-mail ani plikami, są to wiadomości typu „aktualna temperatura wynosi 20 ° C”. Przykładowymi protokołami IoT są MQTTi CoAP.

ralight
źródło
Na przykład, serwer „IoT” może być „brokerem MQTT”, co czyni go serwerem IoT, jeśli używasz MQTT do przesyłania danych wokół urządzeń w infrastrukturze IoT.
m4l490n
5

Co odróżnia serwer IoT od serwera WWW, serwera poczty lub serwera FTP?

Jak wskazał @ralight, serwer IoT działa ze stosem protokołów IoT. Nie jest to ograniczone do jednej warstwy OSI, w rzeczywistości każdy etap jest lub może być zoptymalizowany pod kątem wykorzystania Internetu Rzeczy i oczywiście potrzebne są nowe protokoły.

Możliwe jest również, że sprzęt jest nietypowy: w niewielkiej konfiguracji urządzenie do gromadzenia danych, takie jak Raspberry PI, może utrzymywać zadania serwera w całości lub częściowo.

Częściowo oznacza obliczenia przeciwmgielne, w których dane są przetwarzane w miejscu ich gromadzenia, a tylko wyniki końcowe trafiają na główny serwer.

Jaka jest podstawowa architektura podstawowego serwera IoT?

Z tej strony niektóre specyfikacje sprzętowe:

W hipotetycznym założeniu twojego przypadku powiedzmy, że 300 klientów jest jednocześnie otwartych na serwerze, a każdy klient wysyła 10 msgs / sekundę, co daje 3000 wiadomości na sekundę. Uwierz mi, nawet broker hostowany na podwójnym rdzeniu z 2 GB pamięci RAM nie będzie miał znaczącego zużycia.

Podstawowy sprzęt serwerowy.

Jakie cechy są ważne przy rozważaniu prostego, lekkiego serwera IoT?

Nie mam na to większego wglądu, ale osobiście chciałbym dowiedzieć się, czy Raspberry PI wystarcza jako serwer MQTT. Czytałem gdzieś w Quora, że ​​Esp8266 nie jest, ale widziałem normalnego Linux-a pracującego na RPI, więc dlaczego nie mógłby działać również jako serwer.

Przed wypróbowaniem Raspberry należy jednak wziąć pod uwagę wymagania sprzętowe wybranego stosu usług. Przy normalnym sprzęcie serwerowym ilość pamięci jest obecnie tak duża, że ​​nie będzie problemu.

Wspomniane 3000 msg / s jest stosunkowo wysokie w porównaniu do przypadków testowych IoT, a RPI3 ma 1G RAM. To połowa, więc zależy to od tego, czy wiadomości wypełniają pamięć w tym przypadku, czy ile potrzebuje nagi MQTT. Wpływa to na to, jak by to było odpowiednie.

mico
źródło
1
Wydaje się, że nie ma problemu z RPI jako serwer: iot.stackexchange.com/questions/1858/...
Mico