Kombinasi MQTT+Node-Red-InfluxDB-Grafana adalah popular untuk pembinaan dashboard untuk IOT sebagaimana Apache-MyQL-PHP untuk laman web.
Kelebihannya kerana untuk interaksi data , kita hanya perlu edit konfigurasi dan tidak perlu membuat pengaturcaraan untuk kemaskini pengkalan data, ambil data, dan membuat paparan.
Di sini dipaparkan cara untuk memasang keempat-empat aplikasi ini di dalam Raspberry Pi. Sekiranya anda ada Raspberry Pi yang menanggur, selain dari PiHole, boleh juga pasang aplikasi ini supaya anda bersemangat untuk fokus kepada IOT dan tidak mahu pening memikirkan tentang pengaturcaraan.
Mosquitto (MQTT)
sudo apt install mosquitto mosquitto-clients
echo "mqtt_username:mqtt_password" > pwfile
cat pwfile
mosquitto_passwd -U pwfile
cat pwfile
sudo mv pwfile /etc/mosquitto
Code language: PHP (php)
Edit fail konfigurasi untuk menambah password untu tujuan keselamatans
sudo nano /etc/mosquitto/mosquitto.conf
Di bawah adalah yang perlu ditambah dalam fail mosquitto.conf
#edit configuration file
allow_anonymous false
password_file /etc/mosquitto/pwfile
listener 1883
Code language: PHP (php)
Boleh cuba buka satu terminal dan buka topik menggunakan mosquitto_pub
sudo /etc/init.d/mosquitto restart
mosquitto_pub -h 192.168.1.xxx -m "test message" -t environment/co2
#Ralat kerana tidak memasukkan username & password
#Connection error: Connection Refused: not authorised.
#Error: The connection was refused.
mosquitto_pub -h 192.168.1.xxx -m "test message" -t environment/co2 -u mqtt_username -P mqtt_password
Code language: PHP (php)
Boleh cuba langgan topik menggunakan mosquitto_sub
mosquitto_sub -v -t '#'
#Ralat kerana tidak memasukkan username & password
#Connection error: Connection Refused: not authorised.
#Error: The connection was refused.
mosquitto_sub -v -u mqtt_username -P mqtt_password -t '#'
ber
Code language: PHP (php)
InfluxDB
Selepas Mosquitto, komponen seterusnya adalah InfluxDB, anda boleh mendapatkan arahan terkini dari laman web influxDB
rujuk di sini :
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Code language: PHP (php)
sudo apt update
sudo apt upgrade
sudo apt update && sudo apt install -y influxdb
create database home
use home
create user grafana with password '<passwordhere>' with all privileges
grant all privileges on home to grafana
show users
user admin
---- -----
grafana true
Code language: JavaScript (javascript)
Node-Red
Komponen seterusnya adalah Node-Red
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
sudo systemctl enable nodered.service
Code language: JavaScript (javascript)
antaramuka web boleh diakses pada http://localhost:1880
Grafana
Sekarang kita pasang Grafana untuk dashboard
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
Code language: PHP (php)
Grafana boleh dilihat melalui alamat http://localhost:3000. username asal adalah admin dan password admin, anda boleh menukar kedua-duanya.
boleh ikut arahan di sini, dan sini
Youtube ini menerangkan secara terperinci bagaimana caranya untuk menggunakan ketiga-tiganya untuk membaca bacaan sensor dan memaparkan graf dalam Grafana.