久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 11586|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

無線溫濕度監(jiān)測(cè)(NRF24L01+89c52+12864串行顯示+DS18B20+DHT11)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:138884 發(fā)表于 2016-11-10 15:27 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
無線溫濕度監(jiān)測(cè)(NRF24L01+89c52+12864串行顯示+DS18B20+DHT11)
部分代碼如下:
想要一對(duì)多通信,經(jīng)過簡(jiǎn)單修改即可

  1. /****************************************************************************************/
  2. /*NRF24L01要更改收發(fā)端,只需要通過是否宏定義RX即可,#define RX為接收端,不定義則為發(fā)送端*/
  3. /***************************************************************************************/
  4. /**************************************************************************************/
  5. /*通過DS18B20測(cè)試當(dāng)前環(huán)境溫度, 通過DHT11測(cè)試濕度,并通過12864串行顯示當(dāng)前溫度值********/
  6. /*目前顯示范圍: 溫度-55~ +125攝氏度,濕度20%-95% 濕度測(cè)量誤差:+-5%*******************/
  7. /*************************************************************************************/

  8. #include "reg52.H"
  9. #include "intrins.h"
  10. #include "math.H"  //要用到取絕對(duì)值函數(shù)abs()

  11. #include "DELAY.H"
  12. #include "DS18B20.H"
  13. #include "12864.h"
  14. #include "DHT11.H"
  15. #include "nRF24L01.H"

  16. #define uchar unsigned char
  17. #define uint unsigned int

  18. //#define RX          //接收端則要定義此,由于采用條件編譯,所以會(huì)在不同情況時(shí),有函數(shù)沒被用到,報(bào)warning可不用在意

  19. extern uchar U8RH_data_H,U8RH_data_L;        //需要應(yīng)用到DHT11中的濕度全局變量
  20. int tempValue;                                                        //溫度數(shù)據(jù)用了全局變量
  21.   

  22. uchar Rx_Buf[RX_PLOAD_WIDTH];               
  23. uchar Tx_Buf[TX_PLOAD_WIDTH];


  24. /*MAIN*/


  25. void main()
  26. {
  27.   unsigned char TMPS[] = {0,0,0,0x2e,0,0};
  28.   unsigned char RHS[] = {0,0,0x2e,0,0x25};
  29.   uchar i,RH_H,RH_L,tmp_H,tmp_L,TMP;  uint tmp;int TMP_Value,tmpvalue;
  30.   float t;

  31.   LCD_INIT();         //LCD12864定義

  32.   while(1)
  33.   {
  34.    #ifndef RX                   //條件編譯

  35.                   DS_sendChangeCmd();                   //啟動(dòng)DS18B20溫度轉(zhuǎn)換
  36.                 DS_sendReadCmd();                   //發(fā)送DS18B20讀取數(shù)據(jù)命令
  37.                 tmp_L = DS18B20_RByte();   /*讀取的兩個(gè)字節(jié)分別寫入tmp_L和tmp_H
  38.                                                                 */
  39.                 tmp_H = DS18B20_RByte();
  40.                 RH();                                        //DHT11初始化
  41.             RH_H= U8RH_data_H;                 //全局定義的濕度高八位給RH_H暫存
  42.         RH_L= U8RH_data_L;                 //全局定義的濕度低八位給RH_L暫存
  43.                 SPI_RW(FLUSH_TX);                //清寄存器
  44.                 Tx_Buf[0] = tmp_L;                //溫度低八位
  45.                 Tx_Buf[1] = tmp_H;                //溫度高八位
  46.                 Tx_Buf[2] = RH_L;                //濕度低八位
  47.                 Tx_Buf[3] = RH_H;                //濕度高八位
  48.             NRF24L01_Init_TX(1);          //初始化,用通道1發(fā)送
  49.             nRF24L01_TxPacket(Tx_Buf);          //發(fā)送TX寄存器數(shù)據(jù)
  50.                 Tx_Buf[0] = 0;
  51.                 Tx_Buf[1] = 0;
  52.                 Tx_Buf[2] = 0;
  53.                 Tx_Buf[3] = 0;

  54.            
  55.         #endif
  56.            
  57.         #ifdef RX                         //條件編譯
  58.                
  59.                 NRF24L01_Init_RX(1);           //接收時(shí)先初始化NRF24L01,注意為Init_RX(1),通道1接收        
  60.                 nRF24L01_RxPacket(Rx_Buf);         //讀取RX寄存器內(nèi)數(shù)據(jù)
  61.                
  62.                  /*溫濕度處理*/
  63.         
  64.                 lcd_setaddr(1,0);                                //“溫度”漢字在LCD12864顯示位置
  65.                 lcd_putstr("溫度:");
  66.                
  67.                 /*溫濕度高低八位分別暫存*/
  68.                 tmp_L = Rx_Buf[0];                                
  69.                 tmp_H = Rx_Buf[1];
  70.                 RH_L  = Rx_Buf[2];
  71.                 RH_H  = Rx_Buf[3];
  72.                
  73.                 /*溫度數(shù)據(jù)處理*/
  74.                
  75.                 TMP_Value = tmp_H;
  76.                 TMP_Value <<= 8;
  77.                 TMP_Value |= tmp_L;
  78.                 t = TMP_Value * 0.0625;
  79.                 TMP_Value = t * 100 + (TMP_Value > 0 ? 0.5 : -0.5);
  80.                 tempValue = TMP_Value;
  81.                 tmp = abs(tempValue);
  82.                 TMPS[0] = 0x30+tmp / 10000;
  83.                 TMPS[1] = 0x30+tmp % 10000 / 1000;
  84.                 TMPS[2] = 0x30+tmp % 1000 / 100;
  85.                 TMPS[4] = 0x30+tmp % 100 / 10;
  86.                 TMPS[5] = 0x30+tmp % 10;
  87.                 /*****************/
  88.                 lcd_setaddr(1,3);                          //LCD12864溫度數(shù)據(jù)寫入位置
  89.         for(i = 0;i<6;i++)
  90.              {
  91.           lcd_wdata(TMPS[i]);                  //連續(xù)寫入溫度數(shù)據(jù)到LCD12864
  92.         }
  93.         lcd_setaddr(1,6);                         //寫入“℃”在LCD12864的顯示位置
  94.         lcd_putstr("℃");
  95.                
  96.                 /*以下為濕度*/
  97.            
  98.                    lcd_setaddr(2,0);
  99.             lcd_putstr("濕度:");
  100.                
  101.                 /*濕度數(shù)據(jù)處理*/
  102.    
  103.                 RHS[0] = 0x30+RH_H/10;         
  104.             RHS[1] = 0x30+RH_H%10;
  105.             RHS[3] = 0x30+RH_L/10;
  106.                 /* *************** */
  107.             lcd_setaddr(2,3);           //LCD12864濕度數(shù)據(jù)顯示位置
  108.             for(i = 0;i<5;i++)
  109.             {
  110.               lcd_wdata(RHS[i]);   //連續(xù)寫入濕度數(shù)據(jù)到LCD12864
  111.             }

  112.   #endif
  113.   }
  114. }
復(fù)制代碼



無線溫濕度監(jiān)測(cè).zip

80.8 KB, 下載次數(shù): 355, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 2黑幣 +105 收起 理由
kljie1000 + 5
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏13 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:138884 發(fā)表于 2016-11-24 22:18 | 只看該作者
最新更新帖子  http://www.zg4o1577.cn/bbs/dpj-58407-1.html  包括PCB及原理圖,可調(diào)溫度報(bào)警值。
回復(fù)

使用道具 舉報(bào)

板凳
ID:138884 發(fā)表于 2016-11-10 15:31 | 只看該作者
NRF24L01模塊需要特別注意應(yīng)用電壓!!
還有就是要仔細(xì)看它的使用手冊(cè)。
回復(fù)

使用道具 舉報(bào)

地板
ID:77523 發(fā)表于 2016-11-10 16:01 | 只看該作者
感謝分享!
回復(fù)

使用道具 舉報(bào)

5#
ID:145016 發(fā)表于 2016-11-14 19:35 | 只看該作者
不錯(cuò)不錯(cuò)。。。。
回復(fù)

使用道具 舉報(bào)

6#
ID:315674 發(fā)表于 2018-4-28 21:20 | 只看該作者
很厲害! 在下佩服佩服
回復(fù)

使用道具 舉報(bào)

7#
ID:522661 發(fā)表于 2019-5-7 12:46 來自手機(jī) | 只看該作者
無線是指能顯示在手機(jī)上么
回復(fù)

使用道具 舉報(bào)

8#
ID:516728 發(fā)表于 2019-5-21 13:16 | 只看該作者
謝謝大佬
回復(fù)

使用道具 舉報(bào)

9#
ID:403027 發(fā)表于 2019-5-21 17:04 | 只看該作者
做過這個(gè),樓主做的不錯(cuò)
回復(fù)

使用道具 舉報(bào)

10#
ID:343102 發(fā)表于 2019-5-21 19:59 | 只看該作者
感謝分享!
回復(fù)

使用道具 舉報(bào)

11#
ID:505433 發(fā)表于 2019-7-18 15:36 | 只看該作者
蝶舞狂雷 發(fā)表于 2019-5-7 12:46
無線是指能顯示在手機(jī)上么

是指從一個(gè)主機(jī)將數(shù)據(jù)信息傳輸?shù)搅硪粋(gè)從機(jī)上進(jìn)行處理(例如你在一個(gè)51單片機(jī)(主機(jī))上收集溫度信息,發(fā)送給另一個(gè)51單片機(jī)(從機(jī))上將溫度顯示出來),這僅我個(gè)人的理解
回復(fù)

使用道具 舉報(bào)

12#
ID:619669 發(fā)表于 2020-4-19 10:26 | 只看該作者
多謝!學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

13#
ID:1019604 發(fā)表于 2022-4-19 09:08 | 只看該作者
#在這里快速回復(fù)#NRF24L01模塊需要特別注意應(yīng)用電壓!!
回復(fù)

使用道具 舉報(bào)

14#
ID:1029948 發(fā)表于 2022-5-31 10:19 | 只看該作者
這個(gè)是只有程序嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日批免费在线观看 | 日韩亚洲一区二区 | 日韩在线不卡视频 | 亚洲二区在线 | 久久精品亚洲国产 | av在线电影网站 | 日韩精品一区二区三区第95 | 日韩电影在线一区 | 国产精品久久久久久av公交车 | 在线免费观看黄色 | 日韩一区二区三区在线 | 99成人精品 | 午夜资源 | 97精品国产97久久久久久免费 | www.av在线| 国产成人免费视频网站视频社区 | 精品在线免费看 | 欧美日韩国产一区二区三区 | 欧美三级视频 | 黑人巨大精品 | 精品久久久久久18免费网站 | 欧美日韩不卡 | 久久精品国产一区老色匹 | 成人免费视频观看视频 | 国产99精品 | www.国产精| 日韩免费一区二区 | 在线看av网址 | 亚洲精品在线视频 | 亚洲在线一区 | 久久91| 精品人伦一区二区三区蜜桃网站 | www.久草.com| 久久国内精品 | 国产精品亚洲片在线播放 | 国产精久久久久久久妇剪断 | 亚洲精品第一页 | 精品国模一区二区三区欧美 | 欧美不卡视频 | 成人午夜在线 | 亚洲一区二区三区四区五区中文 |