ThingsBoard 开发环境搭建

什么是ThingsBoard?

ThingsBoard是一个开源平台,用于收集和可视化物联网设备的数据。可以将来自任意数量设备的数据发送到云服务器,在云服务器中可以通过可自定义的仪表板查看或共享。

安装ThingsBoard

ThingsBoard 有两种安装方式一种是直接通过安装包安装 ,再者是通过源码编译安装下面会介绍。

直接通过安装包安装

下载安装包

 wget https://github.com/thingsboard/thingsboard/releases/download/v1.3.1/thingsboard-1.3.1.deb

安装

sudo dpkg -i thingsboard-1.3.1.deb

 

不过在安装ThingsBoard之前需要先安装和设置postgreSQL数据库。

安装设置PostgreSQL

  1. 安装PostgreSQL:
  2. sudo apt install postgresql postgresql-contrib
  3. 为ThingsBoard创建数据库和数据库用户:
  4. sudo -u postgres psql
  5. 在数据库操作环境执行 ALTER USER postgres WITH PASSWORD 'postgres';
  6. 重新登录数据库 psql -U postgres -d postgres -h 127.0.0.1 -W 
  7. 创建thingsboard数据库。在数据库操作环境中执行 CREATE DATABASE thingsboard;

通过源码安装

   

  1. 安装配置java环境。推荐Java8
  2. 安装配置Maven https://blog.csdn.net/ac_dao_di/article/details/54233520
  3. 安装配置nodejs https://blog.csdn.net/u013806814/article/details/51960696
  4. 下载ThingsBoard源代码 https://github.com/thingsboard/thingsboard
  5. 最后讲生成Jar包thingsboard-2.1.1-SNAPSHOT-boot.jar
  6. 修改 /etc/thingsboard/conf/thingsboard.yml

  注释掉HSQLDB相关配置

# HSQLDB DAO Configuration
#spring:
#  data:
#    jpa:
#      repositories:
#        enabled: "true"
#  jpa:
#    hibernate:
#      ddl-auto: "validate"
#    database-platform: "org.hibernate.dialect.HSQLDialect"
#  datasource:
#    driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}"
#    url: "${SPRING_DATASOURCE_URL:jdbc:hsqldb:file:${SQL_DATA_FOLDER:/tmp}/thingsboardDb;sql.enforce_size=false}"
#    username: "${SPRING_DATASOURCE_USERNAME:sa}"
#    password: "${SPRING_DATASOURCE_PASSWORD:}"

在同一节中,取消注释PostgreSQL配置块。用thingsboard用户名和密码替换用户名和密码字段thingsboard: thingsboard-master/application/src/main/resources/thingsboard.yml

# PostgreSQL DAO Configuration
spring:
  data:
    jpa:
      repositories:
        enabled: "true"
  jpa:
    hibernate:
      ddl-auto: "validate"
    database-platform: "org.hibernate.dialect.PostgreSQLDialect"
  datasource:
    driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
    url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}"
    username: "${SPRING_DATASOURCE_USERNAME:postgres}"
    password: "${SPRING_DATASOURCE_PASSWORD:postgres}"

 

 

    7.进入Thingsboard源码主目录,执行mvn clean install.(注意要先修改thingsboard.yml 再编译)

    通过安装包安装。同样需要修改thingsboard.yml 此时 文件路径是/etc/thingsboard/conf/thingsboard.yml

 

    运行      

     如果是使用安装包安装

     运行此安装脚本: sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo

     启动ThingsBoard服务: sudo systemctl enable thingsboard sudo systemctl start thingsboard

     如果是编译源码安装:

     第一次启动前需要修改application/target/bin/install/下的install.sh和install_dev_db.sh 文件几个文件夹路径改为/application/target/的路径。

     例如:

     CONF_FOLDER=/home/user/data/log/thingsboard/thingsboard-master/application/target/conf
     configfile=thingsboard.conf
     jarfile=/home/user/data/log/thingsboard/thingsboard-master/application/target/thingsboard-2.1.1-SNAPSHOT-boot.jar
    installDir=/home/user/data/log/thingsboard/thingsboard-master/application/target/data

    run_user 改为当前的用户或者不指定(install.sh和install_dev_db.sh 都需要修改)。

   然后在application/target/bin/install/ 下执行

     ./install_dev_db.sh

    ./install.sh --loadDemo

    执行完如果没问题会提示 ThingsBoard installed successfully 。

    然后回到application/target目录执行 java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar。

     在浏览器中输入localhost:8080 ,你应该看到ThingsBoard登录页面。

     ThingsBoard 开发环境搭建_第1张图片 

    

 

docker 环境下编译

由于编译环境搭建繁琐,推荐使用docker进行编译,thingsboard可以运行在docker环境中。

下载docker 镜像:sudo docker pull curlyxi/things-board-env:v1

启动docker 镜像: sudo docker run -t -i curlyxi/things-board-env:v1

在docker环境中: cd /root/thingsboard/thingsboard-master 执行 mvn clean install 即可。

docker 中运行thingsboard

运行thingsboard前需要执行 service postgresql start 启动 postgresql.

第一次启动前需要修改application/target/bin/install/下的install.sh和install_dev_db.sh 文件几个文件夹路径改为/application/target/的路径。

     例如:

     CONF_FOLDER=/home/user/data/log/thingsboard/thingsboard-master/application/target/conf
     configfile=thingsboard.conf
     jarfile=/home/user/data/log/thingsboard/thingsboard-master/application/target/thingsboard-2.1.1-SNAPSHOT-boot.jar
    installDir=/home/user/data/log/thingsboard/thingsboard-master/application/target/data

    run_user 改为当前的用户或者不指定(install.sh和install_dev_db.sh 都需要修改)。

   然后在application/target/bin/install/ 下执行

     ./install_dev_db.sh

    ./install.sh --loadDemo

    执行完如果没问题会提示 ThingsBoard installed successfully 。

    然后回到application/target目录执行 java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar。

     在宿主机浏览器中输入localhost:8080 ,你应该看到ThingsBoard登录页面。

错误处理

     

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.0:npm (npm install) on project ui: Failed to run task: 'npm install' failed. (error code 1) -> [Help 1]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

[ERROR]

[ERROR] After correcting the problems, you can resume the build with the command

[ERROR]   mvn -rf :ui

 如果编译遇到UI 模块编译不过,可以先跳过UI编译。

 单独编译tool和application模块。编译application模块的时候修改pom.xml 注释掉UI库的依赖。

     

 

 同样会生成thingsboard-2.1.1-SNAPSHOT-boot.jar  。执行thingsboard-2.1.1-SNAPSHOT-boot.jar和上文介绍步骤一样:

      修改install_dev_db.sh和执行install.sh. 在application/target/bin/install/ 下执行

     ./install_dev_db.sh

    ./install.sh --loadDemo

    执行完如果没问题会提示 ThingsBoard installed successfully 。

    然后回到application/target目录执行 java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar。

UI库需要单独编译和单独执行

使用npm 编译UI 库.

1.安装cnpm  

 npm install -g cnpm --registry=https://registry.npm.taobao.org

2. 在UI目录依次执行

   cnpm install

   cnpm run build

   cnpm  start

3. 由于UI库是单独执行,所以需要打开的网页是 http://localhost:3000

java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar 和 cnpm run start分别在不同的终端执行。

 

 

你可能感兴趣的:(物联网)