7基于stm32的智能风扇√★(代码片段)

行走的皮卡丘 行走的皮卡丘     2022-12-20     273

关键词:

7、💗💗基于STM32的智能风扇√★💗💗

Introduction

During the alternate seasons of spring and summer (summer and autumn), the temperature is still high during the day. The electric fan should have a high speed and large air volume to make people feel cool. At night, the temperature drops. When people fall asleep, they should gradually reduce the speed to avoid making people catch a cold. Although the electric fan has the function of adjusting different gears, it must be manually shifted. If you fall asleep, there is nothing you can do. The commonly used timer is turned off. On the one hand, there is a limit to the length of the timing, usually one or two. Hours; on the other hand, the temperature may not drop much after one or two hours, and the fan is turned off, making people wake up in sleep and have to get up and turn on the fan again, increasing the timer time, which is very troublesome and may After several timings, the last timing time is too long, and the fan continues to blow after the temperature drops, which makes people catch a cold; the third aspect is that there is only a simple function of turning off the fan power when the timing time is reached, which cannot meet the fan speed due to temperature changes. Different size requirements. For example, in terms of heat dissipation of higher-power electronic products, most of them now use air-cooled systems, which use fans to cause air to flow, take away heat, and prevent electronic products from heating and burning. To keep electronic products at a lower temperature, a fan with high power, high speed and large air volume must be used, and the noise of the fan is proportional to its power. If you want low noise, you have to reduce the fan speed, which will cause the temperature of the electronic equipment to rise, and you cannot have the best of both worlds.

With the rapid development of technology, smart homes have gradually entered ordinary homes, and fans, as basic household appliances, will also become part of smart homes. What is introduced here is a smart electric fan designed with STM32 single-chip microcomputer as the control unit and combined with embedded technology. It has buttons, Bluetooth and infrared control fan start and stop and wind speed, temperature control speed regulation, liquid crystal display temperature and other information. After the preliminary design, production and final test, the fan power supply has good stability, convenient operation, reliable operation, powerful functions, low price, and energy saving.

引言

春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。

随着科技的日新月异,智能家居逐渐走入普通家庭,风扇作为基本的家用电器也将成为智能家居的一部分。这里介绍的是以STM32单片机为控制单元并结合嵌入式技术设计的一款具有按键、蓝牙及红外控制风扇启停和风速、温控调速、液晶显示温度等信息的智能电风扇。经过前期设计、制作和最终的测试得出,该风扇电源稳定性好,操作方便,运行可靠,功能强大价格低廉,节约能耗。

1、系统概述

1.1、设计任务

用STM32设计一个智能电风扇。

1.2、设计要求

  • (1)按键控制风扇开关及调速;

  • (2)红外控制风扇启停及调速;

  • (3)蓝牙控制风扇启停及调速;

  • (4)自动温度调速。

2 、方案设计与论证

2.1、芯片选择方案

2.1.1、控制核心的选择

方案一:采用电压比较电路作为控制部件。温度传感器采用热敏电阻或热电偶等,温度信号转为电信号并放大,由集成运放成的比较电路判決控制风扇转速,当高于或低于某值时将风扇切換到相应档位。

方案二:采用STM32单片机作为控制核心。

以软件编程的方法进行温度判断,并在端口输出控制信号。

对于方案一,采用电压比较电路具有电路简单、易于实现,以及无需编写软件程序的特点,但控制方式过于单一,不能自由设置上下限动作温度,无法满足不同用户以及不同环境下的多种动作温度要求,故不在本系统中采用。

对于方案二,以STM32单片机作为控制器,通过编写程序不但能将传感器感测到的温度通过显示电路显示出来,而且用户能通过键盘接口,自由设置上下限动作温度值满足全方位的需求。并且通过程序判断温度具有极高的精准度,能精确把握环境温度的微小变化。故本系统采用方案二。

温度传感器的选择

2.1.2、温度传感器可由以下几种方案可供选择

方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于温度变化引起热敏电阻电阻的变化、进而导至的输出电压变化的微弱电压变化信号,再用AD转換芯片ADC0809将模拟信号转化为数字信号输入单片机处理。

方案二:采用热电偶作为感测温度的核心元件,配合桥式电路,运算放大电路和AD转換电路,将温度变化信号送入单片机处理。

方案三:采用数字式集成温度传感器DS18B20作为感测温度的核心元件,直接输出数字温度信号供单片机处理。

对于方案一,采用热敏电阻有价格便宜、件易购的优点,但热敏电阻对温度的细微变化不敏感,在信号采集、放大、转过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大误差,虽然可以通过一定电路予以纠正,但不仅将使电路复杂稳定性降低,而且在人体所处温度环境温度变化中难以检测到小的温度变化。故该方案不适合本系统。

对于方案二,采用热电偶和桥式测量电路相对于热敏电阻其对温度的敏感性和器件的非线性误差都有较大提高,其测温范围也非常宽,从-50摄氏度到1600摄氏度均可测量。但是依然存在电路复杂,对温度敏感性达不到本系统要求的标准,故不采用该方案。

对于方案三,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接

放大转换等电路的误差因素,温度误差很小,并且由于其感测温度的原理与上述两种方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件內部转换成数字量直接输出,简化了系统程序设计,又由于该传感器采用先进的单总线技术(1WRIE),与单片机的接口变的非常简洁,抗干扰能。

2.1.3、调速方式的选择

方案一:采用数模转化芯片DACO832来控制,由单片机根据当前环境温度值输岀相应数字量到DAC0832中,再由DAC0832产生相应模拟信号控制晶闸管的导通角从而通过无级调速电路实现风扇电机转速的自动调节。

方案二:采用单片机软件编程实现PWM脉沖宽度调制)调速的方案。PWM为英文 Pulse Width Modulation的缩写,它为按一定的规律改变脉冲序列的脉沖宽度,以调节输出量和波形的一种调节方式,在PWM区动控制的调节系统中,最常用的为矩形波PWM信号,在控制时需要调节

PVM波得占空比。占空比为指高电平持续时间在一个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为100%时,转速达到最大。用单片机/O口输出PM信号时,有如下两种方案

  • (1)利用软件延时。当高电平延时时间到时,对/O口电平取反,使其变成低电平,然后再延时一定时间;当低电平延时时间到时,再对该O口电平取反,如此循环即可得到PWM信号。在本设计中应用了此方案

  • (2)利用定时器。控制方案与(1)相同,只为在该方案中利用单片机的定时器来定时进行高低电平的转变,而不为用软件延时。应用此方案时编程相对复杂。

对于方案一,该方案能够实现对直流风扇电机的无级调速,速率变化灵敏,但为D/A转化芯片的价格较高,与其温控状态下无级调速性能相比性价比不高。

对于方案二,相对于其他用硬件或者软硬件相结合的方案实现对电机进行调速而言,采用PWM用纯软件的方案来实现调速过程,具有更大的灵活性,并可大大降低成本,能够充分发挥单片机的性能,对于简单速率控制系统的实现提供了一种有效的途径。综合考虑选用方案二。

2.2、系统总体设计思路

  • (1) 本设计采用STM32单片机做主控芯片,通过DS18B20采集温度,将温度显示在OLED上。实现自动温度控制风速。

  • (2) 根据温度不同,利用STM32对风扇进行调速。

  • (3) 利用按键和红外控制功能,实现风扇启停及调速

  • (4) 利用蓝牙功能,完成风扇启停及调速。

2.3、各功能模块程序实现原理分析

该模块由蓝牙HC05模块,OLED模块,电机驱动L298N模块,按钮控制模块,红外控制模块、电机和温度计DS18B20组成,且都通过STM32来实现。

2.3.1、电机驱动L298N模块

2.3.2、 按钮控制模块

四个按钮的一端分别接地,另一端接单片机一个端口的四个引脚,当某一个按钮按下的时候,其对应的引脚就由高电平变成低电平,然后通过单片机扫描读取引脚的电平来判断按钮是否按下。

2.3.3、 OLED模块

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。LCD 都需要背光,而 OLED 不需要,因为它是自发光的。另外,OLED的功耗比LCD低得多,相同显示面积的功耗仅相当于LCD的1/3。OLED尺寸难以大型化,但是分辨率确可以做到很高,非常适合手持式移动设备。

1)HTDS系列OLED模块具 有以下特点:

无需背光:显示单元能自发光;

宽电压支持:无需任何修改,直接支持 3V~5V 直流电压;

独立的 SPI 或 IIC 通信方式:SPI 的优势在于可以独立复位,若使用CPU 的硬件 SPI,显示速度快,性能稳定;IIC 的优势在于只需要两个 IO 口便能工作,节约 IO 口,适合 IO 紧张的用户;

分辨率高:128*64;

可视角度大:最大可视角 160°;

支持众多控制芯片:全面兼容 Arduino、51 系列、MSP430 系列、STM32/2、CSR 芯片等;

超低功耗:全屏点亮时 0.08W,正常全屏显示汉字 0.06W(远低于TFT、LCD 等技术);

工业级工作温度:-30℃~70℃;

体积小:0.96 寸屏尺寸为 27.0MM27.0MM3.6MM,1.3 寸外形尺寸为 35.5MM32MM3.6MM。

丰富的引线接口:模块上默认使用 2.54mm 单排针作为通信接口,预留有 0.5mm 间距 FFC 接口,用户在设计自己的 PCB 时可以更灵活。

2.3.4、 蓝牙HC05模块

1)HC05 简介

YH-HC05 是野火科技推出的蓝牙串口模块,它采用蓝牙 2.0 协议,可与任何版本的蓝牙兼容通讯,包括与具有蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP 等终端配对,可实现串口透传功能。驱动 HC05 模块时只需要使用 TTL 电平标准的串口即可(5V/3.3V 电压均可),支持的波特率范围为 4800~1382400,非常适合用于单片机系统扩展蓝牙特性。

2)特性参数

3)引脚介绍

2.3.5、温度计DS18B20

1)温度计DS18B20简介

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。 DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

2)工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号发送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

3)DS18B20的外形及管脚

DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的外形及管脚排列如下:

DS18B20引脚定义:

(1)DQ为数字信号输入/输出端;

(2)GND为电源地;

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

2.3.6、 红外控制模块

3、硬件设计

3.1、智能风扇系统硬件设计

该模块由蓝牙HC05模块,OLED模块,电机驱动L298N模块,按钮控制模块,红外控制模块、电机和温度计DS18B20组成,实物如下图所示:

4 、系统程序

4.1、主程序设计如下

主程序流程设计图如下图:

4.2、 主程序内容

#include "main.h"
#include "stdlib.h"
#include ".\\motor_control\\bsp_motor_control.h"
#include "./led/bsp_led.h"
#include "./key/bsp_key.h" 
#include "./usart/bsp_debug_usart.h"
#include "./key/bsp_key.h"
#include "xyz.h"

__IO int16_t speed_leveo = 1;
__IO int16_t fan_mode = 0;
__IO int16_t fan_auto = 0;
__IO int16_t setnum;
__IO int16_t i = 0;							//累加值

unsigned int Task_Delay[NumOfTask]; 
char sendData[1024];
char linebuff[1024];
char* redata;


void Delay(__IO uint32_t nCount)	 //简单的延时函数

    for(; nCount != 0; nCount--)
    

void display(void)		//风速显示1

    if(speed_leveo==0)
    
    else if(speed_leveo==1)
        OLED_8x16Str(70,5,"1");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==2)
        OLED_8x16Str(70,5,"2");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==3)
        OLED_8x16Str(70,5,"3");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==4)
        OLED_8x16Str(70,5,"4");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==5)
        OLED_8x16Str(70,5,"5");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==6)
        OLED_8x16Str(70,5,"6");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==7)
        OLED_8x16Str(70,5,"7");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==8)
        OLED_8x16Str(70,5,"8");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    


void display2(void)		//风速显示2

    if(speed_leveo==0)
    
    else if(speed_leveo==1)
        OLED_8x16Str(70,6,"1");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==2)
        OLED_8x16Str(70,6,"2");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==3)
        OLED_8x16Str(70,6,"3");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==4)
        OLED_8x16Str(70,6,"4");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==5)
        OLED_8x16Str(70,6,"5");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==6)
        OLED_8x16Str(70,6,"6");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==7)
        OLED_8x16Str(70,6,"7");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    
    else if(speed_leveo==8)
        OLED_8x16Str(70,6,"8");				//OLED_8x16Str(水平位置(像素),垂直位置(行),"显示内容")
    




void LED(void)			//测试用不用管

    if(speed_leveo==0)
        LED1_OFF;
        LED2_OFF;
        LED3_OFF;
    
    else if(speed_leveo==1)
        LED2_OFF;
        LED3_OFF;
        LED1_ON;
        Delay(0x0FFFFF);
        LED1_OFF;
        Delay(0x0FFFFF);
    
    else if(speed_leveo==2)
        LED1_ON;
        LED2_OFF;
        LED3_OFF;
    
    else if(speed_leveo==3)
        LED1_ON;
        LED2_ON;
        LED3_OFF;
        Delay(0x0FFFFF);
        LED2_OFF;
        Delay(0x0FFFFF);
    
    else if(speed_leveo==4)
        LED1_ON;
        LED2_ON;
        LED3_OFF;
    
    else if(speed_leveo==5)
        LED1_ON;
        LED2_ON;
        LED3_ON;
        Delay(0x0FFFFF);
        LED3_OFF;
        Delay(0x0FFFFF);
    
    else if(speed_leveo==6)
        LED1_ON;
        LED2_ON;
        LED3_ON;
    
    else if(speed_leveo==7)
        LED1_ON;
        LED2_ON;
        LED3_ON;
        Delay(0x0FFFFF);
        Delay(0x0FFFFF);
    
    else if(speed_leveo==8)
        LED1_ON;
        LED2_ON;
        LED3_ON;
    

void hongwai(void)		//红外接收

    if( frame_flag == 1 )		//一帧数据接收完成
    
        if(fan_mode)			//判断是否为开机状态
        					
            for(i=0; i<8; i++)	//开机页面显示
            
                OLED_16xACN(i*16,0,i);
                OLED_16xACN(i*16,2,i+8);
                OLED_16xACN(i*16,4,i+16);
                OLED_16xACN(i*16,6,i+24);
            
        
        else
        
            for(i=0; i<8; i++)	//关机页面显示
            
                OLED_16xBCN(i*16,0,i);
                OLED_16xBCN(i*16,2,i+8);
                OLED_16xBCN(i*16,4,i+16);
                OLED_16xBCN(i*16,6,i+24);
            
        
        IrDa_Process();			//红外接收计算
        switch( tir_back )		//判断返回值
        
            case 0:
                break;

            case 162:		//电源
                fan_auto = 0;			//关闭自动
                OLED_CLS();				//清空屏幕
                if(fan_mode)			//判断是否为开机状态
                						//如果当前为开机状态
                    fan_mode = 0 ;		//关机
                    speed_leveo = 0;	//风速调0
                    for(i=0; i<8; i++)	//显示关机页面
                    
                        OLED_16xBCN(i*16,0,i);
                        OLED_16xBCN(i*16,2,i+8);
                        OLED_16xBCN(i*16,4,i+16);
                        OLED_16xBCN(i*16,6,i+24);
                    
                
                else					//如果当前为开机状态
                
                    fan_mode = 1;		//开机
                    speed_leveo = 1;	//风速调1
                    for(i=0; i<8; i++)	//显示开机页面
                    
                        OLED_16xACN(i*16,0,i);
                        OLED_16xACN(i*16,2,i+8);
                        OLED_16xACN(i*16,4,i+16);
                        OLED_16xACN(i*16,6,i+24);
                    
                
                break;

            case 226:		//menu
                if(fan_mode)				
                    fan_auto = ~fan_auto;	//自动状态取反
                if(fan_mode)				//屏幕显示
                					
                    for(i=0; i<8; i++)		//显示开机页面
                    
                        OLED_16xACN(i*16,0,i);
                        OLED_16xACN(i*16,2,i+8);
                        OLED_16xACN(i*16,4,i+16);
                        OLED_16xACN(i*16,6,i+24);
                    
                
                else
                
                    for(i=0; i<8; i++)		//显示关机页面
                    
                        OLED_16xBCN(i*16,0,i);
                        OLED_16xBCN(i*16,2,i毕业设计-题目:基于stm32的智能温控风扇设计与实现(代码片段)

...f0c;这里是丹成学长,今天向大家介绍一个单片机项目基于stm32的智能温控风扇设计与实现大家可用 查看详情

基于stm32f103的智能门锁系统(代码片段)

基于STM32F103的智能门锁系统直接说明实现了什么效果1指纹解锁(基于AS608)2RFID解锁(基于RC522)3密码解锁(基于LCD电容屏触摸控制)4蓝牙解锁(基于HC-06)5后台服务器管理开锁信息(基于ESP8266)6APP... 查看详情

基于stm32单片机项目设计目录-加油吧√

★♥基于STM32单片机项目设计目录√♥※目录★♥基于STM32单片机项目设计目录√♥※1、基于STM32的音乐喷泉2、STM32的智能浇水补光系统3、基于STM32的手机通过wifi控LED灯4、基于STM32的电子打铃器5、基于STM32的智能手环6、基于STM32... 查看详情

基于stm32单片机项目设计目录-加油吧√

★♥基于STM32单片机项目设计目录√♥※目录★♥基于STM32单片机项目设计目录√♥※1、基于STM32的音乐喷泉2、STM32的智能浇水补光系统3、基于STM32的手机通过wifi控LED灯4、基于STM32的电子打铃器5、基于STM32的智能手环6、基于STM32... 查看详情

5♥☆基于stm32的智能手环√★☆(代码片段)

5、♥☆基于STM32的智能手环√★☆💙💙文章目录5、♥☆基于STM32的智能手环√★☆💙💙Introduction引言1、系统概述1.1、设计任务1.2、设计要求2、方案设计与论证2.1、芯片选择方案2.2系统概述2.3、设计要求2.4、系... 查看详情

5♥☆基于stm32的智能手环√★☆(代码片段)

5、♥☆基于STM32的智能手环√★☆💙💙文章目录5、♥☆基于STM32的智能手环√★☆💙💙Introduction引言1、系统概述1.1、设计任务1.2、设计要求2、方案设计与论证2.1、芯片选择方案2.2系统概述2.3、设计要求2.4、系... 查看详情

基于stm32的智能蓝牙温控风扇控制系统设计-毕设课设

1.LCD1602液晶显示当前温度,温度上下限值,风扇等级,自动手动模式;2.设置有4个按键,按键1可以设置自动和手动2种模式切换;按键2为温度上下限的设置键;按键3为设置状态下的加一键,手动模... 查看详情

基于stm32的智能鱼缸设计(代码片段)

...省鱼友时间、劳力、增加养鱼乐趣;为此,本文基于STM32单片机设计了一款智能鱼缸。该鱼缸可以实现水温检测、水质检测、自动或手动换水、氛围灯灯光变换和自动或手动喂食等功能为一体的控制系统,可通过控制... 查看详情

基于stm32f4开发的智能台灯(代码片段)

基于STM32F4开发的智能台灯写这篇博客的目的有2个,首先是记录一下学习STM32大半年来的第一个自己动手开发的项目,整理一下开发过程和思路;其次也是希望可以和更多的同行交流开发经验,有什么问题可以多多... 查看详情

基于stm32设计的宠物投喂器(代码片段)

1.前言随着物联网技术的快速发展,智能家居已经进入人们的日常生活中,在政策加持的背景下,智能家居企业越来越关注相关技术的研发和应用;但是市场上的宠物投喂装置已经难以满足宠物主人的需求。文章介绍的宠物智能... 查看详情

基于stm32的智能小车app自学梳理(代码片段)

文章目录目录文章目录前言一、基本逻辑梳理二、android部分蓝牙扫描2.1、权限申请2.2、相关变量2.3、onCreate一些初始化操作2.3.1、位置权限2.3.2、控件初始化2.3.3、蓝牙初始化2.4、蓝牙回调函数2.4.1、高版本蓝牙回调24.2、低版本蓝... 查看详情

基于stm32的智能小车app自学梳理(代码片段)

文章目录目录文章目录前言一、基本逻辑梳理二、android部分蓝牙扫描2.1、权限申请2.2、相关变量2.3、onCreate一些初始化操作2.3.1、位置权限2.3.2、控件初始化2.3.3、蓝牙初始化2.4、蓝牙回调函数2.4.1、高版本蓝牙回调24.2、低版本蓝... 查看详情

基于stm32的智能小车app自学梳理(代码片段)

文章目录目录文章目录前言一、基本逻辑梳理二、android部分蓝牙扫描2.1、权限申请2.2、相关变量2.3、onCreate一些初始化操作2.3.1、位置权限2.3.2、控件初始化2.3.3、蓝牙初始化2.4、蓝牙回调函数2.4.1、高版本蓝牙回调24.2、低版本蓝... 查看详情

基于stm32设计的蓝牙健康管理设备(代码片段)

1.前言随着移动通信技术的发展,移动互联网日益普及,传统互联网已经在向移动互联网迁移,智能穿戴设备近年来发展的非常迅速,成为一个热点行业,它通过借助传感器,与人体进行信息交互,是一种在新理念下诞生的智能... 查看详情

基于stm32的智能温室控制系统仿真电路设计(温控补光)-设计资料(代码片段)

#include"stm32f10x.h"#include"LQ12864.h"#include"adc.h"#include"dth11.h"#definePUSH_UP1#definePUSH_DOWN2#definePUSH_OK3#definePUSH_NONE4voidmain_delay(u32ms) inti,j; f 查看详情

基于stm32f103c8t6的智能垃圾桶项目(代码片段)

基于STM32F103c8t6的智能垃圾桶项目写在前头软件配置硬件部分1.主控芯片2.HC-SR04超声波模块模块简介模块参数工作原理GPIO配置3.SG90舵机模块简介模块参数工作原理GPIO配置3.OLED显示屏模块简介模块参数工作原理GPIO配置软件部分HC-SR0... 查看详情

基于stm32设计的云端健康管理系统(采用阿里云物联网平台)(代码片段)

1.前言近几年随着科技的进步和智能化浪潮的到来,智能穿戴设备也在飞速火爆发展,各种健康智能手环,智能手表、智能跑鞋、智能眼镜纷纷上市,并出现了很多针对个人家庭的健康管理设备。比如:智能血压计... 查看详情

基于stm32设计的云端健康管理系统(采用阿里云物联网平台)(代码片段)

1.前言近几年随着科技的进步和智能化浪潮的到来,智能穿戴设备也在飞速火爆发展,各种健康智能手环,智能手表、智能跑鞋、智能眼镜纷纷上市,并出现了很多针对个人家庭的健康管理设备。比如:智能血压计... 查看详情