VitaBox AD

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)

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

2024年2月15日 星期四

[Excel]如何限制儲存格輸入格式? 以"字首為英文字母大寫,其餘為數字,共15碼"為範例

 

需求:

當一個excel表格需要由多位使用者來輸入資料時,難免會出現資料輸入錯誤問題,尤其是料號,品號或是訂單號的長類型編碼。若是問題屬於輸入錯誤"資料"但格式未錯誤,則可能需要讓excel做編碼遞增或遞減等等參照編碼原則的方式來檢核,這得視編碼原則內容而定;若是問題屬於輸入錯誤"格式",則可利用excel中資料驗證功能的自訂函式來設定,同時自訂函式可依需求設定輸入格式提示描述和錯誤格式提示描述。本文處理的是輸入錯誤"格式"問題。

2024年1月11日 星期四

[ESP32]在Thonny IDE中,如何將MicroPython firmware燒錄到ESP32開發板中?


正常安裝流程,可參考上述影片。然而,本篇文章主要是紀錄安裝過程遇到的bug, 供未來查詢用,也一併供有需要的同好參考。

2023年11月26日 星期日

[C#]在Mdi模式中,如何利用子窗體事件操控父窗體的特定控件

 


關於在Mdi模式中,利用子窗體的特定事件操控父窗體的特定控件,將有助於使用者體驗(UX)和軟體的流程。本文範例的操作效果如上述視頻,其中Form1為父窗體,其具備ToolStripMenu功能。該範例的流程邏輯為當開啟a子窗體並輸入正確密碼,才能解鎖父窗體中的b子窗體開啟按鈕,進而讓使用者可以順利開啟b子窗體,反之密碼錯誤,則無法解鎖父窗體中的b子窗體開啟按鈕。

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月21日 星期二

[Excel]如何取得多項式擬合的R平方值(R-squared)?

 


延續<[Excel]如何取得趨勢線的參數值>一文,有網友提問,如何進一步提取多項式擬合的R平方值(R-squared),並期望隨著參數調整而即時動態取得。經查詢LINEST的語法說明,藉由陣列形式和設定stats為True,可提取動態R平方值(R-squared)。

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開源表單系統真有需求者~~)

2023年10月26日 星期四

[ESP32]如何透過Modbus和Serial port擷取工業數顯表頭資料?

 

對於既有老舊的工業或實驗設備機台,嵌入工業數顯表頭並顯示設備運作參數和數據,以讓巡檢人員或操作人員手抄記錄數據,是常見作法。然而,若可將既有設備機台的表頭更換為具備Modbus通訊功能的表頭,並連接便宜的單晶片開發板,使其自動即時顯示運作參數和紀錄數據,將可釋放巡檢和操作人力並避免手抄錯誤。甚至可進一步連結網路,讓既有老舊的設備機台升級為IIOT設備。

2023年10月16日 星期一

[Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例

在群組中看到上述問題,研判應是一份隨月份變動的產品報價表單,空白欄可能表示該月份價格與上個月份一致。這個問題是需要取得最近一次單價和倒數第二次單價,常用且實務的excel案例值得紀錄。

2023年10月15日 星期日

[Excel]如何製作具備關鍵字搜索功能的下拉式選單?

 


利用Excel建立下拉式選單功能,讓使用者得以簡易並快速完成選項需求,然而,若下拉式選單的內容過於冗長,將使簡易並快速完成選項需求的初衷大大折扣,具備簡易搜索功能的下拉選單可以解決這個問題,如影片所示。更重要的是,僅需利用Excel的常用函數和資料驗證視窗,即可完成建立搜索功能的下拉選單,您說CP值夠不夠高?

[Excel VBA]判斷英文字母是否為大寫

 

在Excel VBA中,利用ASC 指令可以取得ASCII碼,將可應用於判斷字元的屬性。

本文利用asc指令製作一支簡易的VBA程式,用以判斷英文字母的大小寫,功能為若原資料為英文大寫字母,則輸出資料為空一格+原資料。程式碼如下,供各位參考。