Gerenciar dispositivos com ThingsBoard

Fiquei sabendo do projeto há pouco. Gerenciar dispositivos com ThingsBoard pode ser minha nova meta, o projeto é open source, roda em diversas arquitetura e hoje vou mostrar como configurá-lo em um Raspberry Pi.

O que é ThingsBoard?

A descrição do site resume em gerencimento de dispositivos, coleção de dados, processamento e visualização para IoT.

Entre no site, se você manja de inglês poderá assistir ao vídeo de apresentação do produto, vale muito a pena.

Instalação do ThingsBoard no Raspberry

O serviço roda sobre Java 8. Verifique se já o tem instalado em seu Raspberry Pi:

Base de dados

Particularmente, não acho uma ótima solução instalá-lo no Raspberry por conta de I/O no cartão micro SD. Porém é a melhor forma de economizar em um projeto, tanto em hardware como em espaço e a curto prazo, energia.

O ThingsBoard pode usar base de dados SQL ou NoSQL (Cassandra, no caso) para gerenciar dispositivos. Por padrão, ele usa uma base embarcada HSQLDB, conveniente para testes e desenvolvimento, mas não é recomendado para ambientes de produção. Eu vou utilizar a base embarcada, mas vou deixar o procedimento para configuração da base de dados recomendada.

Configurar PostgreSQL

A instalação é um procedimento básico. Abra um console e execute:

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
sudo service postgresql start

Ao finalizar a instalação, crie a base de dados para o ThingsBoard.

psql -U postgres -d postgres -h 127.0.0.1 -W

CREATE DATABASE thingsboard;
\q

Instalação do serviço

A solução mais rápida e indolor é baixar o pacote de instalação pronto. Porém, você pode pegar os fontes aqui se desejar compilá-lo.

wget -c https://github.com/thingsboard/thingsboard/releases/download/v2.3.1/thingsboard-2.3.1.deb
sudo dpkg -i thingsboard*deb
export JAVA_OPTS="$JAVA_OPTS -Dplatform=rpi -Xms256M -Xmx256M"

Aproveite e coloque no ~/.bashrc essa última linha. Use seu editor preferido para tal, basta ir à última linha do arquivo e fazer a adição do conteúdo.

Configurar o ThingsBoard para usar PostgreSQL

Como disse, vou de padrão, mas se optou por utilizar a base de dados PostgreSQL, será necessário editar o arquivo /etc/thingsboard/conf/thingsboard.yml.

Ao editar, comente toda a seção relacionada ao 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:}"

E descomente a seção relacionada ao PostgreeSQL:

# 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}"

Execute o script de instalação

Feito isso, hora de fazer a instalação do serviço:

sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo

Não se incomode com o tempo, não é realmente rápida essa parte. Não tenha nada rodando na porta 8080. Isto é, se estiver executando o Blynk server dos artigos anteriores, pare-o agora ou então mude a porta de serviço do ThingsBoard.

Iniciando o serviço

Para iniciar o serviço para poder gerenciar dispositivos, execute o comando a seguir:

sudo service thingsboard start

A tela final deve ser algo semlhante a isso:

Gerenciar dispositivos - instalação

Agora já devemos estar hábeis a abrir a interface, que deve levar até 2 minutos para se configurar.

Resolução de problemas

Os sinais de anomalia devem estar contidos nos logs. Sempre olhe os logs antes de postar dúvidas por aí, será mais rápido e também mais fácil ir direto à solução do problema.

Os logs ficam em /var/log/thingsboard. Uma maneira de procurar por erros é através do comando grep:

grep ERROR /var/log/thingsboard/thingsboard.log

Primeiro login

Gerenciar dispositivos - tela de login

O login padrão é:

sysadmin@thingsboard.org
sysadmin

E a tela inicial é essa:

Gerenciar dispositivos - primeiro login

O login padrão de “inquilino” é:

tenant@thingsboard.org
tenant

Para clientes demo, os logins são:

customer@thingsboard.org ou customerA@thingsboard.org
customerB@thingsboard.org
customerC@thingsboard.org

Para todos os clients, a senha padrão é a mesma: customer .

Essas informações estão na documentação do “Demo account“.

Daremos sequencia em outros artigos, esse é apenas para a instalação. Espero que acompanhe e até a próxima!

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Um comentário em “Gerenciar dispositivos com ThingsBoard

Fechado para comentários.