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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

zigbee CC2530四軸飛行器實驗指導書

[復制鏈接]
跳轉到指定樓層
樓主
ID:722111 發表于 2020-4-5 19:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

實驗內容:

zigbee終端節點采集溫濕度、光敏數據,通過zigbee無線通道傳輸給協調器節點,協調器接收到數據后,一方面通過串口在PC機上顯示,另一方面通過藍牙模塊發送給手機端顯示。


本項目需要完成的主要工作如下:

  • 完成藍牙模塊的設置;
  • 測試廠商提供的溫濕度傳感器例程,并將項目中從P07引腳采集信號,改為從P06引腳采集;
  • 測試廠商提供的光敏傳感器例程,并添加藍牙模塊,實現手機藍牙串口助手APP通過藍牙獲取zigbee板上傳的數據;
  • 將溫濕度、光敏傳感器的采集例程合并到“實驗4zigbee無線數據傳輸”的項目中,以最終實現zigbee終端節點獲取傳感器數據,通過zigbee協議棧無線發送到協調器,協調器通過串口上傳給PC側的串口助手,同時通過藍牙模塊,上傳給手機上的藍牙串口助手APP

提供的硬件設備:

每個盒子包括:zigbee板2個,CCdebuger1個,藍牙模塊1個,USB-TTL模塊1個,溫濕度傳感器1個,光敏傳感器1個,miniUSB線2根,D口USB線1根, 配套杜邦線

所需的文件:

名稱

說明

開發環境IAR EW8051-8.1帶注冊工具

IAR開發環境

Texas Instruments one.rar

CC2530 Z-Stack源碼及測試程序,老師提供

gec-Zigbee-ccdebug仿真器驅動

CC DEBUGER的驅動,老師提供

CC DEBUGGER在win7 win10下的安裝方法.rar

CC DEBUGER在64bit win7/10下的驅動,老師提供

CH341SER

Usb轉串口驅動,老師提供

UartAssist.exe

串口助手,老師提供

手機藍牙助手

自行下載

DHT11.rar

溫度傳感器測試項目,老師提供

LightSensor_P07.rar

光敏傳感器測試項目,老師提供

本文件

實驗指導書



  • 環境搭建

本次實驗需要安裝IAR集成開發環境、CCDebuger仿真器驅動、通過USB-TTL模塊設置藍牙模塊波特率、安裝手機藍牙助手

1.1 安裝IAR集成開發環境,安裝CCdebuger的驅動

請按照之前實驗的步驟安裝IAR開發環境、CCdebuger仿真器驅動。


1.2 安裝手機藍牙APP

自行從網上下載、安裝。藍牙助手有很多版本,設置及使用方法都基本相同。


1.3 藍牙模塊設置:

藍牙模塊與USB-TTL接口模塊的接線如下表:

藍牙模塊

USB-TTL接口模塊

Rx

Rx

Tx

Tx

Vcc

5v(由miniUSB供電,JTAG不提供5v)

GND

GND

En/State懸空



用杜邦線按上表引腳對應關系,連接藍牙模塊和USB-TTL模塊,然后將USB-TTL模塊插入PC機USB接口,如下圖,在“計算機管理”窗口可看到多出一個USB轉串口的設備(本圖為串口5,COM5,每個usb口對應的串口不一樣)。


需要進入AT指令模式來設置藍牙模塊波特率、模塊名(以免混淆)


AT模式波特率為38400,正常通信時波特率為9600

每條AT指令輸入完成后,都必須按一下回車鍵,再點擊串口助手上的發送按鈕,才可發送

LED必須進入慢閃模式后方可進行AT指令測試

先按住HC05藍牙模塊上面的按鍵(復位鍵),再將USB-TTL模塊插上PC機,等藍牙模塊上面的LED進入慢閃模式后(約1秒鐘閃爍一次),即可進行AT命令測試:

在串口助手的左側窗口

1:選擇串口號、波特率(AT模式波特率為38400,缺省的正常通信模式下波特率為9600

2:在命令發送區,輸入at(大小寫都可以),然后回車,再用鼠標點擊“發送”按鈕,即可在接收區看到返回“OK”,表示串口調試助手與藍牙間連接成功


測試連接成功后,在發送區輸入命令(大小寫不敏感):


命令

接收區顯示

說明

1

AT+UART

+UART:9600,0,0

OK

查看藍牙模塊當前的波特率配置

2

at+uart=115200,0,0

OK

設置藍牙模塊使用時的波特率為115200,停止位為1位,校驗位為none

3

at+name=fengb

沒有顯示

設置藍牙模塊的名字為fengb(建議設置為自己的名字拼音,免得相互沖突)


設置完成后,拔下USB-TTL模塊,再插回PC機,相當于重啟藍牙模塊。此時,藍牙模塊上的狀態燈處于快速閃爍狀態。打開手機藍牙,搜索附近可用設備,點擊連接,即可看到該設備的名字(如剛才設置的為fengb),配對的pin碼為:1234

輸入后,即可實現手機藍牙與藍牙模塊的連接。


  • Zigbee終端節點采集溫濕度、光敏數據

本步驟提供終端節點分別單獨采集溫濕度傳感器、光敏傳感器的項目,用以熟悉采集程序的代碼,并確認藍牙模塊、串口助手、手機藍牙助手APP可正確使用。


Zigbee終端節點采集溫濕度項目,改為P06引腳,可測試溫濕度傳感器、串口助手。





    • 修改溫濕度傳感器通信端口,采集溫濕度+串口助手

本項目采用粵嵌傳感器測試代碼,但由于廠商提供的溫濕度傳感器、光敏傳感器都占用了P07引腳,因此,需要將原項目中溫濕度傳感器從P07引腳的數據輸入,改為P06引腳的輸入。

將老師提供的源碼解壓到D盤(注意路徑上不要有中文,否則IAR會閃退)。

項目關鍵代碼分析如下

DHT11_Read_Data(buf)讀取5個字節40bits的溫濕度數據到buf數組中(具體原理可參見《ZigBee 開發實驗指導書》第六章 溫濕度實驗),其中:

buf[0]=8bit 濕度整數數據,buf[1]=8bit 濕度小數數據,

buf[2]= 8bit溫度整數數據,buf[3]=8bit 溫度小數數據。

然后調用hexToAscall()函數將buf中的數據按字節轉換為了ASCII碼,并與說明信息一起拼接進rus字符串,最后調用uartSendString()函數打印到串口輸出。


請仔細學習《ZigBee 開發實驗指導書》第三章LED實驗、第六章溫濕度實驗,找到修改、配置溫濕度傳感器IO控制器的方法。并按以下內容修改項目。


打開文件dht11.h,將引腳定義由P07改為P06:


打開文件dht11.c,將P0端口寄存器進行對應的設置:

保存并編譯,通過后,連接硬件,下載代碼。

  • CCdebuger下載代碼
  • miniUSB接口線,連接PC機和zigbee開發板
  • DTH11傳感器連入zigbee開發板P06端口。該端口有3個引腳,VCCGNDP06。其中VCC連接DTHVCCGND連接DTHGNDP06連接DTHDATA.
DTH11的引腳說明:
Pin
名稱
注釋
1
VCC
供電3-5.5V
2
DATA
單總線,串行數據
3
NC
懸空
4
GND
接地


注意:

串口號為從“設備管理器”中查到的USB轉串口的串口號

波特率為115200

有可能有個別溫濕度傳感器已被燒掉,請在給測試系統上電后,用手指按住溫濕度傳感器感受是否有發燙現象,如果發燙則表明已燒掉,則立即斷電,取下溫濕度傳感器

本階段測試通過后,表明可在zigbee開發板的P06端口,正確讀取到溫濕度傳感器的數據。打包保留測試通過的源碼為:DHT11_P06.rar




    • 采集光敏數據+藍牙模塊+手機

本項目采用粵嵌傳感器測試代碼,對應源碼:LightSensor_P07.rar

光敏傳感器圖示如下:

將老師提供的源碼解壓到D盤(注意路徑上不要有中文,否則IAR會閃退)

項目關鍵代碼分析如下:


ADCH、ADCL:分別為ADC數據的高8位、低8位,在ioCC2530.h中定義。

對value乘以330,再右移15位(215=32768,近似于33000),相當于將value除以100

在main.c中,調用函數getValue()得到的sensor_var除以了100,作為電壓的整數值,除以10再取余10,作為個位小數的值,取余10,作為十位小數的值。(為什么這么處理就不清楚了,廠商提供的數據手冊一直無法下載。。。)


編譯通過后,連接硬件,下載代碼。

  • CCdebuger下載代碼
  • miniUSB接口線,連接PC機和zigbee開發板
  • 光敏傳感器連入zigbee開發板P07端口。該端口有3個引腳,VCCGNDP07。其中VCC連接光敏傳感器的VCCGND連接光敏傳感器的GNDP07連接光敏傳感器的Do.
光敏傳感器引腳說明:
Pin
名稱
注釋
1
VCC
供電3-5.5V
2
GND
接地
3
Do
數字信號輸出
4
Ao
模擬信號輸出


編譯、下載,全速運行后,可以在串口助手上看到電壓值的輸出。


注意:

串口號為從“設備管理器”中查到的USB轉串口的串口號

波特率為115200


完成此步驟,即可證明光敏傳感器、串口助手及對應的測試程序工作正常。

下一步,將已完成設置的藍牙模塊接入zigbee板,并用手機連接該藍牙模塊,實現zigbee模塊到手機的數據傳輸。

此時,拔掉zigbee的CCdebuger和miniUSB連接,使zigbee板處于無電狀態。將藍牙模塊連接到zigbee板上。

藍牙模塊與zigbee板的接線:

藍牙模塊

Zigbee

Rx

P02

Tx

P03

Vcc

5v

GND

GND


連接好連線后,用miniusb線給本zigbee板供電(此處必須由miniUSB給zigbee板供電,因為JTAG接口不提供5v)。可先在PC上的串口助手軟件里可以看到光敏電壓的輸出。表明光敏傳感器工作正常。


藍牙模塊在“環境搭建”步驟已設置了模塊名(例子中為fengb)和波特率(115200),此時打開手機藍牙功能,打開手機上的藍牙助手APP,搜索周圍環境的藍牙模塊fengb,找到后點擊,進行配對,配對碼是“1234,然后連接該藍牙設備,選中“字節流模式”,就可以在手機上的藍牙助手界面看到光敏電壓數據。


注意,有的藍牙助手上不能顯示中文,則需要在代碼中把打印語句中的中文該為英文即可。


藍牙助手APP選擇字節流模式

中文顯示(亂碼)

改源碼中文為英文顯示

PC串口助手同時顯示


  • Zigbee終端節點向協調器發送采集到的數據

本步驟分兩個環節,一是zigbee終端節點采集溫濕度數據發送給協調器,一是zigbee終端節點采集光敏數據發送給協調器。代碼原型采用前一步驟中使用的代碼,并需根據要求進行修改。





    • Zigbee終端節點把數據發送到協調器的方法

本項目中,zigbee終端節點拿到溫濕度數據、光敏傳感器數據的所有操作,與原測試代碼都是相同的。區別在于拿到數據后,原測試代碼是直接輸出到串口打印,本項目需要發送到協調節點。這就需要分析我們做過的“基于zigbee協議棧的無線數據傳輸”實驗中,終端節點是怎么把數據發送到協調器的。


在stack源碼ZStack-CC2530-2.3.0-1.4.0中,SampleApp.c是提供給用戶進行應用層編程的入口。其包含的函數SampleApp_SendPeriodicMessage()用以周期性發送數據(因此是終端節點調用該函數)。

第440行為發送的數據長度,第441行為待發送的數據地址。上電后,該節點會周期性(5秒)發送data里的數據。

因此,我們只需要在這個函數里,把data換為從溫濕度傳感器、光敏傳感器處獲得的數據即可。





    • Zigbee終端節點采集溫濕度數據并發送到協調器

粵嵌的溫濕度傳感器測試代碼中(見DHT11-P06.rar,函數void SendTemp(void)調用函數DHT11_Read_Data(buf)讀取5個字節40bits的溫濕度數據到buf數組中(具體原理可參見《ZigBee 開發實驗指導書》第六章 溫濕度實驗),其中:

buf[0]=8bit 濕度整數數據,buf[1]=8bit 濕度小數數據,

buf[2]= 8bit溫度整數數據,buf[3]=8bit 溫度小數數據。

然后調用hexToAscall()函數將buf中的數據按字節轉換為了ASCII碼,并與說明信息一起拼接進rus字符串,最后調用uartSendString()函數打印到串口輸出。


本步驟中,需要:

  • DHT11-P06項目中的DHT11.cDHT11.h加入到現有的ZStack-CC2530項目,并修改DHT11.c,以符合SampleApp_SendPeriodicMessage()函數的調用需求

將DHT11-P06項目中的dht11.c, dht11.h,delay.c,delay.h,system.h五個文件拷貝到:
ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\SampleApp-transfer data in 1 hour\Source目錄下

打開SampleApp.eww項目,在左側窗口的workplace下,選中項目“SampleAPP-EndDeviceEB-Pro”下的“App”條項,右鍵-?Add-? Add Files,將剛才拷貝過來的dht11.c、dht11.h等5個文件添加到項目中。


在dht11.c中:

屏蔽掉usart.h(因為dht11項目和zstack項目關于uart的實現有不同,索性屏蔽掉不用)

把所有調用uartSendString()的語句屏蔽。

在dht11.c文件末尾,添加新函數DHT11(u8 *T_H):

在dht11.c文件開始部分,添加對新函數DHT11的引用說明:

  • 修改SampleApp_SendPeriodicMessage()函數,在其中調用DHT11.c獲取溫濕度的函數,以期拿到溫濕度數據。即,將原data數據,改換為調用溫濕度獲取函數,并將獲得的數據通過AF_DataRequest()發送出去。

將原項目代碼:

修改為:

  • 修改void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )函數,原項目中是收到0-910個數字,將其轉換為ASCII碼后在串口打印輸出。本項目中需要將接收到的數據直接從串口打印輸出即可。

原項目代碼:

需要改為下面的內容:


修改文件SampleApp.h:

在文件后半部分添加對DHT11的外部引用說明及DATALEN的宏定義說明:


修改完成后,保存。

將溫濕度傳感器接到zigbee開發板上(注意是P06,vcc,GND,這三個引腳),這塊zigbee板作為終端節點,采集傳感器數據,并通過zigbee無線通道發送給協調器。

在IAR開發環境左側窗口的workplace下:

  • 選擇EndDeviceEB-Pro,編譯,下載給zigbee終端節點;
  • 選擇CoordinateEB-Pro,編譯,下載給zigbee協調器節點;

  • 先用miniUSB線連接協調器節點,在PC機“設備管理”中可以看到新增的USB串口,比如為COM5. 在協調器上連接好藍牙模塊。
  • 再用另一根miniUSB線連接終端節點。
  • 打開PC上的串口助手,串口選COM5,波特率為115200,自動換行,16進制。
  • 等幾秒鐘,應該可以看到串口助手上有數據成功接收。第1個字節為溫度的整數部分,第2個字節為溫度的小數部分,第3個字節為濕度的整數部分,第4個字節為濕度的小數部分.

如下圖,此時溫度的整數部分為0x19,即27度。用手握住溫濕度傳感器,過一段時間后可以看到溫度數據緩慢上升。


打開手機藍牙,用藍牙助手APP連接藍牙模塊,選擇字節流方式,即可在手機藍牙助手上同時收到溫濕度信息。

至此,表明溫濕度數據可以從終端節點采集,發送到協調器,再由協調器通過藍牙模塊發送到手機上。




    • Zigbee終端節點采集光敏傳感器數據并發送到協調器

粵嵌的光敏傳感器測試代碼中(見LightSensor_P07.rar。函數getValue()返回了16bit的電壓值,在在main.c中,又將調用getValue()得到的sensor_var除以了100,作為電壓的整數值,除以10再取余10,作為個位小數的值,取余10,作為十位小數的值。為什么這么處理就不清楚了


本步驟中,需要:

  • LightSensor-P07項目中的LightSensor.cLightSensor.h加入到現有的ZStack-CC2530項目,并修改lightSensor.c,以滿足SampleApp_SendPeriodicMessage()函數的調用需求;

將LightSensor-P07項目中的lightSensor.c, lightSensor.h, 2文件拷貝到:
ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\SampleApp-transfer data in 1 hour\Source目錄下

打開SampleApp.eww項目,在左側窗口的workplace下,選中項目“SampleAPP-EndDeviceEB-Pro”下的“App”條項,右鍵-?Add-? Add Files,將剛才拷貝過來的lightSensor.c/h等2個文件添加到項目中。


打開lightSensor.c,修改getValue()函數:

改為:

并在lightSensor.c文件開頭處添加:

在SampleApp.h文件的后部添加:

此處將DATALEN改為了6

  • 修改SampleApp_SendPeriodicMessage()函數,在其中調用LightSensor.c獲取光敏電壓的函數,以期拿到電壓數據。即,將原data數據,改換為調用光敏電壓獲取函數,并將獲得的數據通過AF_DataRequest()發送出去。

打開SampleApp.c,在函數SampleApp_SendPeriodicMessage()中,添加劃線的幾條語句:


修改完成后,保存。

將光敏傳感器接到zigbee終端節點開發板上,板子上之前已經在P06端口連接了溫濕度傳感器。

在IAR開發環境左側窗口的workplace下:

  • 選擇EndDeviceEB-Pro,編譯,下載給zigbee終端節點;
  • 選擇CoordinateEB-Pro,編譯,下載給zigbee協調器節點;

  • 先用miniUSB線連接協調器節點,在PC機“設備管理”中可以看到新增的USB串口,比如為COM5. 在協調器上連接好藍牙模塊。
  • 再用另一根miniUSB線連接終端節點。
  • 打開PC上的串口助手,串口選COM5,波特率為115200,自動換行,16進制。
  • 等幾秒鐘,應該可以看到串口助手上有數據成功接收。第1個字節為溫度的整數部分,第2個字節為溫度的小數部分,第3個字節為濕度的整數部分,第4個字節為濕度的小數部分.5個字節為光敏電壓的值

  • 在手機端接收數據

藍牙模塊在2.2步驟設置成功后,手機上的藍牙助手應能搜索到該藍牙模塊,連接上后選擇字節流方式,選擇16進制方式,應可收到zigbee協調器發送上來的數據,同時,在PC側的串口助手上,應可看到相同的數據。


至此,本項目完成了從zigbee終端節點采集溫濕度、光敏數據,通過zigbee無線通道傳輸給協調器節點,協調器接收到數據后,一方面通過串口在PC機上顯示,另一方面通過藍牙模塊發送給手機端顯示。

總體效果圖如下:


完整的Word格式文檔51黑下載地址:

指導書.doc (3.14 MB, 下載次數: 23)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美a区 | 国产一区 | 韩国理论电影在线 | 第四色影音先锋 | 久久久久久免费毛片精品 | 国产一区二区三区久久 | 亚洲欧美在线免费观看 | 国产日韩精品一区二区 | 一级片在线观看 | 夜夜操av | 精品久久精品 | 亚洲国产成人精品久久久国产成人一区 | 成人不卡视频 | 在线观看日韩 | 欧美极品在线视频 | 日韩成人一区 | 人人种亚洲 | 欧美一区二区三区在线看 | 欧美激情久久久 | 日韩在线精品视频 | 久久的色 | 一区二区三区在线 | www.久草.com | 99亚洲精品 | 亚洲一区视频在线 | 超碰免费在线 | 在线国产一区 | 精品国产欧美一区二区三区成人 | 最新免费黄色网址 | 日本午夜一区二区三区 | 国产精品久久久久久亚洲调教 | 国产精品资源在线 | 日韩视频精品在线 | 久久久www成人免费无遮挡大片 | 日日操天天射 | 国产一区在线看 | 国产精品欧美一区喷水 | 免费看a | 国产一区不卡 | 国产在线视频一区 | 一区二区三区四区国产 |