发作品签到
专业版

#第九届立创电赛#温湿度计

工程标签

406
0
0
0

简介

立创电赛活动#基于STM32G030K6T6芯片的桌面温湿度计按键唤醒、低功耗、自动休眠、高温自动开启空调

简介:立创电赛活动#基于STM32G030K6T6芯片的桌面温湿度计按键唤醒、低功耗、自动休眠、高温自动开启空调

开源协议

Public Domain

创建时间:2024-07-06 15:25:11更新时间:2024-08-06 01:27:03

描述

@TOC

立创电赛&温湿度计

简介

舒适的环境有利于提高画板子,焊板子,写程序的效率。传统的温湿度计存在功能单一,需要频繁更换电池,并且无法在温湿度不合适的情况下开启空调。
所以在嘉立创的支持下,我DIY了一个温湿度计
具有以下功能和特点
方便:使用两节干电池供电
低功耗:可以自动休眠,使用时按键唤醒
自动化:温度过高时打开空调制冷模式;当温度下降到合适温度时关闭空调。湿度过高时打开空调除湿模式,对应的湿度下降到设定值关闭空调除湿模式。

实物展示

image.png

硬件设计

供电

本项目使用两节干电池供电,为防止反接导致元器件烧毁,我们使用WST3401作为防护,并且通过两个10K电阻来取样o判断电量是否充足。值得注意的是由于这里电阻采样而不是限流作用,所以对精度有要求,我们要使用0.1%误差的电阻
image.png

主控

本项目使用STM32G030K6T6作为主控,该主控具有定时器、ADC和通信接口,方便我们读取温度湿度传感器数据。电压范围:2.0 V至3.6 V,这样我们可以使用连接干电池供电,非常便利,并且有:睡眠、停止、待机三个低功耗模式,这样使用电池供电可以通过程序使其休眠来降低能耗

PCB布局上供电一定要先经过滤波电容再进去MCU
晶振要尽量靠近MCU,并且做包地处理,且放置禁止铺铜区域,晶振所在区域所有层尽量不要走线

image.png

显示

为了节省成本,以及降低能耗使用数码管来显示温度以及湿度。这里我们使用两个三位数码来显示温度以及湿度。为节省引脚资源,我们使用74系列595芯片来串行输入,并行输出的操作

image.png

image.png
在PCB设计中我们同样要注意,供电要先经过滤波电容在进入595芯片,并且由于引脚密集GND可以使用拉线加过孔的方式接入底层的大面积铺铜区域

image.png
由于数目管布线比较多,我们要注意尽量避免频繁交叉,绕线等操作,以免影响铺铜区域的完整性

image.png

传感器

传感器使用盛思锐的 SHT40 为了方便,我们使用模块而非传感器直接焊接,我们使用1.27的4p排母来连接模块,传感器使用I²C通讯,注意使用上拉电阻

image.png
PCB设计上,要注意的是,因为这是温湿度传感器,所以要尽可能地远离发热元件,并且保留足够的高度来放置模块

image.png
此外值得注意的是,根据群友的反馈,此模块非常的脆弱,反接必烧,连接时注意方向

红外

随着家用电器、视听产品的普及,红外线遥控器已被广泛使用在各种类型的家电产品上,体积小、抗干扰能力强、功耗低,一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,这里只有控制,所以只做发射部分。
image.png
红外部分使用一个8550三极管来驱动红外发射管。该部分作用是根据温度变化来控制空调
image.png

image.png
示波器捕捉眼妆遥控器红发发射管信号
image.png

软件设计

红外

通过示波器信号捕捉分析+资料搜索,大致推断为NEC红外协议,引导码 + 8位用户码 + 8位用户反码 + 8位数据码 + 8位数据反码+停止位
这里的红外使用STC试验箱来读取红外数据,并将开启空调的数据写入程序中
STC试验箱连接电脑
image.png
遥控器对准这里按键
image.png
串口读取
image.png
不一样的遥控器可能编码略有区别,实际编码请实际操作

 u8  SampleTime;

    IR_SampleCnt++;                         //Sample + 1

    F0 = P_IR_RX_temp;                      //Save Last sample status
    P_IR_RX_temp = P_IR_RX;                 //Read current status
    if(F0 && !P_IR_RX_temp)                 //Pre-sample is high,and current sample is low, so is fall edge
    {
        SampleTime = IR_SampleCnt;          //get the sample time
        IR_SampleCnt = 0;                   //Clear the sample counter

             if(SampleTime > D_IR_SYNC_MAX)     B_IR_Sync = 0;  //large the Maxim SYNC time, then error
        else if(SampleTime >= D_IR_SYNC_MIN)                    //SYNC
        {
            if(SampleTime >= D_IR_SYNC_DIVIDE)
            {
                B_IR_Sync = 1;                  //has received SYNC
                IR_BitCnt = D_IR_BIT_NUMBER;    //Load bit number
            }
        }
        else if(B_IR_Sync)                      //has received SYNC
        {
            if(SampleTime > D_IR_DATA_MAX)      B_IR_Sync=0;    //data samlpe time too large
            else
            {
                IR_DataShit >>= 1;                  //data shift right 1 bit
                if(SampleTime >= D_IR_DATA_DIVIDE)  IR_DataShit |= 0x80;    //devide data 0 or 1
                if(--IR_BitCnt == 0)                //bit number is over?
                {
                    B_IR_Sync = 0;                  //Clear SYNC
                    if(~IR_DataShit == IR_data)     //判断数据正反码
                    {
                        UserCode = ((u16)IR_UserH << 8) + IR_UserL;
                        IR_code      = IR_data;
                        B_IR_Press   = 1;           //数据有效
                    }
                }
                else if((IR_BitCnt & 7)== 0)        //one byte receive
                {
                    IR_UserL = IR_UserH;            //Save the User code high byte
                    IR_UserH = IR_data;             //Save the User code low byte
                    IR_data  = IR_DataShit;         //Save the IR data byte
                }
            }
        }
    }

失败记录

本模块记录本人再本项目硬件软件设计制作过程中出现的问题以及解决过程,如果您遇到相同的问题,希望对您有所帮助。

  1. 烧录问题,很多童鞋出现了无法烧录或者只能烧录一次的问题,经排查,由于芯片低功耗模式下休眠状态,无法烧录。需要将其唤醒后才能再次烧录。

鸣谢

感谢 嘉立创 以及 瑞士盛思锐 提供的学习平台以及物料支持

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
stm32g030k6.pdf
1
2
WeChat_20240805000001.mp4
0
3
WeChat_20240806002642.mp4
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航