物聯(lián)網(wǎng)溫濕度無線監(jiān)測系統(tǒng)研究
引言
溫濕度監(jiān)測是物聯(lián)網(wǎng)技術的應用之一,遠程測量在實際生產(chǎn)過程中的應用十分廣泛。溫濕度是工農(nóng)業(yè)生產(chǎn)中主要的被控參數(shù),影響著產(chǎn)品的質量?;趩纹瑱C對采集溫濕度數(shù)字信號的處理,數(shù)傳模塊(或GSM模塊)進行數(shù)據(jù)遠傳。以單片機為核心的檢測系統(tǒng),包括單片機、數(shù)傳模塊(或GSM模塊)、溫濕度傳感器、顯示、系統(tǒng)軟件等部分。系統(tǒng)的開發(fā),達到遠程溫濕度采集和監(jiān)測。
1系統(tǒng)設計思路
本系統(tǒng)由信息采集終端和監(jiān)控終端組成。信息采集終端由溫濕度傳感器、單片機和GSM模塊組成,監(jiān)控終端由移動手機構成。圖1所示是其系統(tǒng)原理圖。系統(tǒng)功能主要包括溫濕度的采集,LCD液晶屏顯示溫濕度參數(shù),LCD顯示特殊短信的內容及電話號碼,向移動終端發(fā)送溫濕度數(shù)據(jù)并顯示數(shù)據(jù),接收特殊短信等。系統(tǒng)工作時,先由上位機給GSM發(fā)送能夠識別的內容代碼,單片機發(fā)送開始采集溫濕度的指令,溫濕度傳感器將采集到的數(shù)據(jù)傳送到單片機,并在液晶顯示屏上顯示,數(shù)據(jù)同時傳給與單片機相連的GSMSIM300模塊。監(jiān)控終端由上位機手機移動終端組成,手機接收到由GSM模塊經(jīng)發(fā)短信方式發(fā)來的數(shù)據(jù),并讀取顯示。本設計中的單片機選用STC12C5A60S2,GSM模塊選用SIM300,溫濕度傳感器選用DHT11。
圖1系統(tǒng)原理圖
2主要硬件電路設計
2.1電源設計
本系統(tǒng)的電源電路如圖2所示。該電路具備2種供電方式:其中POWER1為外接直流9V供電電源,POWER2為外接5V直流電源,POWER1與POWER2通過開關KP進行選擇。POWER1為9V的直流電,通過ACadapter將輸入的100?240V的交流電轉為9V直流電輸出。輸出的9V電源不能直接給各芯片進行供電,采用三端集成穩(wěn)壓器LM7805將其轉為穩(wěn)定的5V電源。二極管用于整流,C1、C2為濾波電容,取100uF。C3主要用于濾除輸出端的高頻信號,改善電路的暫態(tài)響應,取典型值0.1uF。LED1為電源指示燈,其連接LED1的限流電阻R31取200Q。POWER2是通過USB接PC機獲得的電壓,其電壓值為5V,可以直接供電。
圖2電源電路
2.2溫濕度傳感器電路
溫濕度傳感器模塊的功能是在接收到單片機采集溫濕度的指令后,開始采集當前的溫濕度數(shù)據(jù),并將采集到的數(shù)據(jù)返回給單片機[3]。其溫濕度傳感器電路如圖3所示。
圖3溫濕度傳感器電路
2.3單片機電路
圖4所示是本系統(tǒng)中的單片機電路,該電路采用內部時鐘方式。電路中的電容C5、C6起穩(wěn)定振蕩頻率、快速起振的作用,電容取30pF。系統(tǒng)中需要采用串口,選用晶振頻率為11.0592MHz的晶體振蕩器產(chǎn)生時鐘脈沖。復位電路是單片機內電路的初始化操作,是單片機從一種確定的狀態(tài)開始工作。只要給單片機的RESET引腳加上兩個機器周期以上的高電平信號,就可以使單片機復位。當系統(tǒng)電源開始供電時,復位電路在上電自動復位狀態(tài)上工作,通過外部復位電路的電容充電得以實現(xiàn),系統(tǒng)死機時,按鍵復位。
3 系統(tǒng)軟件設計
本系統(tǒng)的主程序流程圖如圖 5 所示。圖 6 所示是系統(tǒng)數(shù)據(jù)采集流程圖。其主程序如下:
圖5系統(tǒng)主程序流程圖
圖6采集程序流程
#include"STC_NEW_8051.H"
#include"uart.h"
#include"misc.h"
#include"key.h"
#include"lcd1602.h"
#include"timer.h"
#include"stdio.h"
#include"string.h"
#include"sms.h"
unsignedcharlcdbuf(16);
unsignedcharlcdbuf2(16);
unsignedchartemp_var=0;//全局臨時輔助變量,任何函數(shù)(除中斷外)可用
unsignedchardisp_type=0;//該變量的內容決定當前液晶上顯示的內容,由按鍵處理函數(shù)來改變
//主函數(shù)
voidmain()
{
//初始化外設
init_1602();//液晶
display_string(0,1,"inituart...");
init_uart();//串口
display_string(0,1,"initkey...");
init_key();//按鍵
display_string(0,1,"startgprs...");
start_gprs();//檢查模塊是否已開機display_string(0,1,"initgprs...");init_gprs();//初始化模塊,獲取信號強度、運營商等信息
display_string(0,1,"inittimer...");init_timer0();//初始化定時器display_string(0,1,"initdone!");//進入主循環(huán),該循環(huán)永不退出while(1)
{
//有按鍵按下if(key_pending){
//processkeysif(key_code==MENU){
disp_type=0;//display
gprsstatus
}
elseif(key_code==UP)
{
disp_type=1;//display
meterinfo
}
〃clearflag
key_pending=0;
}
//串口收到消息,由于本系統(tǒng)中由模塊主動發(fā)送的信息一般都忽略,此處一般不做處理
if(rx_data_pending)
{
rx_data_pending=0;temp_var=0;
while(rx_rear<rx_head)
{
rx_rear++;
}
}
//顯示當前溫濕度,溫濕度信息已在在采集事件觸發(fā)后填入lcdbuf和lcdbuf2中,此處僅顯示即可
if(timer_int_status&&(disp_type==0))//溫濕度信息讀數(shù)
{
timer_int_status=0;clear_lcd();display_string(0,0,lcdbuf);
display_string(0,1,lcdbuf2);
}
if(timer_int_status&&(disp_type==1))//顯示新短信內容和手機號碼
{
timer_int_status=0;ifnew_sms==0)
{
clear_lcd();display_string(0,0,"NoMessage");
display_string(0,0,"Available!");
}
elseifnew_sms==l)
{
clear_lcd();
display_string(0,0,short_message);
display_string(0,1,phone_num);
new_sms=2;〃clearflag
}
}
if(timer_int_check)
{
timer_int_check=0;
//檢查有無新短信get_new_sms();
}
if(timer_int_2s)
{
timer_int_2s=0;
read_dht11();//讀取溫濕度信息//將讀到的溫濕度值轉換為字符串存入緩沖區(qū)中用于顯示
sprintf(lcdbuf,"Temp:%d",
(unsignedint)dhtlldata(2));
sprintf(lcdbuf2,"Humi:%d",
(unsignedint)dht11data(0));
}
}
}
4結語
系統(tǒng)的設計是通過短消息的收發(fā)實現(xiàn)對溫濕度進行測量的,并利用GSM網(wǎng)絡實時地給手機用戶發(fā)送短信,以起到遙控測量的效果。實際上,本系統(tǒng)不僅能夠對溫濕度進行自動采集,更可以遠程檢測,甚至是遠程傳遞,因而有著一定的應用和參考價值。
20211024_617520fd168f0__物聯(lián)網(wǎng)溫濕度無線監(jiān)測系統(tǒng)研究