实现温度检测上传云数据库
esp32采集数据储存到腾讯云MySQL
大体步骤如下:
- 安装宝塔并在宝塔上搭建mqtt(EMQ)。
- 创建mysql数据库与Navicat 15 for MySQL连接数据库。
- 修改EMQ规则引擎。
- esp32读取并上传数据到云数据库。
1. 安装宝塔并在宝塔上搭建mqtt(EMQ)
宝塔面板7.x版本安装命令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装后在终端输入如下指令
/etc/init.d/bt default
会出现外网地址和账号密码,复制外网地址进入登录界面
更多安装方式可以参考宝塔官网https://www.bt.cn/
登录后完成指引,进入宝塔界面,效果如下
接下来安装EMQ,本人安装的是centos7的版本,安装方式为rpm
- 下载 emqx-ee-centos7-4.2.5-x86_64.rpm
wget https://www.emqx.cn/downloads/enterprise/v4.2.5/emqx-ee-centos7-4.2.5-x86_64.rpm
- 安装
sudo yum install emqx-ee-centos7-4.2.5-x86_64.rpm
3.运行
sudo emqx start
更多安装方式参考https://www.emqx.cn/downloads
安装完后在宝塔安全组放行下列端口
在云服务器放行下列端口
在服务器IP后加18083端口打开EMQ
2. 创建mysql数据库与Navicat 15 for MySQL连接数据库。
在宝塔中点击数据库一栏,添加数据库,输入数据库名和用户名,访问权限选择所有人。后即成功添加数据库
点击phpMyAdmin
在创建的数据库中新建表如图所示
之后下载Navicat 15 for MySQL,下载安装方式参考此处https://www.jb51.net/database/710931.html,在本地用Navicat 15 for MySQL连接数据库,填写完参数后右键点击数据选择打开连接。
3. 修改EMQ规则引擎。
在EMQ中打开规则引擎,点击资源一项,按要求添加参数,成功后显示资源可用。
创建完资源点击规则选项,点击创建规则,这里的规则就是用来根据字段切割消息,sql输入实例如下
SELECT
payload.client_id AS client_id,
payload.name AS name,
payload.date as date,
payload.time AS time,
payload.temp AS temp
FROM
"qq"
WHERE
topic = 'qq'
点击sql测试,在payload填写用于测试的数据,参考数据如下
{"name":"anyone",
"temp":"30",
"date":"2021-4-20",
"time":"20:32:30",
"client_id":"esp32"}
在topic中填写上面sql输入实例所填的topic
添加响应动作,参考代码如下
insert into
`temp` (`client_id`, `name`, `date`,`time`, `temp`)
values
(${client_id},${name},${date},${time},${temp});
随后点击确定即成功添加规则
4. esp32上传数据到云数据库。
打开arduino,输入实例代码,下载好必要的库,连接硬件后运行即可。