基于GPRS的远程家电控制系统

本文介绍了一个基于STM32F103的实践项目,通过GPRS模块和红外模块实现对家用电器的远程控制。利用C语言编程,通过GPRS收发短信控制红外模块发送信号,模拟遥控器操作,例如控制空调的开关和温度。已成功实现空调的远程控制,并提供了部分源代码和库函数链接,后续可扩展到更多家电。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述:学校的一个实践项目,采用GPRS+GPRS+红外+传统家电和C语言开发实现对现有家电的远程控制

硬件:STM32F103(普中版)+GPRS模块(GPRS A6某宝)+红外模块(IR_01某宝)

开发工具和语言:Keil 4 for arm、C

(PS:嵌入式偏软方向,重心放在了代码编写和调试,所以硬件都买现有模块,而并非自绘自制,硬件贴图说明

细节介绍:通过对STM32的GPIO串口编程,控制GPRS模块进行SMS短信收发和红外模块对红外信号的识别发射,即手机和GPRS模块通过短信、GPRS模块和红外模块通过stm32的GPIO、红外模块和家电通过自识别信号完成远程控制。

功能过程介绍:以格力空调为例,用STM32的按键控制打开红外的识别模式,系统记录下遥控器的红外发射码,对相应的控制码进行编号,以对应不同的短信内容,最终实现手机发送不同内容短信代替遥控器完成对空调的控制。

完成情况:完成了发送短信控制空调打开并调节到相应的温度,空调成功执行并返回对应的短信给手机。(后有实物图,PS:附件项目生成的执行文件烧至stm32即可直接使用)

编码设计&&功能图:



GPRS果云A6实物图:




GPRS果云A6接口图:



部分源程序如下: #define TARGET_GLOBAL 1 #include "target.h" /***************************************************************************************** *函数名称:usart0_Initial(void) *函数功能:初始化串口 *入口函数:无 *出口函数:无 *****************************************************************************************/ void usart0_Initial(void) { /************TH1=256-(K*oscFreq)/384*BaudRate************/ SCON=0x50; //SM0=0;SM1=1;REN=1; TI=0; //数据发送状态清零 RI=0; //数据接收状态清零 PCON=0; //不加倍 TH1=0xF3; //bode=2400 TL1=0XF3; TMOD=0X20; //TIMER1 MODER2; ET1=0; //屏蔽timer1溢出中断 TR1=1; //启动timer1 ES=0; //屏蔽串口中断 } /***************************************************************************************** *函数名称:send_char(uchar txd) *函数功能:串口发送一个字符 *入口函数:要发送的一个字符txd *出口函数:无 *****************************************************************************************/ void send_char(uchar txd) { TI=0; SBUF=txd; while(!TI); // 等特数据传送 TI=0; // 清除数据传送标志 } /***************************************************************************************** *函数名称:send_str(uchar *str,uchar len) *函数功能:串口发送一行字符串 *函数入口:字符串指针*str,字符串长度len *函数出口:无 *****************************************************************************************/ void send_str(uchar *str,uchar len) { uchar i; for(i=0;i<len;i++) send_char(str[i]); } /***************************************************************************************** *函数名称:get_char(void) *函数功能:串口接收一个字符 *函数入口:串口发送的字符rxd *函数出口:无 *****************************************************************************************/ uchar get_char(void) { uchar temp; RI=0; while(!RI); // 等特数据传送 temp=SBUF; RI=0; // 清除数据传送标志 return temp; }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值