基于GSM的温湿度与光照强度监测系统的设计(附代码)
基于GSM的温湿度与光照强度监测系统的设计(附代码)(论文12000字)
摘要:本文提出了一种基于GSM模块的远程温湿度、光照强度监测系统。系统的核心器件有GSM模块、数字温湿度传感器、数字光模块等。首先单片机初始化温湿度传感器和光强度传感器模块,然后模块开始检测芯片上的温湿度、光照强度,把检测到的温湿度、光照强度数据反馈给单片机,最后单片机数据处理后交由GSM模块发送至手机,这样就能实现利用此模块进行某地方的温湿度、光照强度检测的功能。当温度值或湿度值或光照强度值超过预定设置值的时候,GSM短信模块发送报警短信给手机端。
关键词:GSM模块 传感器 数字光强度模块
The temperature & humidity and light intensity detection system based on GSM
Abstract:.This paper presents a module based on GSM remote temperature and humidity, light intensity detection system. The core components of the system are GSM module, digital temperature and humidity sensors, digital optical module. First single chip initialization temperature and humidity sensor and the light intensity sensor module.Then temperature and humidity module start detecting chip, light intensity, the detected temperature and humidity, light intensity data feedback to the microcontroller. Lastly, SCM data after being processed by the GSM module are sended to phone so that you can use this module to achieve a local temperature and humidity, light intensity detection function. When the temperature or humidity or light intensity value exceeds a predetermined value set , GSM module sends an alarm message to the phone side.
[资料来源:http://Doc163.com]
Keywords: GSM Module Sensor Digital Optical Module
目 录
1 绪论 1
1.1 选题的目的和意义 1
1.2 国内外研究现状 1
1.3 本设计主要研究内容 2
2 系统总体结构与工作流程 3
2.1 系统构成 3
2.2 工作流程 3
3 GSM模块介绍 4
3.1 GSM介绍 4
3.1.1 GSM发展历史 4
3.1.2 GSM规范 5
3.1.3 GSM不同阶段 5
3.2 SIM900A功能介绍 5
3.3 SIM900A的产品特性 6
4 AM2302数字温湿度传感器 6
4.1 AM2302的介绍 6
4.2 AM3202的引脚 7
4.3 单总线接口 7
5 单片机的介绍 8
5.1 89S52-TQFP单片机 8
5.2 89S52-TQFP引脚介绍 9
6 GY-30光强模块介绍 10
6.1 模块的功能特点及应用 10
6.2 GY-30数字光模块的引脚功能介绍 11
7 电源模块 11
8 系统原理图 12
8.1 DHT22电路分析 12
8.2 单片机电路分析 12
8.3 光强电路分析 13
8.4 GSM电路分析 14
9 软件介绍 14
10 测试结果分析 14
10.1 系统准确性分析 14
10.2 系统稳定性分析 16
11 结论 18
参考文献 18
致谢 19
附件(软件程序设计)
#include <reg51.h>
//#include <intrins.h>
#include <math.h> [资料来源:https://www.doc163.com]
#include "delay.h"
#include "dht22.h"
#include "bh1750.h"
//typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */
//typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */
#define Data_0_time 4
#define SlaveAddress 0x46 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
U16 i1=0; //ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A
unsigned char BUF[8]; //接收数据缓存区
[版权所有:http://DOC163.com]
int dis_data; //变量
unsigned int ge1,shi1,bai1,qian1,wan1;
unsigned int ge2,shi2,bai2,qian2,wan2; //显示变量
unsigned int ge,shi,bai,qian,wan; //连续的读取内部寄存器数据
unsigned char code PhoneNO[]= "13813011778"; //接收方号码
unsigned char Text1[20] ;
unsigned char code text_1[]="humidity>80% warning!";
unsigned char code text_2[]="temperature>25℃ warning!";
unsigned char code text_3[]="light>1000LUX warning!";
void txt_t(void);
//------------------------------------
extern U16 U16temp1,U16temp2;
float temp;
void conversion(U16 temp_data);
void conversion1(U16 temp_data);
void conversion2(U16 temp_data);
void Uart_init()
{
TMOD= 0X20; //T1 方式2 ,8位 自动重装
TH1=0Xfd;
TL1=0Xfd; //9600
TR1=1; // 定时器1启动
SM0=0; // 设置串口的工作模式
SM1=1; //方式1
REN=1; // 允许串口接收数据
ES=1; // 串口中断应许
//EA=1; // 开启中断
EA=0; // 关闭中断 [资料来源:https://www.doc163.com]
}
void SendASC(U8 d)
{
SBUF=d;
while(!TI);
TI=0;
}
void SendString(U8 *str)
{
while(*str)
{
SendASC(*str) ;
str++; [资料来源:www.doc163.com]