当前位置: 首页 > 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;最后将结果返回给用户。它融合了分布式计算、效用计算、负载均衡、并行计算、网络存储…...

文本三剑客其二

文本三剑客其二 sed和awk grep就是查找文本当中的内容&#xff0c;扩展正则表达式。 sed 对文本内容进行增删改查 sed是一种流编辑器&#xff0c;一次处理一行内容。 如果只是展示&#xff0c;会放在缓冲区&#xff08;模式空间&#xff09;&#xff0c;展示结束之后&…...

【达梦数据库】typeorm+node.js+达梦数据库返回自增列值

1.配置环境&#xff0c;下载依赖包 typeorm init --name test22 --database mysql typeorm-dm&#xff0c;uuid,typeorm2,修改连接信息 修改src/ data-source.ts 文件 连接dm&#xff0c;可参考刚刚安装typeorm-dm 模块中的 README.md 3.修改自增信息 /* 修改前*/PrimaryGen…...

【ARMv8/ARMv9 硬件加速系列 2.1 -- ARM NEON 向量寄存器单个元素赋值】

文章目录 NEON 向量寄存器单个元素赋值对 v0.4s中的一个元素赋值对 v1.16b 中的一个元素赋值MOVI (Move Immediate)NEON 向量寄存器单个元素赋值 在ARMv8架构中,你可以使用特定的指令来对v0.4s和v1.16b中的单个元素赋值。这通常通过使用MOV(Move)指令的变种实现,具体取决于…...

GD32学习

参考视频13.立创开发板GD32教程&#xff1a;串口配置_哔哩哔哩_bilibili 固件库跟用户手册基本上差不多&#xff0c;只不过用用户手册编写程序的话会更加的底层&#xff0c;固件库的话就是把一些函数封装起来&#xff0c;用的时候拿过来即可&#xff0c;目前我还没有找到固件库…...

LangChain:如何高效管理 LLM 聊天历史记录?

LangChain 团队发布了一篇关于使用 Dragonfly DB 来有效管理 LangChain 应用程序聊天历史记录的教程。 该教程旨在解决用户在使用 LangChain 应用程序时普遍遇到的一个问题&#xff1a;如何高效地管理聊天历史记录。 LangChain 团队在推文中强调了 Dragonfly DB 在管理聊天历…...

【React】useState 更新延迟的原因是什么,怎么解决?

useState 更新延迟的原因 异步更新:React 中的 useState 更新是异步的,这意味着当你调用更新函数(如 setData)时,React 并不立即同步更新状态,而是将其放入一个待处理的队列中,稍后在适当的时候(如在下一次渲染之前)进行处理。因此,如果你尝试在调用更新函数后立即读…...

非关系型数据库NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载百度网盘

redis下载安装以及基本使用 下载地址 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;0410 一个名对应一个数值 内存级 在内存里进行操作 准备启动 我们现在就有一个redis客户端的服务器了 我们再启动一个cmd 操作redis数据库 redis里面的基本数据类型有五种 …...

jigdo无法下载的文件

问题描述 用jigdo下载Debian的iso镜像&#xff0c;剩下最后一个文件下载不了&#xff0c;提示信息&#xff1a; Found 0 of the 1 files required by the template Copied input files to temporary file debian-12.5.0-amd64-DLBD-2.iso.tmp - repeat command and supply mo…...

C#面:C# 类的执行顺序?

C# 类的执行顺序可以分为以下几个步骤&#xff1a; 静态字段初始化&#xff1a;在类的第一次使用之前&#xff0c;静态字段会被初始化。静态字段的初始化顺序是按照它们在代码中的声明顺序进行的。静态构造函数&#xff1a;如果类中定义了静态构造函数&#xff0c;它会在类的第…...

成全视频免费观看在线看电视剧/网站优化推广哪家好

最近偶有开发同事咨询 PostgreSQL 日期函数&#xff0c;对日期处理不太熟悉&#xff0c;今天详细看了下手册的日期函数&#xff0c;整理如下&#xff0c;供参考。 一 取当前日期的函数 --取当前时间skytf> select now(); now ---------------…...

计算机网站建设招聘/移动网站优化排名

其他参考资料&#xff1a;自行车辐条编织方法&#xff08;交叉编织&#xff09;图文讲解 http://www.360doc6.net/wxarticlenew/448293547.html...

wordpress沐风/win7优化设置

240 程序检查 有一种编程语言&#xff0c;只有以下五种命令&#xff0c;每种命令最多有两个参数&#xff0c;请检查给定的程序是否 可能 无限循环。 这些命令分别是&#xff1a; label <string>&#xff1a;声明一个标签&#xff0c;参数是一个字符串&#xff0c;且每…...

网站建设方案浩森宇特/长沙网站优化推广方案

【案例2-5】输入圆的半径计算面积和周长 一、案例描述 考核知识点 toFixed()、isNaN、window.document对象 练习目标 掌握toFixed()方法。掌握数据类型检测。了解windoe.document对象。 需求分析 用JavaScript代码来计算圆的周长和面积&#xff0c;用户自己输入正确的r半径&…...

ps如何做游戏模板下载网站/网络营销策划书范文模板

以前也在ubuntu上面安装过搜狗输入法&#xff0c;没有记录详细的安装步骤&#xff0c;这次详细的记录下。 1.在系统设置里安装中文语言支持 2.安装fcitx&#xff0c;并设置input method sudo apt-get install fcitx 3.下载搜狗输入法安装包linux版本 网站 安装完以后要重启电…...

国内做赌博网站风险大吗/成都网络营销

最近在研究多线程&#xff0c;多进程&#xff0c;swoole的知识&#xff0c;多次提到了php运行模式&#xff0c;于是写了这篇笔记 运行模式 1、CGI–淘汰 2、FastCGI–php-fpm 3、CLI– 4、web模块模式–apache中配置php模块 我们安装完php后会有两个程序 windows下&#xff1…...