[Thingsboard] ทำ IoT Platform ด้วย Thingsboard + PostgreSQL
Thingsboard คือ IoT platform ตัวหนึ่งที่เป็น open-source (จริงๆก็มีเสียเงินนะ ชื่อว่า PE หรือ Professional edition และ onCloud service) รองรับการเชื่อมต่อของ Devices ผ่าน MQTT CoAP และ HTTP อีกทั้งยังสามารถ integrate service พวก AWS IoT, Azure IoT และอื่นๆเข้ามาใช้งานได้ด้วยเช่นกัน ในส่วนของการติดตั้งก็จะ support ตั้งแต่ Raspberry Pi ไปจนถึงรันบน Kube ที่เป็น Container orchestration เลย
สิ่งที่ต้องมีนะครับ
- Docker engine and Docker-compose
เริ่มกันเลย
- สร้างไฟล์ docker-compose.yml กันก่อน
version: '3.4'
services:
thingsboard:
container_name: thingsboard
image: thingsboard/tb-postgres
ports:
- 9090:9090
- 1883:1883
- 5683:5683/udp
restart: always
depends_on:
- postgresql
environment:
DATABASE_ENTITIES_TYPE: sql
DATABASE_TS_TYPE: sql
SPRING_JPA_DATABASE_PLATFORM: org.hibernate.dialect.PostgreSQLDialect
SPRING_DRIVER_CLASS_NAME: org.postgresql.Driver
SPRING_DATASOURCE_MAXIMUM_POOL_SIZE: 5
SQL_POSTGRES_TS_KV_PARTITIONING: MONTHS
SPRING_DATASOURCE_URL: jdbc:postgresql://postgresql:5432/thingsboard
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: postgresPassword
postgresql:
container_name: postgresql
image: postgres:11.5-alpine
restart: always
environment:
POSTGRES_PASSWORD: postgresPassword
POSTGRES_USER: postgres
POSTGRES_DB: thingsboard
ports:
- 5432:5432
thingsboard/tb-postgres: เป็น docker image ของ Thingsboard ที่เชื่อมต่อเข้ากับ PostgreSQL database โดยจะมี port ที่ถูก expose ออกมาเป็น 9090 ซึ่งจะเป็นหน้า Web UI ของ Thingsboard, 1883 เป็น Port สำหรับ MQTT และ 5683 สำหรับ CoAP
postgres:11.5-alpine: เป็น image ของ PostgreSQL ซึ่งจะมี port 5432 สำหรับให้ service อื่นๆเข้ามาเชื่อมต่อได้
- จากนั้นก็ทำการรัน docker-compose ขึ้นมาเลยโดยที่เราจะต้องอยู่ใน folder เดียวกันกับไฟล์ docker-compose.yml ข้างบนนะครับ
docker-compose up -d
- แล้วก็จะได้หน้าตาแบบนี้ครับ รอให้ docker มัน pull image ลงมาสักครู่
- หลังจากที่เรารัน docker-compose เรียบร้อยแล้วมาลองดูว่า container ของเรานั้นทำงานอยู่ไหมโดยใช้คำสั่ง
docker ps -a
- ก็จะได้หน้าตาแบบนี้ ว่า container ของเรากำลังรันอยู่นะจ๊ะ…
ทดสอบเข้า Web browser แล้วไปที่ http://localhost:9090 กันดูนะครับ
Systen Administrator: sysadmin@thingsboard.org / sysadmin คือ role ที่ใหญ่ที่สุดสามารถกำหนด tenant admin ได้จัดการระบบต่างๆได้
Tenant Administrator: tenant@thingsboard.org / tenant เป็น admin ที่จะมีไว้สำหรับสร้าง Asset, Device, Dashboard หรือการกำหนด rule engine
Customer User: customer@thingsboard.org / customer คือ end-user
เสร็จเรียบร้อยครับ ส่วนที่เหลือก็อยู่ที่แต่ละคนละเอาไปประยุกต์ใช้กันต่อไปแล้ว เบื้องต้นสำหรับผม ถ้าเรากำลังจะทำระบบ IoT ขึ้นมาสักตัวหนึ่ง ส่วนตัวคิดว่าการใช้ docker-compose ร่วมกัน Thingsboard Platform น่าจะเป็นวิธีที่ง่ายที่สุดและเร็วที่สุด แต่จริงๆทางฝั่ง Thingboard เขาก็มี Cloud service ให้บริการอยู่เหมือนกันข้อดีก็คือเราไม่จำเป็นต้องมา Maintain ระบบแค่มีหน้าที่ส่งข้อมูลกับนำข้อมูลมาวิเคราะห์หรือแสดงผลเท่านั้นก็พอ ก็อาจจะเป็นอีก IoT Platform หนึ่งให้เราเลือกใช้ในอนาคตต่อไปนะครับ
สำหรับวันนี้ขอบคุณและสวัสดีครับ 🙂
ThingsBoard is an open-source IoT platform for data collection, processing, visualization, and device management.
The PostgreSQL object-relational database system provides reliability and data integrity.
The ThingsBoard documentation can help you set up ThingsBoard, learn about the platform and get your IoT projects running on ThingsBoard.