如何將單片機(jī)溫度傳感器采集到的數(shù)據(jù)通過無線傳給pc
-
voiddelay_2us(unsignedchart){while(--t);}/*mS延時(shí)函數(shù),晶振12M*/voiddelay_ms(unsignedchart){while(t--){delay_2us(245);delay_2us(245);}}/*18b20初始化*/bitDS18B20_init(){bi... void delay_2us(unsigned char t) {
while(--t);
} /*mS延時(shí)函數(shù),晶振12M*/ void delay_ms(unsigned char t) { while(t--) { delay_2us(245); delay_2us(245); } } /*18b20初始化*/ bit DS18B20_init() { bit dat=0; DQ = 1; //DQ復(fù)位 delay_2us(5); //稍做延時(shí) DQ = 0; //單片機(jī)將DQ拉低 delay_2us(200); //精確延時(shí) 大于 480us 小于960us delay_2us(200); DQ = 1; //拉高總線 delay_2us(50); //15~60us 后 接收60-240us的存在脈沖 dat=DQ; //如果x=0則初始化成功, x=1則初始化失敗 delay_2us(25); //稍作延時(shí)返回 return dat; } /*讀取一個(gè)字節(jié)*/ unsigned char DS18B20_read_byte() { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; // 給脈沖信號(hào) dat >>= 1; DQ = 1; // 給脈沖信號(hào) if(DQ) dat |= 0x80; delay_2us(25); } return dat; } /*寫入一個(gè)字節(jié)*/ void DS18B20_write_byte(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat & 0x01; delay_2us(25); DQ = 1; dat >>= 1; } delay_2us(25); } /*讀取溫度*/ unsigned int DS18B20_read_temp() { unsigned char a=0; unsigned int b=0; while(DS18B20_init()==1); DS18B20_write_byte(0xCC); // 跳過讀序號(hào)列號(hào)的操作 DS18B20_write_byte(0x44); // 啟動(dòng)溫度轉(zhuǎn)換 delay_ms(10); while(DS18B20_init()==1); DS18B20_write_byte(0xCC); //跳過讀序號(hào)列號(hào)的操作 DS18B20_write_byte(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度 a=DS18B20_read_byte(); //低位 b=DS18B20_read_byte(); //高位 return (b << 8) + a; } 程序?qū)懙竭@里,如何將這個(gè)數(shù)據(jù)傳回pc端,通過無線傳輸?shù)姆绞?,還有電腦端如何將接收的數(shù)據(jù)轉(zhuǎn)換成正確的溫度顯示出來,可以加q聯(lián)系,321266619 展開
全部評論(3條)
-
- caisi219 2013-10-27 00:00:00
- 距離十五米內(nèi)Z簡單的就是用RF2401之類的無線數(shù)傳模塊,電腦端用一個(gè)同樣的模塊接收并輸出數(shù)據(jù)至電腦串口,用Vb獲得數(shù)據(jù)并顯示溫度。距離遠(yuǎn)點(diǎn)的話可用Gsm模塊。
-
贊(17)
回復(fù)(0)
-
- 航錐臘媒頓么 2013-10-28 00:00:00
- FC-211AP模塊,串口輸出直接連接電腦。單片機(jī)端也用這模塊,實(shí)現(xiàn)透明傳輸。
-
贊(19)
回復(fù)(0)
-
- 后來Live77 2018-05-17 00:00:00
- RF24L01有增強(qiáng)版的模塊,傳輸距離據(jù)說可達(dá)2Km,其51驅(qū)動(dòng)網(wǎng)上一大把,過程大概是這樣:把讀取的溫度16進(jìn)制數(shù)存到一個(gè)寄存器,把這個(gè)寄存器的內(nèi)容發(fā)送給RF24L01,啟動(dòng)發(fā)送。電腦端也要搞一個(gè)單片機(jī),驅(qū)動(dòng)24L01,當(dāng)收到信號(hào),會(huì)產(chǎn)生中斷,單片機(jī)把數(shù)據(jù)讀出來,通過串口傳給PC即可(推薦使用usb轉(zhuǎn)串口的小板子,就幾塊錢,使用很方便,不需要給板子加max232了)。PC串口收到數(shù)據(jù),在串口助手中勾選16進(jìn)制顯示,就是16進(jìn)制的溫度了,或者單片機(jī)把16進(jìn)制的溫度轉(zhuǎn)化成字符串形式發(fā)到PC,這樣串口助手不用勾選16進(jìn)制顯示,直接就能顯示成溫度。
-
贊(20)
回復(fù)(0)
登錄或新用戶注冊
- 微信登錄
- 密碼登錄
- 短信登錄
請用手機(jī)微信掃描下方二維碼
快速登錄或注冊新賬號(hào)
微信掃碼,手機(jī)電腦聯(lián)動(dòng)
熱門問答
- 如何將單片機(jī)溫度傳感器采集到的數(shù)據(jù)通過無線傳給pc
- voiddelay_2us(unsignedchart){while(--t);}/*mS延時(shí)函數(shù),晶振12M*/voiddelay_ms(unsignedchart){while(t--){delay_2us(245);delay_2us(245);}}/*18b20初始化*/bitDS18B20_init(){bi... void delay_2us(unsigned char t) {
while(--t);
} /*mS延時(shí)函數(shù),晶振12M*/ void delay_ms(unsigned char t) { while(t--) { delay_2us(245); delay_2us(245); } } /*18b20初始化*/ bit DS18B20_init() { bit dat=0; DQ = 1; //DQ復(fù)位 delay_2us(5); //稍做延時(shí) DQ = 0; //單片機(jī)將DQ拉低 delay_2us(200); //精確延時(shí) 大于 480us 小于960us delay_2us(200); DQ = 1; //拉高總線 delay_2us(50); //15~60us 后 接收60-240us的存在脈沖 dat=DQ; //如果x=0則初始化成功, x=1則初始化失敗 delay_2us(25); //稍作延時(shí)返回 return dat; } /*讀取一個(gè)字節(jié)*/ unsigned char DS18B20_read_byte() { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; // 給脈沖信號(hào) dat >>= 1; DQ = 1; // 給脈沖信號(hào) if(DQ) dat |= 0x80; delay_2us(25); } return dat; } /*寫入一個(gè)字節(jié)*/ void DS18B20_write_byte(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat & 0x01; delay_2us(25); DQ = 1; dat >>= 1; } delay_2us(25); } /*讀取溫度*/ unsigned int DS18B20_read_temp() { unsigned char a=0; unsigned int b=0; while(DS18B20_init()==1); DS18B20_write_byte(0xCC); // 跳過讀序號(hào)列號(hào)的操作 DS18B20_write_byte(0x44); // 啟動(dòng)溫度轉(zhuǎn)換 delay_ms(10); while(DS18B20_init()==1); DS18B20_write_byte(0xCC); //跳過讀序號(hào)列號(hào)的操作 DS18B20_write_byte(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度 a=DS18B20_read_byte(); //低位 b=DS18B20_read_byte(); //高位 return (b << 8) + a; } 程序?qū)懙竭@里,如何將這個(gè)數(shù)據(jù)傳回pc端,通過無線傳輸?shù)姆绞?,還有電腦端如何將接收的數(shù)據(jù)轉(zhuǎn)換成正確的溫度顯示出來,可以加q聯(lián)系,321266619 展開
- DHT11溫濕度傳感器怎么把采集到的溫濕度數(shù)據(jù)傳給單片機(jī)STC89C52
- 霍爾傳感器如何將速度轉(zhuǎn)換成數(shù)據(jù)傳給PLC處理
- 桶邊均勻分布著四個(gè)磁鋼?;魻杺鞲衅鱽頊y速,開頭程序是這樣的。傳感器一開始得到的數(shù)據(jù)是什么形式的?存在D100??DDIV那段的意思是 D1,D0除以100然后把數(shù)據(jù)存在D11,D10嗎?為什么要用雙字??
- 如何將labview中的信號(hào)通過mydaq傳給硬件電路
- 溫度傳感器如何將數(shù)據(jù)傳送給PLC
- SSI數(shù)據(jù)用單片機(jī)怎么采集?
- 單片機(jī)如何接收數(shù)據(jù)采集模塊傳過來的數(shù)據(jù)并把數(shù)據(jù)傳給GPRS模塊
- 要實(shí)現(xiàn)這些功能需要編寫哪些程序,有沒有高手知道怎么做,望點(diǎn)撥一二.單片機(jī)用的是STC12C60S2,GPRS模塊用的是SIM300,數(shù)據(jù)采集模塊用的是EDA9033。郵箱:ztbiyesheji@126.com... 要實(shí)現(xiàn)這些功能需要編寫哪些程序,有沒有高手知道怎么做,望點(diǎn)撥一二.單片機(jī)用的是STC12C60S2,GPRS模塊用的是SIM300,數(shù)據(jù)采集模塊用的是EDA9033。郵箱:ztbiyesheji@126.com 展開
- 溫度傳感器采集的數(shù)據(jù)怎么發(fā)給遠(yuǎn)程終端?
- 順便告我下設(shè)計(jì)思路,選用的溫度傳感器的型號(hào),發(fā)射端的設(shè)計(jì),終端的設(shè)計(jì)。謝謝... 順便告我下設(shè)計(jì)思路,選用的溫度傳感器的型號(hào),發(fā)射端的設(shè)計(jì),終端的設(shè)計(jì)。謝謝 展開
- DHT11溫濕度傳感器如何把溫濕度數(shù)據(jù)傳給單片機(jī)STC89C52
- STM32的內(nèi)部溫度傳感器通過哪個(gè)AD采集
- 如何將激光雷達(dá)的數(shù)據(jù)通過數(shù)傳模塊傳輸?shù)絇C端的ros系統(tǒng)中進(jìn)行slam
- 如何將激光雷達(dá)的數(shù)據(jù)通過數(shù)傳模塊傳輸?shù)絇C端的ros系統(tǒng)中進(jìn)行slam
- 如何將激光雷達(dá)的數(shù)據(jù)通過數(shù)傳模塊傳輸?shù)絇C端的ros系統(tǒng)中進(jìn)行slam
- 加速度傳感器的數(shù)據(jù)怎樣傳給電腦
- 如何將傳感器采集的數(shù)據(jù)上傳到web服務(wù)器中
- PC如何上傳數(shù)據(jù)到 DCS上位機(jī)?
- PC連接了設(shè)備,獲取了設(shè)備反饋的信息,但同時(shí)其中部分信息要反饋給DCS上位機(jī),如何在PC上把數(shù)據(jù)通過MODBUS協(xié)議發(fā)送給DCS上位機(jī)????
- 水位傳感器采集的數(shù)據(jù)信息如何傳到單片機(jī)
- 數(shù)據(jù)采集器如何采集傳感器的數(shù)據(jù)?通過什么方式?
- 火車頭采集器采集到一半的數(shù)據(jù)怎么發(fā)布?
- RT,采集到一半的時(shí)候因?yàn)槟承┰蜃詣?dòng)停止查詢了,點(diǎn)擊暫停再運(yùn)行也沒用。請問這種情況下怎么把已經(jīng)采集到的數(shù)據(jù)發(fā)布出來?... RT,采集到一半的時(shí)候因?yàn)槟承┰蜃詣?dòng)停止查詢了,點(diǎn)擊暫停再運(yùn)行也沒用。請問這種情況下怎么把已經(jīng)采集到的數(shù)據(jù)發(fā)布出來? 展開
- 如何采用matlab對單片機(jī)采集的數(shù)據(jù)進(jìn)行頻譜分析?
- 我用單片機(jī)采集到電動(dòng)機(jī)的振動(dòng)信號(hào),并通過ad轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào)。但是,這些數(shù)字信號(hào)如何移植到matlab中,進(jìn)行頻譜分析?
4月突出貢獻(xiàn)榜
推薦主頁
最新話題





參與評論
登錄后參與評論