顯示具有 Raspberry-Pi 標籤的文章。 顯示所有文章
顯示具有 Raspberry-Pi 標籤的文章。 顯示所有文章

2025年10月1日 星期三

[Automation-tool]如何自建MCP server並串接到本地端的n8n工作流中?

 


在當今由大型語言模型(LLM)驅動知識和工具的時代,如何讓LLM能夠有效地結合外部工具和API溝通,成為了自動化流程中的關鍵一環。n8n作為一個強大的開源工作流自動化平台,提供了無限的可能性,只待創作者的創意和想像力了。有別於利用n8n中的MCP Server節點(MCP Server Trigger node )來串接應用服務,本文主要說明如何透過python搭配uv自建一個輕量級的MCP Server,使其串接和風天氣(qweather)應用服務,同時藉由n8n AI agent工作流中的MCP Client節點(MCP Client Tool node)來調用該自建的MCP Server,等同為本地端n8n開了外掛(Plugin),賦予工作流中的AI Agent根據使用者提問自行判斷是否調用外部工具的能力,如本文影片所演示。

2025年9月22日 星期一

[Open-source tool] 如何設定Node-RED的使用者登入權限功能?

 


使用 Docker 部署 Node-Red 時,預設情況下是 沒有帳號密碼驗證 的。這意味著只要能訪問該Node-Red網頁,都能直接編輯和修改流程。因此在實務應用中,啟用使用者驗證機制是必要設定,確保具備權限的用戶才可以登入和操作Node-Red工作流後台。本文將以 Raspberry Pi + Docker 部署 Node-Red 為例,介紹如何設定使用者登入權限功能。

2025年9月11日 星期四

[Open-source tool] 如何利用 docker compose 安裝 Superset 並連接MySQL的Sakila資料庫?


Apache Superset 是一款 Apache 基金會的開源資料視覺化與商業智慧(Business Intelligence, BI)平台。其設計目標是提供一個輕量級、可擴展、易於部署的資料探索與儀表板工具,讓使用者能透過簡單直觀的操作來分析與呈現各種數據。其核心是基於 Python 與 Flask Web 框架構建,並支援連接各種 SQL 資料庫,如 MySQL、PostgreSQL、Oracle、SQLite、Snowflake、BigQuery 等。前端則採用 React.js 與 Apache ECharts 進行互動式圖表與儀表板渲染,提供高度可自訂的視覺化能力。另外,其能與 Docker、Kubernetes 等容器化平台整合,具備水平擴展能力,方便企業在既有基礎架構中導入。

2025年6月16日 星期一

[Automation-tool]如何整合ngrok免費靜態網域和n8n工作流來建置AI LINE Bot?


延續<[Linux]申請一個Ngrok的免費網域作為webhook使用>文章,本文進一步整合ngrok,n8n和Line bot,主要是利用ngrok的免費靜態網域作為本地端n8n的webhook, 使其可監聽使用者的LINE輸入訊息,並使內建AI agent 模組的n8n工作流來回覆使用者的輸入訊息。換言之,Line 介面作為前端,n8n工作流作為後端,藉由webhook串接前後兩端,以達到AI Line bot問答機器人的功效,如上述影片所示。

2025年5月18日 星期日

[Linux]申請一個Ngrok的免費網域作為webhook使用

為了讓一些本地端服務可長期用於監聽事件(event)並觸發(trigger)相應工作,Ngrok隨機產生暫時性的webhook URL是不合適的,因經實際測試,隨機產生的webhook URL開啟超過24小時就失效了,僅僅只能用於開發簡單測試用,如該篇參考文章

然而Ngrok針對免費用戶有提供一個固定網域的webhook,免費額度看來也相當充裕,使得上述的需求可以被滿足,配置環境和實作步驟如下。

2025年3月21日 星期五

[Raspberry Pi]如何將無頭虛擬顯示器服務(headless display)建置在樹莓派的Ubuntu桌面作業系統中?

 

在樹莓派,嵌入式系統以及IoT的應用中,為了減少對實體顯示裝置的依賴並降低硬體維護成本,無頭顯示(headless display)的需求相對重要,特別是在無頭(headless)環境下,卻需要運行作業系統的桌面應用時。解決無頭顯示的方案分為硬體和軟體方式,硬體方式是直接在被控端插入HDMI欺騙器,本文則著重於軟體方式,利用安裝和配置虛擬顯示器服務於被控端中,兩個方式的目的都是為了讓作業系統認為已連接實體顯示裝置,從而允許遠端訪問桌面應用。

2024年12月29日 星期日

[Raspberry Pi]如何將看門狗(WatchDog)服務建置在樹莓派的Ubuntu作業系統中?

看門狗(WatchDog)服務常應用於連網的嵌入式邊緣設備等IOT裝置和實體伺服器,主要是若這些連網裝置分散在各個應用環境中執行對應任務,例如感測物理數據,監控影像數據或執行各式Docker服務,當連網裝置因故異常,同時又處於無人值守而無法手動重啟的狀態下,此時看門狗(WatchDog)服務可根據設定條件,協助連網裝置自動重啟並恢復到執行對應任務的狀態。


看門狗(WatchDog)的運作原理是一個計時器(timer),若連網裝置的系統運行符合設定條件,即表示系統運行正常,守護程序則定期復位該計時器,使系統持續運作不重啟,俗稱"餵狗";反之,若系統運作不正常而超時,則系統重啟。另外,看門狗服務分為軟體式和硬體,相較於軟體式看門狗,硬體式看門狗指的是有一個獨立硬體模組嵌入在裝置的晶片中,實現當系統完全死當時,也可自動重啟的功能。本文將利用樹莓派已具備看門狗硬體模組,在Ubuntu作業系統中設定和運行看門狗(WatchDog)服務。


2024年12月15日 星期日

[Python]如何利用Flask搭建一個Web服務器,並透過Ngrok訪問來實現LINE Bot功能?

 


Flask 是一個輕量級的Web框架,主要用於建立基於Python的Web應用和API。它可搭建webhook本地服務器,同時提供靈活的URL路由和HTTP請求處理方式,允許開發者快速啟動並測試應用功能。由於其結構簡單,開發者常用其作為建立和測試 MVP(最小可行性產品),同時其也非常適合新手作為入門學習Web開發的工具之一。

本文利用樹莓派4B搭建Flask和Ngrok來實現簡易的LINE Bot功能,其中Ngrok的安裝和建置可參考此篇文章,本篇主要著重在Flask環境建置和程式碼的部分。

2024年9月9日 星期一

[Linux]如何將腳本(shell script)轉換到系統管理服務器(systemd service)來運行?


在Linux中,shell腳本(shell script)常用於運行各種自動化的流程,包含API串接,設置和啟動應用服務等等,腳本語法也相對易學易讀,因此頗受大部分使用者的喜愛。但若需要讓shell腳本能長期穩定運行,則建議將shell腳本轉換到系統管理服務器(systemd service)來運行,將有下列幾個優點,使得該服務的運作可有效被systemd管理。

1.Linux系統啟動後,可自動啟動。
2.服務異常退出後,可自動重啟。
3.透過journalctl集中管理該服務的日誌(log),可用於問題測試和偵錯。

上述影片即是一個實際案例,其利用shell腳本將樹莓派的溫度和電壓數值以固定週期傳到influxdb中,同時若溫度過高或電壓過低,則會藉由line notify發出提醒訊息,期望藉由該服務長期監控樹莓派的運作是否穩定,若有異常進程導致溫度過高或電壓過低,則可立刻查閱日誌並及時處理。話不多說,一起來看看如何將該shell腳本轉換到systemd service中。

2024年8月14日 星期三

2024年8月2日 星期五

[Python]如何在Ubuntu中建置python venv虛擬環境,並安裝TensorFlow和OpenCV函式庫?

為了在樹莓派上實現物件影像辨識功能,同時不影響樹莓派原來的python運行環境,選擇建置python虛擬環境[Note1]是一個好方式,其可避免版本衝突和不同運行環境的問題。另外,一併在該虛擬環境中安裝TensorFlow[Note2]和OpenCV[Note3]等等函式庫,並確認版本是否符合需求。

建置python虛擬環境

建置python虛擬環境有venv, virtualenv, conda等方式,其中venv最為簡單易用,也符合此影像辨識的項目需求,建置步驟如下:

1.安裝python venv虛擬環境庫
raspberry@raspberry-desktop:~/python-venv$ sudo apt install python3-venv
2.建立名稱為tensorflow_env資料夾
raspberry@raspberry-desktop:~/python-venv$ python3 -m venv tensorflow_env
3.啟動tensorflow_env的python venv虛擬環境 
raspberry@raspberry-desktop:~/python-venv$ source tensorflow_env/bin/activate

2024年6月18日 星期二

[Raspberry Pi]如何利用docker執行motioneye,並利用Line Notify取得即時通知和照片?

 


無意間,翻了一本關於樹莓派的書籍,除了樹莓派的簡介和應用外,也包含初階和高階的Linux運作邏輯,書籍結構相當完整,也因此需要花時間細細體會其內容。其在樹莓派的應用內容,提及一款開源影像監視軟體motioneye,motioneye具備運動偵測,即時拍攝照片和錄影,以及發送警報通知等功能,同時其可在瀏覽器上直接設定和管理攝像頭,相當方便。

利用docker將motioneye安裝在Ubuntu作業系統的樹莓派上,並搭配一個USB Camera,就是一個簡易型的家用監控設備。

2024年3月23日 星期六

[Open-source tool]Uptime-kuma的簡介和安裝於Ubuntu 22.04系統


Uptime-kuma 是一個基於Node.js的開軟軟體,同時也是一套應用於網路監控的開源軟體,其利用瀏覽器呈現直觀的使用者介面,圖一所示,其讓使用者可監控各種網路服務的性能和狀態,例如http(s), Ping, MQTT和SQL等服務,如圖二所示。同時也提供警報和通知功能,例如郵件或Line通知,以便在發生故障或問題時及時通知用戶,可參考圖三。

2024年3月16日 星期六

[Linux]如何在Ubuntu 22.04系統安裝Node-red?

Node-red是一個建立在Node.js上的視覺化程式設計工具,其常見的應用情境為建置或轉換各項硬體之間的通信協定的物聯網或工聯網場域,其可藉由設置來安裝第三方應用模組來建置多樣的通信協定節點,包含modbus in/out, mqtt in/out, websocket in/out等等通訊協定,以及解析常見的數據格式,包含csv, JSON等等,進而組建具備控制硬體設備,傳輸和運算數據等功能的物聯網架構。

2024年3月9日 星期六

[MQTT]Mosquitto的權限管理_使用者/密碼(pwfile)和訪問控制清單(aclfile)

延續Mosquitto的內網連接(intranet)和使用者/密碼權限設置文章,經解讀mosquitto官網文檔,在權限管理部分,除了設置使用者/密碼(pwfile)之外,還有訪問控制清單(Access Control List, aclfile)可以設置。經過測試,同時設置使用者/密碼和訪問控制清單,對於權限有實質的控管效果。

a.設置使用者/密碼文件(password_file)

如同Mosquitto的內網連接(intranet)和使用者/密碼權限設置文章,先行建置一個空白的password_file,並將兩位使用者user1和user2以及對應密碼設置於該文件中。

sudo touch password_file
sudo mosquitto_passwd -b password_file user1 password1
sudo mosquitto_passwd -b password_file user2 password2

2024年3月6日 星期三

[MQTT]Mosquitto的內網連接(intranet)和使用者/密碼權限設置

延續[MQTT]Mosquitto的簡介、安裝與連接測試文章,接著將繼續測試在內網的兩台機器是否也可以完成發佈和訂閱作業。

同一網段的兩台電腦測試:

假設兩台電腦的配置如下:

A電腦為發佈端兼broker角色,IP:192.168.0.101
B電腦為訂閱端,IP:192.168.0.102

2024年3月2日 星期六

[MQTT]Mosquitto的簡介、安裝與本機連接測試

MQTT(Message Queuing Telemetry Transport)是基於發布/訂閱模式(Publish/Subscribe)的輕量級網絡通訊協議,專用於在低帶寬、不可靠的網絡環境中傳輸數據,關於工作原理和優點如下:

1.發布/訂閱模式(Publish/Subscribe)

發布者將消息發布特定的主題(topic)到中介伺服器(broker),而訂閱者可藉由訂閱主題而從中介伺服器接收對應的數據,同時發佈者和訂閱者可相互不認識。

2.中介伺服器(Broker)

中介伺服器接收來自發布者的消息並將其轉發給訂閱者。

2023年11月23日 星期四

[Raspberry Pi]如何利用ssh遠端將樹莓派切換連接至陌生的wifi基地台?

當已習慣使用VNC遠端控制樹莓派後,原用來設定樹莓派的電腦螢幕和鍵盤也逐漸挪為它用。此次攜帶樹莓派外出,同時又希望使樹莓派連接當地的wifi AP,利用VNC遠端桌面切換新的wifi AP需要重新設定wifi密碼,但卻無法在VNC遠端桌面看到密碼驗證視窗。

經查閱和測試,利用ssh遠端並搭配nmcli終端機指令,可達到不須額外外接螢幕和鍵盤,即可切換到陌生的wifi AP,該次測試的樹莓派環境為Ubuntu 23.04 Desktop版本。

2023年11月4日 星期六

[Open-source tool] 可搭配PHP和SQL的表單開源工具_Form tools(4):Add Form by Internal Type and Form Builder

 

之前提到Form tools的Internal type和Form builder方式較為受限,因此直接選擇External的direct typecode type來測試。但External的設定方式涉及到較多的前後端程式碼且不易了解,因此有需求者期望能從Internal和Form builder著手,看是否可順利在公司內部導入該系統,並讓同仁回填對應行政表單。(OS: 1. Internal和Form builder方式果然受限,測試期間遇到Linux和publish的坑,在此致謝Books and Pencil的協助 2.看來Form tools開源表單系統真有需求者~~)