新聞中心News
基于 STM32 和 RFID 的電子牲畜地磅設(shè)計
基于 STM32 和 RFID 的電子牲畜地磅設(shè)計
牲畜在生長過程中體重數(shù)據(jù)的測定,是養(yǎng)殖場養(yǎng)殖過程中重要的環(huán)節(jié),同時又是現(xiàn)場養(yǎng)殖人員苦惱的環(huán)節(jié)。 傳統(tǒng)用磅秤對牲畜進行簡單測量,這種人工方式測量準(zhǔn)確度很難實際反映牲畜實際的生長速度、飼料利用率等性能指標(biāo),更無法對牲畜生長狀況進行有效的監(jiān)控和數(shù)據(jù)統(tǒng)計分析。 為滿足牲畜養(yǎng)殖高度智能化和自動化的需求以及牲畜養(yǎng)殖物聯(lián)網(wǎng)技術(shù)的應(yīng)用,設(shè)計了一種基于 STM32 和 RFID 的電子牲畜地磅。 該地磅可以實現(xiàn)生豬的自動稱重、電子標(biāo)簽識別和稱重信息的自動上傳。
1.系統(tǒng)總體架構(gòu)
本文設(shè)計的電子牲畜秤又可稱為體重數(shù)據(jù)采集系統(tǒng), 為多套固定設(shè)備,分別安裝于多個牲篷入口處,每個入口處只容許單只牲畜通過。 當(dāng)牲畜通過此通道,RFID (Radio Frequency I-dentification)讀寫器識別牲畜身上的卡號 ,地磅上的壓力測重傳感器對獲取的數(shù)據(jù)進行濾波, 便可獲取到該牲畜當(dāng)次的體重數(shù)據(jù),最后通過 STM32 的串口,將獲取的數(shù)據(jù)以一定的幀格式上傳至應(yīng)用服務(wù)器保存。 系統(tǒng)設(shè)備布置如圖 1 所示。
系統(tǒng)主要功能模塊構(gòu)成:處理器平臺、RFID 識別設(shè)備、測重傳感設(shè)備。 系統(tǒng)總體架構(gòu)圖如圖 2所示。 各模塊功能介紹如下:
1.1 處理器平臺
采用 STM32F103 系列單片機作為本系統(tǒng)的主控制器, 其豐富的片內(nèi)資源、外圍接口、低功耗、高性能等特點,完全滿足本系統(tǒng)的需求。
1.2 RFID 讀寫設(shè)備
RFID 技術(shù)作為構(gòu)建“物聯(lián)網(wǎng)”的關(guān)鍵技術(shù)近年來受到人們的關(guān)注。它是一種無線通信技術(shù),可以通過無線電訊號識別特定目標(biāo)并讀寫相關(guān)數(shù)據(jù), 而無需識別系統(tǒng)與特定目標(biāo)之間建立機械或者光學(xué)接觸。 本文采用中電???/span> HIK-FR528 設(shè)備,其具有良好的多標(biāo)簽處理能力以及抗干擾性能,采用 920MHz 超高頻工作模式。
1.3 測重傳感設(shè)備
測重傳感設(shè)備由四個 100kg 壓力傳感器組成,分別布置于秤板的四個角,每個傳感器經(jīng) HX711 高精度 A / D 轉(zhuǎn)換器芯片,組成可承重 400kg 的測重設(shè)備。 如圖 3 所示。
2.系統(tǒng)硬件
系統(tǒng)的硬件主要以微控制器為中心, 由電源電路為控制器和 RFID 讀寫設(shè)備分別提供 5V 和 12V 直流電源。 壓力傳感器則通過 HX711,一款專為高精度電子秤而設(shè)計的 24 位A / D 轉(zhuǎn)換器芯片。 數(shù)據(jù)輸出部分,則由單片機的串口經(jīng)PL2303 轉(zhuǎn)換為 USB 接口 與服務(wù)器進行數(shù)據(jù)通信。 各模塊電路已技術(shù)成熟,得到廣泛應(yīng)用,此處不再詳細闡述。 系統(tǒng)硬件如圖 4 所示。
3.系統(tǒng)軟件關(guān)鍵部分的設(shè)計與實現(xiàn)
3.1 RFID 防碰撞處理。
1)問題描述。 該問題包含兩部分:根據(jù) RFID 射頻技術(shù)的工
作原理可知,當(dāng)一個有效標(biāo)簽進入讀寫器的識別區(qū),則讀寫設(shè)備
就實時的獲取到標(biāo)簽攜帶的標(biāo)識信息,這也意味著不斷的有消息
重復(fù)被識別;根據(jù)圖 1 系統(tǒng)設(shè)備布置圖可知,存在多頭牲畜位于同一 RFID 讀寫器識別有效范圍,引起不同卡號數(shù)據(jù)沖突問題。
2)算法實現(xiàn)。 仔細分析本系統(tǒng)的需求,就可以知道,對于一臺的 RFID 設(shè)備,在一個時間段內(nèi),對單張標(biāo)簽只需獲取到一次有效的標(biāo)簽信息即可;而由于 RFID 具備卡距離讀寫器越近、在有效識讀區(qū)域時間越長, 讀卡器獲取該標(biāo)簽信息的頻率越高的特點,如圖 1 中 ABCD 四處,位于 B 處的讀寫器獲取卡號頻率為 B>C>D>A,可判斷此處 B 卡才是有效卡號。
綜合以上兩點,系統(tǒng)定義一個結(jié)構(gòu)體包含:卡號、觸發(fā)時刻、觸發(fā)次數(shù)三個變量。 以此為數(shù)據(jù)節(jié)點,建立一個消息緩存鏈表。
每當(dāng)捕獲一條新的 RFID 觸發(fā)信息, 則根據(jù)此卡號從鏈表頭開始查找同卡號的節(jié)點,若鏈表中無此卡號,則直接將此條信息插入鏈表頭部;若在鏈表中找到此卡號,再根據(jù)鏈表中記錄的此卡號捕獲時刻與當(dāng)前捕獲時刻進行對比, 若當(dāng)前時刻距離上一次捕獲時刻相隔大于一個有效的間隔時間 t,則刪除原鏈表節(jié)點后續(xù)部分,將此新的節(jié)點插入鏈表頭部;若相隔時間小于一個有效的時間間隔 t, 則增加該卡號的計數(shù)變量;RFID 過濾流程圖如圖 5 所示。
3.2 RFID 防碰撞處理。
1)問題描述。 體重數(shù)據(jù)的測量,看似簡單,然而對于一只體形大,愛亂動的牲畜來說,無法輕易獲取一個穩(wěn)定的有效值。 活體牲畜在稱重設(shè)備上采集的體重數(shù)據(jù)會劇烈震蕩。
2)算法實現(xiàn)。 要想獲取獲取一個十分精準(zhǔn)的體重數(shù)值確為難事, 但經(jīng)過一定的濾波算法來獲取一個較接近于真值的穩(wěn)定值,確實可以辦到的。 稱重數(shù)據(jù)修正算法示意圖如圖 6 所示。
從圖 6 可知,雖然體重數(shù)據(jù)會存在劇烈波動,但是波動范圍卻大部分位于其峰值線之間,只要能夠?qū)⑦@個區(qū)間進一步縮小,所需的數(shù)據(jù)也就進一步精準(zhǔn)了。 本系統(tǒng)的體重數(shù)據(jù)修正算法描述如下:
每當(dāng)系統(tǒng)采集到一個體重數(shù)據(jù), 則記錄體重和漲跌趨勢兩個參數(shù),每當(dāng)體重參數(shù)到達一個波峰或波谷出現(xiàn)拐點,則將此時的體重值和峰谷狀態(tài)作為一個鏈表節(jié)點, 存入體重數(shù)據(jù)緩存鏈表,依次原則記錄整個采集過程中的所有數(shù)據(jù)。
當(dāng)一個采集過程完成,系統(tǒng)濾除緩存鏈表中頭尾各 20%的體重數(shù)據(jù)節(jié)點,此時根據(jù)緩存鏈表中的數(shù)據(jù),分別求出各個峰谷數(shù)據(jù)的中值,其有效數(shù)據(jù)波動范圍 L1、L2 范圍已縮小。系統(tǒng)再對所求中值進行算數(shù)平均,該值作為本次采集最終有效數(shù)據(jù)。 系統(tǒng)工作流程圖如圖 7 所示。
4.結(jié)束語
設(shè)計以 STM32 為核, 結(jié)合物聯(lián)網(wǎng)的相應(yīng)概念, 采用了 RFID 電子標(biāo)簽身份識別技術(shù),結(jié)合閾值濾波 、 終止濾波 、 均值濾波等 圖 7 體重數(shù)據(jù)修正算法流程圖算法來獲取一個最終數(shù)據(jù)。 它的需求量和潛在市場很大,涉及傻瓜除了材質(zhì)、工藝等需改善外,仍需根據(jù)實際牲畜質(zhì)量等設(shè)計不同用戶需求的產(chǎn)品,拓寬計量生物的范圍。