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