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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)+WiFi模塊做的溫度計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:464918 發(fā)表于 2019-1-8 22:02 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
         用USR-WIFI232-T串口聯(lián)網(wǎng)模塊和51單片機(jī)能做成一個可以無線上網(wǎng)的數(shù)字溫度計,圖1是該溫度計的實物照片。溫度計采用3.3V電池供電,可置于任何一個需要測量溫度的地方,通過網(wǎng)絡(luò)或手機(jī)即可讀取測得的溫度數(shù)據(jù),十分方便。

1.1 WiFi溫度計的硬件電路
圖2 WiFi溫度計電路原理圖
              圖2是WiFi溫度計的電路原理圖,圖中溫度傳感器采用TMP102低功耗溫度傳感器,單片機(jī)是AT89C2051。
1.2 WiFi溫度計的編程
              從圖2可以看出,單片機(jī)的串口和USR-WIFI232-T模塊的串口連在一起,來自網(wǎng)絡(luò)的命令可以通過USR-WIFI232-T模塊串口傳送給單片機(jī);單片機(jī)的數(shù)據(jù)也可以通過串口經(jīng)USR-WIFI232-T模塊傳送到網(wǎng)絡(luò),USR-WIFI232-T模塊是WiFi溫度計無線上網(wǎng)的信道。WiFi溫度計通過單片機(jī)串口接收來自網(wǎng)絡(luò)的命令,然后根據(jù)命令把TMP102溫度傳感器測得的數(shù)據(jù)通過單片機(jī)串口發(fā)送給USR-WIFI232-T模塊,USR-WIFI232-T模塊把數(shù)據(jù)傳到網(wǎng)絡(luò)上。單片機(jī)收到網(wǎng)絡(luò)命令即通過串口發(fā)送溫度數(shù)據(jù),這是WiFi溫度計編程的關(guān)鍵,實際就是單片機(jī)串口編程,下面列出部分程序。
WiFi溫度計編程
// WiFi溫度計TMP102
  1. #include <reg51.H>
  2. #include <INTRINS.H>//_nop_()
  3. #include <IIC.H>              // IIC總線函數(shù)包

  4. #define AddWr 0x90              //tmp102 WRITE ADD
  5. #define AddRd 0x91              //tmp102 READ ADD

  6. uchar dis_buf[4]={1,2,3,4};              //顯示數(shù)據(jù)緩存數(shù)組
  7. uchar RS232_BUF[7];                                 //RS2232發(fā)送緩存
  8. //-------------------------------------
  9. //串口初始化
  10.               void Init_UART(void)
  11. {
  12.               SCON=0x50;              //串口工作方式1
  13.               //PCON=0x80;//SMOD=1波特率=19200
  14.               TMOD=0x20;              //定時器1設(shè)置為定時器方式1
  15.               TH1=0xFD;               //波特率=9600                                         
  16.               TL1=0xFD;
  17.               TR1=1;            
  18. }
  19. //串口與上位機(jī)通信
  20. //-----------------------------------------------
  21. void TX_Byte(uchar message)//串口發(fā)送字節(jié)
  22. {
  23.               SBUF=message;
  24.               while(TI==0);
  25.               TI=0;
  26. }
  27. //-----------------------------------------------
  28. uchar Recive(void) //串口接收
  29. {
  30.               uchar x;
  31.                 while(RI==0);
  32.               RI=0;
  33.                 x=SBUF;
  34.                 return x;
  35. }
  36. //--------------------------------------
  37. void del_ms(uint x) //延時
  38. {
  39.               uchar j;
  40.               while(x--)
  41.               {for(j=0;j<125;j++);}
  42. }

  43. //------------------------------------------------------------------------
  44. void TX_Temp(void)//返回溫度數(shù)據(jù)
  45. {
  46.     union
  47.   {
  48.     uchar c[2];
  49.     uint x;
  50.   }temp2;   

  51.     del_ms(10);                       
  52.     temp2.x=tmp102_rd();             //讀兩字節(jié)溫度數(shù)據(jù)

  53.         if(temp2.c[0]&0x80)                                 //若為負(fù)數(shù)
  54.           {
  55.             temp2.x=~(temp2.x)+1;                             //取反加1           
  56.             RS232_BUF[2]='-';                     //負(fù)號           
  57.           }

  58.           dis_buf[3]=temp2.c[0]/100;     //百位  
  59.           dis_buf[2]=(temp2.c[0]%100)/10;//十位
  60.           dis_buf[1]=temp2.c[0]%10;      //個位
  61.           temp2.c[1]>>=4;
  62.           dis_buf[0]=xiaoshu(temp2.c[1]);//小數(shù)
  63.                                          

  64.           RS232_BUF[2]=dis_buf[3]+0x30;                          
  65.           RS232_BUF[3]=dis_buf[2]+0x30;
  66.           RS232_BUF[4]=dis_buf[1]+0x30;
  67.           RS232_BUF[5]=dis_buf[0]+0x30;

  68.         //發(fā)送4位溫度數(shù)據(jù),溫度為十進(jìn)制格式
  69.                             TX_Byte(RS232_BUF[2]);                     //溫度整數(shù)部分百位
  70.                             TX_Byte(RS232_BUF[3]);                     //十位
  71.         TX_Byte(RS232_BUF[4]);                     //個位
  72.         TX_Byte('.');                                                 //小數(shù)點
  73.         TX_Byte(RS232_BUF[5]);                     //小數(shù)
  74.         TX_Byte(' ');                                                 //空格
  75.                                           

  76. }
  77. //-------------------------------------------------------------------
  78. void TX_Strings(char *string)//發(fā)送字符串
  79. {
  80.     while (*string) {
  81.          TX_Byte(*string++);
  82.     }
  83. }
  84. //++++++++++++++++++++++++++++++++++++++++++++++++++
  85. void main()
  86. {
  87.               uchar cmd;
  88.               Init_UART();//串口初始化
  89.               del_ms(100);              

  90.               while(1)
  91.               {
  92.                 cmd=Recive();
  93.                 del_ms(20);
  94.                 //TX_Byte(cmd);

  95.                             switch (cmd)
  96.                             {                                                                 //根據(jù)收到的命令返回
  97.         case '1':                                   
  98.           TX_Strings("Wifi Thermometer\r\n");//返回標(biāo)題
  99.           TX_Strings("tanggong\r\n");
  100.             break;
  101.         case '2':   
  102.           TX_Temp();                        //返回溫度數(shù)據(jù)
  103.           TX_Strings("\r\n");                                      //換行
  104.             break;
  105.         case '3':                                   
  106.           TX_Byte(cmd);                                //返回收到的命令
  107.           TX_Strings("\r\n");                                      //換行
  108.             break;
  109.         default:break;
  110.                             }
  111.               }

  112. }
復(fù)制代碼

1.3 WiFi溫度計的使用
              用電腦或手機(jī)上網(wǎng)都可以控制WiFi溫度計,讀者可以自己編寫電腦或手機(jī)使用的軟件控制WiFi溫度計,也可以使用網(wǎng)上現(xiàn)成的軟件。限于篇幅這里只介紹如何用現(xiàn)成的手機(jī)軟件來控制WiFi溫度計,使用的手機(jī)軟件是“網(wǎng)絡(luò)調(diào)試助手”,可在網(wǎng)上下載。
              由于USR-WIFI232-T模塊設(shè)置在AP+STA模式,故此兩種模式都可以工作,在這兩種模式時USR-WIFI232-T模塊的端口號是相同的,都是8899,但兩種模式的IP地址是不同的,在AP模式USR-WIFI232-T模塊的IP地址是固定的“10.10.100.254”;在STA模式USR-WIFI232-T模塊的IP地址是由網(wǎng)絡(luò)隨機(jī)分配的一個不固定地址,需要用搜索軟件搜索模塊,獲得這個IP地址,按照這個IP地址才能和模塊建立連接。因此兩種模式的使用方法不同,下面分述在兩種工作模式時的使用方法。
16.4.1 WiFi模塊在AP模式
              給WiFi溫度計通電,待模塊啟動狀態(tài)指示燈D2亮了以后,打開手機(jī)在WLAN無線網(wǎng)絡(luò)連接列表中看是否有USR-WIFI232-T模塊,無線信號強(qiáng)度是否正常,若正常則按以下步驟進(jìn)行:
  • 接USR-WIFI232-T模塊。如圖3所示。
圖3 手機(jī)連接模塊
②顯示“已連接”之后,打開手機(jī)中安裝的“網(wǎng)絡(luò)調(diào)試助手”應(yīng)用軟件,在“tcp client ”選項卡下面點“增加”,設(shè)置IP地址為模塊的默認(rèn)IP地址10.10.100.254,端口為8899,如圖4所示,在左邊會顯示連接的IP地址和端口號,說明已連接到WiFi溫度計。
③在下面的發(fā)送文本框中輸入發(fā)送命令,命令1是返回標(biāo)題,命令2是返回溫度值。單擊發(fā)送按鈕,就會收到返回的數(shù)據(jù),顯示在手機(jī)屏幕中間,如圖4所示。“031.1”是返回的溫度數(shù)據(jù)。
圖4 手機(jī)發(fā)命令接收溫度計數(shù)據(jù)
完整的Word格式文檔51黑下載地址:
WiFi模塊做的溫度計.docx (230.65 KB, 下載次數(shù): 42)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:464966 發(fā)表于 2019-1-8 22:33 | 只看該作者
謝謝
回復(fù)

使用道具 舉報

板凳
ID:104846 發(fā)表于 2019-5-4 19:37 | 只看該作者
不錯,要是有本地顯示就完美了
回復(fù)

使用道具 舉報

地板
ID:1053064 發(fā)表于 2022-11-23 15:27 | 只看該作者
很不錯,只是剛開始有問題
回復(fù)

使用道具 舉報

5#
ID:1053064 發(fā)表于 2022-11-23 15:28 | 只看該作者
很不錯,但是代碼是要改過
回復(fù)

使用道具 舉報

6#
ID:433219 發(fā)表于 2022-11-23 21:12 | 只看該作者
  本地局域網(wǎng)顯示?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人影视网 | 81精品国产乱码久久久久久 | 九九九视频在线 | 国产激情一区二区三区 | 亚洲精品一区二区三区中文字幕 | 亚洲视频三区 | 精精国产xxxx视频在线 | 91精品国产综合久久婷婷香蕉 | aa级毛片毛片免费观看久 | 亚洲精品在线视频 | 国产亚洲一区二区三区 | 久热久热 | 国产91在线 | 亚洲 | 欧美一区二区大片 | 产真a观专区 | 91高清在线视频 | 国产一区二区 | 成人av电影在线观看 | 九九热精品视频 | 欧美日韩综合一区 | 中文字幕日韩一区 | 国产一级毛片精品完整视频版 | 天天色综| 亚洲欧美v | 日韩成人在线播放 | 蜜臀91视频 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 天天操伊人 | 国产精品视频网 | 久久久久久av | 精品视频一区二区三区 | 国产欧美日韩久久久 | 国产91九色 | 成年人在线观看视频 | 日韩一区二区三区视频 | 伊人网伊人网 | 一区二区在线 | 中文字幕福利视频 | 国产精品1区2区3区 欧美 中文字幕 | 小川阿佐美pgd-606在线 | a级在线免费视频 |