找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11133|回復: 12
打印 上一主題 下一主題
收起左側(cè)

單片機DHT11無線溫濕度多點采集系統(tǒng)實戰(zhàn)項目所有資料下載

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:218519 發(fā)表于 2017-7-22 18:34 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
無線溫濕度多點采集系統(tǒng)具有實時在線監(jiān)測、多點采集、集中顯示、系統(tǒng)布線簡單等特點,特別適用于復雜地形條件、高腐蝕性、建筑群、爆炸等場合,或者被采集對象是運動、旋轉(zhuǎn)等情況。
本項目充分利用無線數(shù)據(jù)傳輸?shù)膬?yōu)勢,將溫濕度采集和無線通訊相結(jié)合,具有一定的使用價值,同時,也很容易在此系統(tǒng)上擴展更多功能。
內(nèi)包含詳細資料和應用軟件!工程都已編譯無誤!連接圖等重要信息都有


項目實戰(zhàn)五
無線溫濕度多點采集系統(tǒng)
艾克姆科技
STC單片機項目實戰(zhàn)

修訂歷史記錄
RevisionRecords

日期

Date
版本

Version
編制

Written By
審核

Checked By
批準

Approved By
說明

Explanation

2017.9.20

A

康工

飛宇


初建













目錄
1. 系統(tǒng)概述........................................................................ 4
2. 開發(fā)需求........................................................................ 4
2.1. 軟件需求..................................................................... 4
2.2. 硬件需求..................................................................... 4
3. 系統(tǒng)組成結(jié)構(gòu)................................................................ 4
3.1. 設備描述.................................................................... 5
3.2. 系統(tǒng)容量.................................................................... 5
3.3. 系統(tǒng)主要功能............................................................ 6
4. 通訊協(xié)議...................................................................... 6
4.1. 設備編碼................................................................... 6
4.2. 報文格式................................................................... 6
5. 實驗步驟...................................................................... 7
5.1. 程序下載................................................................... 7
5.1.1. 接收基站程序下載..................................................7
5.1.2. 檢測節(jié)點程序下載..................................................7
5.2. 設備連接................................................................... 8
5.2.1. 接收基站和計算機之間的連接.............................. 8
5.2.2. DHT11 溫濕度傳感器連接到檢測節(jié)點................... 8
6. 軟件操作..................................................................... 9
6.1. 啟動系統(tǒng).................................................................. 9
6.2. 觀察檢測節(jié)點的溫濕度值和溫濕度曲線................. 9
7. 技術(shù)支持.................................................................... 10


1.  系統(tǒng)概述

無線溫濕度多點采集系統(tǒng)具有實時在線監(jiān)測、多點采集、集中顯示、系統(tǒng)布線簡單等特 點,特別適用于復雜地形條件、高腐蝕性、建筑群、爆炸等場合,或者被采集對象是運動、 旋轉(zhuǎn)等情況。
本項目充分利用無線數(shù)據(jù)傳輸?shù)膬?yōu)勢,將溫濕度采集和無線通訊相結(jié)合,具有一定的使 用價值,同時,也很容易在此系統(tǒng)上擴展更多功能。

               系統(tǒng)以 2.4GHz 為通訊網(wǎng)絡,可選擇使用近距離(約 200 米)或遠距離(約 1500 米)無線模 塊,配置靈活。

               系統(tǒng)采用計算機作為顯示設備,實時顯示各個節(jié)點采集的信息,方便統(tǒng)一管理。

               檢測節(jié)點和基站均采用 IAP15W4K58S4(或 IAP15W4K61S4 或 STC15W4K56S4)單片 機為控制核心。節(jié)點外接溫濕度傳感器 DHT11,每 300 毫秒采集一次溫濕度值,并通 過無線的方式發(fā)送給基站;窘邮盏焦(jié)點的信息后,通過串口將此信息發(fā)送給計算機, 由計算機完成溫濕度值的顯示。



2.              開發(fā)需求

2.1. 軟件需求

               Windows XP 或 Windows 7 32/64 或 WIN8 系統(tǒng)。
               keil uv4 for 51。
               stc-isp-15xx-v6.85P。

2.2. 硬件需求

表一:硬件需求

設備
數(shù)量
計算機
1 臺
進取者 STC 開發(fā)板
5 塊(最少 2 塊)
DHT11 溫濕度傳感器
4 個(最少 1 塊)
NRF24L01 無線模塊
最少 2 個
UBS MINI 數(shù)據(jù)線
最少 1 根
連接線材
若干


3.              系統(tǒng)組成結(jié)構(gòu)

無線溫濕度多點采集系統(tǒng)由無線檢測節(jié)點(搭配 DHT11 溫濕度傳感器)、接收基站、溫 度監(jiān)測工作站(計算機顯示)三部分組成。系統(tǒng)的結(jié)構(gòu)示意圖如下:



圖 1:無線溫濕度多點采集系統(tǒng)結(jié)構(gòu)圖


3.1. 設備描述

               溫濕度監(jiān)測工作站:由計算機和顯示器組成,用于集中顯示顯示采集現(xiàn)場的溫濕度值, 便于統(tǒng)一觀察、管理。

              接收基站:接收各個檢測節(jié)點無線發(fā)送的溫濕度數(shù)據(jù),整理后上傳給溫度監(jiān)測工作站。              
              檢測節(jié)點:讀取 DHT11 溫濕度傳感器傳感器數(shù)據(jù),處理后通過無線的方式發(fā)送給接收 基站。
              溫濕度傳感器:采用 DHT11 溫濕度傳感器,用于采集現(xiàn)場溫濕度數(shù)據(jù)。


3.2. 系統(tǒng)容量

系統(tǒng)基于無線通訊,采用多點對點的星型網(wǎng)絡通訊,單個接收基站可最大管理 255 個檢 測節(jié)點(考慮到無線傳輸距離、覆蓋范圍和通訊效率的因素,單個接收基站不建議配置太多 的檢測節(jié)點)。本系統(tǒng)為演示方便,單個接收基站下面配置了 4 個檢測節(jié)點,定義設備如下:

               溫濕度監(jiān)測工作站:一臺計算機和一臺顯示器。
           接收基站:1 臺。
               檢測節(jié)點:4 臺,每個節(jié)點外接一個 DHT11 溫濕度傳感器。


3.3. 系統(tǒng)主要功能

               顯示功能:在計算機終端和圖形設備上以文字、圖形等形式顯示各個檢測節(jié)點采集的溫 濕度值。

               數(shù)據(jù)通訊功能:溫濕度監(jiān)測工作站和接收基站之間通過 UART 進行數(shù)據(jù)傳輸。

               溫濕度超標預警功能:當檢測節(jié)點檢測到溫濕度值超標預警值,立即上報信息,溫濕度 監(jiān)測工作站接收到此信息后進行報警提示。注:該功能暫未實現(xiàn)。

               故障診斷功能:在工作站的軟件界面上能實時反映檢測節(jié)點的工作狀態(tài),自動診斷其是 否在線并能進行報警提示。



4.              通訊協(xié)議

4.1. 設備編碼
網(wǎng)絡中的設備需要有一個標識自身身份的地址(編碼)才能相互之間通訊,本系統(tǒng)中, 設備編碼如下:

               溫濕度監(jiān)測工作站:地址固定為 E5(16 進制)。在本系統(tǒng)中,溫濕度監(jiān)測工作站指的是 計算機。

               接收基站:地址為 1。
               檢測節(jié)點:地址為 1~4(10 進制,可以根據(jù)自己的需要進行修改,注意,演示軟件中可 檢測的測控基站地址是:1~4,也就是說,使用本系統(tǒng)進行演示,4 個檢測節(jié)點的地址 必須設置為 1~4,并且,地址不能重復)。


4.2. 報文格式



目 的 地 址 幀頭

(DA)
表二:接收基站和工作站之間銅須的報文格式
源 地 址

數(shù)據(jù)長度(IL)              流水號(SN)              數(shù)據(jù) data              校驗(FCS) (SA)


表三:報文解釋
內(nèi)容

長             度 (byte)

備注
幀頭
2
標志一個數(shù)據(jù)幀的開始,固定為 55 AA。
目的地址
1
數(shù)據(jù)包到達地址。工作站(計算機)地址固定為:E5(16 進制)。
源地址
1
數(shù)據(jù)包發(fā)出設備的地址。
數(shù)據(jù)長度
1
數(shù)據(jù)的總字節(jié)數(shù)。本演示系統(tǒng)中固定為 16 個字節(jié)。每個檢測節(jié)



點 4 個字節(jié),4 個檢測節(jié)點一共 16 字節(jié)
數(shù)據(jù)
16
4 個檢測節(jié)點上報的溫濕度數(shù)值。詳見表 4。
校驗
1
異或校驗。注:該校驗位為預留字節(jié),不進行檢驗是為了調(diào)試方便,需要使用此校驗的可以自行加上。


表四:數(shù)據(jù)

檢測節(jié)點 1數(shù)據(jù)
檢測節(jié)點 1數(shù)據(jù)
檢測節(jié)點 1數(shù)據(jù)
檢測節(jié)點 1數(shù)據(jù)
4 個字節(jié)
4 個字節(jié)
4 個字節(jié)
4 個字節(jié)
字節(jié) 1:溫度高字節(jié)
字節(jié) 2:溫度低字節(jié)字節(jié) 3:濕度高字節(jié)字節(jié) 4:濕度低字節(jié)
字節(jié) 1:溫度高字節(jié)
字節(jié) 2:溫度低字節(jié)字節(jié) 3:濕度高字節(jié)字節(jié) 4:濕度低字節(jié)
字節(jié) 1:溫度高字節(jié)
字節(jié) 2:溫度低字節(jié)字節(jié) 3:濕度高字節(jié)字節(jié) 4:濕度低字節(jié)
字節(jié) 1:溫度高字節(jié)
字節(jié) 2:溫度低字節(jié)字節(jié) 3:濕度高字節(jié)字節(jié) 4:濕度低字節(jié)

5.              實驗步驟

5.1. 程序下載

5.1.1. 接收基站程序下載

拷貝“…高級項目實戰(zhàn)例程 項目實戰(zhàn) 5-無線溫濕度多點采集系統(tǒng)”目錄下的接收基 站工程文件夾“Station”到合適的目錄,如 D 盤。

注:為什么要拷貝出來? 原因主要有兩點:
               拷貝出來可以隨意修改,修改錯了,可以再次拷貝而不用重新去網(wǎng)盤下載。
               資料中的工程目錄包含中文且目錄很深,開發(fā)軟件時,強烈建議工程文件不要包含中 文目錄,且工程路徑不要過深。

打開 Keil uVision4,點擊“Project”→“Open Project”打開“…StationProject”目錄 下的工程“Station.uvproj”。編譯工程,下載程序。

5.1.2. 檢測節(jié)點程序下載

拷貝“…高級項目實戰(zhàn)例程 項目實戰(zhàn) 5-無線溫濕度多點采集系統(tǒng)”目錄下的接收基 站工程文件夾“Nod”到合適的目錄,如 D 盤。
打開 Keil uVision4,點擊“Project”→“Open Project”打開“…NodProject”目錄下的 工程“nod.uvproj”。
打開“config.h”文件,配置檢測節(jié)點地址,如下圖所示,注意,在本演示系統(tǒng)中,檢 測節(jié)點的地址只能配置為 1~4,且不能重復,否則,檢測軟件無法顯示。

圖 2:檢測節(jié)點地址設置 地址修改好后,編譯程序并將程序下載到檢測節(jié)點。


5.2. 設備連接

5.2.1. 接收基站和計算機之間的連接

接收基站和計算機之間連接很簡單,通過一根 MINI USB 數(shù)據(jù)線連接,按下電源開關(guān)即
可。


5.2.2. DHT11 溫濕度傳感器連接到檢測節(jié)點




圖 3:DHT11 溫濕度傳感器

表五:DHT11 和基站連接

管腳
信號
和基站連接
1
VCC
5V
2
DO
P3.6
3
NC
NC
4
GND
GND



6.              軟件操作

6.1. 啟動系統(tǒng)

打開“…高級項目實戰(zhàn)例程 項目實戰(zhàn) 5-無線溫濕度多點采集系統(tǒng)”目錄下的“無線 溫濕度多點采集系統(tǒng).exe”,啟動軟件。軟件啟動后界面如下:



圖 6:iM-Net 溫濕度監(jiān)控系統(tǒng)軟件界面 打開軟件后,選擇好串口號,串口波特率設置為 9600,點擊啟動按鈕,啟動系統(tǒng)。



6.2. 觀察檢測節(jié)點的溫濕度值和溫濕度曲線

系統(tǒng)正常工作后,即可在軟件界面中觀察到各個節(jié)點的溫濕度值和溫濕度曲線,如下圖 所示?梢酝ㄟ^顯示選項選擇顯示曲線的節(jié)點,通過節(jié)點的通訊狀態(tài)指示燈可以觀察到各個 節(jié)點的通訊狀態(tài)。





圖 7:溫濕度曲線




單片機源程序如下:
  1. /****************************************Copyright (c)****************************************************
  2. **                                       
  3. **                                      [艾克姆科技]
  4. **                                        IIKMSIK
  5. **--------------File Info---------------------------------------------------------------------------------
  6. ** File name:                        
  7. ** Last modified Date:         
  8. ** Last Version:                  
  9. ** Descriptions:                                                        
  10. **--------------------------------------------------------------------------------------------------------
  11. ** Created by:                        強光手電
  12. ** Created date:                2016-09-17
  13. ** Version:                            1.0
  14. ** Descriptions:                無線溫濕度多點采集系統(tǒng)-基站程序                                
  15. **--------------------------------------------------------------------------------------------------------
  16. ** Modified by:                        
  17. ** Modified date:               
  18. ** Version:                                
  19. ** Descriptions:               
  20. **********************************************************************************************************/
  21. /****-----請閱讀PDF文檔  項目實戰(zhàn)5:無線溫濕度多點采集系統(tǒng)進行實驗--***********/

  22. #include "config.h"
  23. #include "nRF24L01.h"
  24. #include "uart.h"        
  25. #include "timer.h"        

  26. #define  FRAME_HEAD55    0x55
  27. #define  FRAME_HEADAA    0xAA

  28. uint8_t  RxPayload[32];   //無線接收緩存
  29. //uint8_t  TxPayload[32];   //無線發(fā)送緩存
  30. uint8_t  RepFlag;

  31. typedef struct Frame_Report
  32. {
  33.   uint8_t   len;
  34.         uint8_t   buf[FRAME_MAX_LEN];  //上報數(shù)據(jù)緩存

  35. }Frame_ReportInfo;

  36. Frame_ReportInfo FrameReportInfo = {0};

  37. uint8_t ReceBuf[4][4];//存放4個節(jié)點的數(shù)據(jù)
  38. /**************************************
  39. 功能描述:延時函數(shù)
  40. 入口參數(shù):uint x ,該值為1時,延時1ms
  41. 返回值:無
  42. ***************************************/
  43. void delay_ms(uint16_t x)
  44. {  
  45.         uint16_t j,i;   
  46.         for(j=0;j<x;j++)   
  47.         {   
  48.                 for(i=0;i<1100;i++);   
  49.         }  
  50. }
  51. /***************************************************************************
  52. * 描  述 : 數(shù)據(jù)打包
  53. * 入  參 : 無
  54. * 返回值 : 數(shù)據(jù)長度
  55. **************************************************************************/
  56. static uint8_t ReportFrame(void)
  57. {
  58.         uint8_t i,j;
  59.         
  60.         FrameReportInfo.len = 16;                //數(shù)據(jù)長度固定為16
  61.         FrameReportInfo.buf[0] = FRAME_HEAD55;
  62.         FrameReportInfo.buf[1] = FRAME_HEADAA;  //幀頭
  63.         FrameReportInfo.buf[2] = HOST_ADDR;     //對于基站來說,主機是基站的目的地址。即0xEA
  64.         FrameReportInfo.buf[3] = LOCAL_ADDR;    //本機地址
  65.         FrameReportInfo.buf[4] = FrameReportInfo.len;

  66.   for(i=0; i<4; i++)
  67.   {
  68.                 for(j=0; j<4; j++)FrameReportInfo.buf[5+i*4+j] = ReceBuf[i][j];
  69.   }        
  70.         return FrameReportInfo.len+6;
  71. }
  72. /***************************************************************************
  73. * 描  述 : 發(fā)送數(shù)據(jù)給主機
  74. * 入  參 : 無
  75. * 返回值 : 無
  76. **************************************************************************/
  77. static void SendDatToHost(uint8_t len)
  78. {
  79.         uint8_t i;

  80.         for(i=0; i<len; i++)
  81.         {
  82.     U1SendData(FrameReportInfo.buf[i]);
  83.   }
  84.         delay_ms(5);
  85. }
  86. /***************************************************************************
  87. * 描  述 : 主函數(shù)
  88. * 入  參 : 無
  89. * 返回值 : 無
  90. **************************************************************************/
  91. int main()            //主函數(shù)
  92. {
  93.   uint8_t i,j;
  94.   uint16_t loop =0;        
  95. /////////////////////////////////////////////////
  96. //注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關(guān)的IO口均為
  97. //      高阻態(tài),需將這些口設置為準雙向口或強推挽模式方可正常使用
  98. //相關(guān)IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
  99. //        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
  100. /////////////////////////////////////////////////
  101.         P0M1 = 0;        P0M0 = 0;        //設置P0.0~P0.7為準雙向口
  102.         P2M1 = 0;        P2M0 = 0;        //設置P2.0~P2.7為準雙向口
  103.         P3M1 = 0;        P3M0 = 0;        //設置P3.0~P3.7為準雙向口
  104.         P4M1 = 0;        P4M0 = 0;        //設置P4.0~P4.7為準雙向口
  105.         P5M1 = 0;        P5M0 = 0;        //設置P5.0~P5.7為準雙向口
  106.         
  107.         Uart1_Init();             //初始化串口1
  108.         Timer0Init();             //初始化定時器0,用于定時發(fā)送各個節(jié)點的溫濕度值到計算機
  109.         Init_NRF24L01();                //初始化
  110.         Set_RxMode();                                            //配置nRF24L01為接收模式
  111.         EA = 1;                   //總中斷打開
  112.         
  113.   while(1)
  114.   {               
  115.                 if(NRF24L01_RxPacket(RxPayload) == RX_OK)        //如果接收成功
  116.                 {
  117.       if(RxPayload[0] == 0x5A)               
  118.       {
  119.                                 led=~led;//NRF24L01模塊狀態(tài)指示燈翻轉(zhuǎn)
  120.                                 //注意,這里進行了簡化,只支持接收4個節(jié)點的數(shù)據(jù),而且,4個節(jié)點的地址必須是1 2 3 4
  121.                                 if((RxPayload[1]>0) && (RxPayload[1]<5))//判斷節(jié)點地址是否合法
  122.                                 {
  123.                                         for(i=0;i<4;i++)ReceBuf[RxPayload[1]-1][i] = RxPayload[2+i];        
  124.                                 }
  125.                                 RxPayload[0]  = 0;
  126.       }                        
  127. ……………………

  128. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
項目實戰(zhàn)5-無線溫濕度多點采集系統(tǒng).zip (5.5 MB, 下載次數(shù): 195)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:221117 發(fā)表于 2017-7-23 09:45 | 只看該作者
看著很高大上啊,下來看看,學習中......
回復

使用道具 舉報

板凳
ID:134271 發(fā)表于 2017-8-5 10:39 | 只看該作者
能提供上位機VB/VC源程序嗎?
回復

使用道具 舉報

地板
ID:384025 發(fā)表于 2018-11-6 10:40 | 只看該作者
很不錯的文檔!謝謝樓主!
回復

使用道具 舉報

5#
ID:137005 發(fā)表于 2018-11-22 09:09 | 只看該作者
謝謝分享!
回復

使用道具 舉報

6#
ID:357107 發(fā)表于 2018-11-22 11:24 | 只看該作者
能提供上位機VB/VC源程序嗎
回復

使用道具 舉報

7#
ID:429003 發(fā)表于 2018-11-22 12:33 | 只看該作者
樓主精神可嘉,不過這個傳感器,濕度測量完全是個雞肋,偏差有點大!
回復

使用道具 舉報

8#
ID:357107 發(fā)表于 2018-11-22 15:30 | 只看該作者
可以改成sht21   
回復

使用道具 舉報

9#
ID:417098 發(fā)表于 2019-1-4 13:46 | 只看該作者
你好  請問有電路板的圖嗎? 下載的資料包里只有一張照片,剛?cè)腴T看不懂
回復

使用道具 舉報

10#
ID:612332 發(fā)表于 2019-9-16 23:11 | 只看該作者
有電路 圖嗎
回復

使用道具 舉報

11#
ID:512907 發(fā)表于 2019-9-19 22:08 | 只看該作者
好不錯的
回復

使用道具 舉報

12#
ID:601639 發(fā)表于 2020-5-11 17:50 | 只看該作者
下下來看看效果。
回復

使用道具 舉報

13#
ID:704585 發(fā)表于 2020-5-15 15:26 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表