当前位置:文档之家› 物联网课程设计—基于温湿度传感器物联网应用实时数据处理系统开发46

物联网课程设计—基于温湿度传感器物联网应用实时数据处理系统开发46

……………………………………………………………精品资料推荐………………………………………………… - 37 - 网络工程(物联网技术) 课程设计报告

题 目: 基于温湿度传感器物联网应用实时数据处理系统开发 院(系) 别: 数学与信息工程学院 专业: 网络工程(物联网技术) 班级 1 班 学 号: 2006099914 姓 名: 小 明 指导教师: 职称 博士 填表日期: 2012 年 5 月 11 日 ……………………………………………………………精品资料推荐………………………………………………… - 38 - 前 言

一、选题的依据及意义 1. 依据 物联网是一种新概念和新技术,它使新一代IT技术更加充分地应用于各行各业之中。它的问世打破了过去将基础设施与IT设施分开的传统观念,将建筑物、公路、铁路和网站、网络、数据中心合为一体,是信息化和工业化融合的重要切入点。温湿度与人们的生活关系密切,所以物联网在温湿度实时数据处理系统的开发将有很大的前景。

2. 意义 在我们的日常生活中无处不在,控制好温湿度可以使我们生活、生产的更好。温湿度传感器物联网应用实时数据处理系统开发可以帮我们实现对温湿度以实时数据让我们明了的知道。从而更好的控制温湿度、达到我们所需的标准。

二、本课程设计内容简介 1. 通过ubuntu连接传感器实验箱收集由传感器测得的实时数据存入sqlite3数据库。 2. 然后通过ubuntu发送到linux、接收并用动态网页显示代表数据变化的曲线。 三、要达到的目标

1.可以在ubuntu上实现自动接收由传感器取得、传来的实时数据。 2. 并ubuntu上能边接收边连续往linux发送从传感器取得的实时数据。 3.还要确保发送过的数据不会再次发送。 4. Linux能接收到ubuntu发过来的实时数据并通过动态网页曲线图实时显示接收过来的数据。

实 现 方 案 一、开发环境 1.硬件(详细介绍所涉及硬件的详细内容) Pc机、温湿度传感器、传感器实验箱、连接所需的各种线。 2.软件(详细介绍所涉及软件的详细内容) MDK414(arm平台编译烧录代码软件)、KeilC51v750a_Full(C51平台编译软件)、STC手动下载(C51烧录代码软件)、R340(串口线连接USB驱动)、ubuntu操作系统、linux操作系统。 ……………………………………………………………精品资料推荐………………………………………………… - 39 - 3.其它

二、开发内容 1.项目开发详细内容(包括传感器的配置、传感器烧录、数据的实时收集、实时数据的存储、实时数据的传输、实时数据在服务器端的接受及存储-TCPServer及MySql、数据库及Web服务器安装、利用JSP曲线动态显示实时数据) 首先烧录整合好的温湿度传感器的代码。接着连接传感器取得数据。然后在ubuntu中编译并运行Com_Sensor程序获取传感器实验箱的数据。 在Ubuntu11编译并运行senddata.c把数据发送到linux.Linux通过TCPServer服务器接收数据并存入MySQL数据库。 最后将接收到的数据通过Linuxweb服务器以jsp曲线动态显示实时数据。

2.网络拓扑图(包括传感器、网关、传输网络、TCPServer服务器、数据库服务器、静态及动态Web服务器、Web服务器客户端;并详细标注设备名称及IP地址等详细信息;并详细叙述网络拓扑图流程)

三、技术路线

1. 传感器数据处理(给出详细的传感器烧录代码 ) 代码如下: /*********************************************************/ //中软吉大信息技术有限公司 //物联网传感技术教学实验系统 ……………………………………………………………精品资料推荐………………………………………………… - 40 - /*********************************************************/ #include //Keil library (is used for _nop()_ operation) #include //Keil library #include"Lcmdisplay.h"

#define FOSC 11059200 #define BAUD 14400

typedef union { unsigned int i; float f; } value; //---------------------------------------------------------------------------------- // modul-var //---------------------------------------------------------------------------------- enum {TEMP,HUMI};

#define noACK 0 #define ACK 1 //adr command r/w #define STATUS_REG_W 0x06 //000 0011 0 #define STATUS_REG_R 0x07 //000 0011 1 #define MEASURE_TEMP 0x03 //000 0001 1 #define MEASURE_HUMI 0x05 //000 0010 1 #define RESET 0x1e //000 1111 0 sbit DATA=P2^2; sbit SCK=P2^1;

sbit POWER=P2^5; sbit flag1=P0^7; sbit flag2=P4^6; sbit flag3=P2^7; sbit flag4=P2^6;

void delay(unsigned int nTimeDelay) ……………………………………………………………精品资料推荐………………………………………………… - 41 - { unsigned int i; while (nTimeDelay--) for (i=0;i<125;i++);

}

void Serial_Init() { TMOD = 0x01; TR0 = 1; EA = 1; ET0 = 0; TF0 = 0; S2CON = 0x50; //8位可变波特率 (无校验位) BRT = -(FOSC/32/BAUD); //设置独立波特率发生器的重载初值 AUXR = 0x14; //独立波特率发生器工作在1T模式 //IE2 = 0x01; //使能串口2中断 } void IO_Init(void) { P2M1=P2M1&0xdf; P2M0=P2M0&0xdf;

P0M1=P0M1&0x7f; P0M0=P0M0&0x7f; P4M1=P4M1&0xbf; P4M0=P4M0&0xbf; P2M1=P2M1&0x3f; P2M0=P2M0&0x3f; P4SW=P4SW|0x40; }

void Power_Identify(void) {

while(1) { ……………………………………………………………精品资料推荐………………………………………………… - 42 - if(POWER==0) { delay(4000); LcmPrintf("请给传感器模块上电!\n"); } else break; } }

void Module_Identify(unsigned int xuhao) { unsigned int abc=0; if(flag4==1)abc=abc+1; abc=abc<<1; if(flag3==1)abc=abc+1; abc=abc<<1; if(flag2==1)abc=abc+1; abc=abc<<1; if(flag1==1)abc=abc+1; if(abc!=xuhao) { delay(3000); LcmPrintf("提示:您插入的模块不正确!\n"); } while(1) {

if(abc!=xuhao); else { delay(2000); LcmPrintf("连接的模块是M%u\n",xuhao); delay(5000); break; } } } //---------------------------------------------------------------------------------- char s_write_byte(unsigned char value) //----------------------------------------------------------------------------------

相关主题