STM32单片机智能电表交流电压电流程序设计(电流 电压互感器TV1005M+TA1005M)

资料下载地址:STM32单片机智能电表交流电压电流程序设计(电流 电压互感器TV1005M+TA1005M)

1、摘要

5、基于STM32F103单片机智能电表交流电压电流设计
本设计由STM32单片机核心板电路+交流电压电流检测模块电路+WIFI模块电路+指示灯电路组成。
1、通过电压互感器TV1005M和电流互感器TA1005M分别检测交流电压和交流电流值,
2、手机APP和WiFi模块互联后,可以实时显示交流电压、交流电流、功率和电量实时显示在手机上。
3、当功率超过200W时,继电器自动断开。功率不超过200W时,可以手动控制继电器的开关。
4、手机和WiFi模块连接后,手机上显示计时时间。

 

名称:AUAISOUT000
IP及端口号:10.10.10.11:8080

接受内容:
V:123A:12345P:1234567Q:1234567.89T:123R:1

说明:(只增加R部分命令及发送内容,其他未变动)   
V:123        表示123V交流电压    字符5个长度不变 如12V 表示V:012
A:12345        表示12.345A交流电流     
P:1234567    表示1234.567W 瞬时功率 即缩小1000倍   
Q:1234567.89    表示1.23456789    度 缩小1000000倍 因为度的单位比较大kwh
T:1234        表示1234S 单片机设备运行时间
R:1        表示继电器接通 供电中 0表示断开即过载

发送内容:*或者#     #断开供电    *接通供电

元件清单:
极性电容    10uF
电阻    1K
STM32核心板    STM32_CORE
交流电压电流检测模块    交流电压电流检测
ESP8266/WIFI模块    WIFI_ESP8266
220V公头线    2芯公头
220V母头线    2芯母头
2.54单排座    3pin
2.54单排座    4pin
2.54单排座    5pin
2.54单排座    20pin
覆铜板或万用板    /
普通USB线_大头    /
导线(只万用板有)    /
焊锡    / 

2、代码

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "adc.h"
#include <stdio.h>
#include "timer.h"//char tabDataV[5];//打印电压数组
//char tabDataA[7];//打印电流数组
//char tabDataP[9];//打印功率数组
//char tabDataQ[12];//打印电量数组
//char tabDataT[6];//打印时间数组
char tabData[42];//打印时间数组unsigned int ACcurrent;                //市电电流
unsigned int ACvolt;                //市电电压
unsigned long PowerWt=0;//功率
float PowerQd=0;//功率
unsigned char relayFlag=1;
int main(void){ u16 adcx;float temp;delay_init();                     //延时函数初始化          uart_init(9600);                 //串口初始化为115200TIM3_Int_Init(499,7199);//50ms           LED_Init();                                  //初始化与LED连接的硬件接口LED0=0;Adc_Init();                                  //ADC初始化            RELAY=1; //继电器打开relayFlag=1;        //继电器状态标识delay_ms(4000); printf("AT+CIPMUX=1\r\n");                   //允许链接delay_ms(1000);printf("AT+CIPSERVER=1,8080\r\n");           //创建端口号8080delay_ms(1000); while(1){adcx=Get_Adc_Average(ADC_Channel_1,10);// PA1 交流电压检测口 ad转换10次求平均值temp=(float)adcx*(3.3/4096);ACvolt=(unsigned int)(temp*303);//*303 互感器计算获取 以及1K电阻 用示波器检测校准得到if(ACvolt<15) ACvolt=0;adcx=Get_Adc_Average(ADC_Channel_2,10);        // PA2                                                       求平均值temp=(float)adcx*(3.3/4096);if(temp>0.02){ACcurrent=(unsigned int)((temp-0.02)*3100);//*3950 互感器计算获取扩大1000倍 以及1K电阻 用示波器检测校准得到 0.02去除波动 防止误判断}else{ACcurrent=0;}if(ACcurrent<50)ACcurrent=0;//滤除电流PowerWt=ACvolt*ACcurrent;                 //功率if(dealFlag==1)//处理标志{dealFlag=0;PowerQd=(float)PowerWt*1/60.0/60.0+PowerQd;        //累计电量 1表示1s 因为电流扩大了1000倍 因此该处也扩大了1000倍 且此处功率单位为W 除以1000为千瓦 结果为度 1度=1千瓦时}if(times>=9999){times=0;}if(PowerWt/1000>200){        RELAY=0;                        //关闭继电器relayFlag=0;}                sprintf(tabData,"V:%03dA:%05dP:%07luQ:%010.2fT:%04dR:1",ACvolt,ACcurrent,PowerWt,PowerQd,times);                
//                sprintf(tabDataA,"A:%05d",ACcurrent);//电流
//                sprintf(tabDataP,"P:%07lu",PowerWt);//功率
//                sprintf(tabDataQ,"Q:%010.2f",PowerQd);//电量                        
//                sprintf(tabDataT,"T:%04d",times);//时间if(relayFlag==1){sprintf(tabData,"V:%03dA:%05dP:%07luQ:%010.2fT:%04dR:1",ACvolt,ACcurrent,PowerWt,PowerQd,times);                }//打印数据else {sprintf(tabData,"V:%03dA:%05dP:%07luQ:%010.2fT:%04dR:0",ACvolt,ACcurrent,PowerWt,PowerQd,times);                }//打印数据printf("AT+CIPSEND=0,42\r\n");                //发送固定字节数据的at命令delay_ms(200);printf(tabData);                                        //发送数据delay_ms(200);LED0=!LED0;                //数据发送        delay_ms(200);                //延时}                                                                                            
}        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/598224.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊店铺引流:海外云手机的利用方法

在电商业务蓬勃发展的当下&#xff0c;亚马逊已经成为全球最大的电商平台之一&#xff0c;拥有庞大的用户群和交易量。在激烈的市场竞争中&#xff0c;如何有效地吸引流量成为亚马逊店铺经营者所关注的重点。海外云手机作为一项新兴技术工具&#xff0c;为亚马逊店铺的流量引导…

HTTP 常见的状态码以及其适用场景

是什么 HTTP状态码&#xff08;英语&#xff1a;HTTP Status Code&#xff09;&#xff0c;用以表示网页服务器超文本传输协议响应状态的3位数字代码 它由 RFC 2616规范定义的&#xff0c;并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774与 RFC 4918等规范扩展 简单来讲&#…

基于 Vue3 + Webpack5 + Element Plus Table 二次构建表格组件

基于 Vue3 Webpack5 Element Plus Table 二次构建表格组件 文章目录 基于 Vue3 Webpack5 Element Plus Table 二次构建表格组件一、组件特点二、安装三、快速启动四、单元格渲染配置说明五、源码下载地址 基于 Vue3 Webpack5 Element Plus Table 二次构建表格组件&#x…

蓝桥杯第十三届省赛C++B组(未完)

目录 刷题统计 修剪灌木 X进制减法 【前缀和双指针】统计子矩阵 【DP】积木画 【图DFS】扫雷 李白打酒加强版 DFS (通过64%&#xff0c;ACwing 3/11&#xff09;; DFS(AC) DP&#xff08;AC&#xff09; 砍竹子(X) 刷题统计 题目描述 小明决定从下周一开始努力刷题准…

【Java基础】面试题汇总

Java基础面试题1. JVM vs JDK vs JRE 2. 什么是字节码?采用字节码的好处是什么?3. 为什么说 Java 语言“编译与解释并存”&#xff1f;4. AOT 有什么优点&#xff1f;为什么不全部使用 AOT 呢&#xff1f;5. Java 和 C 的区别&#xff1f;6. Java 中的基本数据类型&#xff1…

正确使用@Autowired

目录 一、前言二、跟着官方文档&#xff0c;学习正确使用Autowired0、实验环境1、通过构造方法进行注入1.1 问题1&#xff1a;那万一没有这个CustomerPreferenceDao对象&#xff0c;会报错吗&#xff1f; 2、通过setter方法注入3、通过方法注入&#xff08;这个方法可以是任意名…

Anritsu MS9740B与MS9740A 光谱分析仪 的区别?

MS9740B与MS9740A的主要区别在于测量处理时间的缩短和对高速信号处理技术的应用。MS9740B在保持原有功能和性能的同时&#xff0c;将测量处理时间缩短了一半。这一点通过提高生产效率和减少测量及检查时间来实现&#xff0c;从而提高了光有源设备制造商的生产力。此外&#xff…

可以监控员工电脑的软件有哪些

“可以监控员工电脑的软件是什么&#xff1f;” 那必然是“电脑监控软件”了&#xff01;&#xff01;&#xff01; 电脑已成为现代企业中不可或缺的工具。然而&#xff0c;电脑使用不当或滥用可能会带来数据泄露、工作效率低下等问题&#xff0c;严重影响企业的运营和声誉。…

vue实现验证码验证登录

先看效果&#xff1a; 代码如下&#xff1a; <template><div class"container"><div style"width: 400px; padding: 30px; background-color: white; border-radius: 5px;"><div style"text-align: center; font-size: 20px; m…

数据结构面试题报错调试方法记录

栈和队列报错调试 1.用栈实现队列 232. 用栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 此题解题思路如下&#xff1a; 先将数据放在pushst栈里面&#xff0c;popst栈为空再把pushst栈里面的数据放进popst栈里面去&#xff0c;不为空则不执行。不为空时候直接拿取栈…

测试框架pytest学习与实践

pytest是一个专业的测试框架&#xff0c;可以帮助我们对python项目进行测试&#xff0c;提高测试的效率。 pytest官网手册&#xff1a;pytest: helps you write better programs — pytest documentation 中文手册&#xff1a;Pytest 教程 入门学习 安装pytest pip install…

机器人开启私聊配置自定义接口的方式

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 今天给大家介绍一下&#xff0c;如何在机器人中开启私聊回复。 前提条件&#xff1a;机器人已经启动好了&#xff0c;且功能也都可以正常使用&#xff0c;如果没有启动&#xff0c;可以联…