Quantcast
Channel: CAVEDU教育團隊技術部落格
Viewing all articles
Browse latest Browse all 678

Arduino程式專題教學📦 智慧物流!打造屬於你的 Smart Warehouse 系統(上篇) | RaspberryPi pico

$
0
0

想了解智慧物流與倉儲系統是如何運作的嗎?在這支影片中,我們將教你使用 Raspberry Pi Pico 打造一個簡單又實用的智慧倉儲模型,結合程式設計與創意,讓你實作出智慧物流專題!

在這篇文章中,我們將分享如何利用Raspberry Pi PICO W 開發板,結合溫濕度感測器、OLED顯示器以及RFID讀取器,開發智慧倉儲應用的物聯網專案。這個專案不僅適合作為學習感測器偵測與程式開發,也可以實現在網頁顯示目前的倉儲環境監測、物品存取控制等實際應用功能。

文章大綱如下:

  1. 什麼是智慧倉儲(Smart Warehouse)?為什麼重要?
  2. 簡單介紹 Smart Warehouse 的概念:
  • 自動化分揀
  • 智能監控
  • 即時數據處理。
  1. 用 Raspberry Pi Pico W 實現智慧倉儲功能!
  • 硬體接線
  • 程式下載
  • 軟體環境設置及燒錄程式碼
  • 成果展示

 

撰寫/攝影 許鈺莨
時間 1小時 材料
  • Raspberry Pi Pico W 開發板
  • RK-Pico擴充板
  • DHT 22 溫溼度感測器
  • OLED 0.96吋顯示器
  • RC522 RFID讀取模組

購買連結:
https://robotkingdom.com.tw/product/rk-aiot-education-kit-005-picow/

難度 2(滿分5)

 

 

什麼是智慧倉儲?為什麼重要?

智慧倉儲 (Smart Warehouse) 是一種融合高科技的倉庫管理方式,它利用先進的設備和技術,如感測器、自動化機器、人工智慧,來提高物流效率、降低出錯率。

為什麼智慧倉儲這麼重要呢?

  • 提高效率:人工處理貨物耗時又容易出錯,智慧倉儲可以讓包裹自動分揀,速度更快。
  • 降低成本:減少人力需求,降低營運成本。
  • 實時監控:貨物的存放、進出都能掌握得一清二楚,避免丟失或出錯。
  • 客製化需求:面對複雜的訂單需求,智慧倉儲能快速調整並滿足。

 

簡單介紹 Smart Warehouse 的概念

1、自動化分揀

想像一下,每一個包裹就像坐上過山車,經過感測器掃描後自動分送到正確的地方。這就是自動化分揀!透過感測器和輸送帶,智慧倉儲讓貨物流動更快、更準確。

2、智慧監控

智慧倉儲能隨時追蹤每一件貨物的位置,幫助管理人員實時掌控倉庫情況。如果有溫度、濕度要求的貨物(像是食品或藥品),智慧監控系統也能幫助保持最佳環境!

3、即時數據處理

貨物進出倉的數據能夠即時記錄和分析,讓倉儲管理更透明、更高效。

舉個例子:當某款熱門商品庫存即將不足時,系統會立即提醒補貨。

 

用 Raspberry Pi Pico W 實現智慧倉儲功能!

  • 硬體接線

將Raspberry Pi Pico W 開發板接上RK-Pico擴充板後再接上RC522 RFID讀取模組、DHT22溫濕度模組、OLED顯示器等模組,為了方便讀者接線,故下列模組接線圖分別繪製。

RK-Pico擴充板接上RC522 RFID讀取模組

 

RK-Pico擴充板接上OLED顯示器

 

RK-Pico擴充板接上DHT22溫濕度模組

 

程式下載

以下提供完整程式碼載點:

https://reurl.cc/74RWQ9

 

程式開發是使用Arduino IDE 來開發,可以更好靈活的展示”網頁顯示”的功能,下列說明 ”網頁顯示” 的程式碼內容。

在物聯網應用中,實現動態網頁顯示感測器數據或設備狀態是非常實用的功能。本文將展示如何使用嵌入式系統生成即時更新的網頁,並提供使用者友好的介面來監控溫濕度與物品的狀態。

 

動態網頁顯示程式碼包含兩個主要部分:

  • generateHTML() 函式:動態生成 HTML 格式的網頁內容。
  • handleRoot() 函式:處理 HTTP 請求,將生成的 HTML 傳送給客戶端瀏覽器。
  • generateHTML() 函式解析

這是一個負責生成 HTML 網頁內容的函式。它會根據溫度、濕度,以及物品的狀態動態調整網頁的顯示內容。

String html = "<!DOCTYPE html><html>";
html += "<head><meta charset='UTF-8'><title>物品狀態監控</title>";
html += "<meta http-equiv='refresh' content='10'>";
html += "<style>";
html += "body { font-family: Arial; text-align: center; margin-top: 50px; }";
html += "h1 { font-size: 4em; }";
html += "p { font-size: 3em; }";
html += "</style></head><body>";

 

  • <!DOCTYPE html>:指定 HTML5 標準。
  • <meta charset=’UTF-8′>:設定網頁編碼為 UTF-8,確保支援中文等多語言。
  • <meta http-equiv=’refresh’ content=’10’>:讓網頁每 10 秒自動重新整理,實現數據的即時更新。
  • <style>:內嵌 CSS,簡單設計了網頁的排版樣式,讓內容居中並增加可讀性。

 

動態數據顯示部分

html += "<h1>物品狀態監控系統</h1>";
html += "<p>溫度: " + String(currentTemp) + "°C</p>";
html += "<p>濕度: " + String(currentHumi) + "%</p>";
  • 使用變數 currentTemp 和 currentHumi 來顯示目前的溫度與濕度數據。
  • 透過 String() 函式將數值轉換為字串,便於與 HTML 結合。

 

物品狀態顯示部分

if (itemPresent) {
html += "<p style='color: green;'>物品狀態:已上架</p>";
html += "<p>物品名稱: " + itemName + "</p>";
} else {
html += "<p style='color: red;'>物品狀態:已下架</p>";
}

 

  • 根據布林變數 itemPresent 的值,決定顯示物品是否上架:

若物品上架,顯示綠色文字「已上架」,並顯示物品名稱(itemName)。

若物品未上架,顯示紅色文字「已下架」。

 

  • handleRoot() 函式解析
void handleRoot() {

  server.send(200, "text/html", generateHTML());

}
  • HTTP 伺服器回應處理:當用戶端發送 HTTP 請求到伺服器的根路徑(/)時,執行這個函式。
  • send():以 HTTP 200 狀態碼,指定內容類型為 “text/html”,並傳送由 generateHTML() 函式生成的 HTML 網頁。

 

  • 軟體環境設置及如何上傳程式

程式是採用吉哥積木Blockly F2的Arduino IDE撰寫,有興趣的讀者可以到劉老師網站觀看。

Blockly F2 下載處及如何上傳程式可以看這篇教學網站:

https://cavedu.gitbook.io/cavedu/rk005/cheng-shi-zhuan-xie-ruan-ti-xia-zai

 

成果展示

 

 

 

Arduino程式專題教學📦 智慧物流!打造屬於你的 Smart Warehouse 系統(上篇) | RaspberryPi pico〉這篇文章最早發佈於《CAVEDU教育團隊技術部落格》。


Viewing all articles
Browse latest Browse all 678

Trending Articles