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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
第一次在51黑電子論壇發帖,內心有點小激動,各位前輩多多指教。

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

void SampleApp_Send_P2P_Message( void )
{
byte i, temp[3], humidity[3], strTemp[7];
DHT11(); //獲取溫濕度
//將溫濕度的轉換成字符串,供 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';
//將數據整合后方便發給協調器顯示
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)接收數據
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
uint16 flashTime;
switch ( pkt->clusterId )
{
case SAMPLEAPP_P2P_CLUSTERID:
HalUARTWrite(0, "T&H:", 4); //提示接收到數據
HalUARTWrite(0, pkt->cm d.Data, pkt->cmd.DataLength); //輸出接收到的數據
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 文件還需要修改一個地方。打開文件將原來的延時函數改成協議棧自帶的延時函數,
保證時序的正確。同時要包含#include"OnBoard.h"。
4.實驗步驟
1)選擇 CoodinatorEB-Pro, 下載到開發板 A;作為協調器,通過 USB 線跟電腦連接.
2)選擇 EndDeviceEB-Pro, 下載到開發板 B;作為終端設備無線發送數據給協調器,也通過 USB
線跟電腦連接.
3)給兩塊開發板上電,打開串口調試助手,設為:9600 8N1 并打開串口,串口請選擇自己的端
口號。終端連網成功后會向協調器發數據,實驗結果如下圖所示。5.實驗結果左邊是終端 右邊是協調器 ,終端采集溫度,通過 ZigBee 發送到協調器,協調器經過串口,
將數據發到電腦

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

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

評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97国产一区二区 | 成人精品久久久 | aaaa网站 | 日韩av成人在线 | 精品久久久久久久 | 久久新视频| 视频二区 | 欧美精品一区二区三区在线播放 | 日韩精品一区二区三区在线播放 | 一区视频| 成人免费大片黄在线播放 | 人人射人人| 色眯眯视频在线观看 | 亚洲少妇综合网 | 丁香久久 | 欧美一区二区三区 | 久久男女视频 | 欧美亚洲高清 | 日本精品久久 | 国产精品伦一区二区三级视频 | 久久久久久久久久久久久久久久久久久久 | 欧美日韩最新 | 国产成人免费视频 | 一区二区在线 | 久久99精品久久久水蜜桃 | 国产亚洲第一页 | 日韩在线播放一区 | 欧美极品在线视频 | www.日日操| 麻豆精品国产91久久久久久 | 久久精品97 | 欧美日韩电影免费观看 | 国产99精品 | 成人影院午夜 | 91亚洲国产成人精品一区二三 | 99精品热视频 | 一级片成人 | 欧美三级成人理伦 | 99久久久无码国产精品 | 国产综合av | 国产精品99久久久久久久久久久久 |