-
mqtt協議
-
mosquitto mqtt服務器搭建
-
monit 監控軟件
-
esp8266 esp_easy固件
-
domoticz添加設備和硬件
1.mqtt協議:
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是由IBM於1999年發佈的一種基於發佈/訂閱模的"輕量級"通訊協議,旨在爲物聯網、小型設備在帶寬低,不可靠的網絡環境中提供即時通訊,是物聯網通訊中的重要組成部分,簡而言之mqtt協議非常適合物聯網的設備之間的即時通信。
2.mqtt服務器:mosquitto
常用的mqtt服務器有ActiveMQ,EMQ,Mosquitto等,其中Mosquitto服務器開源輕量的特點適合安裝在性能低的服務器上。
安裝mosquitto依賴:
sudo apt-get install libssl-dev
sudo apt-get install uuid-dev
sudo apt-get install cmake
下載mosquitto,官網是https://mosquitto.org/,最新版本是1.6.8
wget https://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz
解壓並編譯
tar xzvf mosquitto-1.6.8.tar.gz
cd mosquitto-1.6.8.tar.gz
make
make install
等待報錯:
沒有安裝g++編譯環境,安裝後解決:
sudo apt-get install g++
編譯後安裝然後啓動:
mosquitto -v
有兩個信息不影響安裝,我沒有理會,但是啓動的時候報錯,應該是沒有用戶mosquitto,新建用戶之後就可以了:
adduser mosquitto
啓動成功默認端口是1883
3.monit 監控軟件
monit是一款開源輕量的監控軟件,比較zabbix之類的監控軟件要小得多。
domoticz的運行不是很穩定總是莫名其妙的掛掉,我原來在cron中配置定時重啓,發現這個辦法還是不夠靈活,時間太長和太短都無法很好的啓動domoticz,好在官網中給出了用monit來進行監控的方法,只需要修改一下配置文件就可以了,研究了一下就決定用它了。原本預訂每五分鐘重啓一下,但是還是沒有很好解決,所以就放棄了。
*/10 * * * * sudo service domoticz.sh restart >/root/reboot
安裝在linux下非常簡單:
apt-get install monit
編輯配置文件monitrc,默認目錄在/etc/monit/monitrc中,
set daemon 30 # 每30秒檢測一次
with start delay 240 # 延遲啓動,240s,web界面也會延遲啓動
set log /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
set httpd port 2812 #默認web界面端口
allow localhost #允許本地ip地址127.0.0.1
allow 192.168.0.0/24 #允許訪問的端口
allow admin:admin #用戶名:密碼的形式
allow @root
check process domoticz with pidfile /var/run/domoticz.pid
start program = "/etc/init.d/domoticz.sh start"
stop program = "/etc/init.d/domoticz.sh stop"
restart program = "/etc/init.d/domoticz.sh restart"
if failed port 443 protocol https with timeout 15 seconds then restart
check process mosquitto with pidfile /var/run/mosquitto.pid
start program = "/usr/local/sbin/mosquitto"
stop program = "/usr/local/sbin/mosquitto stop"
restart program = "/usr/local/sbin/mosquitto -v"
if failed port 1883 protocol mqtt then restart
check process mosquitto matching "mosquitto"
if does not exist then exec "/usr/local/sbin/mosquitto -v"
檢測配置文件
monit -t
Control file syntax OK
配置文件正確。
啓動monit
monit
web界面訪問,ip地址加上2812端口,web界面也會延遲啓動,稍等片刻。
monit狀態監控,在重啓的時候會出現Connection refused的錯誤,應該是monit延遲啓動,過了延遲的時間就可以了。
monit status
4.esp8266 esp_easy固件
固件地址是https://github.com/letscontrolit/ESPEasy,選擇合適的Flash大小下載。
esp_easy固件介紹的地址https://www.letscontrolit.com/wiki/index.php/ESPEasy
手上有一塊nodemcu esp8266正在吃灰中,正好可以刷這個固件玩玩,用esp8266download tool燒寫固件,先擦除,再進行燒寫j
配置好wifi和密碼就可以進行設備的添加了
我的配置圖
不知道爲什麼我的local time不太對,我明明已經配置了ntp服務器了,疑惑
wifi和ip地址配置
設備和io口設置
我添加了一個oled ssd1306和DHT11模塊
esp_easy設置
mqtt設置
用戶名和密碼設置很重要,還有設備中的IDX編號和domoticz中對應
5.domoticz添加設備和mqtt客戶端
mqtt的ip地址和用戶名密碼和esp_easy中mqtt設置相對應
添加虛擬傳感器DHT11
可以看到domoticz和esp_easy已經連接上了。
可以看到已經有數據了,點擊左下角的五角星就可以在儀表盤中看到了,點擊日誌就可以看到溫度和溼度的曲線
到此就ok了。。。