久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于GPRS的環(huán)境實時遠程監(jiān)測系統(tǒng)設計資料與源碼下載
[打印本頁]
作者:
偉超時代121
時間:
2018-1-15 19:32
標題:
基于GPRS的環(huán)境實時遠程監(jiān)測系統(tǒng)設計資料與源碼下載
分享一個基于GPRS網絡的遠程氣體檢測系統(tǒng),用到了煙霧傳感器、0.96寸的oled
四、畢業(yè)論文﹙設計﹚的內容要求:
隨著越來越多的場合向自動化無人職守邁進,尤其在安全、監(jiān)控等領域。為了進一步降低成本,減少人力的投資,以及更集中、更方便的掌握現場情況,許多場合都采用了電子監(jiān)控設備。而這些電子設備的設計無疑涉及到這些領域的安全性,這就對監(jiān)控設備的成本,穩(wěn)定性,以及性能三方面都提出了更高的要求。
本設計主要是利用GPRS無線網絡實現環(huán)境的實時在線監(jiān)測。該系統(tǒng)由監(jiān)測端、通信網絡和監(jiān)測中心組成,監(jiān)測端由煙霧等傳感器、微處理器和控制電路部分組成,實現環(huán)境參數的實時測量和數據的處理。采通信網絡由GPRS無線發(fā)送模塊組成,將實時監(jiān)測到的數據發(fā)送到監(jiān)測中心。系統(tǒng)工作過程為:首先傳感器進行環(huán)境監(jiān)測數據的采集,經信號處理模塊處理后送到單片機,經過單片機串口送到GPRS模塊發(fā)射,經GPRS通信網絡接入internet網,將數據送到監(jiān)測中心。并對數據進行實時處理
具體要求如下:
1 完成系統(tǒng)硬件和軟件設計;
2利用GPRS網絡實現液位數據的實時遠程傳輸和液位實時控制。
五、畢業(yè)論文﹙設計﹚應收集資料及參考文獻:
收集關于單片機應用、GPRS在數據采集和遠程監(jiān)控方面的專業(yè)資料,閱讀和學習下列參考文獻:
[1] 陳蒙蒙.雨量水位監(jiān)測系統(tǒng)設計[D].杭州:杭州電子科技大學,2013.
[2] 張廣馳.基于GPRS的水資源遠程監(jiān)測系統(tǒng)研究[D].淮南:安徽理工大學,2014.
[3] 胡勝利,萬晉軍.基于GPRS的地下水自動監(jiān)測系統(tǒng)設計[J].水利水電技術.2011,4
[4] 湯新龍. GPRS數據通訊程序設計方法及應用研究[D]. 蘇州: 蘇州大學,2014.
[5] 潘驍 . 基于ZigBee與GPRS的無線倉儲環(huán)境參數監(jiān)測系統(tǒng)設計 [D], 廣西師范大學,2016
六、畢業(yè)論文﹙設計﹚的進度安排:
1月10日——3月20日:查閱資料,完成外文翻譯原文和開題報告。
3月21日——4月20日:完成系統(tǒng)監(jiān)測終端的設計并提交中期檢查報告。
4月21日——5月20日:完成環(huán)境監(jiān)測參數的遠程傳輸設計,準備作品驗收。
5月21日——6月15日:撰寫、修改畢業(yè)設計論文,準備并完成答辯。
接線說明:
STC89C52RC ADC0832
P3.5 ----------------------- 1
P3.4 ----------------------- 5
P3.3 ----------------------- 7
VCC ----------------------- 8
GND ----------------------- 4
OLED
P1.0 --------------------- CLK
P1.1 -------------------- SDA
DHT11
P2.0 -------------------- DATA
MQ7 A0------------------ ADC0832 2管腳
單片機源程序如下:
/*************************************************************/
#include <REG51.H>
#include <string.H>
#include <intrins.h>
#include <oled.h>
#include "bmp.h"
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 無符號8位整型變量 */
typedef signed char S8; /* defined for signed 8-bits integer variable 有符號8位整型變量 */
typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 無符號16位整型變量 */
typedef signed int S16; /* defined for signed 16-bits integer variable 有符號16位整型變量 */
typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 無符號32位整型變量 */
typedef signed long S32; /* defined for signed 32-bits integer variable 有符號32位整型變量 */
typedef float F32; /* single precision floating point variable (32bits) 單精度浮點數(32位長度) */
typedef double F64; /* double precision floating point variable (64bits) 雙精度浮點數(64位長度) */
#define FOSC_110592M
sbit P13=P1^3;
sbit p32=P3^2;
sbit P2_0 = P2^0 ;
/*********************************端口定義**********************************/
sbit CS = P3^5; //接adc0832 1口
sbit Clk = P3^3;
sbit DATI = P3^4;
sbit DATO = P3^4;
sbit P20=P2^0 ;
/*******************************定義全局變量********************************/
unsigned char dat = 0x00; //AD值
unsigned char CH; //通道變量
//以下是開機后發(fā)送到手機的內容,發(fā)送的號碼在程序中修改。
unsigned int rec_data_len_uart=0; //標記Buffer_Uart0接收數組
unsigned char idata Buffer_Uart0_Rec[25]={0}; //Uart0中斷接收數組
char fasong[25] = "wen du:";
int fasong1[];
int a = 37;
//----------------------------------------------//
//----------------定義區(qū)--------------------//
//----------------------------------------------//
U8 U8FLAG,U8comdata,U8temp;
U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
void Delay(U16 j)
{ U8 i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void)
{
U8 i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void COM(void)
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!P2_0)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(P2_0)U8temp=1;
U8FLAG=2;
while((P2_0)&&U8FLAG++);
//超時則跳出for循環(huán)
if(U8FLAG==1)break;
//判斷數據位是0還是1
U8comdata<<=1;
U8comdata|=U8temp; //0
}
}
//--------------------------------
//-----濕度讀取子程序 ------------
//--------------------------------
//----以下變量均為全局變量--------
//----溫度高8位== U8T_data_H------
//----溫度低8位== U8T_data_L------
//----濕度高8位== U8RH_data_H-----
//----濕度低8位== U8RH_data_L-----
//----校驗 8位 == U8checkdata-----
//----調用相關子程序如下----------
//--------------------------------
void RH(void)
{
//主機拉低18ms
P2_0=0;
Delay(180);
P2_0=1;
//總線由上拉電阻拉高 主機延時20us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主機設為輸入 判斷從機響應信號
P2_0=1;
//判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行
if(!P2_0) //T !
{
U8FLAG=2;
//判斷從機是否發(fā)出 80us 的低電平響應信號是否結束
while((!P2_0)&&U8FLAG++);
U8FLAG=2;
//判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進入數據接收狀態(tài)
while((P2_0)&&U8FLAG++);
//數據接收狀態(tài)
COM();
U8RH_data_H_temp=U8comdata;
COM();
U8RH_data_L_temp=U8comdata;
COM();
U8T_data_H_temp=U8comdata;
COM();
U8T_data_L_temp=U8comdata;
COM();
U8checkdata_temp=U8comdata;
P2_0=1;
//數據校驗
U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
if(U8temp==U8checkdata_temp)
{
U8RH_data_H=U8RH_data_H_temp;
if(U8RH_data_H>20)
{
U8RH_data_H = 0.6* U8RH_data_H;
}
U8RH_data_L=U8RH_data_L_temp;
U8T_data_H=U8T_data_H_temp;
U8T_data_L=U8T_data_L_temp;
U8checkdata=U8checkdata_temp;
}//fi
}//fi
}
/****************************************************************************
函數功能:AD轉換子程序
入口參數:CH 出口參數:dat
****************************************************************************/
unsigned char adc0832(unsigned char CH)
{
unsigned char i,test,adval;
adval = 0x00;
test = 0x00;
Clk = 0; //初始化
DATI = 1;
_nop_();
CS = 0;
_nop_();
Clk = 1;
_nop_();
if ( CH == 0x00 ) //通道選擇
{
Clk = 0;
DATI = 1; //通道0的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 0; //通道0的第二位
_nop_();
Clk = 1;
_nop_();
}
else
{
Clk = 0;
DATI = 1; //通道1的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 1; //通道1的第二位
_nop_();
Clk = 1;
_nop_();
}
Clk = 0;
DATI = 1;
for( i = 0;i < 8;i++ ) //讀取前8位的值
{
_nop_();
adval <<= 1;
Clk = 1;
_nop_();
Clk = 0;
if (DATO)
adval |= 0x01;
else
adval |= 0x00;
}
for (i = 0; i < 8; i++) //讀取后8位的值
{
test >>= 1;
if (DATO)
test |= 0x80;
else
test |= 0x00;
_nop_();
Clk = 1;
_nop_();
Clk = 0;
}
if (adval == test) //比較前8位與后8位的值,如果不相同舍去。若一直出現顯示為零,請將該行去掉
dat = test;
_nop_();
CS = 1; //釋放ADC0832
DATO = 1;
Clk = 1;
return dat;
}
/***************************顯示處理函數********************************/
//注意,無論接收到信號還是發(fā)送完信號,都會進中斷服務程序的
/************************************按鍵作為外部中斷的初始化*******************************************/
void key_init(void)
{
IT0 = 1; //外部中斷0,使用端口P3.2.
EX0 = 1;
}
/*初始化程序(必須使用,否則無法收發(fā)),次程序將會使用定時器1*/
void SerialInti()//初始化程序(必須使用,否則無法收發(fā))
{
TMOD=0x20;//定時器1操作模式2:8位自動重載定時器
#ifdef FOSC_12M //在這里根據晶振大小設置不同的數值初始化串口
TH1=0xf3;//裝入初值,波特率2400
TL1=0xf3;
#else
TH1=0xfd;//裝入初值,波特率9600
TL1=0xfd;
#endif //end of SOC_12M
TR1=1;//打開定時器
SM0=0;//設置串行通訊工作模式,(10為一部發(fā)送,波特率可變,由定時器1的溢出率控制)
SM1=1;//(同上)在此模式下,定時器溢出一次就發(fā)送一個位的數據
REN=1;//串行接收允許位(要先設置sm0sm1再開串行允許)
EA=1;//開總中斷
ES=1;//開串行口中斷
}
unsigned char hand(unsigned char *data_source,unsigned char *ptr)
{
if(strstr(data_source,ptr)!=NULL)
return 1;
else
return 0;
}
void clear_rec_data()
{
uchar i,temp_len;
temp_len=strlen(Buffer_Uart0_Rec);
if(temp_len>25)
{
temp_len=25;
}
for(i=0;i<temp_len;i++)
{
Buffer_Uart0_Rec[i]='\0';
}
rec_data_len_uart=0;
}
/*串行通訊中斷,收發(fā)完成將進入該中斷*/
void Serial_interrupt() interrupt 4
{
unsigned char temp_rec_data_uart0;
temp_rec_data_uart0 = SBUF;//讀取接收數據
RI=0;//接收中斷信號清零,表示將繼續(xù)接收
Buffer_Uart0_Rec[rec_data_len_uart]=temp_rec_data_uart0; //接收數據
rec_data_len_uart++;
if(rec_data_len_uart>24)
{
rec_data_len_uart=0; //從頭開始接收數據
}
}
void Uart1Send(uchar c)
{
SBUF=c;
while(!TI);//等待發(fā)送完成信號(TI=1)出現
TI=0;
}
//串行口連續(xù)發(fā)送char型數組,遇到終止號/0將停止
void Uart1Sends(uchar *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待發(fā)送完成信號(TI=1)出現
TI=0;
str++;
}
}
void chuli(int c)
{
char bai,shi,ge;
bai =((char) c/100)+48;
shi =((char) c%100/10)+48;
ge =((char) c%10)+48;
Uart1Send(bai);
Uart1Send(shi);
Uart1Send(ge);
//Uart1Send(ge);
}
//延時函數大概是1s鐘,不過延時大的話不準...
void DelaySec(int sec)
{
uint i , j= 0;
for(i=0; i<sec; i++)
{
for(j=0; j<65535; j++)
{
}
}
}
void main()
{
uchar i = 0;
int j;
u8 t;
CH = 0x00; //在這里選擇通道 0x00或0x01
P1 = 0XFF;
key_init();
SerialInti();
OLED_Init(); //初始化OLED
OLED_Clear();
P13=0;
while(1)
{
RH();
dat = adc0832(CH);
OLED_ShowString(18,3,"CO",72);
OLED_ShowCHinese(36,2,4); //濃
OLED_ShowCHinese(54,2,5); //度
OLED_ShowNum(78,2,dat,3,16);//顯示ASCII字符的碼值
OLED_ShowCHinese(18,4,0); //溫
OLED_ShowCHinese(36,4,1); //度
OLED_ShowCHinese(54,4,6); //為
OLED_ShowNum(72,4,U8RH_data_H,4,16);//顯示ASCII字符的碼值
OLED_ShowCHinese(18,6,3); //濕
OLED_ShowCHinese(36,6,1); //度
OLED_ShowCHinese(54,6,6); //為
OLED_ShowNum(72,6,U8T_data_H,4,16);//顯示ASCII字符的碼值
}
}
void getkey() interrupt 0
{
Delay_1ms(20);
if(p32==0) //軟件消抖
{
P13=1;
Uart1Sends("AT+CSCS=\"GSM\"\r\n");
DelaySec(1);//延時大約3秒
Uart1Sends("AT+CMGF=1\r\n");
DelaySec(1);//延時3秒
Uart1Sends("AT+CSCA?\r\n");
DelaySec(1);//延時3秒
Uart1Sends("AT+CSMP=17,167,0,241\r\n");
DelaySec(1);//延時3秒
Uart1Sends("AT+CMGS=\"13772830544\"\r\n");//此處修改為對方的電話號
DelaySec(1);//延時3秒
//fasong[20] = 2;
Uart1Sends("CO concentration: ");//修改短信內容,短信內容可為英文和數字
chuli(dat); //顯示一氧化碳濃度
Uart1Sends("\nThe current hemperature is: ");//修改短信內容,短信內容可為英文和數字
chuli(U8RH_data_H); //顯示一氧化碳濃度
Uart1Sends("\nThe current humidity is: ");//修改短信內容,短信內容可為英文和數字
chuli(U8T_data_H); //顯示一氧化碳濃度
Uart1Send(0x1a);
P13=0;
}
}
復制代碼
0.jpg
(35.43 KB, 下載次數: 32)
下載附件
2018-1-16 01:09 上傳
所有資料51hei提供下載:
學長畢業(yè)設計GPRS.rar
(5.94 MB, 下載次數: 55)
2018-1-15 19:31 上傳
點擊文件名下載附件
GPRS煙霧檢測
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
色综合一区二区三区
|
日韩精品在线一区
|
欧美日韩成人影院
|
国产精品久久久久久久7777
|
av在线免费观看网站
|
亚洲日产精品
|
精品久久久久久久久久久久
|
日本三级日产三级国产三级
|
在线小视频
|
91天堂网
|
欧美视频福利
|
亚洲乱码国产乱码精品精98午夜
|
在线观看av网站永久
|
日本精品国产
|
在线成人
|
亚洲三级av
|
狠狠热视频
|
91社影院在线观看
|
www.夜夜草
|
国产三级
|
中文字幕在线观看成人
|
欧美成人自拍视频
|
亚洲成av人片在线观看
|
9久久婷婷国产综合精品性色
|
久久久国产一区二区三区四区小说
|
91精品久久久
|
在线观看中文字幕av
|
人和拘一级毛片c
|
羞视频在线观看
|
波多野结衣二区
|
日韩日韩日韩日韩日韩日韩日韩
|
无人区国产成人久久三区
|
国产成人精品久久二区二区
|
99久久精品国产一区二区三区
|
国产日韩精品在线
|
日韩a在线观看
|
天天干国产
|
成人在线观看免费视频
|
中文字幕一区在线观看视频
|
妞干网视频
|
国产精品久久久久久一区二区三区
|