1、esp32(arduino)接入阿里云MQTT及数据处理

1、遇到的问题和需求

工作中如果产品在异地,会遇到无法实时获取数据的问题。
在一些特定设备中,有获取实时数据的需求,并自动报警等服务。
这两类需求的特点是:
1、目标明确
2、需长时间监控
3、数据实时监控和服务
4、数据存储和查看
很容易想到物联网模式来满足以上需求

2、解决方案

2.1、系统框图

在这里插入图片描述
1、数据从采集器-网关-服务器-数据库
2、客户端访问服务器获取数据库内的数据
3、服务器设置门限,根据数据对采集器做出相应调整:报警、开关等

2.2、待测产品

适用于大部分长期监测的电子属性产品。
使用场景如批量老化监测、运行监测、无人值守运行等。

2.3、采集器

ESP32s及传感器。

2.3、网关

暂无,采集设备直接接入阿里云目前来看并没有劣势。有明显缺点时再改进

2.4、服务器

阿里云
详细介绍请看官网:
https://help.aliyun.com/document_detail/125800.html
红线目前用到的部分
在这里插入图片描述

2.5、数据库

不懂。暂用阿里云自带的,后期可以开发。
在这里插入图片描述

2.6、客户端

不懂。暂用阿里云自带的web界面。但发布流程繁琐。
在这里插入图片描述

3、阿里云设置

从注册到创建产品、功能定义、创建设备,这3项操作参考教程。
创建产品 https://help.aliyun.com/document_detail/73728.html?spm=a2c4g.11186623.6.571.134d6151QxieXC
创建设备 https://help.aliyun.com/document_detail/73729.html?spm=a2c4g.11186623.6.573.34d17b7bxnxTze
这部分网络资源很多,多点点会发现一些妙用,自己探索。

4、MQTT.fx模拟硬件接入阿里云

在这里插入图片描述
官网的教程如下:
https://help.aliyun.com/document_detail/86706.html?spm=a2c4g.11186623.2.13.1098102bCu4RjV#concept-d3l-fw3-p2b

这里123456耐心阅读教程填写即可,7需要运算工具,下载官方的工具算出一串大写十六进制密码。填入即可。若参数错误,可以查看Log标签页的提示。
2020-02-17更正:似乎教程中的Password生成小工具生成的密码有误。我转发一个可靠的。
链接:https://pan.baidu.com/s/1sGLjzK8u5J-G_szsHR_1_A
提取码:gi62

密码错误
连接成功
登录成功后,在Subscribe页面订阅我们的topic,
默认属性设置/sys/a1f6TiEmfUj/esp32001/thing/service/property/set

fx设置好后,我们登录阿里云,在在线调试中主动下发一条配置信息。
在这里插入图片描述
发送成功后,回到fx的Subscribe页面,可以见到已收到的消息,模仿其格式。
params之后的内容为必要的属性参数,后面我们增加参数可用同样的方式,先fx登录,订阅,再阿里云发布,就可以得到格式。
在这里插入图片描述
复制红括号内的信息至Publish页面,顺便改个值。填入订阅的topic:/sys/a1f6TiEmfUj/esp32001/thing/event/property/post,粘贴发送内容,点击publish,就模拟了一次硬件上传信息。
在这里插入图片描述
在阿里云设备中可以看到数据已刷新。
在这里插入图片描述
我们实现了信息上传,希望服务器来统一设置阈值和报警措施,如温度超过50就亮一颗LED灯。需要在场景联动中设置触发条件,和执行动作。可以参考教程。https://help.aliyun.com/document_detail/85231.html?spm=5176.11485173.0.0.242e59af5FJ8hG
在这里插入图片描述

5、采集器配置

这是一个温度5秒上传一次的demo,超过50都就亮灯。
硬件:esp32s
环境:arduino 1.8.10
库:PubSubClient.h (需要参数修改)
ArduinoJson.h (V5版)
WiFi.h 等

		ArduinoJson.h    (V5版)的解读可以参考
https://blog.csdn.net/weixin_30376083/article/details/96227469
#include <PubSubClient.h>
/* 依赖 PubSubClient 2.4.0 */
#include <ArduinoJson.h>
/* 依赖 ArduinoJson 5.13.4 */


#include <ETH.h>
#include <WiFi.h>
#include <WiFiAP.h>
#include <WiFiClient.h>
#include <WiFiGeneric.h>
#include <WiFiMulti.h>
#include <WiFiScan.h>
#include <WiFiServer.h>
#include <WiFiSTA.h>
#include <WiFiType.h>
#include <WiFiUdp.h>
#define LED_BUILTIN    2

/* 连接您的WIFI SSID和密码 */
#define WIFI_SSID        "TP-LINK_3C89BC"//替换自己的WIFI
#define WIFI_PASSWD      
  • 15
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值