欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7947|回復: 3
打印 上一主題 下一主題
收起左側(cè)

Zigbee DHT11溫濕度組網(wǎng)采集源程序-很詳細(適合新手)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:235017 發(fā)表于 2020-4-26 22:06 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
第一次在51黑電子論壇發(fā)帖,內(nèi)心有點小激動,各位前輩多多指教。

溫濕度傳感器 DHT11
1.實驗內(nèi)容
1)掌握溫濕度傳感器使用
2)掌握點對點通訊
3)掌握 DHT11 移植方法
2.實現(xiàn)現(xiàn)象
終端獲得 DH T11 傳感器的數(shù)據(jù),無線傳輸給協(xié)調(diào)器;協(xié)調(diào)器再通過串口發(fā)給電腦串口調(diào)試
助手顯示。協(xié)調(diào)器、終端通過串口輸出,LCD 也同步刷新。
3.實驗詳解
由于此實驗和 DS18B20 共用一個 IO 口,所以移植起來更加容易。DHT11 帶溫度、濕度檢
測,而 DS18B20 則只帶溫度檢測,不過精度相對要高點,一般應用只會選其中一種而已。程序
大部分相同,本實驗中只講不同部分。
打開《3.高級篇-zigbee 協(xié)議棧應用與組網(wǎng)\7.溫濕度傳感器 DHT11\ZStack-CC2530-2.3.0-
1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB\SampleApp.eww》 工程。
1)我們將基礎(chǔ)實驗里面的 DHT11.c 和 DHT11.h 文件復制到 SampleApp\Source 文件夾下。
2)在協(xié)議棧的 APP 目錄樹下點擊右鍵--Add--添加 DHT11.c 和 DHT11.h 文件。并在
SampleApp.c 文件中包含 DHT11.h 頭文件。
3)初始化傳感器引腳,和 ds18b20 共用一個 GPIO
4)讀取溫度數(shù)據(jù),這個是重點,其它基本都相同,只要看懂此段代碼即可會使用 DH11 了.

void SampleApp_Send_P2P_Message( void )
{
byte i, temp[3], humidity[3], strTemp[7];
DHT11(); //獲取溫濕度
//將溫濕度的轉(zhuǎn)換成字符串,供 LCD 顯示
temp[0] = wendu_shi+0x30;
temp[1] = wendu_ge+0x30;
temp[2] = '\0';
humidity[0] = shidu_shi+0x30;
humidity[1] = shidu_ge+0x30;
humidity[2] = '\0';
//將數(shù)據(jù)整合后方便發(fā)給協(xié)調(diào)器顯示
osal_memcpy(strTemp, temp, 2);
osal_memcpy(&strTemp[2], " ", 2);
osal_memcpy(&strTemp[4], humidity, 3);
//獲得的溫濕度通過串口輸出到電腦顯示
HalUARTWrite(0, "T&H:", 4);
HalUARTWrite(0, strTemp, 6);
HalUARTWrite(0, "\n",1);
//輸出到 LCD 顯示
for(i=0; i<3; i++) //輸出溫度、濕度提示字符
{
if(i==0)
{
LCD_P16x16Ch(i*16,4,i*16);
LCD_P16x16Ch(i*16,6,(i+3)*16);
}
else
{
LCD_P16x16Ch(i*16,4,i*16);
LCD_P16x16Ch(i*16,6,i*16);
}
}
LCD_P8x16Str(44, 4, temp); //LCD 顯示溫度值
LCD_P8x16Str(44, 6, humidity); //LCD 顯示濕度值
if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_P2P_CLUSTERID,6,strTemp,&SampleApp_TransID,AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
}
else
{
// Error occurred in request to send.
}
}
5)接收數(shù)據(jù)
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
uint16 flashTime;
switch ( pkt->clusterId )
{
case SAMPLEAPP_P2P_CLUSTERID:
HalUARTWrite(0, "T&H:", 4); //提示接收到數(shù)據(jù)
HalUARTWrite(0, pkt->cm d.Data, pkt->cmd.DataLength); //輸出接收到的數(shù)據(jù)
HalUARTWrite(0, "\n", 1); // 回車換行
break;
case SAMPLEAPP_PERIODIC_CLUSTERID:
break;
case SAMPLEAPP_FLASH_CLUSTERID:
flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
break;
}
}

6)DH11.c 文件還需要修改一個地方。打開文件將原來的延時函數(shù)改成協(xié)議棧自帶的延時函數(shù),
保證時序的正確。同時要包含#include"OnBoard.h"。
4.實驗步驟
1)選擇 CoodinatorEB-Pro, 下載到開發(fā)板 A;作為協(xié)調(diào)器,通過 USB 線跟電腦連接.
2)選擇 EndDeviceEB-Pro, 下載到開發(fā)板 B;作為終端設(shè)備無線發(fā)送數(shù)據(jù)給協(xié)調(diào)器,也通過 USB
線跟電腦連接.
3)給兩塊開發(fā)板上電,打開串口調(diào)試助手,設(shè)為:9600 8N1 并打開串口,串口請選擇自己的端
口號。終端連網(wǎng)成功后會向協(xié)調(diào)器發(fā)數(shù)據(jù),實驗結(jié)果如下圖所示。5.實驗結(jié)果左邊是終端 右邊是協(xié)調(diào)器 ,終端采集溫度,通過 ZigBee 發(fā)送到協(xié)調(diào)器,協(xié)調(diào)器經(jīng)過串口,
將數(shù)據(jù)發(fā)到電腦

好啦,完成了。雖然是搬磚,但是也是有水平的搬磚的。

全部資料51hei下載地址:
溫濕度傳感器DHT11.7z (1.87 MB, 下載次數(shù): 115)

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:235017 發(fā)表于 2020-4-26 22:07 | 只看該作者
占個樓
回復

使用道具 舉報

板凳
ID:738997 發(fā)表于 2020-4-28 16:14 來自觸屏版 | 只看該作者
有那種通過藍牙或者wifi在手機上顯示溫濕度的嗎?
回復

使用道具 舉報

地板
ID:630997 發(fā)表于 2021-3-29 23:38 | 只看該作者
確實可以,對我理解ZigBee很有幫助
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表