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

基于STM32的智能插座项目

本项目基于stm32f103c8t6芯片通过集成众多模块和元器件,通过ESP01-S和阿里云平台实现智能插座的项目开展。资料获取到咸🐟:xy591215295250 \\\或者联系wechat 号:comprehensivable

随着电子科学与技术的快速发展,软硬件成本持续降低,智能家居逐渐进入公众视野,智能插座作为智能家居的一部分而备受关注。本项目主要目的为了减少由于家用电器使用不当引发火灾以及电器待机状态带来的能源浪费,促进智能家居的普及和推广节能减排的政策。

本文基于stm32构建了智能插座系统,该系统可测量用电器件的电压、电流和功率等参数,一旦电器功率超载,系统将自动断电并发出警报。系统的硬件部分整合了核心板、电源转换模块、电压电流互感器和继电器等组件,使用电压电流互感器获取电信号,通过ADC进行采样和数据传输,单片机处理数据后显示用电器件的参数信息,利用WIFI模块与手机实现远程信息传输,实现系统的监控和数据分析。该系统最终实现了智能插座的预想功能,通过手机APP监测插座的开关状态和显示电器设备的能耗情况,包括电压、电流和功率参数,并实时在OLED屏幕上显示。同时,当电器设备的功率超过设定阈值时,智能插座将自动切断电源并发出警报提示。经过测试,系统取得了预期的结果,智能插座的研究对于节能和家用电器安全使用具有重要意义,通过远程监控电器设备的能耗情况,有助于确保电器的安全使用。此外,在电器设备闲置时远程切断电源可实现节能效果,为节约能源做出贡献。


以上为本项目的摘要,其项目背景、项目主要内容和项目功能在摘要中已简要表达;

以下内容主要为详细的介绍本次项目中所使用到的硬件,包括整体硬件分布以及各个模块选型依据和主电路,主要包括核心控制模块、电源转换模块、电压电流信号采集电路、远程通信模块、显示屏模块和继电器模块。

本项目需要完成所预期的功能包括对用电器件的电压电流以及功率进行测量并且显示,超过阈值进行自动断电以及报警提示,使用手机上位机软件进行远程监控[26,27],对用电器件进行通断状态控制和用电数据统计,不同色彩led显示不同工作状况,采用电路板进行集成,整体集成电路板分布如下图3.1所示。

 图3.1 整体硬件布局

通过采用PCB绘制软件来绘制电路板布局,提前分配好其MCU的管脚功能控制,尽量将整体紧凑排列,其中,由于一块电路板上涉及强电和弱电,需要进行电气隔离。


本设计中,主程序控制系统执行,首先对系统参数进行初始化,其中包括IO口、串口、定时器、ADC、按键等参数,系统使用OLED进行开机过渡,后续进行自检,包括对按键,继电器和LED等硬件检查是否正常,接入用电器件后,通过电压电流互感器采集电信号,通过ADC采集并且进行计算获得功率等数据,通过设定功率阈值,程序判断是否超过阈值,当超过阈值后进行断电并且报警提示,若是没有超过阈值便将相关数据显示于OLED上,其中使用WIFI模块进行远程监控[28],通过指令控制继电器通断来控制插座的通断,通过数据传输至手机上位机,对于用电器件的使用电量数据情况进行统计监控,其整体流程图见下图4.1所示。

4.1 主程序流程图 

采用远程通信目的主要为监控用电器件的用电信息以及控制插座的通断,当MCU通过传感器获得电信号后,通过ESP01-S模块连接WIFI以及通过TCPMQTT协议将数据进行上传到阿里云服务器,当要进行下发命令,则通过热点和蜂窝数据传输到我们手机上的APP,其数据交互框图见图4.8所示。

 

4.8 数据交互框图


通过测试多个用电器件,并且将其用电信息进行统计,通过分析可以得到其测试用电功率和测评标注功率相差不大,其测试功率目的能够达到,其统计信息见表5.1所示。

5.1 用电器件信息统计

用电器件

电压信息

测试电流信息

测试功率

理论功率

功率误差

吹风机

220V

4.288A

951.4W

1000W

4.9%

充电器

220V

0.303A

66.1W

67W

1.34%

台灯

220V

0.016A

3.6W

4W

10%

电烙铁

220V

1.29A

284.6W

286W

0.49%

热风枪

220V

3.15A

692.3W

700W

1.1%

 

 

 

 

 

 

通过接入用电器件测试其功率,本项目中采用吹风机,充电器等常用设备进行测试,在测试过程中对所设定的功能进行测试,包括使用物理按键控制电路的通断,复位按键进行重启电路,远程APP对电路监控以及通断,超过设定阈值后自动断电以及报警提示,人为干涉后,恢复正常状态,其测试功率过程见图5.12所示

5.12 用电器件测试过程 

本课题采用AD软件进行电路的设计,其电路原理图见附图3所示。

 

ADC采样过程中调用AD转换函数,获得电压电流数据,为了保证测量用电器件功率的准确性,使用电阻以及示波器进行校准,获得电压电流后通过P=UI获得用电器件的功率,其部分代码如下。

adcx=Get_Adc_Average(ADC_Channel_1,10);

             temp=(float)adcx*(3.3/4096);

             ACvolt=(unsigned int)(temp*332.2);

             if(ACvolt<15)  ACvolt=0;

             adcx=Get_Adc_Average(ADC_Channel_2,10); 

             temp=(float)adcx*(3.3/4096);

             if(temp>0.02)

             {

                    ACcurrent=(unsigned int)((temp-0.02)*2960);

             }

             else

             {

                    ACcurrent=0;

             }

基于STM32的家用插座监控系统研究

相关文章:

基于STM32的智能插座项目

本项目基于stm32f103c8t6芯片通过集成众多模块和元器件&#xff0c;通过ESP01-S和阿里云平台实现智能插座的项目开展。资料获取到咸&#x1f41f;&#xff1a;xy591215295250 \\\或者联系wechat 号&#xff1a;comprehensivable 随着电子科学与技术的快速发展&#xff0c;软硬件…...

VR虚拟现实(Virtual Reality)

虚拟现实&#xff08;Virtual Reality&#xff09;是一种通过计算机技术和设备模拟现实世界的环境和体验的技术。它创造了一个虚拟的三维环境&#xff0c;用户可以通过穿戴设备和感应器与该环境进行互动和沉浸。 虚拟现实技术包括以下几个关键组成部分&#xff1a; 头戴设备&a…...

pywinauto入门指南:轻松掌握Windows GUI自动化

pywinauto库概述: pywinauto是一个Python库,主要用于自动化Windows应用程序的GUI测试和操作.它提供了一组简单而强大的API,可以模拟用户与Windows应用程序的交互,包括点击按钮、输入文本、选择菜单等操作. 安装 ##pywinauto可以通过pip进行安装,打开命令行运行: pip install…...

分布式缓存框架Hazelcast与Java整合详解

引言 在现代的分布式系统中&#xff0c;缓存是提高性能的关键组件之一。Hazelcast作为一个开源的分布式内存数据网格&#xff08;IMDG&#xff09;&#xff0c;提供了分布式缓存、集群和并发数据结构等功能。本文将详细介绍如何在Java应用中整合Hazelcast&#xff0c;并通过代…...

ApplicationEventPublisher的使用、Spring事件发布

spring事件的订阅发布&#xff0c;适用业务解耦合 使用场景&#xff1a;新用户注册之后&#xff0c;需要发放优惠券&#xff1b;一个订单服务在接收到新订单时发布一个“订单已创建”事件&#xff0c;库存服务和通知服务分别订阅该事件&#xff1b;日志和监控;实时通知系统;异…...

RFID优缺点和应用场景

一、RFID技术特点 优点 快速扫描&#xff1a;RFID识别器可以同时读写多个RFID标签&#xff0c;读取速度非常快。有源RFID系统的草图功能可以用于交互式服务&#xff0c;如过程跟踪和维护跟踪。 小型化和形状多样化&#xff1a;RFID标签向小型化和多样化方向发展&#xff0c;以…...

可信启动Trusted Board Boot

TBB Trusted Board Boot&#xff08;TBB&#xff09;对所有固件镜像&#xff08;包括普通世界的bootloader&#xff09;进行身份验证&#xff0c;以防止恶意固件在平台上运行。TBB使用公钥加密标准 &#xff08;PKCS&#xff09;来建立信任链&#xff08;Chain of Trust&#…...

JVM的类加载机制

Java中类的加载阶段 类加载 Java中的类加载机制是Java运行时环境的一部分&#xff0c;确保Java类可以被JVM&#xff08;Java虚拟机&#xff09;正确地加载和执行。类加载机制主要分为以下几个阶段&#xff1a; 加载&#xff08;Loading&#xff09;&#xff1a;这个阶段&#x…...

C++中的八大设计原则

目录 摘要 C中的8大设计原则 1. 单一职责原则 (Single Responsibility Principle, SRP) 2. 开放封闭原则 (Open/Closed Principle, OCP) 3. 里氏替换原则 (Liskov Substitution Principle, LSP) 4. 依赖倒置原则 (Dependency Inversion Principle, DIP) 5. 接口隔离原则…...

2024广东省职业技能大赛云计算赛项实战——Minio服务搭建

Minio服务搭建 前言 这道题是比赛时考到的&#xff0c;没找到具体题目&#xff0c;但在公布的样题中找到了&#xff0c;虽然很短~ 使用提供的 OpenStack 云平台&#xff0c;申请一台云主机&#xff0c;使用提供的软件包安装部署 MINIO 服务并使用 systemctl 管理 Minio是一个…...

【考研408计算机组成原理】数值表示和运算之快速数值转换

苏泽 “弃工从研”的路上很孤独&#xff0c;于是我记下了些许笔记相伴&#xff0c;希望能够帮助到大家 另外&#xff0c;利用了工作之余的一点点时间&#xff0c;整理了一套考研408的知识图谱&#xff0c; 我根据这一套知识图谱打造了这样一个408知识图谱问答系统 里面的每一…...

理解 JTBD 框架和EJ 理念:深挖以用户为中心的设计

在与用户的交流中&#xff0c;我们发现对用户需求的精准洞察普遍困扰着产品经理、设计、企划人员&#xff0c;因为当今消费者行为已经由单品消费转向场景消费&#xff0c;千人千面的个性化需求出现&#xff0c;消费者数据维度极大丰富&#xff0c;这对把握用户体验造成了很大挑…...

数据提取与治理:企业实现数据驱动决策的必经之路

数据提取与治理&#xff1a;企业实现数据驱动决策的必经之路 随着信息技术的迅猛发展&#xff0c;数据已经成为企业最宝贵的资产之一。然而&#xff0c;数据并非天生就具有价值&#xff0c;只有通过有效的提取和治理&#xff0c;才能转化为企业决策的有力支撑。本文将探讨数据…...

Avalonia:一个.NET跨平台UI框架

概述 Avalonia是一个强大的框架&#xff0c;使开发人员能够使用. NET创建跨平台应用程序。它使用自己的渲染引擎来绘制UI控件&#xff0c;确保在各种平台上保持一致的外观和行为&#xff0c;包括Windows&#xff0c;macOS&#xff0c;Linux&#xff0c;Android&#xff0c;iOS…...

海量数据处理——bitMap/BloomFilter、hash + 统计 + 堆/归并/快排

前言&#xff1a;海量数据处理是面试中一道常考的问题&#xff0c; 生活中也容易遇到这种问题。 通常就是有一个大文件&#xff0c; 让我们对这个文件进行一系列操作——找出现次数最多的数据、求交集、是否重复出现等等。 因为文件的内容太多&#xff0c; 我们的内存通常是放不…...

TrainingArguments、ModelArguments、DataArguments参数使用(@dataclass)

文章目录 前言一、@dataclass装饰器说明二、transformers.HfArgumentParser参数使用Demo三、field函数四、llava模型参数1、模型参数设置2、数据参数设置3、训练参数设置4、参数解析5、参数传递6、参数添加前言 理解llava相关参数传递方法,有利于我们对模型修改模块使用参数来…...

基于jeecgboot-vue3的Flowable流程-自定义业务表单处理(一)支持同一个业务多个关联流程的选择支持

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 这部分先讲讲支持自定义业务表单一个业务服务表单多个流程的支持处理 1、后端mapper部分 如下&#xff0c;修改selectSysCustomFormByServiceName为list对象&#xff0c;以便支持多个 &…...

解决数据丢失问题的MacOS 数据恢复方法

每个人都经历过 Mac 硬盘或 USB 驱动器、数码相机、SD/存储卡等数据丢失的情况。我们中的一些人可能认为已删除或格式化的数据将永远丢失&#xff0c;因此就此作罢。对于 macOS 用户来说&#xff0c;当文件被删除时&#xff0c;垃圾箱已被清空&#xff0c;他们可能不知道如何恢…...

[ARM-2D 专题]3. ##运算符

C语言的宏系统相当强大&#xff0c;它允许使用##符号来处理预处理期的文本替换。这种用法被称为标记连接&#xff08;token pasting&#xff09;操作&#xff0c;其结果是将两个标记紧紧地连接在一起&#xff0c;而省略掉它们之间的所有空格。在复杂的宏定义中&#xff0c;运用…...

基于语音识别的智能电子病历(五)电子病历编辑器

前言 首先我们要明确一个概念&#xff1a;很多电子病历的编辑器&#xff0c;在输入文字的地方&#xff0c;有个麦克风按钮&#xff0c;点击一下&#xff0c;可以进行录音&#xff0c;然后识别的文字会自动输入到电子病历中&#xff0c;这种方式其实不能称为“基于语音识别的智…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...