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

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

QQ登錄

只需一步,快速開(kāi)始

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

藍(lán)牙與NRF24L01家電開(kāi)關(guān)控制系統(tǒng)設(shè)計(jì)(單片機(jī)源碼+APP+報(bào)告與ppt)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
題目:藍(lán)牙與NRF24L01家電開(kāi)關(guān)控制系統(tǒng)設(shè)計(jì)
PPT目錄:
1.系統(tǒng)概述
2.成品圖
3.系統(tǒng)結(jié)構(gòu)
4.模塊功能介紹
5.軟件設(shè)計(jì)
6.測(cè)試方案與結(jié)果
7.總結(jié)與分析
8.結(jié)束

制作出來(lái)的實(shí)物圖如下:


本系統(tǒng)結(jié)合藍(lán)牙4.0通信技術(shù)、nRF24L01無(wú)線技術(shù),設(shè)計(jì)一套12路無(wú)線遙控開(kāi)關(guān)。
    特點(diǎn):具有成本低、功耗低、操作簡(jiǎn)單、同時(shí)減少了不必要的工作量,運(yùn)用價(jià)值較高。
    缺點(diǎn):控制距離受限制。


3.模塊功能介紹
一.藍(lán)牙模塊
    接收手機(jī)發(fā)送指令,由單片機(jī)對(duì)接收到的指令識(shí)別,分別控制相應(yīng)的通道(開(kāi)與關(guān))。

二.NRF24L01收發(fā)模塊
    發(fā)送和接收數(shù)據(jù) , 由單片機(jī)對(duì)接收到的數(shù)據(jù)進(jìn)行解碼,分別控制相應(yīng)的通道(開(kāi)與關(guān))

三.12864液晶模塊

    顯示系統(tǒng)工作狀態(tài),方便人機(jī)對(duì)話。

四.上位機(jī)Ds18b20模塊

    檢測(cè)環(huán)境溫度,由單片機(jī)把溫度解析分別顯示在12864液晶顯示器。

五.上位機(jī)獨(dú)立按鍵

    切換顯示頁(yè)面,選擇通道開(kāi)關(guān)信號(hào),確定通道要發(fā)送的數(shù)據(jù)。


六.繼電器模塊

    小信號(hào)控制大信號(hào)的作用。



5.測(cè)試方案與結(jié)果
一.障礙區(qū)域測(cè)試:

    1.1.藍(lán)牙手機(jī)有效距離20以內(nèi)
    1.2.NRF24L01上位機(jī)有效距離50米以內(nèi)
   
二.無(wú)障礙區(qū)域測(cè)試:

    2.1.藍(lán)牙手機(jī)有效距離40以內(nèi)
    2.2.NRF24L01上位機(jī)有效距離100米以內(nèi)

一.總結(jié)與分析
        此次畢業(yè)設(shè)計(jì)的制作,鞏固我們?cè)谛F陂g所學(xué)的知識(shí),提升了單片機(jī)編程能力和軟件調(diào)試經(jīng)驗(yàn),讓我們懂得自己的不足之處。        
        主要作用:增強(qiáng)開(kāi)關(guān)智能化。
        特點(diǎn):具有成本低、功耗低、操作簡(jiǎn)單、同時(shí)減少了不必要的工作量,運(yùn)用價(jià)值較高。
        不足之處:控制距離受限制,系統(tǒng)屬于單工傳輸狀態(tài),主機(jī)電路制作不夠精練。

無(wú)線主機(jī)與上位機(jī)源碼:
  1. #include "STC15F2K.H"
  2. #include "intrins.h"
  3. #include "delay.h"
  4. #include "io.h"
  5. #include "api.h"                                                                                                                                
  6. #include "shoujie.h"
  7. #include "12864.h"
  8. #include "rx_data.h"
  9. #include "lanya.h"


  10. /**************************************************
  11. 函數(shù):main()

  12. 描述:
  13.     主函數(shù)
  14. /**************************************************/
  15. void main(void)
  16. {
  17.         init_io();                                          // 初始化IO口
  18.         RX_Mode();                                             // 設(shè)置為接收模式   
  19.         LCD_init();                                  // 初始化液晶
  20.         SerialIni();                                  // 初始化定時(shí)器
  21.         while(1)
  22.         {                                                                                                               
  23.                 gnenqhuan();                          // 藍(lán)牙數(shù)據(jù)處理程序
  24.                 RX_MAIN();                                  // 判斷是否接收到開(kāi)關(guān)數(shù)據(jù)
  25.             RX_MAIN1();                                  // 判斷是否接收到溫度數(shù)據(jù)
  26.                 sta = SPI_Read(STATUS);          // 讀狀態(tài)寄存器        
  27.         }
  28. }


  29. //
  30. //void t0() interrupt 1
  31. //{
  32. //        TR0=0;
  33. //
  34. //          Count1++;                  //0.5 MS 加一次               
  35. ///************PWM1與PWM2調(diào)速*****************/
  36. //               
  37. //        if(Count1>100)        {   Count1=0;    }         
  38. //        if(Count1<PWM1||Count1==PWM1){ dt_led = 1; }         //改變PWM1的值就可以改變大廳燈的亮度
  39. //        else                                 { dt_led = 0; }
  40. //
  41. ////        if(Count1<PWM2||Count1==PWM2){ ws_led = 1; }         //改變PWM2的值就可以改變臥室燈的亮度
  42. ////        else                                 { ws_led = 0; }
  43. ////
  44. ////        if(Count1<PWM3||Count1==PWM3){ sm_led = 1; }         //改變PWM3的值就可以改變睡眠燈的亮度
  45. ////        else                                 { sm_led = 0; }
  46. //        TR0=1;        
  47. //}
復(fù)制代碼

藍(lán)牙的頭文件:
  1. #ifndef         _lanya_h_
  2. #define         _lanya_h_

  3. int BBuffer[6] = {0};   //從串口接收的雙個(gè)數(shù)據(jù) (緩存區(qū))
  4. uchar j=0,shuju=1;
  5. //uchar Count1=0,PWM1=0,PWM2=0,PWM3=0;


  6. void SerialIni(){
  7.    
  8.     SCON = 0x50;     
  9.     AUXR &= 0xBE;   
  10.     AUXR |= 0x00;   
  11.     TMOD &= 0x0F;         
  12.     TMOD = 0x20;   
  13.     TH1  = 0xfd;   
  14.     TL1  = 0xfd;   

  15.     TR1=1;           //定時(shí)器1啟動(dòng)
  16.     ES = 1;          //開(kāi)放串口中斷
  17.     EA = 1;          //開(kāi)放CPU中斷
  18. }

  19. void gnenqhuan()  
  20. {
  21.         
  22. if(shuju==1)
  23. {
  24.         while(BBuffer[0])
  25.         {
  26.                 switch(BBuffer[0])                                                                                    //遙控狀態(tài)
  27.                 {                                
  28.         
  29.                         case 101:  
  30.                                                 water_j = 0;
  31.                                                 lcd_com(0x80);        disp_chinese("飲水機(jī)狀態(tài):   開(kāi)"); break; //飲水機(jī)開(kāi)                           
  32.                         case 102:   water_j = 1;        
  33.                                             lcd_com(0x80);        disp_chinese("飲水機(jī)狀態(tài):   關(guān)"); break; //飲水機(jī)關(guān)
  34.                                                    
  35.                         case 103:  curtain = 0;        
  36.                                                 lcd_com(0x90);        disp_chinese("窗簾  狀態(tài):   開(kāi)"); break; //窗簾開(kāi)                  
  37.                         case 104:  curtain = 1;        
  38.                                                 lcd_com(0x90);        disp_chinese("窗簾  狀態(tài):   關(guān)"); break; //窗簾關(guān)
  39.                                                    
  40.                         case 105:  freezer = 0;               
  41.                                                 lcd_com(0x88);        disp_chinese("冰箱  狀態(tài):   開(kāi)"); break; //冰箱開(kāi)
  42.                         case 106:  freezer = 1;        
  43.                                                 lcd_com(0x88);        disp_chinese("冰箱  狀態(tài):   關(guān)"); break; //冰箱關(guān)

  44.                         case 107:  feng_s  = 0;        
  45.                                                 lcd_com(0x98);        disp_chinese("風(fēng)扇  狀態(tài):   開(kāi)"); break; //風(fēng)扇開(kāi)
  46.                         case 108:  feng_s  = 1;        
  47.                                                 lcd_com(0x98);        disp_chinese("風(fēng)扇  狀態(tài):   關(guān)"); break; //風(fēng)扇關(guān)

  48.                         case 109:  socket_1 = 0;        
  49.                                                 lcd_com(0x80);        disp_chinese("插座1 狀態(tài):   開(kāi)"); break; //插座1開(kāi)
  50.                         case 110:  socket_1 = 1;        
  51.                                                 lcd_com(0x80);        disp_chinese("插座1 狀態(tài):   關(guān)"); break; //插座1關(guān)
  52.                         
  53.                         case 111:  socket_2 = 0;        
  54.                                                 lcd_com(0x90);        disp_chinese("插座2 狀態(tài):   開(kāi)"); break; //插座2開(kāi)
  55.                         case 112:  socket_2 = 1;        
  56.                                                 lcd_com(0x90);        disp_chinese("插座2 狀態(tài):   關(guān)"); break; //插座2關(guān)
  57.                         
  58.                         case 113:  socket_3 = 0;        
  59.                                                 lcd_com(0x88);        disp_chinese("插座3 狀態(tài):   開(kāi)"); break; //插座3開(kāi)
  60.                         case 114:  socket_3 = 1;        
  61.                                                 lcd_com(0x88);        disp_chinese("插座3 狀態(tài):   關(guān)"); break; //插座3關(guān)
  62.                         
  63.                         case 115:  socket_4 = 0;        
  64.                                                 lcd_com(0x98);        disp_chinese("插座4 狀態(tài):   開(kāi)"); break; //插座4開(kāi)
  65.                         case 116:  socket_4 = 1;        
  66.                                                 lcd_com(0x98);        disp_chinese("插座4 狀態(tài):   關(guān)"); break; //插座4關(guān)

  67.                          case 117:  dt_led = 0;        
  68.                                                 lcd_com(0x80);        disp_chinese("大廳燈狀態(tài):   開(kāi)"); break; //大廳燈開(kāi)
  69.                         case 118:  dt_led = 1;        
  70.                                                 lcd_com(0x80);        disp_chinese("大廳燈狀態(tài):   關(guān)"); break; //大廳燈關(guān)

  71.                         case 120:  
  72.                                            clr_all();         
  73.                                            lcd_com(0x80);        disp_chinese("★藍(lán)牙智能開(kāi)關(guān)  ");
  74.                                                                                 break;          //手機(jī)遙控狀態(tài)

  75.                         case 121:  RX_MAIN();                                  // 判斷是否接收到開(kāi)關(guān)數(shù)據(jù)
  76.                                            RX_MAIN1();                                  // 判斷是否接收到溫度數(shù)據(jù)
  77.                                            sta = SPI_Read(STATUS);          // 讀狀態(tài)寄存器                                
  78.                                                                                 break;          //2.4G遙控狀態(tài)

  79.                     case 122:  sm_led = 0;        
  80.                                                 lcd_com(0x90);        disp_chinese("睡眠燈狀態(tài):   開(kāi)"); break; //睡眠燈開(kāi)
  81.                         case 123:  sm_led = 1;        
  82.                                                 lcd_com(0x90);        disp_chinese("睡眠燈狀態(tài):   關(guān)"); break; //睡眠燈關(guān)
  83.                         
  84.                         case 124:  ws_led = 0;        
  85.                                                 lcd_com(0x88);        disp_chinese("臥室燈狀態(tài):   開(kāi)"); break; //臥室燈開(kāi)
  86.                         case 125:  ws_led = 1;        
  87.                                                 lcd_com(0x88);        disp_chinese("臥室燈狀態(tài):   關(guān)"); break; //臥室燈關(guān)
  88.                                                                
  89.                         case 126:  socket_5 = 0;        
  90.                                                 lcd_com(0x88);        disp_chinese("插座5 狀態(tài):   開(kāi)"); break; //插座5開(kāi)
  91.                         case 127:  socket_5 = 1;        
  92.                                                 lcd_com(0x88);        disp_chinese("插座5 狀態(tài):   關(guān)"); break; //插座5關(guān)
  93.                
  94.                         default:break;
  95.                 }
  96.                                  
  97.         }
  98. }        

  99. }



  100. void Uart2(void) interrupt 4 using 1
  101. {
  102.     if(RI)                           //如果是接收中斷
  103.     {
  104. ……………………

  105. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


完整的設(shè)計(jì)報(bào)告文檔(word格式)和ppt:


全部資料51hei下載地址:

藍(lán)牙4.0通信技術(shù)和nRF24L01無(wú)線技術(shù).rar (3.1 MB, 下載次數(shù): 149)
設(shè)計(jì)報(bào)告.zip (3.6 MB, 下載次數(shù): 98)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:459236 發(fā)表于 2019-1-1 11:12 | 只看該作者
可以的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品 | 黄色国产在线播放 | caoporn视频在线 | 久久精品亚洲 | 日本午夜视频 | jizz中国日本| 国产乱码精品1区2区3区 | 国产高清精品网站 | 99久久精品免费看国产四区 | 日韩精品成人在线 | 中文字幕一区二区三区四区五区 | 91精品国产综合久久久久久首页 | 狠狠操狠狠操 | 毛片一级片 | 精品欧美激情精品一区 | 欧美精品一区二区免费视频 | 精品欧美一区二区中文字幕视频 | 伊人伊人 | 五月精品视频 | 亚洲性爰 | 成人一区二区三区在线观看 | 国产精品视频免费看 | 天天搞天天搞 | 天天夜干 | 国产免费视频 | 天天干视频在线 | 日韩三级一区 | 亚洲国产精品一区二区第一页 | 国产精品福利视频 | 最新中文字幕在线 | 干干干日日日 | 日韩一区二区在线视频 | 久久久精品一区二区三区 | 午夜一区二区三区在线观看 | 欧美激情国产精品 | 精品毛片 | 噜噜噜噜狠狠狠7777视频 | 欧美日韩在线观看一区 | 男女搞网站 | 日本黄色高清视频 | 美女国内精品自产拍在线播放 |