【摘要】物聯網技術的發展十分迅速,為了方便學生理解和掌握物聯網的相關知識,設計了一款基于機智云平臺的物聯網實驗開發平臺。
文章介紹了系統的硬件設計,包括單片機控制模塊、WiFi通訊模塊以及控制輸出模塊,方便學生進行基礎性操作和擴展設計。經過實驗測
試,物聯網實驗平臺運行效果良好。
【關鍵詞】機智云;STM32;物聯網
物聯網是一個基于互聯網、傳統電信網等信息承載體,讓所能夠被獨立尋址的普通物理對象實現互聯互通的網絡。為了提高學生的學習興趣,方便快速地對物聯網設備熟悉、了解和操作,本文設計了一款基于機智云平臺的物聯網實驗平臺。通過此平臺,學生可以熟悉單片機開發與Android開發等相關知識,熟悉并掌握物聯網系統的設計思路及制作方法。
1 系統平臺方案設計
整個平臺設計分為軟件程序設計和硬件電路實驗板設計。軟件程序設計主要包括手機應用控制程序和電路實驗板的控制程序;硬件設計主要包括電路實驗板的設計、選型、制作和調試。平臺采用wifi模塊進行通訊,用戶通過APP軟件控制電路實驗板。實驗平臺的結構示意圖如圖1所示。
基于機智云平臺的物聯網實驗平臺硬件設計方案框圖如圖2所示,主要包括STM32最小控制系統及下載啟動電路的設計,通訊模塊和輸出顯示模塊的設計。
基于機智云平臺的物聯網實驗平臺軟件設計主要采用JAVA語言編寫Android軟件,根據不同的頁面操作控制實驗平臺。系統設計主要分為STM32核心控制系統、WIFI通訊模塊以及軟件APP三大部分。
2 系統平臺硬件設計
平臺的硬件設計主要包括STM32最小工作模塊的設計、WiFi通訊模塊的設計、輸出模塊的設計以及其他電路模塊的設計。
2.1 STM32最小工作模塊
本系統采用STM32F103系列的芯片作為主控芯片,根據資料手冊,STM32控制電路設計設計了STM32最小系統,包括復位電路、時鐘電路、電源電路。
2.2 WiFi通過模塊
系統平臺的APP軟件與實驗平臺采用WIFI方式進行數據傳輸。本系統采用樂鑫esp8266-12F串口轉WIFI模塊。使其可通過GPIO口集成傳感器及其他應用的特定設備,實現了最低前期的開發和運行中最少地占用系統資源,能支持WPA/WPA2安全模式,內置TCP/IP協議棧,內置低功率32位CPU。
2.3 控制輸出模塊
為了豐富實驗效果,平臺提供了多種輸出方式,學生通過應用程序控制不同的輸出電路輸出相應的現象。根據電路原理,系統的輸出模塊包括LED輸出、繼電器控制輸出和數碼管輸出等多種輸出方式。
2.4 其他工作模塊
一個完整的控制系統除了輸入輸出模塊、單片機最小系統之外,還需要其他輔助電路,包括下載調試電路、串口轉換電路和濾波電路等。
3 系統平臺軟件設計
平臺的軟件設計主要包括手機應用控制軟件程序和實驗平臺的電路控制程序的編寫。系統的軟件服務主要依托于機智云。機智云是一家智能硬件自助開發和物聯網云服務平臺,面向企業/開發者提供智能硬件PaaS及SaaS云服務,是一家物聯網云服務提供商。我們在開發完成軟硬件服務程序后接入機智云平臺即可。
3.1 電路控制程序
系統的電路控制程序主要完成單片機的初始化、wifi模塊的初始化以對應用控制程序傳來的數據進行處理和計算,同時需要編寫事件驅動程序,完成對設備的控制。以點亮一個LED為例,我們需要初始化單片機的IO管腳,然后根據接收到的數據進行判斷輸出高低電平即可。部分代碼如下。初始化一個單片機IO口的程序如下:
void GPIO_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能PB端口時鐘
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8; //LED0-->PA.8配置
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP; //輸出
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; //IO口50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //參數初始化
GPIO_ResetBits(GPIOB,GPIO_Pin_8); }LED的點亮和熄滅程序如下:
GPIO_ResetBits(GPIOB,GPIO_Pin_7);//滅
GPIO_SetBits(GPIOB,GPIO_Pin_7);//亮
3.2 應用控制程序
應用控制程序主要包括頁面的設計和后臺業務邏輯的設計。根據平臺的輸出設計,需要對LED、繼電器、數碼管等元器件進行控制。以點亮一個LED為例,程序通過判斷按下的按鈕是開還是關來設置變量的值,單片機通過接收到變量的值再進行判斷LED燈是開啟還是關閉。部分代碼如下。
if(read==0x01)
{
currentDataPoint.valueswitch01=1;
}
else
{
currentDataPoint.valueswitch01=0;
}
if(0x01 == currentDataPoint.valueswitch01)
{
GPIO_SetBits(GPIOB,GPIO_Pin_8); //亮
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_8);//滅
}
4 實驗設計
本平臺提供基于STM32的最小開發系統外,還提供了部分外設功能,適合學生由淺到深地了解單片機的原理。學生不僅可以進行基礎的實驗操作,還可以根據需求自己進行設計。此外系統引出了STM32芯片的所有I/O口資源,學生可以自行設計和創新。表1是本實驗平臺提供的部分實驗。
5 總結
經過試驗測試,系統運行結果良好,學生可以通過手機應用程
序控制實驗平臺上的輸出模塊。由于嵌入式系統自身的特點決定了
學習的困難性,本平臺提供了單片機最小系統和物聯網基礎實驗,
方便學生掌握基礎知識;了解物聯網系統設計的設計流程與思路。
參考文獻
[1] 李寧,卞祥.基于機智云的智能宿舍系統設計[J].物聯網技術,2016(02):59-60.
[2]孫書鷹,陳志佳,寇超.新一代嵌入式微處理器STM32F103開發與應用[J].微計算機應用,2010,12:59-63.
[3]錢志鴻,王義君.物聯網技術與應用研究[J].電子學報,2012(05):1023-1029.
(來自網絡,侵刪)
|