『亚马逊云科技产品测评』活动征文|低成本搭建物联网服务器thingsboard

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。

0. 环境

- ubuntu22(注意4G内存勉强够,部署完啥都不干用到2.75G)
- win10 + MQTTX + POSTMAN
- aws

1. 启动实例

登录https://aws.amazon.com/cn/

创建服务器
Search栏输入 -> EC2
-> 启动实例 -> 
-> Quick Start: Amazon Linux aws,
-> 实例类型:选择符合条件的免费套餐,这里我账号免费的只有1G1核
-> 密钥对:创建密钥对
-> 名称:zzzzzzzzzzzzzzzzzzzz2#,RSA,.pem,然后保存到本地。ssh登录需要用到。
-> 创建实例

得到了服务器IP:54.195.159.170

连接到实例
打开 MobaXterm -> Session -> SSH 
-> Remote host: 54.195.159.170
-> 勾选Specify username: ec2-user
-> Avanced SSH settings
-> 勾选 Use private key,选择zzzzzzzzzzzzzzzzzzzz2#.pem

按照惯例部署frp

wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz && \
tar -zvxf frp_0.52.3_linux_amd64.tar.gz && \
cd frp_0.52.3_linux_amd64 && \
vim frps.toml

添加以下内容:

bindPort = 30000
auth.method = "token" 
auth.token = "520101"
webServer.addr = "0.0.0.0"
webServer.port = 30001       
webServer.user = "admin"
webServer.password = "jian@123"

运行

./frps -c frps.toml &

服务器开启端口
通过web配置,开启自定义TCP,30000、30001、30002、30003

2. 安装docker

2.1 amazon linux 2023(不是必需,事后才发现1G不够部署thingsboard)

$ sudo yum remove docker-ce docker-ce-cli containerd.io
$ sudo dnf install -y docker
$ sudo systemctl enable --now docker
$ sudo systemctl status docker
$ sudo docker run hello-world

  
2.2 ubuntu22 安装docker

$ sudo apt remove docker docker-engine docker && \
sudo apt update && \
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common && \
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - && \
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && \
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io
$ sudo systemctl status docker
$ sudo systemctl restart docker
$ sudo docker run hello-world

3. ubuntu22初始化thingsboard

mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data && \
mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs

运行:

docker run -itd -p 18080:9090 -p 7070:7070 -p 1883:1883 -p 5683-5688:5683-5688/udp -v ~/.mytb-data:/data \
-v ~/.mytb-logs:/var/log/thingsboard --name mytb --restart always thingsboard/tb-postgres

配置frp

wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
tar -zvxf frp_0.51.3_linux_amd64.tar.gz
cd frp_0.51.3_linux_amd64
gedit frpc_aws.ini

输入以下内容:

serverAddr = "54.195.159.170"
serverPort = 30000auth.method = "token" 
auth.token = "520101"[[proxies]]
name = "tcp1"
type = "tcp"
localIP = "127.0.0.1"
localPort = 18080
remotePort = 30002[[proxies]]
name = "web1"
type = "tcp"
localIP = "127.0.0.1"
localPort = 1883
remotePort = 30003

运行

./frpc -c frpc_aws.ini &


4. 登录测试


浏览器打开:54.195.159.170:30002
默认账号:

System Administrator: sysadmin@thingsboard.org / sysadmin
Tenant Administrator: tenant@thingsboard.org / tenant
Customer User: customer@thingsboard.org / customer

 


5. 设备相关操作


以租户管理员登录thingsboard

Tenant Administrator: tenant@thingsboard.org / tenant


5.1 新建设备


-> 实体 -> 设备 -> 添加设备 -> 添加设备 -> 
-> 名称:My New Device -> 添加

5.2 设备上传信息


用mqtt.fx调试:
IP:        192.168.125.146
port:        1883
client id:    1234
UserName:    FBXGO4WNt8u1E5UwJD2E
发送主题:    v1/devices/me/telemetry
发送内容:    {temperature:25.2}

 

用postman调试:
postman -> file -> import: 

curl -v -X POST http://54.195.159.170:30002/api/v1/FBXGO4WNt8u1E5UwJD2E/telemetry --header Content-Type:application/json --data "{temperature:26}"

5.3 向设备下发消息

用mqtt.fx调试:
订阅主题:    v1/devices/me/attributes
-> 实体 -> 设备 -> My New Device -> 属性 -> 客户端属性 -> 添加或修改 键名:test,数值:1236

接收到内容:    {test: 1236}

5.4 http调试

用mqtt.fx调试:
IP:        54.195.159.170
port:        30003
client id:    1234
UserName:    FBXGO4WNt8u1E5UwJD2E
发送主题:    v1/devices/me/attributes
发送内容:    {"attribute1": "value2", "attribute2": true}

用curl调试:
修改:

curl -v -X POST --data "{"attribute1": "value2", "attribute2":true, "attribute3": 43.0}" http://54.195.159.170:30002/api/v1/FBXGO4WNt8u1E5UwJD2E/attributes --header "Content-Type:application/json"

获取:

curl -v -X GET "http://54.195.159.170:30002/api/v1/FBXGO4WNt8u1E5UwJD2E/attributes?clientKeys=attribute1,attribute2&sharedKeys=shared1,shared2"


可以得到{"client":{"attribute2":true,"attribute1":"value2"}}

6. 数据可视化


仪表板 -> 添加仪表板 -> 标题:New Dashboard


-> 添加部件 -> Cards -> Value card
-> 设备: My New Device
-> Value: decimals 1
-> 添加

7. 告警

7.1 添加仪表板

仪表板 -> 选择仪表板:New Dashboard -> Edit mode
-> 添加部件 -> Alarm widgets -> Alarm table
-> 设备: My New Device
-> 添加

-> 保存

7.2 添加设备告警

配置 -> 设备配置 -> default -> 
-> 告警规则
-> 切换编辑模式
-> 添加告警规则
-> 告警类型:High Temperature
-> 添加告警条件 -> 添加键名筛选器 -> 键类型:Timeseries -> 键名:temperature -> 键类型:数字 -> 添加 -> 操作:大于 -> 值:35 -> 添加 -> 保存

7.3 效果

当上传温度数据大于刚才告警设置的规则, 就会提示告警信息。

参考:

[1]Amazon Linux 2023 安装Docker和Docker Compose,https://juejin.cn/post/7243828605044850749
[2]https://thingsboard.io/docs/user-guide/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/215257.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win11渗透武器库,囊括所有渗透工具

开箱即用,最全的武器库,且都是2023年11月最新版,后续自己还可以再添加,下载地址:https://download.csdn.net/download/weixin_59679023/88565739 服务连接 信息收集工具 端口扫描 代理抓包 漏洞扫描 指纹识别 webshel…

Java对象逃逸

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、相关知识3.1 逃逸…

医院预约管理系统开发 代码展示 九价疫苗接种预约功能(含小程序源代码)

基于微信小程序的疫苗预约系统让疫苗信息,疫苗预约信息等相关信息集中在后台让管理员管理,让用户在小程序端预约疫苗,查看疫苗预约信息,该系统让信息管理变得高效,也让用户预约疫苗,查看疫苗预约等信息变得…

CAN实验

CAN 寄存器 HAL库函数 代码 #include "./BSP/CAN/can.h"CAN_HandleTypeDef g_can1_handle; CAN_TxHeaderTypeDef g_can1_txheader; CAN_RxHeaderTypeDef g_can1_rxheader;/* STM32F103 TS1 8 TS2 7 BRP 3 波特率:36000 / [(9 8 1) * 4] 500Kbps …

Docker的项目资源参考

Docker的项目资源包括以下内容: Docker官方网站:https://www.docker.com/ Docker Hub:https://hub.docker.com/ Docker文档:https://docs.docker.com/ Docker GitHub仓库:https://github.com/docker Docker官方博客…

vcsa6.7打补丁操作

首先到官网中查找到最新的patch,需要有注册账号才可操作 网址链接:https://customerconnect.vmware.com/patch#search 下载后把iso文件上传到磁盘中,vcsa虚拟机中做光盘iso挂接后, 使用浏览器输入https://ip:5480登录&#xff…

DQN算法

DQN算法 教程链接 DataWhale强化学习课程JoyRL https://johnjim0816.com/joyrl-book/#/ch7/main DQN算法 DQN(Deep Q-Network) 主要创新点在于将Q-learning算法中的Q表记录动作价值函数转为引入深度神经网络来近似动作价值函数 Q ( s , a ) Q(s,a) Q(s,a),从而能够处理连续…

基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(一)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 为了增加流程节点配置的功能的灵活性与方便性,这里增加流程节点的配置。 1、相应表结构如下&a…

虚拟人物视频

背景 大家好,我是小欣,是这个博客的虚拟助手。在这里,我将为大家提供各种有趣、实用、甚至是意想不到的信息。作为一个年轻的语言模型,我的目标是为你们呈现出最有趣和有深度的内容。 我喜欢与大家分享知识、解答问题&#xff0…

NLP中 大语言模型LLM中的思维链 Chain-of-Thought(CoT) GoT

文章目录 介绍思路CoT方法Few-shot CoTCoT Prompt设计CoT投票式CoT-自洽性(Self-consistency)使用复杂的CoT自动构建CoTCoT中示例顺序的影响Zero-shot CoT 零样本思维链 GoT,Graph of Thoughts总结 介绍 在过去几年的探索中,业界发现了一个现…

2023.11.24 海豚调度,postgres库使用

目录 海豚调度架构dolphinscheduler DAG(Directed Acyclic Graph), 个人自用启动服务 DS的架构(海豚调度) 海豚调度架构dolphinscheduler 注:需要先开启zookeeper服务,才能进行以下操作 通过UI进行工作流的配置操作, 配置完成后, 将其提交执行, 此时执行请求会被…

[C++历练之路]C++模板还能这么玩,已经走了好多弯路,后悔没有早点学会到。

W...Y的主页 😊 代码仓库分享💕 🍔前言: 在C的世界里,模板是一种强大而神奇的工具,宛如编程的瑰宝匣,蕴藏着无限的可能性。它们不仅能够让我们编写通用的代码,还能够在编译时实…