esp_easy固件配合domoticz用於智能家居溫溼度監控

 

  • 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了。。。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章