智能倉儲管理系統設計與實現
第一章?緒論
1.1 設計背景
物聯網(英文:Internet of Things,縮寫:IoT)是萬物相連的互聯網,即把所有物品通過信息傳感設備與互聯網連接起來,以實現智能化識別、定位、跟蹤、監管等功能。隨著物流業的不斷發展和市場競爭的加劇,倉儲物流管理變得越來越復雜和嚴峻。傳統的倉儲管理方式已經無法滿足現代化物流的需求,需要通過數字化技術來提高倉儲管理效率和質量,降低成本,提升企業競爭力。智能倉儲管理系統的設計背景就是為了解決傳統倉儲管理的瓶頸和問題,通過數字化技術提高倉儲管理效率和質量,實現倉儲物流的高效、精細化管理。智能倉儲管理系統可以提供實時的倉庫儲存位置和貨物信息,實現對貨物的實時監控和跟蹤,在貨物入庫、出庫、移庫等方面實現智能化管理,降低人工操作的錯誤率,提高作業效率,同時提高庫存管理的精度和準確性。此外,智能倉儲管理系統還可以結合物聯網、人工智能等技術,實現對貨物的智能化預測和優化,幫助企業更好地管理物流供應鏈,提高企業的運營效益和市場競爭力。
1.2 設計依據
智能倉儲管理系統的設計依據主要包括以下方面:
1. 倉儲管理需求:隨著物流業的發展,倉儲管理要求越來越高,需要提高倉儲效率和精度,降低管理成本和錯誤率。因此,智能倉儲管理系統應運而生,通過自動化和數字化的手段,提高倉儲管理的質量和效率。
2. STM32硬件平臺特點:STM32是一種低功耗、高性能的微控制器,具有強大的計算和處理能力,可廣泛應用于物聯網、智能制造、自動化控制等領域。因此,選擇STM32作為智能倉儲管理系統的硬件平臺,可以提高系統的性能和穩定性。
3. 外圍設備選擇:智能倉儲管理系統需要連接多種外圍設備,如溫濕度傳感器、RFID讀寫器、顯示屏等。在選擇這些設備時,需要考慮到其性能、適配性和可靠性等因素,保證系統的正常運行和數據準確性。
4. 軟件開發技術:為了實現智能倉儲管理系統的各項功能,需要采用適合的軟件開發技術,如C語言或其他高級語言編程、STM32開發工具包和相關的第三方庫、微信小程序/H5頁面/公眾號等技術。同時,還需要考慮到系統的可擴展性和穩定性,以便后期的功能升級和維護。
綜上所述,智能倉儲管理系統的設計依據主要是基于倉儲管理需求和STM32硬件平臺的特點,同時需要選擇合適的外圍設備和軟件開發技術,保證系統的功能實現和運行穩定性。
1.3 設計的主要內容和功能
智能倉儲管理系統的設計主要涵蓋以下內容和功能:
1. 硬件平臺:智能倉儲管理系統的硬件平臺采用STM32微控制器,它具有高性能、低功耗、可靠性高等特點,能夠滿足系統的各項要求。
2. 倉儲管理:智能倉儲管理系統能夠實現貨物的自動識別、分類、計數、存儲、取出等功能,通過RFID技術和傳感器等外圍設備,實現對貨物的實時監控和管理。
3. 溫濕度監測:智能倉儲管理系統還能夠實現對倉庫內溫濕度等環境參數的實時監測,保證貨物的儲存環境符合要求。
4. 系統報警:智能倉儲管理系統能夠實現對倉庫內異常情況的實時監測,并能夠通過報警器等設備及時發出警報。
5. 數據管理:智能倉儲管理系統能夠實現對貨物、設備、環境等數據的收集、存儲、處理和分析,并能夠生成相關報表和統計數據,為管理決策提供支持。
6. 可視化界面:智能倉儲管理系統提供友好的可視化界面,方便操作和管理人員進行實時監控和管理。
7. 遠程控制:智能倉儲管理系統能夠實現遠程控制和監測,使得管理人員能夠隨時隨地對倉庫進行管理和監控。
綜上所述,智能倉儲管理系統的設計主要包括硬件平臺、倉儲管理、溫濕度監測、報警系統、數據管理、可視化界面和遠程控制等功能,旨在提高倉儲管理的效率和精度,降低管理成本和錯誤率。
第二章?設計方案
2.1 設計思路
1. 通過溫度傳感器對環境溫度進行采集,并用實時顯示在 OLED 液晶屏上:
智能倉儲管理系統中,溫度傳感器是用于采集倉庫環境溫度的重要設備之一。通過將溫度傳感器與STM32微控制器進行連接,可以實現對倉庫環境溫度的實時采集。溫度值采集完成后,系統將通過OLED 液晶屏將采集到的實時溫度值進行顯示,方便管理人員及時了解倉庫環境溫度情況。
2. 可以設定一個固定的報警溫度值,達到或者超過該溫度就會報警:
為了確保倉庫內溫度不超過一定閾值,智能倉儲管理系統中可以設定一個固定的報警溫度值。當倉庫環境溫度達到或超過該溫度值時,系統將自動觸發報警功能,提醒管理人員進行處理。
3. 環境溫度超過報警溫度后報警,報警形式包括:蜂鳴器聲音響,LED 燈亮起來:
一旦倉庫環境溫度超過設定的報警溫度閾值,智能倉儲管理系統將會觸發報警功能。報警形式包括蜂鳴器聲音響和LED 燈亮起來,避免管理人員在嘈雜的環境中無法及時發現報警信號。
4. 能夠通過程序動態修改報警溫度閾值:
為了確保智能倉儲管理系統的彈性和可配置性,系統支持動態修改報警溫度閾值。在系統運行過程中,管理人員可以通過程序界面對報警溫度閾值進行動態修改,從而保證報警溫度閾值能夠適應不同的倉庫溫度環境。
5. 通過數字溫度傳感器進行溫度采集:
智能倉儲管理系統中,數字溫度傳感器是用于采集溫度值的重要設備之一。數字溫度傳感器與STM32微控制器進行連接,通過數字信號的方式將溫度值傳輸到系統中。相比于傳統的模擬溫度傳感器,數字溫度傳感器具有精度高、穩定性好、抗干擾能力強等優點,更加適用于倉庫環境溫度的采集。
2.2 系統構成
溫濕度控制器以單片機為控制核心,以溫濕度傳感器為檢測單元,設計完成
溫濕度智能監控系統。當溫濕度傳感器采集到倉庫溫濕度數據后,傳送至單片機,單片機經過處理之后一方面通過液晶屏顯示出來,通過內設報警器及亮燈等裝置,實時的對倉庫內的環境進行檢測和控制。另一方面將采集到的數據記錄下來,上傳到單片機。同時為了保證傳輸數據的準確性,所有的命令和數據都會遵循嚴格的通信協議,從而方便用戶能隨時查看倉庫溫濕度情況,對不同時刻的溫濕度數據進行整理分析。
在本系統設計中,主要由溫濕度采集模塊、控制和處理模塊、通信模塊、執行模塊等幾部分組成。而我們主要考慮的有兩點:控制器的選擇和溫濕度傳感器的選擇。控制器是整個系統的核心,它關系到系統穩定有效的運行,而我們可選范圍有單片機、DSP 等幾種。溫濕度傳感器是整個系統的前端采集單元,負責數據的采集,它是系統構成的基礎,我們可供選擇的方案有傳統的溫濕度傳感器、集成式泗濕度傳感器和數字式溫濕度傳感器等幾種。考慮到實際運用中不僅要求統運行穩定、數據準確等,還對價格、開發周期、使用環境等也提出了比較高的要求,所以我們的首要任務是選擇適合現場環境的的溫濕度傳感器以及性價比的內核控制芯片。
圖1、系統的構成成分
第三章 系統設計與實現
學校提供的現成STM32硬件板子,使得我們可以直接進行程序的設計和編寫,無需關注硬件方面的問題。這在學習和開發嵌入式系統方面是非常便利的。
在進行程序設計和編寫時,我們需要使用Keil軟件,這是一款專門用于嵌入式系統開發的集成開發環境。在Keil中,我們可以使用C語言來編寫程序,并且可以使用各種庫函數來完成不同的任務。使用庫函數可以減少我們的編程工作量,同時也可以提高程序的可讀性和可維護性。
為了使得程序結構更加清晰和模塊化,我們應該將不同的函數程序、庫函數、中斷服務函數、延遲函數、控制不同模塊的函數等分別放在不同的文件夾中,并設置好每個函數的頭文件和源文件。這樣做可以使得程序的結構更加清晰,也便于我們進行模塊化設計和代碼復用。同時,我們應該盡量避免使用全局變量,以減少程序的耦合度,提高程序的可靠性和可維護性。
圖2、模塊化編程
在逐個添加和編寫控制模塊的函數時,我們需要對每個函數進行測試,并及時檢查錯誤。在進行編譯和運行時,我們應該注意代碼的規范性和正確性,以避免出現一些低級錯誤。如果出現錯誤,我們應該及時進行調試,找出問題所在,并進行修復。
在程序編寫完成后,我們需要將程序燒錄到芯片中進行觀察效果和進行調試。在燒錄程序時,我們應該注意芯片的型號和參數設置,并保證燒錄的程序與硬件板子相匹配。在觀察效果和進行調試時,我們應該仔細分析程序的運行情況,找出問題所在,并及時進行修復。
如果程序運行正常,我們應該編寫下一個函數,并將所有函數添加到主函數中進行測試運行。在進行測試時,我們應該盡可能地模擬各種情況,以保證程序的穩定性和可靠性。如果發現問題,我們應該及時進行修復,直到程序可以正常運行為止。
綜上所述,學校提供的現成STM32硬件板子為我們進行程序設計和編寫提供了很大的便利。在進行程序設計和編寫時,我們應該注意代碼的規范性和正確性,同時也要注意程序的可讀性和可維護性。在進行測試和調試時,我們應該仔細分析程序的運行情況,并及時進行修復,以保證程序的穩定性和可靠性。
圖3、功能實現展示圖
第四章 系統測試
智能倉儲管理系統設計與實現的系統測試是確保系統能夠正常運行,具備穩定性和可靠性的關鍵步驟。系統測試主要包括功能測試和性能測試兩個方面。
在功能測試中,通過模擬實際操作,檢查系統各項功能是否正常。包括系統登陸、倉庫管理、貨物入庫、貨物出庫、庫存查詢、貨物移動、數據統計等模塊的測試。在測試過程中,需要模擬多種不同情況,包括正常操作、異常操作、邊界情況等,確保系統在各種情況下都能夠正常運行并輸出正確的結果。同時,還需要檢查系統是否存在漏洞和安全隱患,確保系統的安全性。
在性能測試中,需要測試系統的響應時間、并發處理能力、負載能力等方面。通過模擬多個用戶同時訪問系統,檢查系統是否能夠及時響應、并發處理,以及在高負載情況下是否能夠保證系統的穩定性和可靠性。
在測試過程中,需要根據測試結果反饋,對系統進行進一步優化和改進。如果存在漏洞和問題,需要及時修復。在系統測試完成后,還需要進行用戶接受測試,讓實際用戶體驗系統的使用情況,以便對系統進行最終的完善和優化。
綜上所述,智能倉儲管理系統的設計與實現的系統測試是確保系統能夠正常運行、穩定可靠的重要步驟。只有通過充分的測試,才能保證系統的質量和穩定性,為實際用戶提供良好的使用體驗。
圖4、手機掃碼顯示和控制界面
第五章 總結
本次基于STM32單片機的智能倉儲管理系統課程設計,通過對STM32單片機的學習和掌握,結合實際應用場景,設計并實現了一套倉儲管理系統。
基于 STM32 單片機的智能倉儲管理系統是一個適合初學者的 STM32 設計,本系統設計包含了 GPIO 的配置、ESP8266 的配置與使用、傳感器 DHT11 的使用、串口發送信息、OLED 顯示等的使用。本系統主要部分即溫濕度采集和 WiFi數據傳輸,比較適合初學者學習理論知識后對知識的總結和融會貫通。 OLED的應用對于本系統是非必要的,一般來講串口輸出調試信息即可作為程序反饋。對于初學者來說如果想要走物聯網這條線,本系統難度適中可以作為一個的煉手的例程。智能倉儲管理系統是一套可無人值守 24 小時不間斷實時監控記錄的自動化監測系統。該系統能對其所在環境的溫濕度進行監測記錄,并將溫濕度數據實時上傳至云平臺,從而達到對該環境的溫濕度進行實時監測控制,并可以在溫濕度異常的情況下實現超限報警。
在設計過程中,首先完成了硬件部分的設計,包括硬件電路的搭建和外圍設備的接口設計。接著,結合Keil軟件進行軟件設計和編碼,實現了系統的各種功能,包括數據采集、數據存儲、數據處理、通信等。最后,通過編寫網頁實現了遠程控制。
通過本次課程設計,我不僅掌握了STM32單片機的基礎知識和應用技能,還深入了解了倉儲管理系統的實際應用場景和需求,同時也鍛煉了我的團隊合作能力和解決問題的能力。
在以后的學習和工作中,我將繼續深入學習STM32單片機的應用,并結合實際應用場景,不斷提升自己的實踐能力和創新能力,為社會做出更大的貢獻。
附?錄
int main(void)
{int temp,humi;//用于存放溫濕度數據char show_text[100],upload_data[100];LED_Init(); //LED燈初始化BEEP_Init(); //蜂鳴器燈初始化DHT11_Init(); //DHT11燈初始化OLED_Init(); //OLED燈初始化USART2_Init(); //USART2燈初始化OLED_Clear (); //開機清屏delay_s(1);//DHT11上電后要等待1s,以越過不穩定狀態while(1){if(DHT11_Get(&temp,&humi)){//如果采集失敗LED_On(LED0);delay_ms(100);LED_Off(LED0);}else{//如果采集成功sprintf(show_text,"Temp:%2d",temp);OLED_ShowString(0,0,(u8*) show_text,16);sprintf(show_text,"Humi:%2d",humi);OLED_ShowString(0,2,(u8*) show_text,16);//通過串口2將溫度濕度數據發送給ESP8266,然后ESP8266會將這份數據發送給服務器//數據格式不能錯!sprintf(upload_data,"/12/dht11/%d_%d\n",temp,humi);USART2_SendString(upload_data);LED_On(LED2);delay_ms(100);LED_Off(LED2);if(temp>=35){BEEP_On();//如果溫度過高(達到29度),就報警}else{BEEP_Off();//如果溫度正常}}delay_s(2); //連續采集溫濕度數據的時間間隔建議不低于2s}
}//每當串口2接收到一個字節數據,該中斷處理函數就會被自動執行一次
void USART2_IRQHandler(void)
{unsigned short cmd;if(USART_GetITStatus(USART2,USART_IT_RXNE)) //判斷是否接收完成中斷{cmd=USART_ReceiveData(USART2);if(cmd=='a'){//發送為a為開燈操作LED_On(LED1);}else if(cmd=='b'){//發送為b為關燈操作LED_Off(LED1);}else if(cmd=='c'){//發送為c開始報警BEEP_On();}else if(cmd=='d'){//靜音BEEP_Off();}
}
}
?年 ???月 ??日