ThingsBoard入門實戰(一):物聯網平台 ThingsBoard 簡介


物聯網平台 ThingsBoard 簡介

一、簡介

1. 背景

最近很多做設備的朋友和我說,設備接入物聯網並進行可視化管理存在困難,主要是以下兩點:

一方面,接入物聯網平台需要花費大量的時間精力金錢。而且適用性不強,也就是說如果加入新的設備,就需要大量的改動。同時由於沒有專業的可視化人員,可視化方面更是一塌糊塗。

另一方面,目前各大廠的物聯網平台產品生態封閉。物聯網平台之間無法互通,難以滿足自由互聯的需求。在可視化方面大廠則是各玩各的,無法形成軟件資產的有效沉淀。

有沒有一種幾乎不花錢,還功能強大、擴展性強、使用方便的物聯網平台呢?
答案就是Thingsboard。

2. 物聯網平台 ThingsBoard

ThingsBoard 作為目前 Github 上最流行的開源物聯網平台,可以實現物聯網項目的快速開發、管理和擴展, 是中小微企業物聯網平台的不二之選。

ThingBoard可以分為四個核心模塊:

  • 設備管理
  • 數據接入
  • 規則引擎
  • 部件面板
    在這里插入圖片描述

也就是說,ThingsBoard可用於:

  • 設備管理,資產和客戶並定義他們之間的關系。
  • 基於設備和資產收集數據並進行可視化。
  • 采集遙測數據並進行相關的事件處理進行警報響應。
  • 基於遠程RPC調用進行設備控制。
  • 基於生命周期事件、REST API事件、RPC請求構建工作流。
  • 基於動態設計和響應儀表板向你的客戶提供設備或資產的遙測數據。
  • 基於規則鏈自定義特定功能。
  • 發布設備數據至第三方系統。

涵蓋了各種常見的物聯網需求,不常見的也可以通過配置和二次開發完美完成。

三個必須了解的網站:

二、安裝

方便起見,使用Docker安裝ThingsBoard。

  1. 安裝DockerDocker-compose
    參考Docker官網和Docker-compose官網安裝即可。
  2. 新建docker-compose.yml用於定義安裝環境:
vi docker-compose.yml

  1. 編寫docker-compose.yml:
    由於 docker 搭建環境非常方便,我們直接使用兼容性最好的thingsboard/tb-postgres鏡像。
version: '2.2'
services:
  zookeeper:
    restart: always
    image: "zookeeper:3.5"
    ports:
      - "2181:2181"
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zookeeper:2888:3888;zookeeper:2181
  kafka:
    restart: always
    image: wurstmeister/kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: INSIDE://:9093,OUTSIDE://:9092
      KAFKA_ADVERTISED_LISTENERS: INSIDE://:9093,OUTSIDE://kafka:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  mytb:
    restart: always
    image: "thingsboard/tb-postgres"
    depends_on:
      - kafka
    ports:
      - "9090:9090"
      - "1883:1883"
      - "5683:5683/udp"
    environment:
      TB_QUEUE_TYPE: kafka
      TB_KAFKA_SERVERS: kafka:9092
    volumes:
      - /data/.mytb-data:/data
      - /data/.mytb-logs:/var/log/thingsboard

說明:

  • mytb - ThingsBoard服務名稱
  • restart: always - 在系統重新啟動的情況下自動啟動ThingsBoard在出現故障的情況下自動重新啟動ThingsBoard。
  • image: thingsboard/tb-postgres - docker鏡像也可以是thingsboard/tb-cassandra或thingsboard/tb
  • "PORT:PORT" 順序是 “本地端口:Docker容器內端口”
    8080:9090 - 將本地端口9090轉發至Docker容器內的HTTP端口9090
    1883:1883 - 將本地端口1883轉發至Docker容器內的MQTT端口1883
    5683:5683 - 將本地端口5683轉發至Docker容器內的COAP端口5683
  • "DIR:DIR" 順序是 “本地主機目錄:Docker容器內目錄”
    /data/.mytb-data:/data - 將主機的目錄/data/.mytb-data掛載到ThingsBoard數據目錄
    /data/.mytb-logs:/var/log/thingsboard - 將主機的目錄/data/.mytb-logs掛載到ThingsBoard日志目錄
  1. 授予目錄權限
    在啟動Docker容器之前請運行以下命令以創建用於存儲數據和日志的目錄然后將其所有者更改為Docker容器用戶,以便能夠更改用戶使用chown命令該命令需要sudo權限(該命令將要求sudo訪問的密碼):
mkdir -p /data/.mytb-data && sudo chown -R 799:799 /data/.mytb-data
mkdir -p /data/.mytb-logs && sudo chown -R 799:799 /data/.mytb-logs

  1. 使用 docker-compose 啟動容器
    在包含docker-compose.yml文件的目錄打開終端執行docker compose命令:
docker-compose pull
docker-compose up

如果需要后台啟動,就使用:

docker-compose up -d

執行完命令后等待啟動,
可以先看看 docker容器的狀態

docker ps

  1. 查看ThingsBoard平台並修改密碼
    然后在瀏覽器中打開(例如http://localhost:9090)。
    在這里插入圖片描述

默認用戶名/密碼如下:
系統管理員: sysadmin@thingsboard.org / sysadmin
租戶管理員: tenant@thingsboard.org / tenant
客戶: customer@thingsboard.org / customer

安全起見,修改下密碼:
主頁右上角三個點 – 屬性 – 更改密碼
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

接下來就是發揮動手能力的時候了~

三、探索

1. 用戶

先簡單看下三類用戶的面板,
系統管理員
在這里插入圖片描述

租戶
在這里插入圖片描述

客戶
在這里插入圖片描述

顯然租戶才是實際上的掌控者~
三者關系如下:請添加圖片描述

可以看到,默認租戶下面有三個客戶
在這里插入圖片描述

客戶A的用戶有兩個,我們剛使用的是這個叫customer的用戶
在這里插入圖片描述

可見客戶是一個抽象概念,也就是說客戶用戶才是真用戶。

2. 設備

設備主要分屬性和遙測,我們下一節會詳細講解,這里先看下最核心的遙測:
在這里插入圖片描述

遙測也就是我們常說的設備測量狀態,比如溫度計的溫度,燈的亮度等等,
由於是新設備,所以是沒有遙測值的,我們可以用http協議發一個。

3. 模擬發送遙測值

3.1 獲取對接設備的訪問令牌
在這里插入圖片描述
這里使用默認的A1_TEST_TOKEN

3.2 使用curl發送HTTP請求

curl -v -X POST -d '{"turn":"1","light":"90"}' http://103.44.238.67:9090/api/v1/A1_TEST_TOKEN/telemetry --header "Content-Type:application/json"

3.3 查看更新后的遙測值
在這里插入圖片描述

四、下一步

我們在這節簡單了解了 ThingsBoard 這個物聯網平台大殺器,
后面的主要工作就是通過在 ThingsBoard 上開發一個路燈的項目,幫助大家熟悉 ThingsBoard 的基本使用。
下節課,就從為用戶分配第一台設備開始。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM