DHT11在ARM7上的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、主要内容:

1、项目研究内容(根据你们做的情况对下面六点进行修改即可)

(1)对温室机房控制系统进行整体结构设计,设计系统的硬件电路,实现对温

室参数进行采集,显示,报警,通信及对执行机构进行模拟控制的功能。

(2)外围设备的智能切换控制,实时温度、湿度监测,处理环节均由系统智能

控制,减少人工干预。

(3)分析fs2410芯片和外围设备传输、处理数据的效率和方式,为将来更复

杂的任务打下基础。

(4)对温室知道控制系统进行软件设计

(5)分析机房设备稳定运行的温度和湿度范围

(6)为嵌入式方向教学探索新的方法

2、项目研究成果

实现了对温度、湿度的显示、控制以及警报。当温度达到某一限定值时,就会产生警报,同时继电器开关就会激发,从而相关外设调节设备响应,来达到温湿度的控制效果。

3、项目解决方案(简要介绍采用何种软硬件平台,可行性及项目设计整体思路)硬件设备:

EasyARM2100开发试验板,继电器开关(6VDC OMRON LY2NJ),电位器(BAOSHI 3296 0908C),传感器(DHT11),三极管(S8050 ),5V干电池2节,直流电源(6V),发光二极管(1个),J-link仿真器,杜邦线(若干)。

软件设备:ARM Developer Suite ,串口调试助手

室内温湿度的控制主要是为了保持室内温湿度的稳定,适合于一些对温湿度要求较高的场合使用。

本项目是基于ARM7 2410 系列开发板设计的,传感器把温湿度相关数据发送到主控板上,然后通过串口调试助手显示在电脑上。当温湿度的值达到某一设定

的临界值时就会触发开发板产生一个信号(输出.电压),使三极管处于导通状态,继电器开关响应,连接外设电源开始工作。当传感器发送的数据在设定的合适的范围内,开发板上的信号中断,电压消失,继电器开关释放,外设停止工作。从而达到对温湿度的控制效果。

4、项目技术报告(项目总体结构、所用技术、软硬件各个模块实现)

总体方案结构图:

设计电路图:

二、(1)项目实现结果

硬件连接图:

软件配置:

ARM Developer Suite ,串口调试助手

调试器:AXD Debugger

编译环境:ADS

开发环境:codewarrior for ARM Developer suite

(2)使用流程(即简明用户手册)

1.首先把传感器连接到2410开发板上,传感器1PIN连接开发板的5V供电端,2PIN数据端连接,3PIN悬空,4PIN连接GND(即接地);继电器的信号输入的端口接另一端接地。

2.用户要在电脑上安装ARM Developer Suite 软件然后创建一个项目文件,打开项目程序程序(见附录)。

3.给2410主控板供电、连接J-link仿真器并连接控制板到电脑的串口

4.编译并调试程序,然后打开串口调试小助手,把波特率调为115200

(3)项目运行结果(软件抓图、硬件整个相片)

三、结论(结论、不足、进一步完善建议)

本次项目实现了对温湿度的检测、报警和控制的功能,并能通过程序修改相关的参数来对不同的场合进行检测,从而扩大了该项目成果的使用范围。

在做这个项目前期,由于没有把显示器显示数据的原理搞明白,所以没有用显示器来显示数据。后期温湿度的显示是靠另外的软件来解决的,没有显示器也就给读取数据带来了麻烦。另外这个项目是在2410控制板上实现的,所以如果要成为产品的话,就必须要用更便宜控制板替换2410,这样就可以减少成本。软件的操作也是一个不足之处,由于ARM Developer Suite 软件本省的原因,编译和运行该项目的程序的过程有点复杂,这也是要改进的一点。在项目选择硬件时,由于没有考虑的周到,造成三极管的导通电压需求较高。2410控制板上可提供的信号电压是,所以外加了一个直流电源(两节干电池)供电,这一点需要改进---更换一个导通电压低于的三极管。从图片上可以看到硬件的连线很乱,可以把这些硬件固定在一块电路板上,从而可以使整体看起来比较的简单。

以上是对本项目中出现的困难、不足和需要改进之处做的一个总结,我也从这个项目制作的过程中加深了对嵌入式的了解和认识。

2010/12/21 秦嵩峰附:

#include ""

#include <>

#define UART_BPS 115200 /* 定义通讯波特率 */

#define LEDCON1 (1<<22) 3d rh, Temp: %2d.%3d °C \n",RH_H,RH_L,T_H,T_L); UART0_SendStr(str);

// UART0_SendStr(SEND_STRING); UART0_SendByte('\n');

}//while(1)

return 1;

}

相关文档
最新文档