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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7352|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩不卡三区 | 久久久999国产精品 中文字幕在线精品 | 精品欧美二区 | 日韩欧美三区 | 久久久精彩视频 | 九九国产在线观看 | 国产三级在线观看播放 | 日韩手机视频 | 精品久久久久香蕉网 | 久久久久久久久久久久久9999 | 男女视频免费 | 日韩精品一区二区三区中文在线 | 亚洲九九精品 | 国产偷久久一级精品60部 | 精品在线观看一区 | 久久久青草婷婷精品综合日韩 | 日日天天 | 免费一区 | av免费网站在线观看 | 欧美福利 | 一区二区三区小视频 | 色伊人久久 | 欧美日韩国产一区二区三区 | 91免费高清 | 免费毛片www com cn| av网址在线 | 国产一区二区三区高清 | 美女视频一区二区三区 | 99久久国产综合精品麻豆 | 日韩在线中文 | 五月天综合网 | 狠狠躁18三区二区一区 | 九九热精品在线视频 | 三级在线视频 | 电影91久久久 | 日韩成人免费视频 | 精品亚洲一区二区三区四区五区高 | 精品一区在线看 | 国产日韩久久久久69影院 | 久久国产欧美日韩精品 | 99久久婷婷国产综合精品电影 |