授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 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 = 30000
auth.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}"
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
…(img-ygoKXNOu-1715605793160)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!