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

STM32设计电流与温度监控python上位机监控平台设计

目录

前言

一、本设计主要实现哪些很“开门”功能?

二、电路设计原理图

电路图采用Altium Designer进行设计:

三、实物设计图

四、程序源代码设计 

五、获取资料内容


前言

在现代工业自动化和智能设备管理中,对电流和温度的实时监控是至关重要的。电流和温度作为反映设备运行状态的关键参数,其稳定性和安全性直接关系到整个系统的可靠性和效率。为了确保设备的正常运行,及时发现并解决潜在问题,设计一个高效的电流与温度监控系统显得尤为重要。

然而,仅有单片机采集的数据是远远不够的,我们还需要一个能够接收、处理和展示这些数据的上位机监控平台。Python,作为一种高级编程语言,以其简洁的语法、丰富的库和强大的功能,成为开发上位机监控平台的优选工具。。

本文将详细介绍一个基于单片机和Python的上位机监控平台的设计和实现过程。该平台将采用单片机作为数据采集的核心,通过传感器实时获取电流和温度数据,并将这些数据通过串口或其他通信协议传输给上位机。上位机则使用Python进行开发,负责接收数据、处理数据、展示数据和触发报警。

本设计旨在提供一个稳定、可靠、易于使用的电流与温度监控系统,为设备的维护和管理提供便捷的工具。通过该平台,用户可以实时查看设备的电流和温度情况,及时发现异常情况并采取相应措施,从而确保设备的正常运行和延长使用寿命。

接下来,本文将详细介绍该监控平台的硬件设计、软件实现以及具体的功能展示,为读者提供一个全面的设计和实现方案。

一、本设计主要实现哪些很“开门”功能?

        1)精密电流uA级别检测功能,实时检测存储
        2)实时温控检测,采用卡尔曼滤波实现温度误差便宜
        3)同讯上位机采用自制的485USB模块,加上抗静电与EMC保护电路
        4)采用加密协议进行传输至上位机
        5)python上位机绘制的QT界面,实现全方面数据检测
        6)具备后台log数据日志存储

二、电路设计原理图

电路图采用Altium Designer进行设计:


1、通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心。

2、高精密电流检测运放电路,ADC模拟接口与单片机进行连接

3、 使用485转USB模块连接上位机,模块与单片机使用485接口连接

4、通过DS18B20进行温度监控

5、使用卡尔曼滤波算法,程序内部运行

6、通过防静电电路设置,模块与单片机使用数据总线控制连接稳妥

 

三、实物设计图


四、程序源代码设计 

int main(void)
{
    u8 rs485buf[22] = {0X00}; 
    u8 num = 0;
    u16 t=0,t2=0,t3=0,t4=0,t5=0,I = 0,I2 = 0,I3 = 0,I4 = 0,I5 = 0;    
    short temperature,temperature2,temperature3,temperature4,temperature5; 
  float temp = 0,temp2 = 0,temp3 = 0,temp4 = 0,temp5 = 0;
    delay_init();             //延时函数初始化    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 
    uart_init(9600);
    RS485_Init(9600);    //初始化RS485

    Adc_Init();
    Adc_Init2();    

    TIM2_Int_Init(4999,7199);//计时500ms
//    TIM3_Int_Init(9999,7199);//1s计时
    while(1)
    {    
        if(num == 20)
        {
            num = 0;
            
            t = t/20;
            temp = (float)t*33/16384;I = temp*100000;rs485buf[11] = I>>8; rs485buf[12] = I;
            
            t2 = t2/20;
            temp2 = (float)t2*33/16384;I2 = temp2*100000;rs485buf[13] = I2>>8; rs485buf[14] = I2;

            
            RS485_Send_Data(rs485buf,22);//发送5个字节     

        }
        if(fla_con)
        {
            fla_con = 0;
            temperature=DS18B20_Get_Temp();    rs485buf[1] = temperature>>8; rs485buf[2] = temperature;
            adcx1=Get_Adc_Average(ADC_Channel_2,1);
            
            temperature2=DS18B20_Get_Temp2();rs485buf[3] = temperature2>>8; rs485buf[4] = temperature2;
            adcx2=Get_Adc_Average(ADC_Channel_3,1);
            
            temperature3=DS18B20_Get_Temp3();rs485buf[5] = temperature3>>8; rs485buf[6] = temperature3;
            adcx3=Get_Adc_Average2(ADC_Channel_4,1);

    }

}


 


 

五、获取资料内容

资料获取
链接:https://pan.baidu.com/s/1hv8MSqt4AmWzFdYzM_D7Eg 
提取码:u2n9 


http://www.kler.cn/a/399597.html

相关文章:

  • Streamlit:快速搭建数据科学应用的利器
  • Django5 2024全栈开发指南(一):框架简介、环境搭建与项目结构
  • 【C++派生类新增对象的初始化顺序】单继承下派生类新增成员对象的初始化顺序
  • 使用 Go 实现将任何网页转化为 PDF
  • 每日一博 - Java的Shallow Copy和Deep Copy
  • 前后端请求响应
  • SQL Server中,CONVERT函数转换日期
  • 支持用户注册和登录、发布动态、点赞、评论、私信等功能的社交媒体平台创建!!!
  • Java在移动端小程序开发中的性能优化研究
  • Mac——基本操作使用整理
  • 【设计模式】行为型模式(五):解释器模式、访问者模式、依赖注入
  • ORA-01092 ORA-14695 ORA-38301
  • leetcode226:反转二叉树
  • 重修设计模式-行为型-备忘录模式
  • 计算机网络基础——针对实习面试
  • Rust:AtomicI8 还是 Mutex<u8>?
  • 网络延迟对Python爬虫速度的影响分析
  • cJson移植使用
  • 计算机组成与原理(2) basic of computer architecture
  • STM32 极速入门第一天基础拓展 驱动i2c屏幕 ( 使用PlatformIO开发STM32单片机 )
  • 文献阅读11.17
  • 半导体工艺与制造篇1 绪论
  • 【WPF】Prism学习(二)
  • ThinkPHP中的MVC分层是什么
  • 鸿蒙生态的认知和生态的崛起分析
  • 表面法线估计(Surface Normal Estimation)