51单片机_智能家居终端
实物演示效果:
https://www.bilibili.com/video/BV1bh4y1A7ZW/?vd_source=6ff7cd03af95cd504b60511ef9373a1d
51单片机是否适合做多功能智能家居控制系统?51单片机的芯片是否具有与WiFi通信的能力?如果有的话,具体有哪些芯片啊?做起来复不复杂?新手可以做吗?51比32好不好做啊?想做的话,哪里可以看51做多功能智能家居的教程啊?
接下来博主带大家做一个基于51单片机的智能家居终端
以下我大概说明我制作的过程以及用到的资料方便同行能够获取使用。
1,通过ESP8266-01S来进行一个信号的传输,就是手机与单片机来连接的一个桥梁。通过这个可以实现手机APP上实时显示单片机获取的数据,包括LED灯的状态,DHT11获取的温湿度当然我们也可以控制单片机做出相应的动作,通过手机APP的按键来操作。
2,但是随着技术的日益进步,通常使用的洞洞板完全可以实现我所说的功能,但是不断地通过原理图焊接连线不仅复杂而且需要的时间非常多。那么绘制PCB是非常好的一个思路。它的好处(1)可以批量生产(2)大大减少工作量(3)我们只需做一遍就可以了。按照这个思路首先是我们需要绘制PCB的资料第一步:制作或是收集每个原件的原理图(其实大多数网上都是有的,但是多且杂乱无章。最后我会提供给大家非常齐全且整理好的的原理图库和封装还有3D库)。第二步:就是给每一个原理图添加封装(这里的封装是PCB封装和3D库,按照我的理解就是能看到原件本来的模样这个对你后期购买元器件是非常重要的)。
一、设计完成主要功能
本设计可分为温湿度检测与烟雾检测和人体检测部分。温湿度检测部分,是通过利用单总线型数字式温湿度传感器DHT11,实现系统具有测温湿度误差小、分辨率高、抗干扰能力强等特点。烟雾检测电路,利用气体传感器MQ-2与ADC0832模数转换器实现基本功能。通过这些传感器和芯片,当环境中可燃气体浓度或有毒气体等发生变化时系统会发出相应的灯光报警信号和声音报警信号,以此来实现火灾报警,智能化提示。人体检测部分,是通过HC-SR501模块实现,模块主要功能就是热释电红外传感器感应到入侵者的红外热辐射,将其转换成超低频信号,经电路放大、输出。检测器是利用红外人体检测探头检测预先设定好的范围内的情况,一旦有危险便向单片机发出信号,再经单片机处理,然后控制蜂鸣器和LED点亮发出警告,本设计还可以应用于家居防盗、仓库防盗等多种防盗场合,具有很强的实用价值和良好的市场前景。温湿度、烟雾和人体防盗检测是三种最基本的环境参数,其测量方法和装置对现在的生活、生产具有重要的意义。本课题基本完成预期设想,设计并实现了系统的硬件电路,完成了系统软件的编写和调试。测试结果证明,达到了设计要求
二、课题背景
当今世界,随着科技的不断发展,智能环境监测成了人类关注的话题。智能家居通过物联网技术将家中的各种设备(如照明系统、火灾检测系统、空调控制、安防系统,报警控制等)连接到一起,提供家电控制、照明控制、智能温湿度调节、室内外遥控、防盗报警以及环境监测等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,而且提供全方位的信息交互功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。
本文首先介绍了智能家居的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计仿真图,以及C语言思想。智能家居实验是为智能家居系统实验做准备的,是实验的基础,智能家居是为了提高学生的动手能力,配合各类电子设计大赛,科技活动等而开发的设计模型。在此模型上我们可以进行多种实验,如测量,感应,报警等等。为了能更好的控制模拟家居,实现手动与自动控制相结合,进行各种功能实现,并且这个实验对现实生活也有一定的意义,所以我们就需要对这个实验进行一定的研究
1.21概述及功能介绍
本次设计主要分五个个功能,分别为测温湿度,烟雾及红外感应和报警,显示信息和报警信息。将这几个个功能巧妙的与家居结合,我们已经知道五个单独功能如何实现,现在要将五个功能通过单片机系统化反馈,以达到能实现综合五种功能的智能家居。
设计涉及主硬件为:STC89C52RC单片机,DHT11温湿度传感器,人体红外感应器,MQ-2烟雾传感器,按键设置与LCD1602液晶显示模块,蜂鸣器报警电路,以及超标指示显示模块组成。
1.2.2 功能介绍
(1)通过DHT11温湿度采集数据将信息显示于LCD1602上面,如果温湿度超出设定的预警值,指示灯有提示并蜂鸣器报警;待到坏境温湿度降到低于预警值的时候,报警自动关闭。
(2)采用烟雾探头传感器来检测我们周围环境的烟雾,可对煤气甲烷,以及我们周围着火的烟雾,或是抽烟的浓度等实时监测,如有超标,蜂鸣器报警,并有指示灯动作来提醒你解决当前的问题,解决之后,这些显示和指示指标自动关闭,所以能给您带来一定的安全感。
(3)人体红外检测电路能够根据外界移动人体进行判断,如果在布防状态并且有人时,指示灯有提示并蜂鸣器报警,来警告入侵者,直至手动撤防才可以解除报警。而且具有掉电保存的功能,即使人为关闭电源再开机也能继续报警,这样更加智能。
三、论文目录

四、项目子仿真图

1).开机显示界面

2).灯具关闭失败显示界面

3).温度检测显示界面

五、部分源码程序
#include<reg52.h>
#include <I2C.H>#define ADDR 0x90 //PCF8591 地址// 此表为 LED 的字模 // 0 1 2 3 4 5 6 7 8 9 A b c d E - L P U Hidden _ (20)
unsigned char code Disp_Tab[] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x88,0x83,0xC6,0xA1,0x86,0xbf,0xc7,0x8c,0xc1, 0xff, 0xf7 };
unsigned char TABLEW[8] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char AD_CHANNEL;
unsigned char LedOut[8];
unsigned int D[32];sbit KEY1 = P3^2;
sbit KEY2 = P3^3;/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay_1ms(unsigned char i)//1ms延时
{unsigned char x,j;for(j=0;j<i;j++)for(x=0;x<=148;x++);
}
/*******************************************************************
DAC 变换, 转化函数
*******************************************************************/
bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val)
{Start_I2c(); //启动总线SendByte(sla); //发送器件地址if(ack==0)return(0);SendByte(c); //发送控制字节if(ack==0)return(0);SendByte(Val); //发送DAC的数值if(ack==0)return(0);Stop_I2c(); //结束总线return(1);
}/*******************************************************************
ADC发送字节[命令]数据函数
*******************************************************************/
bit ISendByte(unsigned char sla,unsigned char c)
{Start_I2c(); //启动总线SendByte(sla); //发送器件地址if(ack==0)return(0);SendByte(c); //发送数据if(ack==0)return(0);Stop_I2c(); //结束总线return(1);
}/*******************************************************************
ADC读字节数据函数
*******************************************************************/
unsigned char IRcvByte(unsigned char sla)
{ unsigned char c;Start_I2c(); //启动总线SendByte(sla+1); //发送器件地址if(ack==0)return(0);c=RcvByte(); //读取数据0Ack_I2c(1); //发送非就答位Stop_I2c(); //结束总线return(c);
}//******************************************************************/
main()
{
unsigned char i,temp=1;
while(1)
{/********以下AD-DA处理*************/switch(AD_CHANNEL){case 0: ISendByte(ADDR,0x41);D[0]=IRcvByte(ADDR)*2; //ADC0 模数转换1break;case 1: ISendByte(ADDR,0x42);D[1]=IRcvByte(ADDR)*2; //ADC1 模数转换2break;case 2: ISendByte(ADDR,0x43);D[2]=IRcvByte(ADDR)*2; //ADC2 模数转换3break;case 3: ISendByte(ADDR,0x40);D[3]=IRcvByte(ADDR)*2; //ADC3 模数转换4break;case 4: DACconversion(ADDR,0x40, D[4]/4); //DAC 数模转换break;}if(++AD_CHANNEL>4) AD_CHANNEL=0;if(KEY1==0 || KEY2==0 ) {Delay_1ms(20); //20毫秒软件防抖if(KEY1 == 0){temp =1;}else if(KEY2 == 0){temp=2; }}if(temp ==1){LedOut[0]=Disp_Tab[D[0]%10000/1000];LedOut[1]=Disp_Tab[D[0]%1000/100];LedOut[2]=Disp_Tab[D[0]%100/10]&0x7f;LedOut[3]=Disp_Tab[D[0]%10];LedOut[4]=Disp_Tab[D[1]%10000/1000];LedOut[5]=Disp_Tab[D[1]%1000/100]&0x7f;LedOut[6]=Disp_Tab[D[1]%100/10];LedOut[7]=Disp_Tab[D[1]%10]; }if(temp ==2){LedOut[0]=Disp_Tab[D[2]%10000/1000];LedOut[1]=Disp_Tab[D[2]%1000/100];LedOut[2]=Disp_Tab[D[2]%100/10]&0x7f;LedOut[3]=Disp_Tab[D[2]%10];LedOut[4]=Disp_Tab[D[3]%10000/1000];LedOut[5]=Disp_Tab[D[3]%1000/100]&0x7f;LedOut[6]=Disp_Tab[D[3]%100/10];LedOut[7]=Disp_Tab[D[3]%10]; }for(i=0;i<8;i++){P0 = LedOut[7-i];P2 = 7-i;Delay_1ms(2); }}
}
相关文章:
51单片机_智能家居终端
实物演示效果: https://www.bilibili.com/video/BV1bh4y1A7ZW/?vd_source6ff7cd03af95cd504b60511ef9373a1d 51单片机是否适合做多功能智能家居控制系统?51单片机的芯片是否具有与WiFi通信的能力?如果有的话,具体有哪些芯片啊&a…...
css实现动态水波纹效果
效果如下: 外层容器 (shop_wrap): 设置外边距 (padding) 提供一些间距和边距 圆形容器 (TheCircle): 使用相对定位 (position: relative),宽度和高度均为 180px,形成一个圆形按钮圆角半径 (border-radius) 设置为 50%&…...
Chrome 开发者工具
Chrome 开发者工具 介绍控制面板时间线下载信息概要请求列表单个请求时间线优化时间线上耗时项 lighthouse 插件Performance(性能指标)Accessibility(可访问性)Best Practices(最佳实践)SEO(搜索…...
Error: error:0308010C:digital envelope routines::unsupported的解决方案
因为最近安装了pnpm对node版本有要求,升级了node版本是18以后,在运行之前的项目,就跑不起来了,报错如下: Error: error:0308010C:digital envelope routines::unsupported解决方案一: node版本切换到16版…...
vue基于spring boot框架的发艺美发店理发店管理系统的设计q9xpe
店铺信息、美发信息是发艺美发店管理系统的重要组成部分,信息清晰、详细、准确,能够有效地促进发艺美发店管理系统的运行[5]。基础设定函数是对整个系统的总体布局进行合理安排,包括:店铺活动、物品信息、领用信息等。通过对各类资…...
JS取余运算符 %,ES2023 新增数组方法Array.at
取余运算符(%)的作用就是用来两个操作数进行相除运算之后的余数。 注意,两个操作数取余是有循环范围的,这个范围为 0 - 第二个参数 - 1。 如下图: 对于6取余的话,得到的取余数据就会一直在0-5之间进行循环…...
unity SqLite读取行和列
项目文件 链接:https://pan.baidu.com/s/1BabHvQ-y0kX_w15r7UvIGQ 提取码:emsg –来自百度网盘超级会员V6的分享 using System.Collections; using System.Collections.Generic; using UnityEngine; using Mono.Data.Sqlite; using System; using Syste…...
使用docker部署RStudio容器并结合内网穿透实现公网访问
文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…...
adb wifi 远程调试 安卓手机 命令
使用adb wifi 模式调试需要满足以下前提条件: 手机 和 PC 需要在同一局域网下。手机需要开启开发者模式,然后打开 USB 调试模式。 具体操作步骤如下: 将安卓手机通过 USB 线连接到 PC。(连接的时候,会弹出请求&#x…...
Android Activity的启动流程(Android-10)
前言 在Android开发中,我们经常会用到startActivity(Intent)方法,但是你知道startActivity(Intent)后Activity的启动流程吗?今天就专门讲一下最基础的startActivity(Intent)看一下Activity的启动流程,同时由于Launcher的启动后续…...
flask不使用flask-login插件
由于flask版本升级问题,flask-manager里面的Command命令高版本不支持,低版本的兼容flask-sqlalchemy启动也会报错,第三方插件有很多问题,所以痛定思痛决定放弃使用这个,使用flask自带语法自己写一个 类似于django继承…...
1. SpringBoot3 基础
文章目录 1. SpringBoot 概述2. SpringBoot 入门3. SpringBoot 配置文件3.1 SpringBoot 配置文件基本使用3.2 yml 配置文件 4. SpringBoot 整合 Mybatis5. Bean 管理5.1 Bean 扫描5.2 Bean 注册5.3 注册条件 6. 组合注解7. 自动配置原理8. 自定义 Starter 1. SpringBoot 概述 …...
美易官方:苹果承认GPU安全漏洞存在:iPhone 12和M2系列受影响
苹果承认GPU安全漏洞存在: iPhone 12和M2 MacBook Air受影响 近日,苹果公司承认其部分产品存在GPU安全漏洞,这些漏洞可能会影响iPhone 12和M2 MacBook Air等设备的安全性。这一消息引起了广泛的关注和担忧,因为这些设备是许多用户…...
【Vue3】3-1 : 章节介绍 - Vue3组件应用及单文件组件
本书目录:点击进入 一、本章学习目标 二、课程安排 一、本章学习目标 Vue3组件相关概念掌握组件之间的通信封装一个可复用的组件单文件组件SFC:即.vue文件 样式 结构 逻辑脚手架的使用和底层实现机制工程化的认知 二、课程安排 组件的概念及组件的基…...
【数据结构】二叉树(遍历,递归)
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 目录 二叉树遍历规则 前序遍历 …...
《微信小程序开发从入门到实战》学习八十五
6.15 设备API 6.15.2 添加联系人API 使用wx.addPhoneContact接口可以在用户的手机通讯录中添加联系人信息。用户可以选择“新增联系人”或“添加到已有联系人”。该接口接受Object参数,参支持属性如下所示: firstName:必填,名字…...
设计模式——命令模式
命令模式(Command Pattern)是一种行为型设计模式,它将一个请求封装为一个对象,使发出请求的对象和执行请求的对象解耦。这样可以方便地对请求排队、记录日志、撤销/重做操作以及支持可扩展性。 原理 命令接口(Comman…...
Modbus协议学习第三篇之协议通信规则
导语 本篇博客将深入介绍Modbus协议的一些内容,主要包括通讯方式和通讯模型的介绍 Modbus通讯方式 Modbus协议是单主机、多从机的通信协议,即同一时间,总线上只能有一个主设备,但可以有一个或者多个从设备(最多好像是2…...
git仓库使用说明
Git软件使用 1.先下载git相关软件 下载地址: Git - Downloading Package (git-scm.com) 下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 …...
边缘计算和联邦学习的联系
1. 什么是边缘计算? 边缘计算(Edge Computing)是一种计算模型,其主要思想是将计算、存储和数据处理能力推送到离数据源近的边缘设备,而不是依赖于远程的云服务器。这样做的目的是减少数据传输延迟、提高响应速度&…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
