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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9060|回復: 11
打印 上一主題 下一主題
收起左側

51單片機通過esp8266和溫度傳感器將溫度顯示到手機上

  [復制鏈接]
跳轉到指定樓層
樓主
需要的硬件:51單片機,ESP8266(wifi模塊),DS18b20(溫度傳感器)
需要的軟件:
手機要下載一個網絡調試助手,瀏覽器就有。
      

部分代碼:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DQ=P2^4;
sbit k1=P1^0;
sbit fmq=P1^4;
char receiveTable[20]="";
char aa[1]="";
uint temp,shi,ge,a,i,flag;
void delay(uint i)                //5us
{
        do
        {
                _nop_();             
                _nop_();
                _nop_();
                i--;
        }
        while(i);       
}
void delay1(uint z)                 //1ms
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

void sendChar(uchar a)                                 //單片機發送一個字節
{
        SBUF = a;
        while(TI==0);
        TI=0;       
}

void sendString(uchar *s)                        //發送一個字符串
{
        while(*s!='\0')
        {
                sendChar(*s);
                s++;
        }
               
}
void init()
{
        /*串口中斷定時器初始化*/
        TMOD=0x20;                                                        //定時器1工作在方式2  
        TH1=0xfd;                                                        //波特率為9600,精振為11.0592MHz
        TL1=0xfd;
        REN=1;                                                                //啟動串行口接收數據
        SM0=0;                                                                //串口工作在方式1
        SM1=1;                                                                //串行口工作方式選擇
        EA=1;                                                                //打開總中斷
        TR1=1;                                                                //打開定時器中斷
        /*esp8266初始化*/
    delay1(100);//延時
        sendString("AT+CWMODE=2\r\n");            //設置ESP8266工作在station模式
        delay1(100);       
//        sendString("AT+CIOBAUD=9600\r\n");        //設置9600波特率,因為esp8266波特率默認是115200
//        delay1(10);       
        sendString("AT+CIPMUX=1\r\n");                  //允許多連接
        delay1(100);
        sendString("AT+CIPSERVER=1,8080\r\n"); //設置端口號
        delay1(100);
        ES=1;                                          //開串口中斷
}

void DS()        //初始化
{
        uchar x=0;
        DQ=1;                  //首先先拉高電平,為復位做準備
        delay(10);          //延遲一下
        DQ=0;                  //將電平拉低,延遲至少480us
        delay(120);          //一次為5us,此處延遲600us,足以等待存在脈沖
        DQ=1;                  //復位信號給出后,將電平拉高,等待獲取存在脈沖
        delay(16);          //延遲15~60us,此處延遲90us,足以給存在脈沖時間
        x=DQ;                  //讀取存在脈沖
        delay(80);          //讀取存在脈沖,存在脈沖至少為60us到240us的低電平信號,這里給出400us
        DQ=1;                 
}
uchar Read1b()    //讀取1個字節
{
        uchar i=0;
        uchar dat=0;
        for(i=0;i<8;i++)
        {
                DQ=0;                 //數據線拉成低電平,表示讀數據的開始
                delay(1);                 //讀數據時,需要低電平保持至少1us
                DQ=1;                         //釋放數據總線
                dat>>=1;                 //一位一位的保存讀取到的數據,所以需要移位處理
                if(DQ)                         //讀取數據的高電平
                dat|=0x80;                 //與操作一下,得到我們需要的數據,讀取數據需要在15us內讀取,這樣才能保證讀取的數據是正確的
                delay(11);
        }
        return(dat);
}
void Write1b(uchar dat)
{
        uchar i=0;
        for(i=0;i<8;i++)
        {
                DQ=0;
                _nop_();
                DQ=dat&0x01;
                delay(12);
                DQ=1;
                dat>>=1;
                delay(5);       
        }                                                  
}                                  
uint Get()
{
        uchar templ,temph,tt;
        uint t;
        DS();                                   //初始化
        Write1b(0XCC);           //因為我們是一個單片機和一個DS18B20連接,故在對ROM指令操作時,選擇0xCC跳過ROM指令,不對ROM編碼作出反應
        Write1b(0x44);           //RAM操作中的溫度轉換指令,將轉換的溫度存入RAM的1,2地址
        DS();                                   //初始化
        Write1b(0xcc);           //同上
        Write1b(0xbe);           //從RAM中讀取數據,從0地址讀到9地址
        templ=Read1b();           //從DS18B20中讀取溫度數據中低八位
        temph=Read1b();           //從DS18B20中讀取溫度數據中的高八位,溫度數據由16位數據組成
        t=temph;
        t<<=8;
        t=t|templ;
        tt=t*0.0625;                   /*真實溫度的轉換*/
        return(tt);               
}
void show(uint wd)
{
        aa[0]=wd/10+'0';          
        aa[1]=wd%10+'0';
}
void main()
{       

        init();
        while(1)
        {
                show(Get())        ;
        }
}
手機顯示溫度.zip (1.92 KB, 下載次數: 201)






評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:337280 發表于 2019-7-30 11:20 | 只看該作者
先收藏一下,以后能用到。樓主會不會那種手機上弄個APP的。
回復

使用道具 舉報

板凳
ID:545795 發表于 2019-7-30 15:07 | 只看該作者
弓長張 發表于 2019-7-30 11:20
先收藏一下,以后能用到。樓主會不會那種手機上弄個APP的。

我的同學做出來了,但我不會。
回復

使用道具 舉報

地板
ID:545795 發表于 2019-8-3 10:47 | 只看該作者
啦啦啦屁屁怪 發表于 2019-8-2 14:51
好想參考參考,沒什么思路

可以先學習一下串口通信。
回復

使用道具 舉報

5#
ID:666656 發表于 2019-12-17 23:25 來自觸屏版 | 只看該作者
收藏了,學習下怎么配esp8266
回復

使用道具 舉報

6#
ID:233456 發表于 2019-12-18 19:24 來自觸屏版 | 只看該作者
為啥我在電腦上測試就可以連接手機,一安到單片機上就不行了呀
回復

使用道具 舉報

7#
ID:65956 發表于 2019-12-19 18:02 | 只看該作者
下載學習了,謝謝分享
回復

使用道具 舉報

8#
ID:617305 發表于 2019-12-20 10:04 | 只看該作者
收藏學習,下次驗證
回復

使用道具 舉報

9#
ID:718334 發表于 2020-4-26 19:34 來自觸屏版 | 只看該作者
y曉風殘月 發表于 2019-12-18 19:24
為啥我在電腦上測試就可以連接手機,一安到單片機上就不行了呀

你好 請問這個你解決了嗎 我現在也碰到這個問題
回復

使用道具 舉報

10#
ID:459794 發表于 2020-5-7 23:24 | 只看該作者
東宮承鄞 發表于 2020-4-26 19:34
你好 請問這個你解決了嗎 我現在也碰到這個問題

是說用TTL轉串口可以單片機不可以的意思嗎?單片機的話需要代碼噠
回復

使用道具 舉報

11#
ID:459794 發表于 2020-5-8 14:46 | 只看該作者
sendString("AT+CWMODE=2\r\n");
注釋錯了,2應該是AP模式
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产婷婷国产香蕉 | 欧美亚洲综合久久 | 九九国产在线观看 | 操人视频在线观看 | 精品国产99 | 狠狠综合久久av一区二区小说 | av片网 | 久久午夜精品福利一区二区 | 青青草网站在线观看 | 中文字幕一区二区三区四区五区 | 91久久精品国产91久久 | 伦理片97 | 天天插天天操 | 精品欧美一区二区三区久久久 | 亚洲视频在线看 | 久久性色 | 91精品久久久久久久久久入口 | 在线视频亚洲 | 国产精品夜夜夜一区二区三区尤 | 国产99久久| 伊人免费视频二 | 视频一区二区中文字幕 | 91社区在线观看 | 91av久久久 | 国产成人99 | 四虎永久免费影院 | 夜夜爽99久久国产综合精品女不卡 | 欧美日日 | 91青娱乐在线 | 一区二区亚洲 | 涩涩视频大全 | 成人午夜影院 | 高清一区二区三区 | 欧美成人一区二免费视频软件 | 天天草天天干天天 | 亚洲日本乱码在线观看 | 欧洲免费毛片 | 妞干网福利视频 | 亚洲精品久久久久久一区二区 | 国产精品无码专区在线观看 | 国产精品一区二区av |