基于STM32单片机的智能衣柜设计

发布者:Mingyue1314最新更新时间:2024-07-30 来源: elecfans关键字:STM32  单片机  智能衣柜 手机看文章 扫描二维码
随时随地手机看文章

功能说明

功能如下:

1、用stm32控制ds18b20采集温度

2、然后按键可以设置上下限温度

3、采集的温度低于下限温度时候打开加热片开始加热

4、加热到上限温度关闭加热片停止加热

5、采集的温度可以在oled显示

6、然后弄个按键控制一个紫外线灯模块,按一下打开紫外线灯一段时间,30s后自动关闭

7、将采集的温度上传到物联网平台onenet

系统框图


13e9a43c-4a5b-11ee-97a6-92fbcf53809c.png?imageView2/2/w/550


原理图


14126f98-4a5b-11ee-97a6-92fbcf53809c.png?imageView2/2/w/550

程序代码-部分


int main(void)

{  



  unsigned char *dataPtr = NULL;



  unsigned short timeCount = 0;  //发送间隔变量



  delay_init();         //延时函数初始化    

  NVIC_Configuration();    //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

   LED_Init();           //LED端口初始化

  KEY_Init();           //初始化与按键连接的硬件接口

  uart2_init(115200);//串口2初始化

  YHGUI_Config();  //OLED初始化

  YHGUI_DispString(0,0,'正在初始化>>>>>>',16,1);  //OLED显示初始化

   YHGUI_DispString(0,32,'正在连接onenet',16,1);  

  ESP8266_Init();          //初始化ESP8266



  printf('8266_INIT_END

');

  RELAY=1;

  LED0=1;

   while(DS18B20_Init())//温度初始化

    {



    }

    DS18B20_Get_Temp();//温度初始化

  while(OneNet_DevLink())      //接入OneNET

  YHGUI_DispString(0,32,'连接onenet成功  ',16,1);  

  delay_ms(500);

  printf('接入onenet成功');

  YHGUI_DispString(0,32,'                ',16,1);

  YHGUI_DispString(0,0,'                ',16,1);

  while(1) 

  {    

     keyscan();





    temperature = DS18B20_Get_Temp();//获取温度

          temperature=temperature/10;

            if(temperature<0)

            {

              temperature=-temperature;          //转为正数    

            }

            if(set_flag==0){

              if(time_miao==1)



              sprintf(dis1,' 恒温外卖柜 %02ds ',add_miao);

              else



              sprintf(dis1,' 恒温外卖柜       ');



            YHGUI_DispString(0,0,dis1,16,1);}

            else if(set_flag==1)YHGUI_DispString(0,0,'  温度上限设置   ',16,1);

            else if(set_flag==2)YHGUI_DispString(0,0,'  温度下限设置   ',16,1);

            sprintf(dis1,' 当前温度:%02d℃  ',temperature);

            YHGUI_DispString(0,16,dis1,16,1);    //显示  

            sprintf(dis1,' 温度上限:%02d℃  ',temp_high);

            YHGUI_DispString(0,32,dis1,16,1);    //显示  

            sprintf(dis1,' 温度下限:%02d℃  ',temp_low);

            YHGUI_DispString(0,48,dis1,16,1);    //显示  

             if(temperaturetemp_high)RELAY=0;

    if(++timeCount >= 5)    //时间间隔1s

    {

      if(time_miao==1){add_miao++;LED0=1;}else LED0=0;

      if(add_miao>30){add_miao=0;time_miao=0;}







        delay_ms(100);





        humidityH=11;    

        humidityL=22;   

        temperatureH=temperature;   //温度整数部分



        temperatureL=0;   //温度小数部分

        printf('hum temp=%d .%d %d .%d

',humidityH,humidityL,temperatureH,temperatureL);



      printf( 'OneNet_SendData

');//通过串口1发送提示信息(要开始发送数据了)



        OneNet_SendData();//发送数据给onenet



        printf('send_data_end

');

        timeCount = 0;



        ESP8266_Clear();

    }



    dataPtr = ESP8266_GetIPD(0);//获取平台返回的数据

    if(dataPtr != NULL)//如果返回数据不为空

      OneNet_RevPro(dataPtr);//平台返回数据检测



    delay_ms(10);



}



}


关键字:STM32  单片机  智能衣柜 引用地址:基于STM32单片机的智能衣柜设计

上一篇:理解STM32控制中常见的PID算法
下一篇:STM32F1 _DMA_USART

推荐阅读最新更新时间:2026-02-26 02:26

基于STM32单片机智能衣柜设计
功能说明 功能如下: 1、用stm32控制ds18b20采集温度 2、然后按键可以设置上下限温度 3、采集的温度低于下限温度时候打开加热片开始加热 4、加热到上限温度关闭加热片停止加热 5、采集的温度可以在oled显示 6、然后弄个按键控制一个紫外线灯模块,按一下打开紫外线灯一段时间,30s后自动关闭 7、将采集的温度上传到物联网平台onenet 系统框图 原理图 程序源代码-部分 int main(void) { unsigned char *dataPtr = NULL; unsigned short timeCount = 0; //发送间隔变量 delay_init();
[单片机]
基于<font color='red'>STM32</font><font color='red'>单片机</font>的<font color='red'>智能</font><font color='red'>衣柜</font>设计
什么是stm32单片机
stm32f103c8t6单片机是高校学生使用的最频繁的单片机了,被广泛的应用在课程设计,电子设计大赛,毕业设计中。其拥有非常优异的性能,同时价格低廉,参考资料多,是广大学生非ban必选的mcu。 单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已 。 或许大家有经常听起过最小系统板这个词儿,那么什么是最小系统板呢?其实最小系
[单片机]
【嵌入式】简评STM32单片机入门之路
【STM32可以做什么?】 STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域。 【用寄存器还是库函数?】 STM32有两种编程方式,一种是用寄存器的方式,另一种是库函数的方式。对于初学者而言,可能后者较容易上手。 学从难处学,用从易处用。学习阶段,能学多深就尽量学多深,这样基础会打得比较牢。不只是为了学STM32而学STM32,我们的目标是:学完STM32,换另一款芯片也能很快上手。基础有多牢固,换另一款芯片上手就有多快。 【学习重点】 一些基本的、通用的、常用的外设:GPIO输入输出(点灯、按键)、EXIT、TIMER、UART、I2C、SPI、ADC、DAC等,这些用得多,先把这些
[单片机]
STM32单片机最小系统详解
STM32F103RCT6: STM32F103RCT6是一种嵌入式-微控制器的集成电路(IC),32位 Cortex-M3内核处理器,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K,封装LQFP64。 STM32单片机命名规则: STM32单片机最小系统: 所谓单片机最小系统,就是让单片机能够正常运行,最少且必须的器件所组成的系统。 单片机最小系统上电之后,单片机可以正常复位,下载程序,除此之外没有其他任何功能。 在最小系统保证正确的基础上,可以依次添加其他功能模块或器件,使之单片机具有实际功能。 STM32单片机最小系统包括一个复位电路和一个时钟电路。如下图1所示。 图
[单片机]
STM32与FPGA的SPI通信实现详解:从MCU到FPGA的互相通信实践(第3篇)
前几篇的原理与代码写得不够详细并且有疏漏得地方,在本篇中会进行纠正 首先,我们先认识到我们需要在FPGA中创建什么类型的模块,一个ROM供MCU读取,一个RAM供MCU写入,若干计数器。为了实现这些模块的通信,在这中间我们需要使用一些模块来达到目的。最为重要的模块就是充当MOSI与MISO的处理转化输入输出的模块,我们暂且简称其为SPI_BUS模块,这个模块的一个作用是处理MCU输入的32位数据,将其转化为地址和数据两部分数据发送给各个模块 由上图实例化的模块图可以看出,输出一个16位的数据和一个32位的使能标志,有关使能标志位如何寻址相应寄存器在上一章节讲过,不再赘述。而这边的I_DIN通过一个MUX选择器来选择MCU读
[单片机]
<font color='red'>STM32</font>与FPGA的SPI通信实现详解:从<font color='red'>MCU</font>到FPGA的互相通信实践(第3篇)
STM32 - 软件设置单片机重启
__set_FAULTMASK(1);//关闭总中断 NVIC_SystemReset();//请求单片机重启 执行NVIC_SystemReset()函数不允许被打断,所以关总中断
[单片机]
stm32单片机在Keil环境下定义的变量都存储到哪去了?(以STM32f1系列为例)
stm32f1系列单片机,在keil5环境下编译后显示四个储存区域,分别是 Code, RO-data,RW-data,ZI-data Code为程序代码部分 RO-data 表示 程序定义的常量const RW-data 表示 已初始化的全局变量 ZI-data 表示 未初始化的全局变量 储存区域如下: Code, RO-data,RW-data ............flash RW-data, ZIdata...................RAM 不过初始化时RW-data从flash拷贝到RAM 所以相当于Code, RO-data占用flash的空间;RW-data, ZIdata占用RAM的空间。 如图所示的是
[单片机]
<font color='red'>stm32</font><font color='red'>单片机</font>在Keil环境下定义的变量都存储到哪去了?(以STM32f1系列为例)
点点滴滴学习STM32单片机系列 (二)
因为最近在做Modbus方面的东西,所以准备就这个话题边做边写。 1.写在之前 epoch1 作为一个非电子学专业的人,至少在两年前我是不知道有ModBus这种高层级的通讯协议的。2年前开始学习电子是从接触arduino开始的,探索中弄清了什么是UART,什么又是RS232,RS485.就在这种薄弱的认知下开始自己稍微复杂一点的arduino项目。多传感器数据的获取,然后通过433的模块进行无线传输。 其实仅仅是传输数据还并不困难,我最早的做法是将数据打包成如下的样子。 S:1:25.00:E:S:2:100:E 所有的数据均以S开头E结尾,并且使用:符号隔开。紧随S其后的是传感器编号,而后是传感器数据。这种数据的编码方式比较简单
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved