Eclipse Mosquitto MQTT jest protokołem wykorzystywanym we wdrożeniach sieci IoT (Internet of Things). Używa lekkiego modelu oprogramowania pośredniczącego optymalnego do połączeń M2M (machine-to-machine), co jest zaletą w sieciach o niskiej przepustowości i ograniczonych zasobach. Każda infrastruktura MQTT składa się z serwera (central messaging broker) zarządzającego wymianą komunikatów i połączonych z nim klientów. Poniżej przedstawiamy, w jaki sposób skonfigurować serwer osobistej sieci IoT – paczkę Eclipse Mosquitto przygotowaną do instalacji brokera MQTT za pomocą ‚jednego kliknięcia’ oraz jak samodzielnie przeprowadzić ten proces korzystając z prekonfigurowanych pakietów. Rozwiązanie przygotowano z myślą o obsłudze dużej liczby jednoczesnych klientów z jednoczesną optymalizacją użycia pamięci RAM. Rozwiązanie jest przydatne zarówno do obsługi dużych maszyn, jak i prostych czujników.

Zawartość pakietu Mosquitto Eclipse

Pakiet Eclipse Mosquitto ma na celu utworzenie jednym kliknięciem gotowego do pracy środowiska Mosquitto MQTT ( serwer osobistej sieci IoT), o topologii składającej się z następującej topologii:

  • pojedynczy kontener Docker zawierający obraz eclipse-mosquitto (latest)
  • ustawionym domyślnym limicie skalowania zasobów na poziomie 8 cloudletów (odpowiednik 1 GB RAM i 3.2 GHz CPU, te ograniczenia można zmodyfikować po utworzeniu środowiska)
  • dedykowany punkt końcowy dołączony do węzła brokera (w przypadku użycia produkcyjnego zaleca się przypisanie publicznego adresu IP)

Interakcja urządzeń za pomocą protokołu MQTT

Architektura rozwiązania opera się na modelu centralnego brokera, do którego łączą się klienty. Zastosowanie topologii subskrypcji/publikacji pozwala na utrzymywanie klientów nieświadomych siebie nawzajem, ponieważ nie są połączone bezpośrednio przez serwer MQTT.

Każdy klient MQTT ma możliwość subskrypcji/publikacji wybranych tematów. Każda nowa wiadomość przechodzi przez brokera przesyłającego ją tylko do klientów z aktywną subskrypcją tego wątku. Sieć jest kontrolowana centralnie i  optymalizuje przesył informacji.

Wdrożenie serwera Eclipse Mosquitto MQTT w UniCloud

Najprostszą metodą jest instalacja z wykorzystaniem Listy Gotowych Aplikacji:

  1. Zaloguj się na swoim koncie UniCloud
  2. Wybierz pakiet Eclipse Mosquitto i kliknij Zainstalujalternatywnie możesz dokonać importu manifestu z repozytorium:
       https://github.com/jelastic-jps/mosquitto/blob/master/manifest.jpsAby kontynuować naciśnij Import.
  3. W otwartej ramce dopasuj parametry środowiska do swoich potrzeb:należy wpisać nazwę środowiska oraz opcjonalnie nazwę wyświetlaną (alias).
  4. Po zakończeniu instalacji pojawi się okienko z informacją o pomyślnej instalacji pakietu

Broker Eclipse Mosquitto jest już gotów do pracy.

Obsługa urządzeń IoT z brokerem Mosquitto

Aby przetestować działanie komunikatów MQTT przesyłanych za pośrednictwem serwera Eclipse Mosquitto należy przygotować kilka klientów MQTT (urządzeń sieci IoT), z zainstalowanymi paczkami mosquitto-clients, które są wymagane aby wykonywać polecenia subskrypcji i publikowania. Na powyższej stronie projektu Eclipse umieszczono do pobrania repozytoria odpowiednie do używanego OS, można również używać innych klientów zgodnych z protokołem, przykładowe okno konfiguracji na telefonie komórkowym może wyglądać następująco:

Natomiast przykładowe środowisko z CentOS wymaga dodania repozytorium i instalacji odpowiednich paczek projektu Mosquitto (mosquitto, mosquitto-clients, libmosquitto1, libmosquitto-devel, libmosquittopp1, libmosquittopp-devel, python-mosquitto).

Zachęcamy do samodzielnego przetestowania swoich urządzeń we własnej sieci IoT!