victor 发表于 2019-4-6 16:25:51

ThingsBoard_一个优秀的开源物联网云平台

物联网云平台是一个好东西呀,和他相关的项目帮助许许多多的同学拿到了数目可观的经费支持,让大家库存里的元器件都充实了很多。今天在这里安利一个开源的物联网云平台,thingsboard。

本指南将介绍如何在Linode上安装ThingsBoard并使用 Curl / esp8266的AT指令将简单的遥测数据发送到云仪表板。官网操作:https://thingsboard.io/docs/user-guide/install/linux/

安装thingsboard

你需要

        一个服务器(树莓派其实也可以,教程里就不写了)

        一个能连接服务器的电脑

        一个能看懂本教程的脑子

你要做

        Ctrl + C

        Ctrl + V

Let’s rock!

安装Java 8 JDK

        请移步 Oracle Java 8 JDK下载界面:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

$ cd ~
$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "<下载链接>"
$ sudo yum localinstall <下载文件名.rpm>
$ rm <下载文件名.rpm>

        Java在        /usr/java/jre<你的路径>/bin/java /usr/bin/java 中

$ java --version

        检查一下java是否安装成功,没有报错就成功了!

外部数据库安装

        跳过了。。感兴趣可以移步官网操作:https://thingsboard.io/docs/user-guide/install/linux/

ThingsBoard服务安装

$ wget https://github.com/thingsboard/thingsboard/releases/download/v2.1/thingsboard-2.1.rpm
$ sudo rpm -Uvh thingsboard-2.1.rpm
$ export JAVA_OPTS="$JAVA_OPTS -Xms256M -Xmx256M"
$ sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo

        执行命令启动ThingsBoard:

$ sudo service thingsboard start

NGINX安装和反向代理

$ sudo apt install nginx

        于 /etc/nginx/conf.d/thingsboard.conf 新建thingsboard.conf

server {
    listen 80;
    listen [::]:80;

    server_name example.com;

    location / {
      # try_files $uri $uri/ =404;
      proxy_pass http://localhost:8080/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
    }
}

        重启NGINX:

$ sudo systemctl restart nginx

设置ThingsBoard设备

用户名:tenant@thingsboard.org
密码:tenant

        安装完成!

开始测试

Curl发送数据

        新建JSON文件 dummy_data.json

{
"temperature": 38,
"humidity": 50,
"pressure": 1100
}

        打开cmd

$ curl -v -X POST -d @dummy_data.json http://<你的IP>:<开放的端口(一般是80)>/api/v1/<访问令牌>/telemetry --header "Content-Type:application/json"

        发送数据成功以后,打开 ThingsBoard 设备 里面的 DHT11 Demo Device,最新遥测里显示的就是上传的数据。在仪表板库里面点进Temprature&Humidity Demo Dashboard就是上传数据的图表显示。

ESP8266+AT模式

针对NodeMCU的AT模式初始化

ESP8266有着令人愉快的AT模式,使用串口发送数据即可完成通信,这是在上位机进行串口调试的代码

AT+RST      //一键重启
AT+CWMODE=1   //配置WiFi模组工作模式为单STA模式,并把配置保存在flash,重启后生效
AT+RST         
AT+CWLAPAT+CWJAP="wifi名","wifi密码"      
AT+CIPMUX=1   //启动多ip连接
AT+CIPSTART=0,"TCP","服务器ip",端口      //连接服务器
AT+CIPSEND=0,218      //包的长度
(作为包头结尾也要发送一个新行,即\r\n)

POST /api/v1/DHT11_DEMO_TOKEN/telemetry HTTP/1.1
Host: ip地址:端口
User-Agent: curl/7.55.1   
Accept: */*
Content-Type:application/json
Content-Length: 51

{"temperature": 20,"humidity": 30,"pressure": 4400}
转载自 https://blog.hdussta.cn/untitled/thingsboard_%E4%B8%80%E4%B8%AA%E4%BC%98%E7%A7%80%E7%9A%84%E5%BC%80%E6%BA%90%E7%89%A9%E8%81%94%E7%BD%91%E4%BA%91%E5%B9%B3%E5%8F%B0.html
页: [1]
查看完整版本: ThingsBoard_一个优秀的开源物联网云平台