> # ♻️ 资源
> **大小:** 54.6MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010619**](https://www.yuque.com/sxbn/ks/100010619)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87415719**](https://download.csdn.net/download/s1t16/87415719)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 智能家居控制系统
# 一、摘要
智能家居作为家庭信息化的实现方式,已经成为社会信息化发展的重要组成部分,物联网其巨大的应用前景,是智能家居产业发展过程中一个比较现实的突破口,对智能家居的产业发展具有重大意义。本文基于容易实现,方便操作,贴近使用的设计理念,设计的智能家居控制系统是以 STC89C52 单片机为主控器件,通过按键和红外通讯模块进行数据交换。主控器件为核心,通过键盘输入和修改门禁密码、关锁,以及人工控制灯和风扇的开关;通过红外通讯远程开锁和人工开关风扇;用传感器和时钟模块获取温度和时间,并利用 LCD1602 液晶屏显示温度时间以及输入密码的‘*’和修改的密码。
# 二、题目要求
基于物联网的智能家居控制系统。
可涉及到的部分核心元器件:51 单片机、运算放大器、稳压管、电位器、电阻电容(不限)、继电器、二/三极管、数码管、轻触按键、IC 插座、双列直插、红外接收器,计数芯片、数码管显示芯片、GPS 定位模块、GSM 通信模块、新型太阳能电池板、高精度视频识别摄像头、语音识别与存储模块、LED 显示模块。
# 三、方案说明
以 STC89C52 为主控芯片,以矩阵键盘输入密码,以独立按键确认、清除、进入修改密码界面和锁门(关密码锁),输入密码错误 3 次以后进行蜂鸣器报警,并锁定键盘,只能用红外遥控开锁;修改密码后会用 EEPROM 进行保存;以矩阵键盘和红外遥控共同人工控制灯和风扇的开关,用 DS1302 时钟芯片进行计时,用 DS18B20 数字温度传感器获取温度,当温度和时间达到设定的值时,会自动开启风扇和灯,智能开启的灯和风扇是可自动调节的,风扇的转速会比人工开启的稍慢,而灯会根据光强自动调节亮度,其中风扇使用 ULN2003 直流电机驱动模块控制,灯光的调节是通过 PCF8591 数模转换模块和光敏电阻控制。开密码所后,会显示当前温度时间和是否开启灯和风扇;显示部分使用的是 LCD1602 液晶,红外接收用的是 HS0038 红外接收模块。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525202-22eec440-ad9a-4d71-a2df-7a9aa141be94.png#averageHue=%23fafafa&from=url&id=qV9KS&originHeight=2034&originWidth=1616&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
# 四、软硬件设计
## 4.1 主控电路部分:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525278-c110ea71-e38f-485a-ad09-1dbfa4427433.png#averageHue=%23fdfae4&from=url&id=dVIf6&originHeight=571&originWidth=731&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525355-cef3a1b3-f100-4fec-a576-da5f168b40db.png#averageHue=%23fefbf7&from=url&id=rxJet&originHeight=270&originWidth=351&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525449-3d3363e9-42c2-49f2-ad08-cb0c9a223442.png#averageHue=%23fefbf7&from=url&id=ShfRp&originHeight=284&originWidth=463&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525518-a8177270-53de-4334-b3b4-f85ae56b6619.png#averageHue=%23fefbf6&from=url&id=dYDCk&originHeight=167&originWidth=335&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
## 4.2 功能电路部分:
### 4.2.1 红外通讯:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525610-d77873d7-4e17-4f52-bf91-d24f123f448e.png#averageHue=%23fefbf7&from=url&id=ACP8I&originHeight=411&originWidth=420&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
利用单片机 P3.2IO 口接收红外数据。
红外模块代码:
由于这里代码都有例程,所以仅贴出.h 部分。
```
# ifndef__INFRARED_H
# define__INFRARED_H
# include"Sys.h"
voidinit();//对红外通讯所使用到的外部中断0和定时器0初始化
voidIRcordpro();//把提取的33次脉宽解码NEC协议
# endif
```
### 4.2.2 DS18B20:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525681-903ec0c1-49b9-4f3c-a472-a67afc58cc2e.png#averageHue=%23fefbf7&from=url&id=h1be9&originHeight=449&originWidth=484&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
利用单片机 P2.2IO 口控制其收发数据。
DS18B20 模块代码:
由于这里代码都有例程,所以仅贴出.h 部分。
```
# ifndef__DS18B20_H
# define__DS18B20_H
# include"Sys.h"
sbitds=P2^2;
voiddsInit();//单总线初始化时序
voiddsWait();//延时37.95us等待18B20发回存在信号
bitreadBit();//读一位数据
unsignedcharreadByte();//读一个字节数据
voidwriteByte(unsignedchardat);//写一个字节数据
voidsendChangeCmd();//发送温度转换命令
voidsendReadCmd();//发送读命令
intgetTmpValue();//获取温度
voiddisplayTemp(intv);//用LCD1602显示温度
# endif
```
### 4.2.3 DS1302:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525765-a1d67eb3-786c-4a7a-8389-a281d6e455cd.png#averageHue=%23fefbf2&from=url&id=sdu2V&originHeight=525&originWidth=633&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
DS1302 模块代码:
由于这里代码都有例程,所以仅贴出.h 部分。
```
# ifndef__DS1302_H
# define__DS1302_H
# include"Sys.h"
sbitTSCLK=P1^0;//时钟
sbitTIO=P1^1;//数据
sbitTRST=P1^2;//使能
# defineMAIN_Fosc11059200UL//宏定义主时钟HZ
# defineDS1302_W_ADDR0x80//写时钟日历寄存器起始地址
# defineDS1302_R_ADDR0x81//读时钟日历寄存器起始地址
voidSet_DS1302_Time(ucharaddr);//设置时间
voidRead_DS1302_Time(ucharaddr);//读取时间
ucharDat_Chg_BCD(uchardat);//10进制数据转BCD
ucharBCD_Chg_Dat(uchardat);//BCD转10进制数据
# endif
```
### 4.2.4 LCD1602:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713748525831-40efd5e6-3d05-4034-a517-31eac3d42206.png#averageHue=%23fefbee&from=url&id=fE4VO&originHeight=423&originWidth=557&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
LCD1602 模块代码:
这里对例程代码进行了扩充,所以放出完整代码。
```
1. #ifndef __LCD1602_H
2. #define __LCD1602_H
3. #include "Sys.h"
4. #define LCD1602_DB P0 //data bus 数据总线
5. sbit LCD1602_RS = P3^5;
6. sbit LCD1602_RW = P3^6;
7. sbit LCD1602_EN = P3^4;
8. void Read_Busy(); //忙检测函数,判断bit7是0,允许执行;1禁止
9. void Lcd1602_Write_Cmd(unsigned char cmd); //写命令
10. void Lcd1602_Write_Data(unsigned char dat); //写数据
11. void LcdSetCursor(unsigned char x,unsigned char y); //设置坐标
12. void DisplayOneChar (uchar X,uchar Y,uchar DData); // 写一个字节
13. void DisplayOneStr (uchar X,uchar Y,uchar DData);//显示一个字节字符
1
没有合适的资源?快使用搜索试试~ 我知道了~
基于物联网的智能家居控制系统【100010619】
共185个文件
c:47个
h:43个
lst:43个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 199 浏览量
2023-02-04
09:39:34
上传
评论 1
收藏 54.7MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010619 以 STC89C52 为主控芯片,以矩阵键盘输入密码,以独立按键确认、清除、进入修改密码界面和锁门(关密码锁),输入密码错误 3 次以后进行蜂鸣器报警,并锁定键盘,只能用红外遥控开锁;修改密码后会用 EEPROM 进行保存;以矩阵键盘和红外遥控共同人工控制灯和风扇的开关,用 DS1302 时钟芯片进行计时,用 DS18B20 数字温度传感器获取温度,当温度和时间达到设定的值时,会自动开启风扇和灯,智能开启的灯和风扇是可自动调节的,风扇的转速会比人工开启的稍慢,而灯会根据光强自动调节亮度,其中风扇使用 ULN2003 直流电机驱动模块控制,灯光的调节是通过 PCF8591 数模转换模块和光敏电阻控制。开密码所后,会显示当前温度时间和是否开启灯和风扇;显示部分使用的是 LCD1602 液晶,红外接收用的是 HS0038 红外接收模块。
资源推荐
资源详情
资源评论
收起资源包目录
基于物联网的智能家居控制系统【100010619】 (185个子文件)
HomeControl.uvgui.99233 177KB
HomeControl.uvgui.99233 177KB
HomeControl.uvgui.99233 176KB
HomeControl.uvgui.99233 173KB
Secret.__i 227B
Key.__i 215B
main.c 9KB
main.c 9KB
main.c 8KB
DS18B20.c 2KB
DS18B20.c 2KB
DS18B20.c 2KB
DS1302.c 2KB
DS1302.c 2KB
DS1302.c 2KB
IIC.c 2KB
IIC.c 2KB
IIC.c 2KB
InfraRed.c 2KB
InfraRed.c 2KB
InfraRed.c 2KB
Secret.c 2KB
LCD1602.c 2KB
LCD1602.c 2KB
LCD1602.c 2KB
LCD1602.c 2KB
Secret.c 2KB
Secret.c 2KB
Key.c 1KB
Key.c 1KB
Key.c 1KB
Key.c 1KB
PCF8591.c 657B
PCF8591.c 657B
PCF8591.c 657B
Secret.c 583B
main.c 405B
Delay.c 200B
Delay.c 199B
Delay.c 199B
Delay.c 199B
ULN2003.c 104B
ULN2003.c 104B
ULN2003.c 104B
Beep.c 42B
Beep.c 42B
Beep.c 42B
Beep.c 42B
Sys.c 18B
Sys.c 18B
Sys.c 18B
Sys.c 18B
InfraRed.c 16B
物联网171张豪智能家居.doc 794KB
LCD1602.h 702B
LCD1602.h 702B
LCD1602.h 702B
LCD1602.h 702B
Sys.h 528B
Sys.h 528B
Sys.h 528B
IIC.h 512B
IIC.h 512B
IIC.h 512B
DS1302.h 484B
DS1302.h 464B
DS1302.h 464B
DS18B20.h 432B
Sys.h 305B
DS18B20.h 276B
DS18B20.h 276B
PCF8591.h 216B
PCF8591.h 216B
PCF8591.h 216B
InfraRed.h 178B
Secret.h 158B
Secret.h 158B
Secret.h 158B
Delay.h 120B
Delay.h 119B
Delay.h 119B
Delay.h 119B
Beep.h 105B
Beep.h 105B
Beep.h 105B
Beep.h 105B
InfraRed.h 102B
InfraRed.h 102B
Secret.h 99B
Key.h 95B
Key.h 95B
Key.h 95B
Key.h 95B
ULN2003.h 84B
ULN2003.h 84B
ULN2003.h 84B
InfraRed.h 67B
HomeControl 129KB
HomeControl 128KB
HomeControl 127KB
共 185 条
- 1
- 2
神仙别闹
- 粉丝: 2706
- 资源: 7641
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页