2023-5-20基于52单片机的智能家居系统(蓝牙)

资料已上传在微信公众号:风吹摇铃 奔赴星海

此系统可根据开发板原理图搭配外载模块实现功能,也可以根据原理图焊接或者PCB焊接。

注意:根据开发板搭载外部模块实现功能,需根据开发板原理图修改代码

0、整理及编写了19个常用的51单片机Proteus仿真,如下所示(可在压缩包第十个文件夹中的链接中下载):

1、系统功能:(系统内的AD传感器可根据需要自行选择)

(0)系统共有5个模式:日期闹钟模式、温湿度模式、光照检测模式、AD类传感器I类模数、AD类传感器II类模式。

(1)采用DS1302模块,实现日期和时间的读取,日期和时间均可通过独立按键设置。内设一个闹钟,闹钟可以通过按键设置,打开或者关闭等。日期、时间、闹钟等数据通过蓝牙模块上传至手机端显示。(闹钟响时显示屏显示当前是闹钟时间,时间是XXXXX字样,以英文呈现,手机端以中文呈现)

(2)通过DHT11温湿度传感器采集环境的温湿度,同时设有温湿度上限,上限可通过按键设置,当转换的温湿度超过阈值,则启动风扇降温降湿,蜂鸣器报警,温湿度数据通过蓝牙上传在手机端显示。

(3)通过BH1750光照传感器采集环境光照强度,设有上限阈值,可通过按键设置,超过阈值报警,同时显示屏显示:请注意光照过高字样,以英文形势呈现。

(4)通过ADC0832转换3和4路AD类传感器采集的数据,设有上限值,可通过按键设置,超过上限阈值,报警,风扇排风。数据通过蓝牙上传手机端显示。

(5)通过ADC0832转换1和2路AD类传感器采集的数据,设有上限值,可通过按键设置,超过上限阈值,报警,风扇排风。数据通过蓝牙上传手机端显示。

2、系统组成:单片机最小系统、LCD1602液晶显示屏、独立按键、高电平有效蜂鸣器,AD类传感器模块4个、ADDC0832模数转换芯片2块、DS1302、DHT11温湿度传感器、蓝牙模块、小风扇、S8050三极管、BH1750光照传感器、LED等等。

3、下载后请认真阅读下列文档,此文档包含了大量问题及解决方法:

4、文末的链接中下载全套资料,全套资料包括如下内容:(请详细阅读使用前必读和必读文件)

4.1、程序,附有注释:

4.2、仿真:

(1)系统初始界面

(2)日期闹钟界面

(3)温湿度界面

(4)BH1750光照检测界面(此界面无法仿真)

(5)AD传感器I类检测

(6)AD传感器II类检测

4.3、参考文献包含以下内容:

4.4、嘉立创EDA原理图,包含以下内容:

4.4.0、工程源文件

4.4.1、PCB制版文件为一压缩包文件,可直接制版:

4.4.2、PDF为原理图:

4.4.3、工程源文件下包含工程的原理图和PCB工程,可解压后由嘉立创EDA软件直接打开进行编辑:

4.4.4、PCB3D预览图:(注意给大家的PCB制板文件打出来的板如下排版,和我手里的排版略微不同,但都是一样的,只是元器件放的位置有所变化,大家也可以自己打开源文件工程修改自己想要的排版,这个在视频里面有讲到)

5、51单片机学习资料内包含了51单片机使用手册,1602使用手册以及C语言手册等大量学习资料:

6、器件清单:(请参照下面的元器件购买视频购买)

7、51单片机烧录软件说明,此资料为将程序烧录到开发板或者芯片的说明,内含下载链接:

8、主要软件下载链接,内部包含了Proteus各版本,KEIL、字模取模等单片机类各设计软件:

9、模块资料:包含传感器使用说明,原理图等:

10、下面是部分代码:

/*此处是头文件 内部包含一些定义及寄存器*/#include "reg52.h"       //此文件中定义了单片机的一些特殊功能寄存器#include "intrins.h"#define uchar unsigned char#define uint unsigned int
/**********************************1602PIN口定义 P0口数据驱动 P2引脚驱动**********************************/#define LCD1602_DATAPINS P0sbit LCD1602_RS=P2^7;  //1602引脚sbit LCD1602_RW=P2^6;sbit LCD1602_E=P2^5;
/*DS1302IO口定义引脚*///---定义ds1302使用的IO口---//sbit DSIO=P3^3;//DS1302的引脚接口sbit RST=P3^4;sbit SCLK=P3^2;/*1302初始化部分数组*///---DS1302写入和读取时分秒的地址命令---////---秒分时日月周年 最低位读写位;-------//uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
//---DS1302时钟初始化2023年5月17日星期3   22点44分00秒。---////---存储顺序是秒分时日月周年,存储格式是用BCD码---//uchar TIME[7] = {0, 0x39, 0x08, 0x20, 0x05, 0x07, 0x23};unsigned int ti=0,alarm=0;       //修改第几个时间参数 、修改第几个闹钟参数unsigned char alarm_hour=0x17,alarm_min=0x47;   //闹钟时、分参数
enum Mode        //定义枚举、三种模式{  DISPLAYDATA,MODIFYDATA,SETALARMCLOCK,NONE,ALARMCLOCK}mode;

enum Alarmswitch   //定义闹钟开关{  OFF,ON}alarmswitch;
/*DHT11温湿度传感器数据端口*/sbit Data=P1^7;   //DHT11数据线接口P17
/*独立按键驱动定义,此处按键为多功能按键 在不同的界面下实现不同的功能*/sbit k1 = P1^0;    //时间和闹钟切换    //按键sbit k2 = P1^1;  //  时分秒年月日切换   sbit k3 = P1^2;  // 加sbit k4 = P1^3;  //  减sbit k5 = P1^4;  //  界面的选择
/*BH1750光照传感器IIC引脚驱动定义*/sbit    SCL=P3^6;      //IIC时钟引脚定义sbit      SDA=P3^7;      //IIC数据引脚定义#define    SlaveAddress   0x46 //定义器件在IIC总线中的从地址,根据ALT  ADDRESS地址引脚不同修改                              //ALT  ADDRESS引脚接地时地址为0x46,接电源时地址为0xB8/*定义1750的位以及存储变量 读取变量 上限变量*/typedef   unsigned char BYTE;typedef   unsigned short WORD;BYTE    BUF[8]; int     dis_data;                       //变量uint light_data_H=900;//光照上限    900LXuint light_data; //读取光照强度的变量

/*蜂鸣器和风扇的引脚*/sbit buzz = P1^6;      //蜂鸣器sbit motor = P1^5;      //风扇
/*切换 温湿度 各类变量*/uchar k5_flag=0; //多种界面的显示切换变量uchar  humi_value;//湿度uchar  temp_value;//温度uchar TH=30,RH=70;//温湿度的上限值bit DHT11_H_flag=0;  //温湿度上限切换标志
/*各AD传感器驱动引脚*/sbit ADCS1   =P2^0; //ADC0832 片选sbit ADCLK1  =P2^1; //ADC0832 时钟sbit ADDI1   =P2^2; //ADC0832 数据输入    /*因为单片机的管脚是双向的,且ADC0832的数据输入输出不同时进行,sbit ADDO1   =P2^2; //ADC0832 数据输出    /*为节省单片机引脚,简化电路所以输入输出连接在同一个引脚上
sbit ADCS2   =P2^3; //ADC0832 片选sbit ADCLK2  =P2^4; //ADC0832 时钟sbit ADDI2   =P3^5; //ADC0832 数据输入    /*因为单片机的管脚是双向的,且ADC0832的数据输入输出不同时进行,sbit ADDO2   =P3^5; //ADC0832 数据输出    /*为节省单片机引脚,简化电路所以输入输出连接在同一个引脚上
/*AD转换的各类变量*/// AD传感器1 2上限阈值初始值uint GasH1=600,GasH2=700;uint Gas1=0,Gas2=0; //AD传感器1  2读取变量bit ADC1_H_flag=0;  //ADC1上限切换标志// AD传感器3 4上限阈值初始值uint GasH3=800,GasH4=3000;uint Gas3=0,Gas4=0; //AD传感器3  4读取变量bit ADC2_H_flag=0;  //ADC2上限切换标志/*1602驱动函数定义*/
/*蓝牙模块 串口驱动*/void UART_Init(void);//串口初始化void uartSendByte(unsigned char dat);//发送数据void uartSendStr(unsigned char *s,unsigned char length);//发送字符串字符串

11、元器件购买视频(请认真看,购买正确的元器件)

公众号或者B站查看(名称已放在文章开头)

12、仿真功能演示视频:

公众号或者B站查看(名称已放在文章开头)

13、程序讲解视频

公众号或者B站查看(名称已放在文章开头)

14、硬件实物展示视频

公众号或者B站查看(名称已放在文章开头)

15、下面是实物展示图:

(1)硬件原图

(2)初始界面

(3)日期时间界面

(4)闹钟界面

(5)温湿度检测界面

(6)光照强度检测界面

(7)ADC1传感器检测转换界面

(8)ADC2传感器检测转换界面

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风吹摇铃 奔赴星海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值