基于單片機和WiFi的無線溫濕度檢測節點設計
本文引用地址:http://www.104case.com/article/249571.htm

1.2.2 WiFi透明傳輸模式
USR-WiFi232-G支持串口透明傳輸模式,可以實現串口即插即用,從而最大程度降低用戶使用的復雜度。首次使用時需要對模塊進行配置,作為無線傳感器網絡節點使用時,需要通過PC的無線網卡連接USR-WiFi232-G,默認網絡名稱(SSID)為HF-A11X_AP。加入網絡后,在IE瀏覽器地址欄輸入http://10.10.100.254,在無線終端設置選項中,鍵入模塊要連接的無線接入點的SSID和密碼,并選擇自動獲取IP地址。
然后在模式選擇選項中設置USR-WiFi232-G模塊工作模式為AP+STA模式,保存后重新啟動模塊。打開智能手機或者PC的上位機終端,選擇客戶機(TCP client)模式,服務器IP地址輸入自動分配給USR-WiFi232-G的地址,服務器端口號為8899,此為模塊默認監聽的TCP端口號,點擊連接建立TCP連接,即可進行遠程數據收發。
1.3 STC15F104W單片機
本設計采用宏晶科技有限公司生產的STC15F104W單片機。該單片機工作電壓為3.8~5.5 V,采用增強型8051CPU內核,指令代碼完全兼容傳統51單片機,速度更快。片內128字節RAM,1K EEPROM,4 KB Flash程序存儲器;內部高可靠復位,可徹底省掉外部復位電路;具有高精度R/C時鐘,內部時鐘為5~35 MHz可選。采用8引腳封裝,有2個普通16位重裝載定時器/計數器,共有6個通用I/O端口,可利用I/O口結合定時器實現串口功能(通常使用P3.0和P3.1端口)。該單片機價格便宜,單個售價少于2.0元,設計采用該系列單片機,完全可以滿足進行溫濕度檢測的要求。
2 節點軟件設計
2.1 讀取1位數據
單片機讀取一位數據流程如圖5所示。由于每位數據都有約50μs的低電平時隙和其后的高電平時隙兩部分,單片機將根據高電平時隙的長度確定當前位數據的取值。讀取數據時,單片機持續檢測數據線SDA狀態,當SDA變力高電平時,利用軟件延時約30 μs,然后再次檢測SDA電平狀態。若此耐SDA處于高電平狀態,則表示當前位數據為“1”,存儲當前位數據,等待SDA重新變為低電子狀態時,開始讀取下一位數據;若SDA處于低電子狀態,則表示當前位數據為“0”,存儲數據后開始讀取下一位數據。

2.2 讀取AM2303數據
單片機讀取AM2303數據采用KEIL C51實現,流程如圖6所示。AM2303上電后需等待2 s以越過不穩定狀態,期間單片機不能向其發送指令。讀取AM2303數據時,單片機通過I/O口向AM2303數據線SDA發送起始信號,待接收到響應信號后,依次從數據線SDA串行讀取濕度高8位、濕度低8位、溫度高8位、溫度低8位以及8位校驗位。

單片機通過判斷濕度高、低8位與溫度高、低8位之和是否等于校驗位,來確定所接收的溫濕度數據是否準確,校驗正確則將溫濕度數據通過串口送至WiFi模塊;否則重新獲取溫濕度數據。由于AM2303硬件原因,讀取間隔小于2 s可能導致讀取溫濕度數據不準確或通信不成功等情況,所以單片機連續兩次讀取溫濕度數據時間至少間隔2 s。
結語
本文介紹的溫濕度檢測節點作為無線溫濕度傳感器網絡節點可以實現靈活組網,并可針對現場溫濕度信息進行實吋監測。通過打開路由器網絡設置中的動態DHCP客戶端列表,獲取路由器分配給節點的IP地址。使用智能手機客戶端連接節點IP,選擇TCP Client模式,默認端口號8899,連接后即可接收節點數據。經測試,在無障礙物的室外環境,節點可接入約300m范圍內的路由器,并可穩定地通過路由器上傳溫濕度數據,數據傳輸錯誤出錯率很低。測試效果如圖7所示。

測試表明節點用于采集環境溫濕度數據,檢測距離遠并且運行穩定。該設計節點的通用性良好,組網方便,具有擴充能力與發展余地,并可接入互聯網方便遠程測控與資源共享,具有較強的實用性。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
路由器相關文章:路由器工作原理
路由器相關文章:路由器工作原理
斷路器相關文章:斷路器原理
高壓真空斷路器相關文章:高壓真空斷路器原理 上拉電阻相關文章:上拉電阻原理 土壤濕度傳感器相關文章:土壤濕度傳感器原理 溫濕度控制器相關文章:溫濕度控制器原理 漏電斷路器相關文章:漏電斷路器原理
評論