V tomto článku si popíšeme jak Mosquitto nainstalovat na Raspberry Pi přímo ze zdrojových kódů. V závěru se v poznámce zmíníme, jak přidat podporu Websockets na FreeBSD do Mosquitta instaloveného z portů.
Instalace na Raspberry Pi
Článek ve své části pro Raspi vychází z textu Mike Karlinera.
Budeme popisovat instalaci verze mosquitto 1.4.4 a budeme jej kompilovat s podporou websockets verze 1.4. (stav březen 2016). Následující řádky předpokládají, že umíte pracovat v příkazovém řádku unixového systému a používat balíčkovací systém debianu.
Příprava systému
V případě, že jste mosquitto instalovali z repozitáře, tak jej ze systému odstraňte.
A před začátkem kompilace nového software si svůj systém aktualizujte:
sudo apt-get update
a nainstalujte balíčky potřebné ke kompilaci:
sudo apt-get install libssl-dev
sudo apt-get install cmake libc-ares-dev uuid-dev daemon
Vytvořte si adresář v němž budete kompilovat knihovnu websockets a mosquitto, např. ~/src/
:
mkdir ~/src/
a stáhněte si do něj zdroje používaného software:
cd ~/src/
wget http://mosquitto.org/files/source/mosquitto-1.4.4.tar.gz
wget http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets-1.4-chrome43-firefox-36.tar.gz
Vlastní kompilace a instalace zkompilovaného software
Nejprve přeložíme a nainstalujeme knihovnu websockets:
cd ~/src/
tar xvzf libwebsockets-1.4-chrome43-firefox-36.tar.gz
cd libwebsockets-1.4-chrome43-firefox-36/
mkdir build
cd build/
cmake ..
sudo make install
sudo ldconfig
poté rozbalíme zdrojové kódy MQTT brokera:
cd ~/src/
tar xvzf mosquitto-1.4.4.tar.gz
přepneme se do vytovřeného adresáře se zdrojovými kódy:
cd mosquitto-1.4.4/
a v souboru config.mk
zapneme možnost užívání websockets tak, že řádek:
WITH_WEBSOCKETS:=no
změníme na:
WITH_WEBSOCKETS:=yes
Poté software přeložíme a nainstalujeme:
make
sudo make install
sudo cp mosquitto.conf /etc/mosquitto/
Úprava konfigurace
Nyní upravíme konfiguraci v souboru /etc/mosquitto/mosquitto.conf
, tak aby server poslouchal jak na standardním MQTT portu tak na nestandardním portu, kde bude poskytovat připojení pomocí websockets.
Upravíme řádek v úvodní části konfigurace – nastavíme jméno uživatele, pod kterým broker poběží v sekci General configuration
:
user mosquitto
v sekci Default listener
nastavíme port pro MQTT:
# Port to use for the default listener.
port 1883
a připojíme v sekci Extra listeners
následující konfiguraci:
listener 8813
protocol websockets
Přidání uživatele
Přidáme uživatele mosquitto
do systému:
sudo adduser mosquitto
Spuštění brokeru
A v závěru spustíme broker z příkazové řádky:
/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Tím nám běží čerstvě zkompilovaný mosquitto broker s podporou websockets. Jak jej používat si ukážeme v nějakém dalším článku.
Instalace na FreeBSD s podporou websockets
Na FreeBSD je v portech aktuální mosquitto avšak bez podpory websockets (zřejmě kvůli licenci knihovny websockets).
Knihovnu websockets nejprve nainstalujete stejně jako na raspi s tím, že předpokládáme, že máte nainstalovaný port cmake
. Tedy:
wget http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets-1.4-chrome43-firefox-36.tar.gz
tar xvzf libwebsockets-1.4-chrome43-firefox-36.tar.gz
cd libwebsockets-1.4-chrome43-firefox-36/
mkdir build
cd build/
cmake ..
make install
/etc/rc.d/ldconfig start
Poté přejdeme do portu net/mosquitto
:
cd /usr/port/net/mosquitto/
a do souboru /usr/port/net/mosquitto/Makefile
doplníme za řádek USERS
následující konfiguraci:
CMAKE_ARGS= -DWITH_THREADING:BOOL=OFF -DWITH_WEBSOCKETS=ON
a poté standardně port přeložíme a nainstalujeme:
make all install clean
Konfiguraci k MQTT brokeru poté nalezneme v souboru /usr/local/mosquitto/mosquitto.conf
, ve kterém provedeme stejné změny, jako v případě raspi.
- 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