




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第2章 LoRa無線通信技術(shù)開發(fā)2.6 LoRa電子圍欄系統(tǒng)開發(fā)與實(shí)現(xiàn)項(xiàng)目場景安防程序邏輯分析安防類程序接口分析項(xiàng)目實(shí)踐項(xiàng)目場景畜牧牲畜對于農(nóng)戶來說是高價(jià)值產(chǎn)品,同時(shí)是保證收益的重要來源,因此為了保證牲畜在放養(yǎng)過程中不走失,需要為牲畜建立一個(gè)電子?xùn)艡冢?dāng)牲畜觸發(fā)電子?xùn)艡跁r(shí),電子?xùn)艡谙到y(tǒng)能夠立即觸發(fā)報(bào)警并通知農(nóng)戶及時(shí)處理牲畜走遠(yuǎn)的緊急情況,以方式造成不必要的經(jīng)濟(jì)損失。因此在智慧畜牧系統(tǒng)中使用電子?xùn)艡趯ι笤竭^設(shè)定范圍進(jìn)行報(bào)警能夠保證農(nóng)戶財(cái)產(chǎn)的安全,因此電子?xùn)艡跁r(shí)智慧畜牧系統(tǒng)中的重要組成部分。電子圍欄下圖所示:任務(wù)目標(biāo)智慧畜牧系統(tǒng)中的牲畜安全監(jiān)測系統(tǒng)是保障農(nóng)戶財(cái)產(chǎn)的重要環(huán)節(jié),本節(jié)以道電子?xùn)艡谙到y(tǒng)為
2、例學(xué)習(xí)在應(yīng)用接口下的報(bào)警節(jié)點(diǎn)的程序開發(fā),學(xué)習(xí)并掌握控制節(jié)點(diǎn)的操作邏輯和應(yīng)用接口的使用。安防類程序邏輯分析遠(yuǎn)程信息預(yù)警可以歸納為四種邏輯事件,邏輯事件歸納如下:節(jié)點(diǎn)安全信息定時(shí)獲取并上報(bào)。當(dāng)節(jié)點(diǎn)監(jiān)測到危險(xiǎn)信息時(shí)系統(tǒng)能迅速上報(bào)危險(xiǎn)信息。當(dāng)危險(xiǎn)信息解除時(shí)系統(tǒng)能夠恢復(fù)正常。當(dāng)監(jiān)測到查詢信息時(shí)節(jié)點(diǎn)能夠響應(yīng)指令并反饋安全信息。安防類程序邏輯分析安防類程序流程如圖所示:安防類程序邏輯分析1)每條數(shù)據(jù)以“”作為起始字符;2)“”內(nèi)參數(shù)多個(gè)條目以“,”分隔;3)數(shù)據(jù)上行格式參考:status=14)數(shù)據(jù)下行查詢命令參考:status=?,程序返回:status=1此處以LoRa畜牧電子圍欄系統(tǒng)為例定義了協(xié)議內(nèi)容
3、。約定協(xié)議如下:數(shù)據(jù)方向協(xié)議格式說明上行(節(jié)點(diǎn)往應(yīng)用發(fā)送數(shù)據(jù))sensorStatus=XX表示安防報(bào)警狀態(tài)值下行(應(yīng)用往節(jié)點(diǎn)發(fā)送指令)sensorStatus=?查詢安防報(bào)警狀態(tài)值,返回:sensorStatus=X,X為1表示報(bào)警,Y為0表示正常安防類程序接口分析智云傳感器應(yīng)用接口函數(shù)函數(shù)名稱函數(shù)說明sensorInit()硬件設(shè)備初始化sensoUpdate()上傳傳感器實(shí)時(shí)數(shù)據(jù)和報(bào)警狀態(tài)sensorCheck()實(shí)時(shí)監(jiān)測傳感器報(bào)警狀態(tài),并實(shí)時(shí)預(yù)警上報(bào)ZXBeeUserProcess()解析接收到的下行控制命令PROCESS_THREAD(sensor, ev, data)傳感器進(jìn)程安防
4、類程序接口分析安防傳感器程序邏輯流程設(shè)計(jì)如下:安防類應(yīng)用接口分析無線數(shù)據(jù)包收發(fā)函數(shù):無線數(shù)據(jù)包解析函數(shù):函數(shù)名稱函數(shù)說明ZXBeeInfSend()節(jié)點(diǎn)發(fā)送無線數(shù)據(jù)包給匯集節(jié)點(diǎn)ZXBeeInfRecv()處理節(jié)點(diǎn)收到無線數(shù)據(jù)包函數(shù)名稱函數(shù)說明ZXBeeBegin()增加ZXBee通信協(xié)議的幀頭“”ZXBeeEnd()增加ZXBee通信協(xié)議的幀尾“” ,并返回封包后的數(shù)據(jù)包指針ZXBeeAdd()ZXBee通信協(xié)議的數(shù)據(jù)包中添加數(shù)據(jù)ZXBeeDecodePackage()對接收到的無線數(shù)據(jù)包進(jìn)行解包安防類應(yīng)用接口分析電子圍欄系統(tǒng)設(shè)計(jì)如下所示:項(xiàng)目實(shí)踐電子?xùn)艡谙到y(tǒng)硬件框圖設(shè)計(jì)如下,安全狀態(tài)監(jiān)測使用
5、了外接光柵傳感器,通過IO接口與芯片進(jìn)行通信:項(xiàng)目實(shí)踐氣體傳感器節(jié)點(diǎn)LoRaGas工程實(shí)現(xiàn)了畜牧氣體采集系統(tǒng),該程序?qū)崿F(xiàn)了以下功能:1)節(jié)點(diǎn)入網(wǎng)后,每隔20s上行上傳一次氣體傳感器數(shù)值。2)應(yīng)用層可以下行發(fā)送查詢命令讀取最新的氣體傳感器數(shù)值。LoRaGas工程采用類josn格式的通信協(xié)議(參數(shù)=值,參數(shù)=值,),具體如下:數(shù)據(jù)方向協(xié)議格式說明上行(節(jié)點(diǎn)往應(yīng)用發(fā)送數(shù)據(jù))gratingStatus=XX表示采集的光柵狀態(tài)值下行(應(yīng)用往節(jié)點(diǎn)發(fā)送指令)gratingStatus=?查詢光柵狀態(tài)值,返回:gratingStatus=X,X表示采集的光柵狀態(tài)值。項(xiàng)目實(shí)踐傳感器初始化光柵傳感器初始化代碼如下
6、:void sensorInit(void)printf(sensor-sensorInit(): Sensor init!rn);/ 初始化傳感器代碼grating_init(); / 光柵傳感器初始化項(xiàng)目實(shí)踐void sensorUpdate(void) char pData16;char *p = pData;updateGrating();ZXBeeBegin(); / 智云數(shù)據(jù)幀格式包頭sprintf(char*)p, %u, gratingStatus); ZXBeeAdd(gratingStatus, p); p = ZXBeeEnd(); / 智云數(shù)據(jù)幀格式包尾if (p !=
7、 NULL) ZXBeeInfSend(p, strlen(p); / 將需要上傳的數(shù)據(jù)上傳到智云平臺(tái)printf(sensor-sensorUpdate(): gratingStatus=%urn, gratingStatus); 傳感器主動(dòng)上報(bào)傳感器數(shù)據(jù)項(xiàng)目實(shí)踐光柵傳感器實(shí)時(shí)監(jiān)測及預(yù)警處理void sensorCheck(void)static char lastgratingStatus = 0;static uint32_t ct0=0; char pData16;char *p = pData;updateGrating();ZXBeeBegin();if (lastgratingS
8、tatus != gratingStatus | (ct0 != 0 & clock_time() (ct0+3000) sprintf(p, %u, gratingStatus);ZXBeeAdd(gratingStatus, p);ct0 = clock_time();if (gratingStatus = 0) ct0 = 0;lastgratingStatus = gratingStatus;p = ZXBeeEnd();if (p != NULL) int len = strlen(p); ZXBeeInfSend(p, len);printf(sensor-sensorCheck:
9、 Grating alarm!rn);項(xiàng)目實(shí)踐無線數(shù)據(jù)包命令解析int ZXBeeUserProcess(char *ptag, char *pval) int ret = 0;char pData16;char *p = pData;printf(sensor-ZXBeeUserProcess(): Receive LoRa Data!rn);if (0 = strcmp(gratingStatus, ptag) / 查詢執(zhí)行器命令編碼if (0 = strcmp(?, pval)updateGrating();ret = sprintf(p, %u, gratingStatus);ZXBeeAdd(gratingStatus, p); return ret;項(xiàng)目實(shí)踐傳感器驅(qū)動(dòng)函數(shù)函數(shù)名稱函數(shù)說明grating_init()光柵傳感器初始化get_grating_status()獲取光柵傳感器狀態(tài)項(xiàng)目實(shí)踐根據(jù)程序設(shè)定,光柵傳感器節(jié)點(diǎn)每隔20s會(huì)上傳一次光柵數(shù)值到應(yīng)用層。同時(shí)通過ZCloudTools工具發(fā)送氣體查詢指令(gratingStatus=?),程序接收到響應(yīng)后將會(huì)返回實(shí)時(shí)光柵數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市松江區(qū)2025屆高三高考模擬卷(二)數(shù)學(xué)試題含解析
- 江蘇省淮安市車橋中學(xué)2025屆高三月考試題含解析
- 江蘇省南京市高淳區(qū)2025年初三2月份自測化學(xué)試題含解析
- 山東省濟(jì)寧嘉祥縣聯(lián)考2025屆初三下學(xué)期適應(yīng)性月考卷(三)物理試題含解析
- 江蘇省常熟市第一中學(xué)2025屆高三摸底考試數(shù)學(xué)試題試卷含解析
- 臨沂科技職業(yè)學(xué)院《工程材料與構(gòu)造》2023-2024學(xué)年第二學(xué)期期末試卷
- 喀什職業(yè)技術(shù)學(xué)院《試驗(yàn)設(shè)計(jì)方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京理工大學(xué)《建筑模型制作與造型設(shè)計(jì)課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川省自貢市2024-2025學(xué)年數(shù)學(xué)五年級(jí)第二學(xué)期期末統(tǒng)考試題含答案
- 信陽師范大學(xué)《專業(yè)英語1》2023-2024學(xué)年第一學(xué)期期末試卷
- Premiere視頻編輯案例教程(微課版)(第2版)(PremierePro2020) 課件 第1、2章 初識(shí) Premiere Pro 2020、視頻剪輯
- 口腔平滑肌瘤的手術(shù)治療與預(yù)后
- 重點(diǎn)群體人員本年度實(shí)際工作時(shí)間表
- XX鎮(zhèn)衛(wèi)生院基本公共衛(wèi)生服務(wù)項(xiàng)目實(shí)施方案(2024年)
- 2023年江蘇省南京市中考化學(xué)試卷真題(含答案)
- 衛(wèi)星互聯(lián)網(wǎng)通信技術(shù)
- 2023年水利部珠江水利委員會(huì)直屬事業(yè)單位招聘工作人員考試真題及答案
- 豬場的生物安全工作總結(jié)
- 機(jī)房建設(shè)工程方案
- 氨吹脫工藝設(shè)計(jì)
- 觀光小火車活動(dòng)方案
評論
0/150
提交評論