前言
以Thingsboard gateway为桥梁,打通Zigbee2MQTT与Thingsboard平台之间的阻隔,实现将Zigbee2MQTT上的设备数据上传到Thingsboard中,进而实现市面上众多Zigbee设备接入Thingsboard平台。
下面的例子基于Raspberry Pi4安装Thingsboard gateway,我的树莓派安装的是32-bit Raspberry Pi OS Bullseye 11 (oldstable),即32位的系统。
一、Raspberry Pi4安装docker
经过多次尝试,无法通过从仓库拉取docker安装包,所以干脆先下载好docker的.deb包,再进行安装,这样就不用从仓库拉取了。
安装步骤如下:
1.安装docker
(1)进入 https://download.docker.com/linux/raspbian/dists/;
(2)根据你安装的树莓派版本选择列表中相对于的目录。我安装的是bullseye版本,所以进入bullseye/目录;
(3)进入pool/stable/目录,选择合适树莓派系统版本的架构的包。这里32位树莓派系统可以选择armhf版本的安装包;
(4)下载.deb包,需要下载一下几个包:
- containerd.io_1.6.25-1_armhf.deb
- docker-ce_25.0.2-1raspbian.11bullseye_armhf.deb
- docker-ce-cli_25.0.2-1raspbian.11bullseye_armhf.deb
- docker-buildx-plugin_0.15.1-1raspbian.11bullseye_armhf.deb
- docker-compose-plugin_2.25.0-1raspbian.11bullseye_armhf.deb
(5)安装.deb包
将下载好的.deb上传至树莓派的/opt/docker_deb_packages/目录下,还没建这个目录的就先建目录。包都传上了后,进入/opt/docker_deb_packages/目录下,执行安装命令:
sudo dpkg -i ./containerd.io_1.6.25-1_armhf.deb \
./docker-ce_25.0.2-1~raspbian.11~bullseye_armhf.deb \
./docker-ce-cli_25.0.2-1~raspbian.11~bullseye_armhf.deb \
./docker-buildx-plugin_0.15.1-1~raspbian.11~bullseye_armhf.deb \
./docker-compose-plugin_2.25.0-1~raspbian.11~bullseye_armhf.deb
(6)安装成功后,配置docker的仓库源,配置国内的仓库,下载快些,建议还是要配置一下:
执行这个命令:
sudo nano /etc/docker/daemon.json
把下面的内容复制到文件中,然后Ctrl+o保存,Ctrl+x退出:
提示:阿里云仓库的链接"https://xxxx-.mirror.aliyuncs.com"自己去注册一个,可以参考https://blog.csdn.net/Suyiixx/article/details/129891688的注册方法。
{
"registry-mirrors": [
"https://docker.rainbond.cc",
"https://xxxx-.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
}
添加好镜像链接后,保存退出。执行下面的命令,启动docker,并添加hello-world镜像测试docker安装是否成功:
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker run hello-world
到这里,docker安装就完成了。
二、在docker安装ThingsBoard IoT Gateway
1.执行安装指令
首先进入dockerhub查看有什么版本的 ThingsBoard IoT Gateway,链接在这:
https://hub.docker.com/r/thingsboard/tb-gateway/tags?page=&page_size=&name=&ordering=last_updated
目前最新版本是:3.5.1-rpi
安装的指令如下:
sudo docker run -it -v ~/.tb-gateway/logs:/thingsboard_gateway/logs -v ~/.tb-gateway/extensions:/thingsboard_gateway/extensions -v ~/.tb-gateway/config:/thingsboard_gateway/config --name tb-gateway --restart always thingsboard/tb-gateway:3.5.1-rpi