当前位置: 首页 > news >正文

『亚马逊云科技产品测评』活动征文|低成本搭建物联网服务器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/

相关文章:

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

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 0. 环境 - ubuntu22(注意4G内存勉强够,部署完…...

【Pytorch】Visualization of Feature Maps(3)

学习参考来自: Image Style Transform–关于图像风格迁移的介绍github:https://github.com/wmn7/ML_Practice/tree/master/2019_06_03 文章目录 风格迁移 风格迁移 风格迁移出处: 《A Neural Algorithm of Artistic Style》(ar…...

人工智能对我们的生活影响

目录 前言 一、人工智能的领域 二、人工智能的应用 三、对人工智能的看法 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN&#x1f4…...

Mysql存储引擎分类

Mysql存储引擎分类: 在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。 InnoDB: 是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有…...

基于Python+TensorFlow+Django的交通标志识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 随着交通网络的不断扩展和智能交通系统的发展,交通标志的自动识别变得愈发重要。本项目旨在利用Python编…...

【Java 进阶篇】Jedis:让Java与Redis轻松对话的利器

在现代软件开发中,缓存系统是提高系统性能的常见手段之一,而Redis作为一个高性能的缓存数据库,被广泛应用于各类系统。如果你是Java开发者,那么使用Jedis库可以让你轻松地与Redis进行交互。本文将带你深入了解Jedis的快速入门&…...

【数据分享】我国12.5米分辨率的DEM地形数据(免费获取/地理坐标系)

DEM地形数据是我们在各种研究和设计中经常使用的数据!之前我们分享过500米分辨率的DEM地形数据、90米分辨率的DEM地形数据、30米分辨率的DEM地形数据(均可查看之前的文章获悉详情)。 本次我们为大家带来的是分辨率为12.5m的DEM地形数据&#…...

C++设计模式之策略模式

策略模式 介绍示例示例测试运行结果应用场景优点总结 介绍 策略模式是一种行为设计模式。在策略模式中,可以创建一些独立的类来封装不同的算法,每一个类封装一个具体的算法,每一个封装算法的类叫做策略(Strategy),为了保证这些策…...

spring-webflux的一些概念的理解

Spring5的webflux可以支持高吞吐量,使用相同的资源可以处理更加多的请求,它将会成为未来技术的趋势,但是相对于学习其他的框架相比,它的学习曲线很高,综合了很多现有的技术,即使按照教程学习能编写代码&…...

OpenCV快速入门:特征点检测与匹配

文章目录 前言一、角点检测1.1 角点特征1.1.1 角点特征概念1.1.2 角点的特点1.1.3 关键点绘制代码实现1.1.4 函数解析 1.2 Harris角点检测1.2.1 Harris角点检测原理1.2.2 Harris角点检测公式1.2.3 代码实现1.2.4 函数解析 1.3 Shi-Tomasi角点检测1.3.1 Shi-Tomasi角点检测原理1…...

旋转的数组

分享今天看到的一个题目,不同思路解法 题目 思路1:时间复杂度0(N*k) void rotate(int *a,int N,int k)//N为数组元素个数 { while(k--) { int tema[N-1]; for(int rightN-2;right>0;right--) { a[right1]a[right]; } a[0]tem; …...

Hive VS Spark

spark是一个计算引擎,hive是一个存储框架。他们之间的关系就像发动机组与加油站之间的关系。 类似于spark的计算引擎还有很多,像mapreduce,flink等等。 类似于hive的存储框架也是数不胜数,比如pig。 最底层的存储往往都是使用h…...

SAST静态分析工具所支持的规则

综合国内外SAST工具支持的规则,这些规则包括了国际标准、国内标准、行业标准等,这里我罗列了一下,这些规则对应的标准集合。 评估一款SAST工具时,支持规则集的多少,且每个规则集是否为全集,或者接近全集&am…...

torch 的数据加载 Datasets DataLoaders

点赞收藏关注! 如需要转载,请注明出处! torch的模型加载有两种方式: Datasets & DataLoaders torch本身可以提供两数据加载函数: torch.utils.data.DataLoader()和torch.utils.data.Datase…...

【Promise】某个异步方法执行结束后 在执行下面方法

使用Promise ,当 layer.msg(查询成功) 这个方法执行结束后 ,下面代码才会执行 let thas this async function showMessage() {await new Promise(resolve > layer.msg(查询成功, resolve));// 这里的代码将在 layer.msg 执行结束后执行thas.isGuaran…...

任意文件下载漏洞(CVE-2021-44983)

简介 CVE-2021-44983是Taocms内容管理系统中的一个安全漏洞,可以追溯到版本3.0.1。该漏洞主要源于在登录后台后,文件管理栏存在任意文件下载漏洞。简言之,这个漏洞可能让攻击者通过特定的请求下载系统中的任意文件,包括但不限于敏…...

C++(20):通过source_location实现日志函数

C++20中引入了std::source_location,用来描述函数调用的上下文信息。 其主要的成员函数如下: line():获取行号。column():获取列号。file_name():获取文件名。function_name():获取函数域名。#include <iostream> #include <string_view> #include <sour…...

【数据结构】树与二叉树(廿二):树和森林的遍历——后根遍历(递归算法PostOrder、非递归算法NPO)

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语 5.2 二叉树5.3 树5.3.1 树的存储结构1. 理论基础2. 典型实例3. Father链接结构4. 儿子链表链接结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法5.3.3 树和森林的遍历1. 先根遍历&#xff08;递归、非…...

精通Nginx(17)-安全管控之防暴露、限制访问、防DDos攻击、防爬虫、防非法引用

安全是每个系统都需要考虑的关键因素,Nginx在这方面提供了丰富的功能,使我们可以就实际情形做很精细调整。这些功能包括防信息暴露、客户端访问限制、通讯加密、防DDos攻击、防爬虫、防非法引用及防非法域名请求等。 目录 防信息暴露 关闭版本号 关闭目录列表 客户端访问…...

STM32 Flash

FLASH简介 Flash是常用的用于存储数据的半导体器件&#xff0c;它具有容量大&#xff0c;可重复擦写&#xff0c;按“扇区/块”擦除、掉电后数据可继续保存的特性。 常见的FLASH主要有NOR FLASH和NAND FLASH两种类型。NOR和NAND是两种数字门电路&#xff0c;可以简单地认为FL…...

当流媒体成为数字围城:N_m3u8DL-RE如何打破现代视频下载的壁垒

当流媒体成为数字围城&#xff1a;N_m3u8DL-RE如何打破现代视频下载的壁垒 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8…...

超个性化推荐系统架构设计与关键技术解析

1. 超个性化推荐系统的核心价值与挑战推荐系统早已不是新鲜事物&#xff0c;但真正能做到"超个性化"的却凤毛麟角。我在电商平台和内容社区做过多年推荐算法优化&#xff0c;发现大多数系统止步于"用户分群推荐"层面——把相似行为的用户归为一类&#xff…...

猿创征文 | 初见乍惊欢,久处亦怦然--我web前端的技术成长之路

目录 致看此篇的读者 初识vue 分享毕设系统作品 分享七夕情人节码源(仅登录部分码源) 学习路线 祝福语 致看此篇的读者 各位不管是新的朋友还是粉丝,大家好!很荣幸大家能在茫茫的C站博文世界中浏览我这一篇博文,在这里由衷的感谢大家!!!然后借着这一次C站举办的这…...

如何10分钟内搭建BepInEx游戏插件框架:完整入门指南

如何10分钟内搭建BepInEx游戏插件框架&#xff1a;完整入门指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx是一款功能强大的游戏插件框架&#xff0c;专为Unity Mono、…...

深入理解DFD图和ERD图的区别

DFD&#xff08;数据流图&#xff09;与 ERD&#xff08;实体关系图&#xff09;的区别 DFD&#xff08;Data Flow Diagram&#xff0c;数据流图&#xff09;和 ERD&#xff08;Entity Relationship Diagram&#xff0c;实体关系图&#xff09;是系统分析与设计中两种常用的建模…...

嵌入式软件开发系列文章——1 ARM架构下Cortex-M 内核单片机开发环境搭建—1-3 STM32CubeMX

1-3 STM32CubeMX 文章目录1-3 STM32CubeMX1-3.1 STM32CubeMX 简介1-3.2 软件获取1-3.2.1 Java 获取1-3.2.2 STM32CubeMX 获取1-3.3 软件安装1-3.2.1 Java 安装1-3.2.2 STM32CubeMX 安装1-3.4 STM32固件包简介1-3.5 STM32固件包获取1-3.6 STM32固件包安装1-3.5 参考文献1-3.1 ST…...

TI AWR1843点云数据太稀疏?手把手教你调优cfg参数,让雷达‘看得’更清楚

TI AWR1843点云数据调优实战&#xff1a;从稀疏到密集的毫米波雷达参数配置指南 毫米波雷达在自动驾驶、工业检测和智能安防等领域展现出独特优势&#xff0c;而TI AWR1843作为业界热门设备&#xff0c;其点云数据质量直接影响感知算法的效果。很多开发者在初步跑通Demo后&…...

终极指南:3个核心模块掌握京东抢购助手自动化

终极指南&#xff1a;3个核心模块掌握京东抢购助手自动化 【免费下载链接】jd-assistant 京东抢购助手&#xff1a;包含登录&#xff0c;查询商品库存/价格&#xff0c;添加/清空购物车&#xff0c;抢购商品(下单)&#xff0c;查询订单等功能 项目地址: https://gitcode.com/…...

XSKY 与平凯星辰(TiDB)完成联合解决方案互认证,存储+数据库联合交付能力再获验证

近日&#xff0c;XSKY 星辰天合与平凯星辰&#xff08;北京&#xff09;科技有限公司正式完成联合解决方案互认证。本次认证覆盖 XSKY 旗下 XEBS V6&#xff08;星飞极速版&#xff09;、XHERE V6&#xff08;星飞极速版&#xff09;、XEDP V6 三款核心产品与平凯星辰的平凯数据…...

AI小游戏开发:零代码变现全攻略

针对AI工具用于制作小游戏的推荐&#xff0c;以下从开发引擎集成、前端AI推理、3D模型生成、变现框架四个核心维度&#xff0c;结合具体工具和代码示例进行详细说明。 1. 开发引擎与AI集成工具 这类工具允许开发者或非程序员通过自然语言描述或AI辅助&#xff0c;快速生成游戏…...