个人介绍
我今年20岁,是一个计算机专业的小白,通过查询百度资料了解到阿里云的飞天加速计划·高校学生在家实践,并产生了浓厚的兴趣,于是申请了两周的体验,并且获得了一次很不错的使用感受。
阿里云ECS使用攻略
设置安全组
https://ecs.console.aliyun.com/server/region/cn-heyuan
修改密码
获取ip地址
ip地址 47.113.207.xx(保护一下我的隐私) 可以finnalshell连接
收获总结,展望未来
让我了解到了服务器的强大,并在课余时间看到b站上有同学自己搭建服务器的过程,其开机造成的巨大声响让我在枯燥的学习中得到了一丝快乐。
我的收获
1.连接服务器
获取ip地址和修改密码这在之前讲过,这里不再赘述。讲密码和ip输入finalshell中,即可连接。
2.安装docker
安装一组工具
sudo yum install -y yum-utils
- 设置 yum 仓库地址
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新 yum 缓存
sudo yum makecache fast #yum 是包管理器
- 安装新版 docker ce是社区版,ee是企业版
sudo yum install -y docker-ce docker-ce-cli containerd.io
- 启动docker
systemctl start docker
- 安装成功以后,检查启动状态 :
docker version
3.mosquitto
mqtt服务器知识
- 发布时clientID 一旦确定后面就要根据它来 (此时设置100)
开启
- docker search mosquitto
- docker pull eclipse-mosquitto
先做完数据卷配置再开启容器
sudo docker run -it --name=mosquitto --privileged \ -p 1883:1883 -p 9001:9001 \ -v /home/dxy/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \ -v /home/dxy/mosquitto/data:/mosquitto/data \ -v /home/dxy/mosquitto/log:/mosquitto/log \ -d eclipse-mosquitto
1883为固定配置端口,访问时9001不行
- docker exec -it mosquitto sh 进入容器
客户端发布
同一个传感器里面的数据:
- -t 发布主题 不一样
- “name” 显示的名称 不一样
- “unique_id” 实体id 不一样
- "value_template"不一样
mosquitto_pub -h (你的ip) -p 1883 -t "homeassistant/sensor/room2-temp/config" -u (你的用户名) -P (你的密码) -i "pub100" -m '{"device_class": "temperature", "name": "BPM", "unique_id":"room2-temp", "state_topic": "homeassistant/sensor/room2/state", "unit_of_measurement": "/min", "value_template": "{{ value_json.BPM}}" }'
mosquitto_pub -h (你的ip) -p 1883 -t "homeassistant/sensor/room2-humi/config" -u (你的用户名) -P (你的密码) -i "pub100" -m '{"device_class": "humidity", "name": "AVG", "unique_id":"room2-humi", "state_topic": "homeassistant/sensor/room2/state", "unit_of_measurement": "/min", "value_template": "{{ value_json.Avg}}" }'
- 客户端接收
mosquitto_pub -h (你的ip) -p 1883 -t "homeassistant/sensor/room2/state" -u (你的用户名) -P (你的密码) -i "pub100" -m '{ "BPM": 42, "Avg": 54 }'
配置
数据卷配置
- 在本地新建目录
mkdir /home/dxy/mosquitto
cd /home/dxy/mosquitto
sudo mkdir config
sudo mkdir data
sudo mkdir log
- 新建配置文件
vi ./config/mosquitto.conf
内容如下
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
listener 1883 //不加这一句会在新版本2.x.x中报错:Error: Address not available
- 修改目录权限
chmod -R 755 /home/dxy/mosquitto
chmod -R 777 /home/dxy/mosquitto/log
设置用户
在 /home/dxy/mosquitto/config/mosquitto.conf 中继续添加
# 开启匿名模式,关闭之后我测试机连不上 allow_anonymous true # 指定密码文件 password_file /mosquitto/config/pwfile.conf
- 创建并修改密码文件权限
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
- 创建用户
mosquitto_passwd -b /mosquitto/config/pwfile.conf (此处为用户名) (此处为密码)
## 这个是mqtt服务器登录的账号密码
4.homeassitant
开启
- docker search home-assistant
- docker pull homeassistant/home-assistant
docker run -d --name="hass" -v ${HOME}/hass/mac_config -p 8123:8123 homeassistant/home-assistant
- 8123:8123 前面的是映射地址,后面的固定为8123
- 该语句创建一个网站,里面不包含mqtt服务器
配置
无需进入容器,无需配置文件
最终效果如下,通过传感器连接mqtt服务器(搭建在阿里云服务器上)即可传入数据,并实时显示!