电子设计技术报告.docx

上传人:b****5 文档编号:4045953 上传时间:2022-11-27 格式:DOCX 页数:9 大小:141.02KB
下载 相关 举报
电子设计技术报告.docx_第1页
第1页 / 共9页
电子设计技术报告.docx_第2页
第2页 / 共9页
电子设计技术报告.docx_第3页
第3页 / 共9页
电子设计技术报告.docx_第4页
第4页 / 共9页
电子设计技术报告.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

电子设计技术报告.docx

《电子设计技术报告.docx》由会员分享,可在线阅读,更多相关《电子设计技术报告.docx(9页珍藏版)》请在冰豆网上搜索。

电子设计技术报告.docx

电子设计技术报告

 

电子设计技术报告

 

题目:

智慧宿舍

学院:

电子通信与物理学院

专业:

电子与通信工程

 

时间:

2016年5月17日

1.设计目的与要求

智能家居是在互联网影响之下物联化的体现。

智能家居通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。

与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,提供全方位的信息交互功能,甚至为各种能源费用节约资金。

本设计制作了一个简单的智能家居系统,实现对室内温度、湿度以及光照强度的检测,并通过无线网络上传至终端,实现用户的实时查看。

同时,当温度超过25摄氏度或湿度超过60%时自动开启风扇,以使室内能一直处于人体舒适环境。

当光照强度低于200lx时,自动开灯。

2.设计实现方案

2.1系统框图

为实现上述功能,我们采用Arduino模块为控制模块,以协调各个模块之间的工作;温度和湿度采集模块采用DHT11模块,可以同时检测温度和湿度,温度用摄氏度表示,湿度用空气中实际水汽压与当时气温下的饱和水汽压之比的百分数表示;无线传输模块采用ESP8266的无线WIFI模块。

2.2各模块具体实现

2.2.1控制器Arduino模块

Arduino是一款便捷灵活、方便上手的开源电子原型平台。

包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。

它构建于开放原始码simpleI/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。

主要包含两个主要的部分:

硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是ArduinoIDE,你的计算机中的程序开发环境。

你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。

我们采用Arduino模块是因为它具有很多优点:

1.跨平台ArduinoIDE可以在Windows、MacintoshOSX、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。

2.简单清晰ArduinoIDE基于processingIDE开发。

对于初学者来说,极易掌握,同时有着足够的灵活性。

Arduino语言基于wiring语言开发,是对AVRGCC库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。

3.开放性Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。

4.发展迅速Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。

Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。

2.2.2温湿度采集模块

温湿度采集模块我们采用DHT11模块。

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。

传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

每个DHT11传感器都在极为精确的湿度校验室中进行校准。

校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行接口,使系统集成变得简易快捷。

超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。

产品为4针单排引脚封装,连接方便。

图2DHT11与单片机的接线图

控制器Arduino模块读取DHT11的数据后通过无线WIFI网络传输至终端,并且根据读取的数值来判断是否开启电风扇。

当读取的温度值超过25摄氏度时,控制器Arduino模块则向电风扇发送开启命令;当读取的湿度至超过60%时,控制器Arduino模块也向电风扇发送开启命令;否则电风扇处于关闭状态。

2.2.3光强度采集模块

光强度采集模块我们采用GY-30模块。

GY-30模块是数字光强度检测模块,核心芯片采用ROHM原装BH1750FVI芯片。

BH1750FVI芯片是一种用于两线式串行总线(I2C总线)接口的数字型光强度传感器集成电路,该集成电路可以根据收集的光线强度数据来调整灯光的亮度,利用它的高分辨率可以探测较大范围的光强度变化(1~65535lx)。

GY-30模块供电电源为3~5V,光照度范围是0~65535lx,传感器内置16位A/D转换器直接数字输出。

方便的是,模块内部省略复杂的计算,省略标定,不区分环境光源,接近于视觉灵敏度的分光特性,可对广泛的亮度进行1lx的高精度测定。

图3GY-30模块引脚图

控制器Arduino模块读取GY-30的数据,根据读取的数值来判断是否开启LED灯。

当读取的光照强度值小于200时,控制器Arduino模块则向LED灯发送开启命令。

2.2.4无线传输模块

无线传输模块我们采用WIFI的ESP8266模块。

ESP8266是一款超低功耗的UART-WiFi透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi无线网络上,进行互联网或局域网通信,实现联网功能。

ESP8266封装方式多样,天线可支持板载PCB天线,IPEX接口和邮票孔接口三种形式;ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。

ESP8266硬件接口丰富,可支持UART,IIC,PWM,GPIO,ADC等,适用于各种物联网应用场合。

ESP8266模块支持STA/AP/STA+AP三种工作模式。

♦STA模式:

ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。

♦AP模式:

ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。

♦STA+AP模式:

两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。

图4ESP8266模块引脚图

3.设计测试结果

综合以上内容,将各个模块连接到Arduino控制器上,并将每个模块实现的程序封装成函数,系统调用每个模块实现的函数。

将系统程序在ArduinoIDE上编译并上传至Arduino模块,即可达到本设计的要求。

4.部分模块实现程序

1.Arduino对温湿度模块控制程序:

#defineDHT11_PIN0

intfengshan=7;//风扇接口

byteread_dht11_dat()

{

bytei=0;

byteresult=0;

for(i=0;i<8;i++)

{

while(!

(PINC&_BV(DHT11_PIN)));

delayMicroseconds(30);

if(PINC&_BV(DHT11_PIN))

result|=(1<<(7-i));

while((PINC&_BV(DHT11_PIN)));

}

returnresult;

}

voidsetup()

{

DDRC|=_BV(DHT11_PIN);

PORTC|=_BV(DHT11_PIN);

pinMode(Buzzer,OUTPUT);

Serial.begin(9600);

Serial.println("Ready");

}

voidloop()

{

bytedht11_dat[5];

bytedht11_in;

bytei;

PORTC&=~_BV(DHT11_PIN);

delay(18);

PORTC|=_BV(DHT11_PIN);

delayMicroseconds(40);

DDRC&=~_BV(DHT11_PIN);

delayMicroseconds(40);

dht11_in=PINC&_BV(DHT11_PIN);

if(dht11_in)

{

Serial.println("dht11startcondition1notmet");

return;

}

delayMicroseconds(80);

dht11_in=PINC&_BV(DHT11_PIN);

if(!

dht11_in)

{

Serial.println("dht11startcondition2notmet");

return;

}

delayMicroseconds(80);

for(i=0;i<5;i++)//获取40位温湿度数据

dht11_dat[i]=read_dht11_dat();

DDRC|=_BV(DHT11_PIN);

PORTC|=_BV(DHT11_PIN);

bytedht11_check_sum=dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];

if(dht11_dat[4]!

=dht11_check_sum)//校验

{

Serial.println("DHT11checksumerror");

}

Serial.print("Currenthumdity=");

Serial.print(dht11_dat[0],DEC);//显示湿度整数部分

Serial.print(".");

Serial.print(dht11_dat[1],DEC);//显示湿度小数部分

Serial.println("%");

Serial.print("temperature=");

Serial.print(dht11_dat[2],DEC);//显示温度整数部分

Serial.print(".");

Serial.print(dht11_dat[3],DEC);//显示温度小数部分

Serial.println("C");

if(dht11_dat[0]>60)

digitalWrite(fengshan,HIGH);

else

digitalWrite(fengshan,LOW);

if(dht11_dat[2]<26)

digitalWrite(fengshan,LOW);

else

digitalWrite(fengshan,HIGH);

delay(2000);

}

2.Arduino对光强度模块控制程序:

#include

#include

intBH1750address=0x23;

bytebuff[2];

voidsetup()

{

Wire.begin();

Serial.begin(9600);

}

voidloop()

{

intj;

uint16_tval=0;

BH1750_Init(BH1750address);

delay(200);

if(2==BH1750_Read(BH1750address))

{

val=((buff[0]<<8)|buff[1])/1.2;

if(val<200)

{

analogWrite(3,255);

}

else{analogWrite(3,LOW);}

Serial.print(val,DEC);

Serial.println("[1x]");

}

delay(150);

}

intBH1750_Read(intaddress)

{

intj=0;

Wire.beginTransmission(address);

Wire.requestFrom(address,2);

while(Wire.available())

{

buff[j]=Wire.read();

j++;

}

Wire.endTransmission();

returnj;

}

voidBH1750_Init(intaddress)

{

Wire.beginTransmission(address);

Wire.write(0x10);

Wire.endTransmission();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1