找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5284|回復(fù): 5
收起左側(cè)

單片機(jī)通過ESP8266與手機(jī)端進(jìn)行網(wǎng)絡(luò)通信的源碼與APP下載

  [復(fù)制鏈接]
ID:371965 發(fā)表于 2018-12-7 10:41 | 顯示全部樓層 |閱讀模式
在校期間研究了一套程序,手機(jī)通過網(wǎng)絡(luò)可以讀取單片機(jī)端的數(shù)據(jù)  比如溫度 濕度 開關(guān)燈 等等  現(xiàn)在將程序源碼上傳交流學(xué)習(xí),資料是一套視頻,論壇限制沒辦法就先把程序上傳,有興趣可以加我qq1506175115聯(lián)系我,本人電話18363353598

單片機(jī)使用為stc15w408as單片機(jī)

此程序 為前幾個視頻的程序 為方便查找在這里做了一個合集  wifi名稱為 aaa 密碼為 88888888  
手機(jī)app為wifi版  兩個程序全部通用 藍(lán)牙版本太過簡單 就不做了

0.png

單片機(jī)源程序如下:
  1. /*********************************************************************************
  2. * 【外部晶振】: 11.0592mhz       
  3. * 【主控芯片】: STC89C52
  4. * 【編譯環(huán)境】: Keil μVisio3       
  5. * 【程序功能】: 實時采集當(dāng)前環(huán)境溫度值,并顯示于數(shù)碼管上                                                                                           
  6. * 【使用說明】:
  7. *  說明:免費開源,不提供源代碼分析.
  8. **********************************************************************************/

  9. #include <stc15.h>
  10. #include<stdio.h>
  11. #include<intrins.h>
  12. #define uchar unsigned char
  13. #define uint unsigned int
  14. sbit DS=P2^2;           //define interface
  15. uint temp;             // variable of temperature
  16. uchar flag1;            // sign of the result positive or negative
  17. unsigned int a;


  18. void  delay()
  19. {
  20. unsigned char i, j;

  21.         _nop_();
  22.         i = 2;
  23.         j = 199;
  24.         do
  25.         {
  26.                 while (--j);
  27.         } while (--i);
  28. }


  29. void inte()
  30. {
  31.                   
  32.         // 下面代碼設(shè)置定時器
  33.         SCON = 0x50;                //8位數(shù)據(jù),可變波特率
  34.         AUXR |= 0x01;                //串口1選擇定時器2為波特率發(fā)生器
  35.         AUXR &= 0xFB;                //定時器2時鐘為Fosc/12,即12T
  36.         T2L = 0xE8;                //設(shè)定定時初值
  37.         T2H = 0xFF;                //設(shè)定定時初值
  38.         AUXR |= 0x10;                //啟動定時器2
  39.         ES   = 1;                // 開串口1中斷
  40.         EA   = 1;                // 開總中斷
  41. }
  42. void dsreset(void)       //send reset and initialization command
  43. {
  44.   uint i;
  45.   DS=0;
  46.   i=1003;
  47.   while(i>0)i--;
  48.   DS=1;
  49.   i=4;
  50.   while(i>0)i--;
  51. }

  52. bit tmpreadbit(void)       //read a bit
  53. {
  54.    uint i;
  55.    bit dat;
  56.    DS=0;i++;          //i++ for delay
  57.    DS=1;i++;i++;
  58.    dat=DS;
  59.    i=80;while(i>0)i--;
  60.    return (dat);
  61. }

  62. uchar tmpread(void)   //read a byte date
  63. {
  64.   uchar i,j,dat;
  65.   dat=0;
  66.   for(i=1;i<=8;i++)
  67.   {
  68.     j=tmpreadbit();
  69.     dat=(j<<7)|(dat>>1);   //讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在DAT里
  70.   }
  71.   return(dat);
  72. }

  73. void tmpwritebyte(uchar dat)   //write a byte to ds18b20
  74. {
  75.   uint i;
  76.   uchar j;
  77.   bit testb;
  78.   for(j=1;j<=8;j++)
  79.   {
  80.     testb=dat&0x01;
  81.     dat=dat>>1;
  82.     if(testb)     //write 1
  83.     {
  84.       DS=0;
  85.       i++;i++;
  86.       DS=1;
  87.       i=80;while(i>0)i--;
  88.     }
  89.     else
  90.     {
  91.       DS=0;       //write 0
  92.       i=80;while(i>0)i--;
  93.       DS=1;
  94.       i++;i++;
  95.     }

  96.   }
  97. }

  98. void tmpchange(void)  //DS18B20 begin change
  99. {
  100.   dsreset();
  101.   delay();
  102.   tmpwritebyte(0xcc);  // address all drivers on bus
  103.   tmpwritebyte(0x44);  //  initiates a single temperature conversion
  104. }

  105. uint tmp()               //get the temperature
  106. {
  107.   float tt;
  108.   uchar a,b;
  109.   dsreset();
  110.   delay();
  111.   tmpwritebyte(0xcc);
  112.   tmpwritebyte(0xbe);
  113.   a=tmpread();
  114.   b=tmpread();
  115.   temp=b;
  116.   temp<<=8;             //two byte  compose a int variable
  117.   temp=temp|a;
  118.   tt=temp*0.0625;
  119.   temp=tt*10+0.5;
  120.   return temp;
  121. }


  122. void main()
  123. {
  124.         inte();
  125.          TI=1;
  126. while(1)
  127.   {
  128.     tmpchange();
  129.         for(a=10;a>0;a--)
  130.           {   
  131.                   temp=tmp();
  132.                 printf("%D\n",temp);
  133.           }
  134.   }
  135. }
  136. void ser() interrupt 4                                           //串口中斷程序
  137. {       
  138.                 if(RI==1)
  139.                 {
  140.                   RI=0;       
  141.                 }
  142.                 if(TI==1)
  143.                 {
  144.                         TI=0;
  145.                 }
  146. }
復(fù)制代碼

所有資料51hei提供下載:
程序合集 (完成版).zip (2.57 MB, 下載次數(shù): 121)


評分

參與人數(shù) 2黑幣 +55 收起 理由
mashuiyou + 5 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:585455 發(fā)表于 2019-7-26 19:29 | 顯示全部樓層
感謝無私分享
回復(fù)

使用道具 舉報

ID:280466 發(fā)表于 2021-2-9 14:30 | 顯示全部樓層
沒有app源碼發(fā)來做啥呢小朋友
回復(fù)

使用道具 舉報

ID:372579 發(fā)表于 2021-2-12 17:57 來自觸屏版 | 顯示全部樓層
這個是不是自己做無線溫度顯示?
回復(fù)

使用道具 舉報

ID:849826 發(fā)表于 2021-2-13 09:07 | 顯示全部樓層
有沒有16路遠(yuǎn)程遙控開關(guān)程序,局域網(wǎng)的做過,遠(yuǎn)程的不會
回復(fù)

使用道具 舉報

ID:648281 發(fā)表于 2021-2-13 11:04 | 顯示全部樓層
6313 發(fā)表于 2021-2-13 09:07
有沒有16路遠(yuǎn)程遙控開關(guān)程序,局域網(wǎng)的做過,遠(yuǎn)程的不會

遠(yuǎn)程的遙控開關(guān),高級點的可以采用云控制,簡單點的采用端口映射
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表