ติดตั้ง Influxdb ใน PI 4B
บทความนี้แนะนำการลง Influxdb เพื่อเป็นที่เก็บข้อมูลจาก ChirpStack LoRaWAN Network Server
ใช้คำสั่งง่ายๆ ตามนี้
sudo apt update
sudo apt upgrade
sudo apt install influxdb
sudo apt install influxdb-client
ทดสอบโดย
influx
Connected to http://localhost:8086 version 1.6.4
InfluxDB shell version: 1.6.4show databases
ใน ChirpStack LoRaWAN Network Server หากเราสร้าง 1 Application ให้เราเตรียม Database ใน Influx รองรับไว้ 1 Database
ตอนตั้งค่า Integration ให้กับ Appliction ให้เลือก Database ตรงกับที่สร้างรอไว้ใน Influxdb
ตัวอย่างเช่น ใน Integrations ของ app แรก จะเขียนลง Database name: loraserver ส่วนใน app2 จะเขียนลงใน Database name: pyboard
วิธีการคือ
- สร้าง Database ใน Influxdb
เข้า Client ด้วยคำสั่ง influx แล้วใช้คำสั่ง create database loraserver
influx
Connected to http://localhost:8086 version 1.6.4
InfluxDB shell version: 1.6.4
> create database loraserver
> show databases
name: databases
name
— —
_internal
loraserver
ตอนใช้คำสั่ง show databases จะมี Database loraserver เพิ่มขึ้น
2. เชื่อม Integration จาก ChirpStack เข้ากับ influxdb
เลือก app ใน Application เลือกแทป INTEGRATION คลิก + create
เลือก influxdb Integration
API endpoint: http://localhost:8086/write
user:admin
password:admin
Database Name: loraserver
Retention: ว่างไว้
Timestamp: Microsecond
เมื่อข้อมูลไหลเข้า Database ของ Influxdb ตัว structure ของ measurements จะสร้างให้อัตโนมัติ เมื่อใช้ Terminal Console เช็คดูข้อมูลจะเห็นดังต่อไปนี้
influx
Connected to http://localhost:8086 version 1.6.4
InfluxDB shell version: 1.6.4> use loraserver
> show measurements
name: measurements
name
----device
_frmpayload_data_analogOutput_5
device_frmpayload_data_barometer_3
device_frmpayload_data_digitalOutput_4
device_frmpayload_data_digitalOutput_5
device_frmpayload_data_digitalOutput_6
device_frmpayload_data_digitalOutput_7
device_frmpayload_data_humiditySensor_2
device_frmpayload_data_illuminanceSensor_4
device_frmpayload_data_illuminanceSensor_5
device_frmpayload_data_illuminanceSensor_6
device_frmpayload_data_illuminanceSensor_7
device_frmpayload_data_illuminanceSensor_8
device_frmpayload_data_illuminanceSensor_9
device_frmpayload_data_temperatureSensor_1
device_uplink
ลองแสดงข้อมูลจาก Table device_frmpayload_data_temperatureSensor_1
> select * from device_frmpayload_data_temperatureSensor_1
name: device_frmpayload_data_temperatureSensor_1time application_name dev_eui device_name f_port value
— — — — — — — — — — — — — — — — — — — — — — — — — -
1586974525596215000 app 24c5d9e632580182 pyboard 2 26
1586974535290081000 app 24c5d9e632580182 pyboard 2 26
1586974543551887000 app 009bd024718c3b3f UNO1 1 29.5
1586974545579620000 app 24c5d9e632580182 pyboard 2 26
1586974556072930000 app 24c5d9e632580182 pyboard 2 26
1586974566176657000 app 24c5d9e632580182 pyboard 2 26
1586974576479520000 app 24c5d9e632580182 pyboard 2 26
1586974586756926000 app 24c5d9e632580182 pyboard 2 26
1586974589486971000 app 009bd024718c3b3f UNO1 1 29.5
เราสามารถเริ่มเรียนดูข้อมูลเป็น Graph ได้ด้วยโปรแกรม Grafana ที่จะกล่าวต่อไป
3. สร้าง Database pyboard ใน Influxdb สำหรับ app2 เพิ่ม ด้วยวิธีเดียวกับ Database loraserver
ให้เรียกคำสั่ง$influx
Connected to http://localhost:8086 version 1.6.4
InfluxDB shell version: 1.6.4> show databases
name: databases
name
— —
_internal
loraserver> create DATABASE pyboard
> show databases
name: databases
name
— —
_internal
loraserver
pyboard> use pyboard
Using database pyboard
> show measurements
name: measurements
name
— —
device_frmpayload_data_analogOutput_5
device_frmpayload_data_barometer_3
device_frmpayload_data_digitalOutput_4
device_frmpayload_data_digitalOutput_5
device_frmpayload_data_digitalOutput_6
device_frmpayload_data_digitalOutput_7
device_frmpayload_data_humiditySensor_2
device_frmpayload_data_temperatureSensor_1
device_uplink
สามารถเช็คดูข้อมูลว่าไหลเข้าหรือยังด้วยคำสั่ง
> select * from device_frmpayload_data_temperatureSensor_1
name: device_frmpayload_data_temperatureSensor_1time application_name dev_eui device_name f_port value
— — — — — — — — — — — — — — — — — — — — — — — — — -
1587083226877621000 app2 24c5d9e632580182 pyboard 2 26
1587083242287061000 app2 24c5d9e632580182 pyboard 2 26
1587083252292785000 app2 24c5d9e632580182 pyboard 2 26
1587083261713037000 app2 24c5d9e632580182 pyboard 2 26
1587083271404273000 app2 24c5d9e632580182 pyboard 2 26.1
1587083286967766000 app2 24c5d9e632580182 pyboard 2 26.1
1587083296006273000 app2 24c5d9e632580182 pyboard 2 26.1
1587083306299015000 app2 24c5d9e632580182 pyboard 2 26.2
1587083316597661000 app2 24c5d9e632580182 pyboard 2 26.2
1587083328451857000 app2 24c5d9e632580182 pyboard 2 26.2
1587083337175096000 app2 24c5d9e632580182 pyboard 2 26.2
1587083348825164000 app2 24c5d9e632580182 pyboard 2 26.2
1587083359613355000 app2 24c5d9e632580182 pyboard 2 26.3
1587083368062238000 app2 24c5d9e632580182 pyboard 2 26.3
1587083378357078000 app2 24c5d9e632580182 pyboard 2 26.3
1587083390546059000 app2 24c5d9e632580182 pyboard 2 26.3
1587083398952400000 app2 24c5d9e632580182 pyboard 2 26.4
1587083409239253000 app2 24c5d9e632580182 pyboard 2 26.4
1587083
Reference: https://www.youtube.com/watch?v=aliHXCR564k