基于Zigee的溫度數據采集系統

大家好,本文帶來的是單片機課設-基于Zigee的溫度數據采集系統。

一、設計內容和要求

基于Zigbee的數據采集系統

1.1設計內容

(1)分析對比Bluetooth、Zigbee、Lora方式組網的基本原理和性能差異,撰寫分析報告;
(2)系統為主從結構,主機負責顯示和操作設置,從機負責采集溫度,主從之間通過串口(無線模塊)連接。從機可以有1臺或多臺;
(3)主機設有鍵盤和液晶顯示(漢字點陣12864);
(4)從機設有傳感器(LM20)和AD轉換器(MCP3004);
(5)一種系統拓撲示意如下,僅供參考,可根據實際情況調整。
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

1.2設計要求

基本功能:
(1)從機采集溫度數據,數據發送到主機。主機在屏幕上顯示從機編號、從機溫度、是否報警;
(2)從機顯示溫度范圍為00°C~50°C,不需顯示小數位;
(3)主機可以用鍵盤設定高低溫報警值(如溫度低于05°C或者高于40°C報警),且上下報警門限可調;
(4)當從機傳感器溫度發生變化后,主機顯示端可在10秒內刷新正確的溫度值。

擴展功能:
(5) 通過主機可以設置波特率(高中低)和采樣時間(5-60秒),從機自動適配;
(6) 通信過程中使用數據校驗來保證通信的可靠性;
(7) 實現多路溫度采集和多機通信;
(8) 在仿真的基礎上,使用立創EDA制版,并完成硬件電路

實習任務及工作量
(1)在Proteus中仿真實現。編程語言可以用C或者匯編,皆可。
(2)在Proteus中的硬件電路設計圖一份。
(3)C或者匯編軟件一份。
(4)錄制1~2分鐘的截屏,非常簡短的展示下效果。
(5)設計報告一份。包括硬件、軟件設計思路和實現過程,心得體會等。

4 參考文獻
[1] 胡漢才主編:《單片機原理及其接口技術》,清華大學出版社,2010年出版。
[2] 孫力娟主編:《微型計算機原理與接口技術》,清華大學出版社,2013年出版。
[3] 高洪志主編:《MCS51單片機原理及應用技術教程》,人民郵電出版社,2009年出版。
[4] 顧海洲,馬雙武:《PCB電磁兼容技術(設計實踐)》,清華大學出版社,2004年出版。


以上就是本次設計任務要求,下面帶來具體實現的內容!!!


二、基本原理

2.1什么是Zigee?

  1. 介紹:Zigbee技術是一種應用于短距離和低速率下的無線通信技術 主要用于距離短、功耗低且傳輸速率不高的各種電子設備之間進行數據傳輸以及典型的有周期性數據、間歇性數據和低反應時間數據傳輸的應用。
  2. 特點:自組織網絡與高容量?
    (1)支持星型、樹型和網狀(Mesh)拓撲,具備自愈功能。Mesh網絡通過多跳傳輸擴展覆蓋范圍(可達幾百米至幾公里)。
    (2)單網絡最多支持65,535個節點,區域內容納1000個網絡,滿足大規模物聯網需求。

在這里插入圖片描述

2.2技術調研

在無線通信技術中,Bluetooth、Zigbee、Lora 是三種常見的組網方式,它們在基本原理和性能上存在顯著差異,以下是具體分析:

Bluetooth:基于無線個人區域網(WPAN)技術,采用跳頻擴頻技術,工作在 2.4GHz ISM 頻段。其通信建立在主從架構之上,主設備可同時與多個從設備進行通信,通過配對過程實現設備間的連接和數據傳輸。

Zigbee:基于 IEEE 802.15.4 標準,同樣工作在 2.4GHz ISM 頻段(部分地區也支持其他頻段),采用直接序列擴頻技術。它支持自組織網絡,包括星型、樹型和網狀(Mesh)拓撲結構,具備自愈功能,網絡中的節點可自動尋找路徑進行數據傳輸。

Lora:基于擴頻調制技術,工作在非授權頻段(如 433MHz、868MHz、915MHz 等),采用 Chirp 擴頻技術。其通信主要通過網關與終端節點之間的星形網絡架構實現,終端節點將數據發送給網關,再由網關進行數據的匯總和處理。

2.3設計方案

(1)系統功能

本系統為基于 Zigbee 的數據采集系統,采用主從結構。主機負責顯示和操作設置,設有鍵盤和液晶顯示(漢字點陣 12864),可通過鍵盤設定高低溫報警值,還能顯示從機編號、從機溫度以及是否報警等信息;從機負責采集溫度,設有傳感器(LM20)和 AD 轉換器(MCP3004),從機可以有 1 臺或多臺。主從之間通過串口(無線模塊)連接,實現數據的傳輸。

(2)系統工作框圖
在這里插入圖片描述

(3)模塊工作原理

主機模塊:主機的核心是 MCS51 單片機,通過鍵盤接收用戶的操作指令,如設定高低溫報警值等。液晶顯示模塊(漢字點陣 12864)用于顯示從機編號、溫度數據以及報警信息等。主機通過串口與無線模塊連接,實現與從機之間的數據收發。

從機模塊:從機同樣以 MCS51 單片機為核心,傳感器(LM20)負責采集溫度信號,采集到的模擬信號傳輸給 AD 轉換器(MCP3004),AD 轉換器將模擬信號轉換為數字信號后傳輸給從機的單片機,單片機再通過無線模塊將數據發送給主機。

無線模塊:采用 2.4G 無線串口透傳模塊,支持即插即用,通過 Uart 通信方式實現主從機之間的數據無線傳輸,波特率可根據需要進行設置。

三、電路設計

3.1主機電路

主機電路主要由 MCS51 單片機、鍵盤、液晶顯示(漢字點陣 12864)和無線模塊組成。

MCS51 單片機作為主機的核心控制單元,負責接收鍵盤輸入的指令、處理從機發送的數據以及控制液晶顯示。
鍵盤采用矩陣鍵盤設計,通過按鍵與單片機的 I/O 口連接,實現指令的輸入。當按鍵按下時,相應的 I/O 口電平發生變化,單片機通過掃描識別按鍵信息。
液晶顯示(漢字點陣 12864)通過并行或串行方式與單片機連接,接收單片機發送的顯示數據并進行顯示。
無線模塊通過 TX、RX 引腳與單片機的串口連接,實現數據的無線收發,GND 引腳接地,保證電路的共地。

3.2從機電路

從機電路主要由 MCS51 單片機、傳感器(LM20)、AD 轉換器(MCP3004)和無線模塊組成。

MCS51 單片機作為從機的核心控制單元,負責控制傳感器采集溫度、接收 AD 轉換器轉換后的數字信號以及通過無線模塊發送數據。
傳感器(LM20)的輸出端與 AD 轉換器(MCP3004)的輸入端連接,將采集到的溫度模擬信號傳輸給 AD 轉換器。LM20 是一種高精度溫度傳感器,其輸出電壓與溫度呈線性關系,在 0°C~50°C 范圍內具有良好的精度。
AD 轉換器(MCP3004)通過 SPI 接口與單片機連接,將模擬信號轉換為數字信號后傳輸給單片機。MCP3004 是一款 10 位 AD 轉換器,具有 4 個輸入通道,滿足溫度信號轉換的需求。
無線模塊同樣通過 TX、RX 引腳與單片機的串口連接,實現與主機的數據傳輸。

3.3參數計算過程

以 LM20 溫度傳感器和 MCP3004 AD 轉換器為例進行參數計算:

LM20 在 0°C 時輸出電壓為 2.5V,溫度系數為 - 6.2mV/°C(在 0°C 至 50°C 范圍內)。MCP3004 的參考電壓設為 5V,其分辨率為 10 位,即總共有 1024 個量化等級。

則 1 個量化等級對應的電壓值為:5V / 1024 ≈ 4.88mV。
當溫度為 t°C 時,LM20 的輸出電壓 U = 2.5V - 6.2mV/°C × t。
AD 轉換器輸出的數字量 N = U / 4.88mV ≈ (2500mV - 6.2mV × t) / 4.88mV。

通過該式可由 AD 轉換器輸出的數字量計算得到對應的溫度值。

四、軟件設計

4.1仿真電路設計圖

在這里插入圖片描述

4.2主機程序流程圖

在這里插入圖片描述

4.3從機程序流程圖

在這里插入圖片描述

五、測試與分析

5.1實際數據

在測試過程中,對系統的基本功能和部分擴展功能進行了驗證,得到以下實際數據:

  1. 溫度采集準確性:在 0°C~50°C 范圍內,從機采集的溫度與實際環境溫度的誤差在 ±1°C 以內,滿足設計要求。
  2. 數據刷新時間:當從機傳感器溫度發生變化后,主機顯示端能在 5 秒內刷新正確的溫度值,小于要求的 10 秒。
  3. 報警功能:當設置高溫報警值為 40°C,低溫報警值為 5°C 時,當溫度高于 40°C 或低于 5°C,主機能準確發出報警提示。
  4. 多機通信:測試了 3 臺從機與主機的通信情況,主機能準確識別各從機編號并顯示對應的溫度數據,通信穩定。

5.2分析

  1. 總結分析:
    從測試數據來看,系統的基本功能均能正常實現,且性能指標符合設計要求。在溫度采集準確性方面,誤差較小,能滿足一般溫度監測的需求;數據刷新及時,保證了溫度數據的實時性;報警功能準確可靠,可及時提醒用戶溫度異常;多機通信穩定,說明系統的組網能力較好。

  2. 分析改進:
    在測試過程中也發現一些問題,如在距離較遠時(超過 500 米),無線通信的穩定性有所下降,數據傳輸偶爾會出現延遲或丟失的情況,這可能與無線模塊的傳輸距離限制有關。在后續優化中,可考慮更換傳輸距離更遠的無線模塊或采用中繼節點來增強通信效果。


六、基礎問答

基本功能:
(1)問:從機采集溫度數據,數據發送到主機。主機在屏幕上顯示從機編號、從機溫度、是否報警?
答:可以

(2)問:從機顯示溫度范圍為00°C~50°C,不需顯示小數位?
答:可以
在這里插入圖片描述

(3)問:主機可以用鍵盤設定高低溫報警值(如溫度低于05°C或者高于40°C報警),且上下報警門限可調嗎?
答:可以
(4)問:當從機傳感器溫度發生變化后,主機顯示端可在10秒內刷新正確的溫度值嗎?
答:可以

擴展功能:
(5) 問: 通過主機可以設置波特率(高中低)和采樣時間(5-60秒),從機自動 適配嗎?
答:未實現
(6) 問:通信過程中使用數據校驗來保證通信的可靠性了嗎?
答:未實現
(7) 問:實現多路溫度采集和多機通信了嗎?
答:已實現,一主機兩從機
在這里插入圖片描述

(8) 問:在仿真的基礎上,使用立創EDA制版,并完成硬件電路?
答:未實現
(9)問:給顯示屏上溫度顯示加上單位符號?
答:已實現,如圖:
在這里插入圖片描述

(10)問:能修改波特率嗎?
答:可以。按以下步驟具體實現:

1.定義常用波特率初值宏
#include “uart.h” // 晶振頻率11.0592MHz,SMOD=0(PCON=0x00)時的波特率初值 #define BAUD_2400 0xF3 // 2400bps(低) #define BAUD_9600 0xFD // 9600bps(中,默認) #define BAUD_19200 0xFE // 19200bps(高) unsigned char rx_data_addr_temperature[3] = {0}; // 新增:存儲當前波特率狀態(0=低,1=中,2=高),用于主機設置后從機適配 unsigned char current_baud = 1; // 默認9600bps

2.重構初始化函數,支持動態修改波特率
// 初始化串口框架(不包含波特率設置) void Uart_Init_Frame(void) { SCON = 0x50; // UART方式1:8位UART,允許接收(REN=1) PCON = 0x00; // SMOD=0,波特率不加倍 TMOD = 0x20; // T1工作在方式2(自動重裝載) TR1 = 1; // 啟動定時器T1 ES = 1; // 允許串口中斷 EA = 1; // 開總中斷 } // 設置波特率(通過主機鍵盤指令傳入參數baud:0=低,1=中,2=高) void Uart_SetBaudRate(unsigned char baud) { current_baud = baud; // 更新當前波特率狀態 switch(baud) { case 0: // 低波特率:2400bps TH1 = BAUD_2400; TL1 = BAUD_2400; break; case 1: // 中波特率:9600bps(默認) TH1 = BAUD_9600; TL1 = BAUD_9600; break; case 2: // 高波特率:19200bps TH1 = BAUD_19200; TL1 = BAUD_19200; break; default: // 默認保持9600bps TH1 = BAUD_9600; TL1 = BAUD_9600; break; } } // 初始化時調用(默認9600bps) void Uart_Init(void) { Uart_Init_Frame(); Uart_SetBaudRate(1); // 初始化為中波特率 }

3.配合主機指令實現“從機自動適配”
void UART_Routine() interrupt 4 { static unsigned char i = 0; unsigned char cmd; // 指令緩存 if(RI == 1) { RI = 0; cmd = SBUF; // 接收主機發送的指令 // 若接收到波特率設置指令(示例:0x01=低,0x02=中,0x03=高) if(cmd == 0x01) { Uart_SetBaudRate(0); // 切換到2400bps } else if(cmd == 0x02) { Uart_SetBaudRate(1); // 切換到9600bps } else if(cmd == 0x03) { Uart_SetBaudRate(2); // 切換到19200bps } // 否則按原邏輯接收溫度數據 else { if(i < 3) { rx_data_addr_temperature[i] = cmd; // 原數據接收邏輯 i++; } if(i >= 3) { i = 0; } } } }


以上就是全部內容了,如有幫助,還請一鍵三連!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90548.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90548.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90548.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ATH12K 驅動框架分析

文章目錄 Linux Wireless 驅動框架深入分析 **1. 核心框架層次結構** **1.1 cfg80211 子系統 (`net/wireless/`)** **1.2 mac80211 子系統 (`net/mac80211/`)** **2. ath12k 驅動架構分析** **2.1 核心管理文件** **2.2 數據路徑文件** **2.3 平臺接口文件** **2.4 功能模塊文件…

OSPF路由協議單區域

RIP的不足 以跳數評估的路由并非最優路徑 如果RTA選擇S0/0傳輸&#xff0c;傳輸需時會大大縮短為3sRIP協議限制網絡直徑不能超過16跳 收斂速度慢 RIP定期路由更新 – 更新計時器&#xff1a;定期路由更新的時間間隔&#xff0c;默認30秒。 – 失效計時器&#xff1a;失效計時器…

Kubernetes部署與管理Scrapy爬蟲:企業級分布式爬蟲平臺構建指南

引言&#xff1a;Kubernetes在爬蟲領域的戰略價值在大規模數據采集場景中&#xff0c;??容器化爬蟲管理??已成為企業級解決方案的核心。根據2023年爬蟲技術調查報告&#xff1a;采用Kubernetes的爬蟲系統平均資源利用率提升??65%??故障恢復時間從小時級縮短至??秒級?…

Web-Machine-N7靶機攻略

一.環境準備&#xff08;VBox&#xff0c;kali虛擬機&#xff0c;靶機&#xff09; 1.1Vbox下載地址: Downloads – Oracle VirtualBox 1.2將N7導入到這個虛擬機中 1.3將kali和Vbox都設置成橋接模式 1.4開啟靶機 若鼠標出不來可以使用組合技,CtrlAltDelete強制退出 二.信息…

用毫秒級視頻回傳打造穩定操控閉環之遠程平衡控制系統技術實踐

在工業自動化、遠程機器人、無人裝備等復雜作業場景中&#xff0c;遠程實時操控正逐步取代傳統“監控指令”模式&#xff0c;成為提升效率與保障安全的關鍵能力。尤其在高風險、高精度的應用環境中&#xff0c;操作者不僅要“能控”&#xff0c;更要“看得準、反應快”。 真正…

瑞薩電子RA-T MCU系列新成員RA2T1——電機控制專家

RA2T1系列微控制器基于64MHz ArmCortex-M23內核設計&#xff0c;專為單電機控制應用而優化。RA2T1集成PWM定時器&#xff0c;以及配備3個采樣保持電路的A/D轉換器等先進的模擬功能&#xff0c;適用于電動工具&#xff0c;風扇和家用電器等高效的低端電機控制方案。RA2T1支持1.6…

Java排序算法之<選擇排序>

目錄 1、選擇排序 1.1、介紹 1.2、穩定性 2、執行流程 3、java實現 4、優缺點 總結&#xff1a;Java 排序算法進階路線 O(n) 算法&#xff08;適合學習原理&#xff09; 冒泡排序&#xff08;最慢&#xff09;→ 選擇排序 → 插入排序&#xff08;推薦先學&#xff09; …

ESP8266 http收發數據

1.先修改基礎配置 make menuconfig 打開配置菜單 選擇component config 然后選擇 修改波特率為115200 保存退出 2.修改彩色日志打印的 在component config目錄下找到log output 選中點擊空格關掉彩色日志輸出&#xff0c;這樣正常串口打印就沒有亂碼了 然后保存退出 3…

ZLMediaKit 源代碼入門

ZLMediaKit 是一個基于 C11 開發的高性能流媒體服務器框架&#xff0c;支持 RTSP、RTMP、HLS、HTTP-FLV 等協議。以下是源代碼入門的詳細指南&#xff1a; 1. 源碼結構概覽 主要目錄結構&#xff1a; text ZLMediaKit/ ├── cmake/ # CMake 構建配置 ├── …

智能Agent場景實戰指南 Day 21:Agent自主學習與改進機制

【智能Agent場景實戰指南 Day 21】Agent自主學習與改進機制 文章內容 開篇 歡迎來到"智能Agent場景實戰指南"系列的第21天&#xff01;今天我們將深入探討智能Agent的自主學習與改進機制——這是使Agent能夠持續提升性能、適應動態環境的核心能力。在真實業務場景…

微信小程序中英文切換miniprogram-i18n-plus

原生微信小程序使用 miniprogram-i18n-plus第一步&#xff1a;npm install miniprogram-i18n-plus -S安裝完成后&#xff0c;會在項目文件文件夾 node_modules文件里生成 miniprogram-i18n-plus&#xff0c; 然后在工具欄-工具-構建npm&#xff0c;然后看到miniprogram_npm里面…

LeetCode 127:單詞接龍

LeetCode 127&#xff1a;單詞接龍問題本質&#xff1a;最短轉換序列的長度 給定兩個單詞 beginWord 和 endWord&#xff0c;以及字典 wordList&#xff0c;要求找到從 beginWord 到 endWord 的最短轉換序列&#xff08;每次轉換僅改變一個字母&#xff0c;且中間單詞必須在 wo…

docker搭建ray集群

1. 安裝docker 已安裝過docker 沒安裝流程 啟動 Docker 服務&#xff1a; sudo systemctl start docker sudo systemctl enable docker # 設置開機即啟動docker驗證 Docker 是否安裝成功&#xff1a; docker --version2. 部署ray # 先停止docker服務 systemctl stop docker…

【iOS】SideTable

文章目錄前言1??Side Table 的核心作用&#xff1a;擴展對象元數據存儲1.1 傳統對象的內存限制1.2 Side Table 的定位&#xff1a;集中式元數據倉庫2??Side Table 的底層結構與關聯2.1 Side Table 與 isa 指針的關系2.2 Side Table 的存儲結構2.3 SideTable 的工作流程3??…

【Spring Cloud Gateway 實戰系列】高級篇:服務網格集成、安全增強與全鏈路壓測

一、服務網格集成&#xff1a;Gateway與Istio的協同作戰在微服務架構向服務網格演進的過程中&#xff0c;Spring Cloud Gateway可與Istio形成互補——Gateway負責南北向流量&#xff08;客戶端到集群&#xff09;的入口管理&#xff0c;Istio負責東西向流量&#xff08;集群內服…

一文說清楚Hive

Hive作為Apache Hadoop生態的核心數據倉庫工具&#xff0c;其設計初衷是為熟悉SQL的用戶提供大規模數據離線處理能力。以下從底層計算框架、優點、場景、注意事項及實踐案例五個維度展開說明。 一、Hive底層分布式計算框架對比 Hive本身不直接執行計算&#xff0c;而是將HQL轉換…

SeaweedFS深度解析(三):裸金屬單機和集群部署

#作者&#xff1a;閆乾苓 文章目錄2.2.4 S3 Server&#xff08;兼容 Amazon S3 的接口&#xff09;2.2.5 Weed&#xff08;命令行工具&#xff09;3、裸金屬單機和集群部署3.1 裸金屬單機部署3.1.1安裝 SeaweedFS3.1.2 以Master模式啟動2.2.4 S3 Server&#xff08;兼容 Amazon…

相機ROI 參數

相機的 ROI&#xff08;Region of Interest&#xff0c;感興趣區域&#xff09; 參數&#xff0c;是指通過設置圖像傳感器上 特定區域 作為有效成像區域&#xff0c;從而只采集該區域的圖像數據&#xff0c;而忽略其他部分。這一功能常用于工業相機、科研相機、高速相機等場景&…

Vue基礎(24)_VueCompinent構造函數、Vue實例對象與組件實例對象

分析上一節代碼中的school組件&#xff1a;該組件是一個名為VueCompinent的構造函數。截取部分vue.js源碼&#xff0c;分析Vue.extend&#xff1a;// 定義一個名為VueComponent的構造函數對象Sub&#xff0c;往Sub對象調用_init(options)方法&#xff0c;參數為配置項&#xff…

螢石云替代產品攝像頭方案螢石云不支持TCP本地連接-東方仙盟

不斷試錯東方仙盟深耕科研測評&#xff0c;聚焦前沿領域&#xff0c;以嚴謹標準評估成果&#xff0c;追蹤技術突破&#xff0c;在探索與驗證中持續精進&#xff0c;為科研發展提供參考&#xff0c;助力探路前行 螢石云價格螢石云的不便于使用 家庭場景&#xff1a;成本可控與隱…