草庐IT

基于物联网的智能家居系统设计(课设)

这就是大佬的世界吗 2023-06-29 原文

基于物联网的智能家居系统设计(课设)

摘 要

  科技的快速发展给人们的生活带来了翻天覆地的变化,生活的方方面面涉及到互联网技术,如手机、电脑、可视对讲系统、小区门禁系统等,为人们的生活提供了更多的便利,由此可见,物联网技术在我们的生活中十分普遍,就当前的信息技术以及互联网技术的发展水平,万物物联的时代已经到来。物联网技术下的智能家电是以后的发展方向,智能家电的普及将会是大众所期待的事情,相较于现在的老式家电,人们更愿意在具有智能化和人性化的家电来满足人们日益增长的物质需求,而本文所设计的正是一个基于单片机系统的智能家居系统。
  本系统包括硬件部分和软件部分,硬件分为红外线模块,报警以及温湿度这三种模块。对于温湿度模块而言,主要利用DHT11对相关数据进行采集,STM32单片机再对转换的结果进行运算处理。最后通过串口传送到电脑端实施调控及查看。
通过对智能家居系统的测试,最终基本上能够实现对于温度,湿度的实时查看并控制以及异常情况下的警报和调节;温度,湿度的实时显示。实现人员进入时的预警。
  关键词:智能家居;红外线模块:单总线;控制;数据处理

一、概述

  既互联网技术之后,物联网作为一个信息技术综合应用的代名词,掀起信息产业第三浪潮,大国纷纷将其纳为重点领域,显而易见,它将影响到政治,军事,经济,环境等方方面面,必在未来极大地改变人们的生活。
  物联网是新一代信息技术的重要组成部分。其英文名称是“The internet of things”。顾名思义,“物联网就是物物相连的互联网”。这里包括两层意思:第一,物联网的核心和基础仍然是互联网,它是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,进行信息交换和通信。因此可总结出,物联网的定义是:通过射频识别(RFID)、光电感应器、全球定位系统、激光扫描器信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。
  物联网上部署了海量的多种类型传感器,每个传感器都是一个信息源,不同类别的传感器所捕获的信息内容和信息格式不同。传感器获得的数据具有实时性,按一定的频率周期性的采集环境信息,不断更新数据。其目的是实现物与物、物与人,所有的物品与网络的实时连接,方便识别、管理和控制。其在2011年的产业规模超过2600亿元人民币,行业竞争将会越来越激烈。在市场应用方面,2011年从整体来看,占据中国物联网市场主要份额的应用领域为智能工业、智能物流、智能交通、智能电网、智能医疗、智能农业、智能环保和智能家居等。本文研究的是基于物连网技术的智能家居系统。
  “智能家居”,又称智能住宅,是通过采用先进的计算机技术、网络通信技术和综合布线技术,建立一个由家庭安全防护系统、网络服务系统和家庭自动化系统等组成的家庭服务与管理集成系统,从而实现全面、安全、舒适的居住环境以及便利的通讯网络家庭住宅。把与家庭生活有关的各种子系统有机结合在一起统一管理,使生活舒适、安全、和高效,具有良好的发展前景。随着科学技术的发展和物质生活水平的提高,人们对家居生活环境的要求也越来越高。家居不再是生活起居的场所,同时也是休闲、娱乐的地方。目前,高科技技术已经融入智能建筑当中,智能的概念也不断得到深化和更新。建设部要求根据不同消费者的需求,推动家居数字化、建筑智能化,产品便利化的发展,未来智能家居市场潜力巨大。
  智能家居是一个多功能的系统,它包括可视化对讲、家庭内部的安全防范、家电远程监控,远程视频监控、远程医疗诊断及护理系统,网上教育系统、家庭影星系统等。智能家居的基本目标是将家庭中各种信息相关的通信设备、家用电器和家用安防等装置连接到一个智能化系统上进行集中或异地监视、控制和家庭事务性管理,并保持这些家庭设施与住宅环境的和谐与协调。随着人类的应用需求和住宅智能化的发展,智能家居系统将拥有更丰富的内容,系统也越来越复杂,功能也越来越齐全。
  在当前市场中,智能家居相比传统家居、建材行业所占的市场份额还是微乎其微。在目前的智能家居市场中不少企业均是发展项目与渠道建设并行发展,其中项目合作占据着相当重要的位置,这些项目往往也是定位相对高端的别墅、复式楼和大户型高档小区住宅居多。随着信息技术和 Internet 技术的飞速发展,智能家居技术在实现成本上大幅度降低,同时人们永不停步地追求生活智能化和舒适化,如果技术更加成熟、成本更加低廉,功能更加完美,其市场需求将会非常巨大。

二.系统分析

  基于物联网的智能家居系统,以STM32F407单片机为控制核心,由以STM32F407单片机、光敏电阻、烟雾传感器、酒精传感器、火焰传感器、LED灯、继电器和WIFI模块构成。

三.系统设计


  系统以STM32F407单片机为控制核心,采集环境的光线强度、烟雾浓度、酒精浓度和判断是否发生火灾等数据,通过WiFi模块联网,将环境的采集的数据、LED灯和继电器的状态等信息上传到ONENET云平台。ONENET云平台可实时显示当前的环境数据和LED灯和继电器的状态等信息,还可以发送控制命令远程控制LED灯的亮灭和继电器的通断。

四.系统实现

1.硬件实现

  1. LED电路

  2. 按键电路

  3. 烟雾传感器电路

  4. 光敏电阻电路

  5. 光敏电阻电路

  6. 火焰传感器电路

  7. 继电器电路

  8. WiFi模块电路

2.软件实现

(1)主程序设计
画主程序流程图,并用文字描述。

(2)LED子程序设计
  略
(3)按键子程序设计
  略
(4)继电器子程序设计
  略
(5)ADC子程序设计
  略
(6)WiFi子程序设计
  略
(7)ONENET子程序设计
  略
(8)MQTT协议
  略

(9)主程序

Main.c
#include "stm32f4xx.h"
#include <stdio.h>
#include "led.h"
#include "delay.h"
#include "key.h"
#include "usart.h"
#include "string.h"
#include "adc.h"
#include "dma.h"
#include "beep.h"
#include "esp8266.h"
#include "onenet.h"
#include "relay.h"
float adc_v1,adc_v2,adc_v3,adc_v4;
void get_sensor_data(void)
{
	adc_v1=Get_ADCAverage_DMA(0);
//	UsartPrintf(USART1, "酒精电压 is %.2f V",adc_v1);
	adc_v2=Get_ADCAverage_DMA(1);
//	UsartPrintf(USART1, "光亮电压 is %.2f V",adc_v2);
	adc_v3=Get_ADCAverage_DMA(2);
//	UsartPrintf(USART1, "气体电压 is %.2f",adc_v3);
	adc_v4=Get_ADCAverage_DMA(3);
//	UsartPrintf(USART1, "火焰电压 is %.2f V\r\n",adc_v4);
}
	Led1_Set(led_status.Led1Sta==LED_ON?LED_OFF:LED_ON);
Relay_Set(Relay_info.Relay_Status==Relay_ON?Relay_OFF:Relay_ON);
int main(void)
{
	//uint16_t adval;
	unsigned char *ptr=NULL;
	unsigned char *dataPtr=NULL;
  unsigned int timeout=0;
	Led_Init();
	Delay_Init();
	Key_Init();
  	ADC_Config();
	Usart1_Init(115200);
	Usart3_Init(115200);
	beep_Init();
	UsartPrintf(USART_DEBUG, "Wifi test!\r\n");	
	ESP8266_Init();	
	DelayXms(500);
	Get_IP();
	while(OneNet_DevLink()==1)  	DelayXms(500);	
	beep_Set(BEEP_ON);
	DelayXms(500);	
	beep_Set(BEEP_OFF);
	Relay_Init();
	while(1)
	{			if(KeyScan(KEY1)==KEYDOWN)
		{
	while(KeyScan(KEY1)==KEYDOWN);
	Led1_Set(led_status.Led1Sta==LED_ON?LED_OFF:LED_ON);
		}
		if(KeyScan(KEY2)==KEYDOWN)
		{			while(KeyScan(KEY1)==KEYDOWN);
	Relay_Set(Relay_info.Relay_Status==Relay_ON?Relay_OFF:Relay_ON);
		}		
		get_sensor_data();
		if(++timeout>=100)//每1秒上传一次数据
		{
OneNet_SendData();//上传数据
			timeout=0;
		}
dataPtr= ESP8266_GetIPD(0);//读取来自服务器的数据
		if(dataPtr != NULL)
		OneNet_RevPro(dataPtr);//对数据进行解析
		DelayXms(10);
	}	
}

五.结论与心得

  在这快速发展的时代,人们对生活快节奏的要求越来越迫切,对生活质量的要求日益提高,尤其在发展比较快的大都市里,人们对时间的利用也越来越合理。为了满足人们对生活工作环境的高要求,通过四层结构模型设计将生活享受和安全监控集于一体的具有良好人机交互功能、家居控制功能齐全、可扩展的智能家居系统。基于物联网的智能家居系统不仅使人们的生活变得更加舒适,而且使人们的自身和财产安全系数不断提升,其为人们提供了完关的生活空间,因而未来智能家居系统将不再局限在家庭中而会装载在城市的各个地方,成为人们生活工作必不可少的一部分。

六.参考文献

  [1] 艾红,王洪涛.基于ARM的嵌入式远程监控系统[J.电子技术应用,2008 (9)
  [2] 王永初.最佳控制系统设计基础[M].北京:科学出版社,2000.
  [3] 韩江洪,张建军.智能家居系统与技术[M].合肥:合肥工业大学出版社,2005.
  [4] 赵继春.基于GPRS无线智能家居安防系统的研究与实现[D].邯郸:河北工程大学,2007
  [5] 范学英,张明新.嵌入式系统概述[J.自动化技术与应用,2008(2).

有关基于物联网的智能家居系统设计(课设)的更多相关文章

  1. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  2. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  5. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  6. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  7. ruby - 以毫秒为单位获取当前系统时间 - 2

    在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:

  8. ruby-on-rails - (Ruby,Rails) 基于角色的身份验证和用户管理...? - 2

    我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源

  9. ruby-on-rails - 如何构建复杂的 Rails 系统 - 2

    关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我们有以下(以及更多)系统,我们将数据从一个应用推送/拉取到另一个:托管CRM(InsideSales.com)Asterisk电话系统(内部)横幅广告系统(openx,我们托管)潜在客户生成系统(自行开发)电子商务商店(spree,我们托管)工作板(本土)一些工作网站抓取+入站工作提要电子邮件传送系统(如Mailchimp,自主开发)事件管理系统(如eventbrite,自主开发)仪表板系统(大量图表和

  10. ruby-on-rails - Rails 3,在RAILS_ROOT上方显示来自本地文件系统的jpg图片 - 2

    我正在尝试找出一种方法来显示来自不在RAILS_ROOT下(在RedHat或Ubuntu环境中)的已安装文件系统的图像。我不想使用符号链接(symboliclink),因为这个应用程序实际上是通过Tomcat部署的,而当我关闭Tomcat时,Tomcat会尝试跟随符号链接(symboliclink)并删除挂载中的所有图像。由于这些文件的数量和大小,将图像放在public/images下也不是一种选择。我查看了send_file,但它只会显示一张图片。我需要在一个格式良好的页面中显示6个请求的图像。由于膨胀,我宁愿不使用Base64编码,但我不知道如何将图像数据与呈现的页面一起传递下去。

随机推荐