1、温度和湿度采集模块采用DHT11模块,可以同时检测温度和湿度,温度用摄氏度表示,湿度用空气中实际水汽压与当时气温下的饱和水汽压之比的百分数表示;无线传输模块采用ESP8266的无线WIFI模块。2.2 各模块具体实现2.2.1 控制器Arduino模块 Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Ar
2、duino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。 我们采用Arduino模块是因为它具有很多优点:1. 跨平台 Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。2. 简单清晰 Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。
3、Arduino语言基于wiring语言开发,是对 AVRGCC库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。3. 开放性 Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。4. 发展迅速 Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。2.2.2 温湿度采集模块 温湿度采集模块我们采用DHT11模块。DHT11数字温湿度传感
4、器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。图2 DHT11与单片
5、机的接线图 控制器Arduino模块读取DHT11的数据后通过无线WIFI网络传输至终端,并且根据读取的数值来判断是否开启电风扇。当读取的温度值超过25摄氏度时,控制器Arduino模块则向电风扇发送开启命令;当读取的湿度至超过60%时,控制器Arduino模块也向电风扇发送开启命令;否则电风扇处于关闭状态。2.2.3 光强度采集模块光强度采集模块我们采用GY-30模块。GY-30模块是数字光强度检测模块,核心芯片采用ROHM原装BH1750FVI芯片。BH1750FVI芯片是一种用于两线式串行总线(I2C总线)接口的数字型光强度传感器集成电路,该集成电路可以根据收集的光线强度数据来调整灯光的
6、亮度,利用它的高分辨率可以探测较大范围的光强度变化(165535lx)。GY-30模块供电电源为35V,光照度范围是065535lx,传感器内置16位A/D转换器直接数字输出。方便的是,模块内部省略复杂的计算,省略标定,不区分环境光源,接近于视觉灵敏度的分光特性,可对广泛的亮度进行1lx的高精度测定。图3 GY-30模块引脚图控制器Arduino模块读取GY-30的数据,根据读取的数值来判断是否开启LED灯。当读取的光照强度值小于200时,控制器Arduino模块则向LED灯发送开启命令。2.2.4 无线传输模块 无线传输模块我们采用WIFI的ESP8266模块。ESP8266是一款超低功耗的
7、UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。ESP8266封装方式多样,天线可支持板载PCB天线,IPEX接口和邮票孔接口三种形式;ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。ESP8266硬件接口丰富,可支持UART,IIC,PWM,GPIO,ADC等,适用于各种物联网应用场合。ESP8266模块支持STA/AP/STA+AP 三种工作模式。 STA 模式:ESP8266模块通过路由器连接互联网,手机或电脑通过
8、互联网实现对设备的远程控制。 AP 模式:ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。 STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。图4 ESP8266模块引脚图3.设计测试结果 综合以上内容,将各个模块连接到Arduino控制器上,并将每个模块实现的程序封装成函数,系统调用每个模块实现的函数。将系统程序在Arduino IDE上编译并上传至Arduino模块,即可达到本设计的要求。4.部分模块实现程序1.Arduino对温湿度模块控制程序:#define DHT11_PIN 0int fengshan=7;/风扇接口
9、byte read_dht11_dat()byte i = 0;byte result = 0;for(i=0;i8;i+)while(!(PINC&_BV(DHT11_PIN);delayMicroseconds(30);if(PINC&_BV(DHT11_PIN)result|=(160) digitalWrite(fengshan,HIGH);elsedigitalWrite(fengshan,LOW);if(dht11_dat226)delay(2000);2. Arduino对光强度模块控制程序:#includemath.hint BH1750address=0x23;byte bu
10、ff2; Wire.begin(); void loop() int j; uint16_t val=0; BH1750_Init(BH1750address); delay(200); if(2=BH1750_Read(BH1750address) val=(buff08)|buff1)/1.2; if(val200) analogWrite(3,255); elseanalogWrite(3,LOW); Serial.print(val,DEC);1xdelay(150); int BH1750_Read(int address) int j=0; Wire.beginTransmission(address); Wire.requestFrom(address,2); while(Wire.available() buffj=Wire.read(); j+; Wire.endTransmission(); return j; void BH1750_Init(int address) Wire.write(0x10);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1