Python 線上防護
簡介
網際網路連線無處不在,它不斷發現新的應用,併為舊設計帶來新的生命。在這個小型積體電路裝置擁有 TCP/IP 協議棧和無線連線的時代,人們不再需要獨立的 PC 來利用網際網路。
VAHNZ Controls 開發了其 eBukal[1] 遠端報警裝置,以利用他們對微控制器介面和網際網路協議的知識,為建築自動化領域創造了一個創新的解決方案。
遠端事件撥號網際網路通知
這個想法源於一位客戶在波特蘭一個漫長炎熱的夏天,需要監控辦公樓空調的溫度。辦公室物業經理希望在辦公室溫度變得難以忍受,租戶開始抱怨之前收到警報。該應用程式不僅限於檢測溫度變化,還可與各種輸入裝置(如接近開關和洪水感測器)一起使用。
第一個版本的設計使用 DTMF 音調在辦公室經理的電話上留下數字訊息。除了破譯數字含義的粗糙性之外,呼叫裝置還必須協商接收者語音郵件系統中的時間陷阱,以選擇留下數字反饋的選項。由此產生的系統既不穩健也不美觀。
簡訊似乎是正確的方法,因為任何手機都可以輕鬆接收訊息。大多數無線運營商都維護電子郵件到 SMS 閘道器,並且許多現成的裝置都可以生成電子郵件訊息。我唯一受到限制的是撥號連線的必要性 —— 許多包含監控裝置的地點都無法接收無線訊號。
在提出了使用簡訊的基本想法並選擇元件後,我必須弄清楚如何讓各個部分協同工作。
來自 eBukal 裝置的電子郵件訊息必須在伺服器上進行解析,以確定要通知的收件人和應接收條目的線上日誌。必須將新裝置新增到配置檔案中。必須透過序列埠將諸如閾值、撥打的電話號碼等引數傳送到 eBukal。必須編寫圖形使用者介面 (GUI) 以使現場人員能夠設定裝置。

eBukal 如何用於監控地下室的水況 放大
我知道如何編寫命令列指令碼和 PHP 來進行伺服器編碼,並使用 Perl 進行 CGI,並使用 Visual Basic 進行 GUI,但這次我想做得更好。我想把它做好。
Python - 一站式開發加平臺獨立性
我以前使用過 Python,它似乎有潛力完成所有必需的編碼,並且是一種我喜歡使用的程式語言。我對任務的某些部分,特別是構建圖形使用者介面,不是完全有信心,但決定面對我的恐懼,相信 Python 的成熟度、強大的庫和第三方支援。SPE 編輯器以及 Python 的解釋性性質被證明特別有價值。

基於 wxPython 的 eBukal 訊息配置使用者介面螢幕截圖
經過一些試驗和錯誤後,我確定了最終的概念,使用以下標準庫和第三方模組
- email、time 和 ConfigParser -- 用於電子郵件解析、電話訊息生成以及伺服器端的日誌條目
- cgi 和 sha -- 用於編輯伺服器配置檔案的 CGI 模組
- wxPython 和 wx.xrc -- 用於在 XRCed 中編寫的 GUI
- serial、pickle、ConfigParser 和 time -- 用於 eBukal 設定點下載的序列通訊庫
不幸的是,沒有使用 Python 語法的 PIC 編譯器;如果存在這樣的工具,這個迴圈就完成了。因此,微控制器程式碼是用 PicBasic Pro 編寫的,PicBasic Pro 是 MicroEngineering Labs, Inc 的一種流行的商業產品。

eBukal 線上事件日誌的螢幕截圖,紅色為警報,日常診斷為資訊性訊息 放大
這次冒險得到了回報。該系統執行良好,並且可以新增許多附加功能:伺服器日誌記錄功能、每日診斷和線上配置。Python 提供的功能超出了我的要求,並且根據正在使用的庫模組中功能的可用性添加了一些功能。
總結
這可能還不是 VAHNZ Controls 的殺手級應用程式,但我認為選擇 Python 程式語言是朝著正確方向邁出的一步。技術總是在不斷發展,沒有人知道接下來會發生什麼,但我相信 Python 會在那裡準備好迎接挑戰。平臺獨立性是另一個值得高興的方面 —— 在當今的環境下,將所有籌碼押在一位玩家身上可能比以往任何時候都更冒險。
有關更多資訊,請訪問 VAHNZ Controls 線上網站 eBukal.vahnzcontrols.com 或聯絡 info at vahnzcontrols.com。