基于PIC32的嵌入式Web服務器的物聯網實現
1前言
計算機和網絡技術的迅速發展,引發了控制領域深刻的技術革命。控制系統結構向網絡化、開放性方向發展將是控制系統技術發展的主要潮流。過去大量的浩如煙海的8/16位單片機的嵌入式設備,如儀器儀表、數據采集和顯示、過程控制、工業自動化、家庭自動化等的實時應用,已經到了享受網絡方便的時候了。它們將成為Internet 的發展沃土,順應“網絡服務”向“網絡應用”擴展的大潮。
目前大多數嵌入式系統還處于單獨應用的階段,以單片機為核心,與一些控制設備配合實現一定的功能。如果嵌入式系統能夠連接到Internet 這個信息流通渠道,則可以方便、低廉地將信息送到世界上任何一個地方,這將形成集管理與控制于一體的分布式網絡系統。要做到這一點并不難,在電子技術、傳感技術已經高度發達的今天,現場數據的取得,已經不是難事,溫度、壓力、濕度、速度、加速度、電流、電壓這些數據只需要一個小小的嵌入式系統就可解決。另外,以太網(Ethernet)協議已經廣泛地應用于各種計算機網絡,基于以太網的嵌入式系統也正在不斷向前發展。
另一方面,隨著網絡的發展和用戶對各種應用需求,現在各種各樣的消費產品,例如,智能手機,數碼相機等,都提供無線或是有線的國際互聯網絡的接入功能。各種應用都需要網絡的接入來提供各種娛樂功能。同時隨著物聯網技術發展,對于各種設備的網絡接入和訪問將變得越來越普遍。而且現在流行的智能家居系統的實現也需要網絡的接入來提供遠程控制,,因此開發基于MCU的嵌入式Web服務器是非常有意義和挑戰性的。
2需求與功能分析
系統目標
最終目的是實現一個基于PIC32位單片機的可移植并且高度可配置嵌入式Web服務器。嵌入式Web服務器可用于現在流行的物聯網的各個方面,例如,傳感器網絡監控,工業機器監控,小型Web服務器,遠程信息交互等應用領域。
主要功能
實現一個嵌入式Web服務器,并且能夠提供用戶通過Internet 訪問并控制相關外設。基本要求如下所示:
1. 當上電或用戶復位后所有PIC32 位單片機配置能夠自動設置好,并正常工作;
2. 網絡連接通過板卡上的Ethernet 接口實現,并且相關的IP地址,子網掩碼(Subnet mask),網關(Gateway)等網絡配置能夠通過DHCP(Dynamic Host Configuration Protocol)自動實現。
3. HTML源文件存放在外部SD存儲卡上,方便用戶修改。而且通過USB接口來實現讀寫。
4. 為了演示物聯網技術的基本結構及其優勢,提供相關外設(溫濕度傳感器及LED)供用戶遠程控制或操作。
5. 為方便使用,相關的網絡信息(如IP地址,網關(Gateway)等)及外設信息(如溫度,濕度等)顯示在LCD上。
相關技術和原理
TCP/IP 協議
USB 協議
3.系統設計與實現
系統總體結構框圖如圖1所示:
圖1 系統總體結構框圖
嵌入式Web服務器
從上面的框圖中我們可以清晰地了解整個硬件系統的結構以及各部分的連接。首先最重要的部分是調用Microchip公司的TCP/IP庫來實現PIC32位單片機與Internet的通信,接受用戶的請求并根據Http Request()的返回值通過Http Response()來與用戶進行交互,例如顯示時間、溫度、濕度,或者控制LED燈的亮或滅。更進一步可以用按鍵來模仿嵌入式服務器側的各種外設的參數變化,使其實時的顯示到用戶的Web瀏覽器上。
下圖是簡化了的Web服務器原理圖,服務器的事物邏輯部分是嵌入式服務器的核心部分,它根據不同的Http Socket來讀取SD存取卡上的HTML源文件或其他外設的輸入值,來響應用戶的請求,這是物聯網的基礎。
SD存取卡及文件系統
SD存取卡及文件系統是整個系統中僅次于嵌入式Web服務器的重要模塊,它主要用來存放Web服務器管理員編寫的HTML源文件,提供給Web服務器來響應用戶的請求。SD卡的讀寫可以利用PIC32位單片機上的USB Host來方便的實現。并且Microchip 公司提供的文件系統的庫函數的支持,更加方便了SD存取卡及文件系統模塊的實現。
其示意性原理框圖如下所示:
LCD顯示部分
同時與PIC32 位單片機相連的LCD用來顯示嵌入式Web服務器的網絡連接信息以及傳感器的輸入值。嵌入式Web服務器的網絡連接信息不僅包括當前IP地址,網關等基本網絡信息,還包含了當前用戶連接數,用戶的Web請求等。管理者可以根據這些基本的信息來判斷當前Web服務器的工作狀態,以及系統錯誤的檢查。
LCD顯示內容的總體布局如下圖所示:
4.傳感器模塊及LED控制模塊
傳感器主要用于測量當前系統所處環境的各種參數,比如溫度,濕度等。測量的數據一方面送到LCD顯示;另一方面送到Web服務器的事物邏輯控制中心以響應用戶的Web請求。而LED控制部分則接受來自Web服務器的控制信號以控制LED燈的亮或滅。
5.測試
1. 當上電或用戶復位后所有PIC32 位單片機配置自動設置好,并正常工作;
2. 網絡連接通過板卡上的Ethernet 接口實現,相關的IP地址,子網掩碼(Subnet mask),網關(Gateway)等網絡配置能夠通過DHCP(Dynamic Host Configuration Protocol)自動實現;
3. 相關外設(溫濕度傳感器及LED)正常工作。
評論