>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Unknown

Przewodnik po świecie sprzętu i protokołów w repozytorium awesome-iot

Rozwój IoT często przypomina wędrowanie we mgle. Dziesiątki producentów oferują sprzęt. Protokoły komunikacyjne mnożą się z roku na rok. Dorzuć do tego wybór między MicroPythonem, Rustem i C++, a głowa zaczyna boleć jeszcze na etapie projektowania. Pamiętam, że spędziłem dwa wieczory tylko nad tym, czym CoAP różni się od MQTT i co będzie działać na mikrokontrolerze, gdy budowałem swój pierwszy panel z czujnikiem temperatury.

Repozytorium awesome-iot utrzymywane przez Khallima Carrouma pomaga zaoszczędzić czas. To starannie ustrukturyzowana kolekcja platform sprzętowych, systemów operacyjnych, języków programowania i protokołów sieciowych.

Projekt zgromadził ponad cztery tysiące gwiazdek na GitHubie. Przyjrzyjmy się, jakie interesujące zasoby są tu dostępne i jak wykorzystać tę bazę wiedzy.

Co zawiera katalog

Podobnie jak każda lista Awesome, projekt składa się z linków z krótkimi opisami. Autorzy podzielili wszystkie zasoby na pięć głównych sekcji:

  • Sprzęt i komputery jednopłytkowe
  • Stos programowy (systemy operacyjne, języki, frameworki i narzędzia)
  • Protokoły sieciowe i standardy komunikacji
  • Sojusze i grupy branżowe
  • Książki, artykuły i publikacje naukowe

Ta struktura pomaga szybko znaleźć odpowiedni komponent do projektu bez przeszukiwania wyszukiwarek.

Sprzęt i systemy operacyjne

Oprócz znanych płytek takich jak Raspberry Pi i Arduino, kolekcja obejmuje rozwiązania do zadań specjalistycznych.

Do prostych czujników z Wi-Fi i Bluetooth dobrze sprawdzają się układy ESP32 lub NodeMCU. Jeśli potrzebujesz miniaturowego komputera przemysłowego o zakresie temperatur pracy od -25°C do +85°C, przydaje się OLinuXino. Do pracy z magistralą CAN w motoryzacji znajdziesz w liście projekt AutoPi.

Sytuacja ze sprzętem programowym jest podobna. Katalog zawiera systemy operacyjne czasu rzeczywistego:

  • FreeRTOS i Zephyr Project dla urządzeń z rygorystycznymi ograniczeniami mocy i pamięci.
  • Apache Mynewt z naciskiem na Bluetooth Low Energy.
  • OpenWrt i Raspbian dla pełnoprawnych komputerów jednopłytkowych.
  • NodeOS dla tych, którzy chcą uruchomić system operacyjny oparty na JavaScript.

W czym pisać kod

Sprzęt z logiką można łączyć nie tylko w C lub C++. Społeczność stworzyła adaptacje znanych języków dla mikrokontrolerów.

Kolekcja zawiera MicroPython, a także PikaPython, który wymaga tylko 4 KB pamięci RAM. Dla fanów ścisłego typowania jest TinyGo, które potrafi kompilować kod Go na Arduino i BBC micro:bit. Jeśli piszesz w Rust, znajdziesz również bogatą bazę bibliotek. Egzotyczne opcje jak AtomVM pozwalają uruchamiać Erlang i Elixir bezpośrednio na mikrokontrolerach.

Frameworki i przesyłanie danych

Połączenie czujnika z serwerem to osobne zadanie. Katalog wyraźnie rozdziela warstwy transferu danych.

Technologie fizyczne i sieciowe obejmują LoRaWAN, NB-IoT, ZigBee i Thread. Na poziomie aplikacji reprezentowane są MQTT, CoAP i STOMP.

Do przetwarzania danych po stronie urządzenia lub serwera lista zawiera gotowe narzędzia:

  • Home Assistant do automatyki domowej.
  • Astarte do zarządzania flotami urządzeń z Linux i ESP32.
  • Eclipse Ditto do tworzenia cyfrowych bliźniaków fizycznych urządzeń.
  • ForestHub do uruchamiania modeli sztucznej inteligencji na urządzeniach edge takich jak Jetson czy Raspberry Pi.

Wśród brokerów komunikatów można wybierać między lekkim NanoMQ do uruchomienia na samym urządzeniu a pojemnościowymi EMQX i VerneMQ, zdolnymi obsłużyć miliony jednoczesnych połączeń.

Kto znajdzie tę listę przydatną

Repozytorium sprawdza się jako punkt odniesienia w sytuacjach, gdy trzeba wybrać stos technologiczny do nowego projektu.

Dla programistów usług webowych pokazuje wejścia do sprzętu przez znajome języki jak JavaScript czy Python. Dla architektów upraszcza znalezienie odpowiedniego brokera czy protokołu komunikacyjnego. Dla początkujących inżynierów kolekcja daje pełny obraz tego, z czego składają się nowoczesne systemy IoT.

Projekt jest otwarty na społeczność. Jeśli używasz dobrego rozwiązania open source do pracy ze sprzętem, możesz zaproponować je przez Pull Request.

Powiązane projekty