Mosquitto
Mosquitto je malý MQTT broker, který lze bez větších problémů provozovat na malých zařízeních jako je, např. i Raspberry Pi. Problém se současnou verzi raspbianu (debianu na raspi) je ten, že jeho repozitáře obsahují pouze velice zastaralou verzi MQTT brokera (serveru) mosquitto. V článku instalace mosquitto ze zdrojových kódů popisujeme jak mosquitto na raspi a FreeBSD nainstalovat přímo ze zdrojových kódů.
V tomto článku si ukážeme další cestu instalace podpořenou přímo tvůrci tohoto software.
V další části budeme předpokládat, že používáme raspbian verze jessie. Verzi vašeho operačního systému raspbian(debian) zjistíte v příkazové řádce systému takto:
cat /etc/os-release
Tento příkaz vám může vypsat text podobný tomuto:
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)" NAME="Raspbian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie)" ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Z kterého již lehce zjistíte verzi systému. V případně, že používáte starší verzi raspbianu, tedy wheezy, mosquitto
podle uvedeného návodu nainstalujete ovšem bez podpory websockets, jejiž knihovna pro wheezy není v hlavních repozitářích této verze a tak jí vývojáři nepodporují. Na verzi jessie je mosquitto přeloženo s podporou websocketů. Vždy však, jak na wheezy tak na jessie, můžete instalovat broker přímo ze zdrojů a knihovnu websockets si ručně dokompilovat tak, jak popsáno v našem článku Instalace na raspi ze zdrojových kódů
Úprava zdrojů balíčkovacího systému
Nejprve musíme systému pro správu software předat a potvrdit GPG veřejný klíč k repozitáři s balíčky mosquitto:
# stáhneme GPG klíč wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key # nahrajeme do správy balíčků sudo apt-key add mosquitto-repo.gpg.key
Dále vložíme seznam odkazů pro naši verzi operačního systému rasbian (tedy musíme vědět zda máme jessie či wheezy) na tento repozitář do adresáře /etc/apt/sources.list.d/
:
cd /etc/apt/sources.list.d/ # ZVOLTE SEZNAM ZDROJŮ DLE VERZE VAŠEHO SYSTÉMU # Následuje verze pro JESSIE sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list # následuje verze pro WHEEZY - ZVOLTE POUZE JEDEN SEZNAM # sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list
Upgrade informací v systému správy software apt
Nyní musíme obnovit databázi instalovatelných balíčků pro systém apt
:
sudo apt-get update
Instalace brokeru mosquitto z adresáře tvůrců
Nejprve zjistíme zda a jaké balíčky projektu mosquitto
jsou nám k dispozici:
sudo apt-cache search mosquitto
a poté broker nainstalujeme
sudo apt-get install mosquitto
V případě, že už máte mosquitto nainstalovaný z oficiálního repozitáře vašeho systému stačí po apt-get update
zadat příkaz:
sudo apt-get dist-upgrade
Konfigurace
Když nyní zkusíme mosquitto nastartovat pomocí:
sudo /etc/init.d/mosquitto start
Můžeme se přesvědčit, že běží a používá defaultního MQTT portu 1883. Přesvědčit se můžete např. příkazem:
sudo ss -a -p | grep mosq
který by měl vypsat následující výstup:
tcp LISTEN 0 100 *:1883 *:* users:(("mosquitto",pid=4470,fd=3))
tedy vidíme TCP port 1883, na kterém mosquitto poslouchá.
Nyní v adresáři /etc/mosquitto/conf.d
vytvoříme konfigurační doplněk, ve kterém mosquitto dokonfigurujeme tak, aby poslouchal i na portu např. 8813 jednoduše tak, že do nového souboru /etc/mosquitto/conf.d/websockets.conf
vložíme následující řádky:
# default port for MQTT protocol port 1883 # adding websockets listener listener 8813 protocol websockets
Nyní MQTT broker mosquitto běží na našem Raspi jak na standardním portu TCP 1883 tak s podporou websockets na 8813.
A na závěr zbývá nastavit automatický start mosquitto při startu systému:
sudo update-rc.d mosquitto defaults
- Komáři se ženili aneb něco o MQTT
- Instalace MQTT brokeru Mosquitto na Raspi a FreeBSD
- Komár (mosquitto) na Raspi
- ESP8266 a Arduino IDE
- ESP8266 a použití v praxi
- ESP8266 jako teplotní čidlo
- ESP8266 jako IoT display