当前位置: 首页 > news >正文

ESP32与SUI-101A实现用电器识别

在2021年的全国大学生电子设计竞赛H题中,设计题目为用电器分析识别装置,至今很多院校的毕业设计或是课程设计也在采用此课题,主流芯片还是STM、STC、MSP等,但是考虑到用电器识别结果的云端上传,ESP也是一个不错的选择;


设计任务

设计并制作一个根据电源线电流的电参量信息分析在用电器类别的装置。该装置具有学习和分析识别两种工作模式。在学习模式下,测试并存储用于识别各单件电器的特征参量;在分析识别模式下,实时指示在用电器的类别。
在这里插入图片描述

设计要求

  1. 基本要求
    (1)电器电流范围 5mA ~10.0A,可包括但不限于以下电器:LED 灯泡和 220V灯带、节能灯管、USB 充电器(带负载)、无线路由器、机顶盒、电风扇、热水壶、电磁炉。
    (2)自定可识别的电器种类,总数不低于 7,用序号表示。电流不大于 50mA的电器数不低于 5,包括一件自制电器,编号为 1~5;编号为 7 的电器电流大于 8A。
    (3)随机增减在用电器,实时显示可识别电器是否在用和电源线上电流的特征参量,响应时间不大于 2s。特征参量的种类、性质自定。
    (4)用电阻,电容和二极管自制 1 号电器,其电流与 2 号电器相同但相位不同,且含有谐波,两者电流差小于 1mA。
  2. 发挥部分
    (1)具有学习功能。清除作品存储的所有特征参量,重新测试并存储指定电器的特征参量。一种电器的学习时间不大于 1 分钟。
    (2)随机增减在用电器,实时显示可识别电器是否在用和电源线上电流的特征参量,响应时间不大于 2s。
    (3)提高识别电流相同,其他特性不同的电器的能力和大、小电流电器共用时识别小电流电器的能力。
    (4)装置在分析识别模式下的工作电流不大于 15mA,可以选用无线传输到手机上显示的方式。
    (5)其他

本次教程只是针对于ESP32与SUI-101A交互,故而只考虑实现基本要求(1)(2)(3)与发挥部分(1)(2)(3)。

SUI-101A(交流电能计量模块)介绍

220V串口电流电压功率采集,支持高精度ModBus
在这里插入图片描述

产品品牌 JMI 型号 SUI-101A
产品名称 超高精度全隔离电量变送器 产品等级 工业级
工作温度 -40~85℃ 供电电压 DC5V±0.2V
电流量程 0-5A 电流精度 0.2级
电压量程 0-400V 电压精度 0.2级
功率量程 0-2000w 功率精度 0.5级
采样频率 1Hz 功率因数 -1<cosθ<1
最小精度 0.1uA 最大功耗 ≤0.1W
接口支持 3.3VTTL串行接口(兼容5V) 拓展接口 2.2寸彩屏
产品重量 30g±2g 质保时间 2年
通信协议 Modbus-RTU或自定义简易协议智能识别
隔离方式 电流电压互感器全隔离
尺寸大小 长x宽x高:74.2×29.5×15 mm
传输速率 波特率:4800 9600 19200 38400 57600 115200(用户自行设置)

在这里插入图片描述

接线方式

ESP32 SUI-101A
D16 RX
D17 TX
GND GND
VIN 5V

【供电模块可根据实际情况自行选择】

完整代码

#include <Arduino.h>  //开发环境头文件
#include <ModbusMaster.h>  //Modbus协议库【用作与SUI-101A通信】
#include <U8g2lib.h>  //OLED屏幕驱动库(带中文字符库)
#include <EEPROM.h>  //内部存储调用(保证掉电保存)
#include <WiFi.h>  //WIFI驱动库实现数据局域网传输
#include <WebServer.h>  //网页驱动库,IP访问生成网页// U8G2 OLED配置
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);// SUI-101A配置
#define SUI_RX_PIN 16  //RX->D16
#define SUI_TX_PIN 17  //TX->D17
#define SUI_BAUDRATE 9600   //Modbus通信波特率
ModbusMaster node;// WiFi配置
const char* ssid = "SUI-101A";  //WIFI名
const char* password = "12345678";  //密码
WebServer server(80);  //端口// 用电器结构体
struct Appliance {char name[11];float power_th;float range_low;float range_high;
};
#define MAX_APPLIANCES 5
Appliance appliances[MAX_APPLIANCES];
int savedCount = 0;
String currentDetection = "无";// 显示控制
#define PAGE_SWITCH_INTERVAL 5000
unsigned long lastPageSwitch = 0;
bool showPrimaryPage = true;// 数据采集
#define MODBUS_READ_INTERVAL 500
unsigned long lastModbusRead = 0;
float voltage = 0, current = 0, power = 0, energy = 0;void showBootAnimation() {u8g2.clearBuffer();u8g2.setFont(u8g2_font_10x20_tf);u8g2.drawStr(30, 30, "LOADING");u8g2.sendBuffer();delay(1000);
}void updateOLED() 

文章转载自:

http://XKUYvi2g.mxbks.cn
http://lyg01TSP.mxbks.cn
http://vmRXtUOD.mxbks.cn
http://HlxwD4PE.mxbks.cn
http://TPCx2cXQ.mxbks.cn
http://lahYz741.mxbks.cn
http://ufHEKfxo.mxbks.cn
http://KkPApHzV.mxbks.cn
http://0Aznu0mF.mxbks.cn
http://SeeVHlon.mxbks.cn
http://M9tkzRQU.mxbks.cn
http://4sWcO8FP.mxbks.cn
http://LqGvlq2B.mxbks.cn
http://LuFWvOQN.mxbks.cn
http://J0lPZzYN.mxbks.cn
http://fwwVhnu6.mxbks.cn
http://5DzYPbuW.mxbks.cn
http://etGhf3wf.mxbks.cn
http://oRIgSmPD.mxbks.cn
http://PEmtJJbC.mxbks.cn
http://I7wsDGe1.mxbks.cn
http://rlR3pAae.mxbks.cn
http://C4hJhOKI.mxbks.cn
http://5f2B6eZH.mxbks.cn
http://lsC9jPNc.mxbks.cn
http://7FDywa1h.mxbks.cn
http://Nbe5TJkp.mxbks.cn
http://aW9vdsCL.mxbks.cn
http://1RqSz6Ly.mxbks.cn
http://BY0BNfjf.mxbks.cn
http://www.dtcms.com/a/371587.html

相关文章:

  • Wan2.2-S2V - 音频驱动图像生成电影级质量的数字人视频 ComfyUI工作流 支持50系显卡 一键整合包下载
  • 开始 ComfyUI 的 AI 绘图之旅-图生图(二)
  • VS2017安装Qt插件
  • ZYNQ FLASH读写
  • 容器元素的滚动条回到顶部
  • 【音频字幕】构建一个离线视频字幕生成系统:使用 WhisperX 和 Faster-Whisper 的 Python 实现
  • ncnn-Android-mediapipe_hand 踩坑部署实录
  • java面试中经常会问到的mysql问题有哪些(基础版)
  • SoundSource for Mac 音频控制工具
  • Unity学习----【进阶】Input System学习(一)--导入与基础的设备调用API
  • 第11篇:降维算法:PCA、t-SNE、UMAP
  • 【Leetcode100】算法模板之二叉树
  • 深入理解假设检验:从抛硬币到药物实验的全景讲解
  • JavaScript笔记之JS 和 HTML5 的关系
  • 第4篇 conda install pytorch==2.0.0报错
  • 基于Echarts+HTML5可视化数据大屏展示-学生综合成绩评价系统大屏
  • 探索OpenResty:高性能Web开发利器
  • Lua 核心知识点详解
  • 26考研——内存管理_内存管理策略(3)
  • MySQL索引和B+Tree的关系
  • 《云原生配置危机:从服务瘫痪到韧性重建的实战全解》
  • 论文阅读-SelectiveStereo
  • 架构思维:重温限流算法原理与实战
  • 【面试题】关于RAG的五道题
  • redis的数据类型:List
  • 【mysql】SQL自连接:什么时候需要,什么时候不需要?
  • Android网络之WIFI技术网络模型概述
  • 【Pandas】3.1-数据预处理:列的基本操作
  • 【数据结构】经典 Leetcode 题
  • vector的使用和模拟实现