Python 站岗
引言
互联网连接无处不在,它找到了新的应用,并为旧的设计注入了新的活力。在这个微型集成电路设备拥有 TCP/IP 堆栈和无线连接的时代,人们不再需要独立的 PC 来利用网络。
VAHNZ Controls 开发了其 eBukal[1] 远程报警设备,以利用他们对微控制器接口和互联网协议的知识,为楼宇自动化领域创造了创新的解决方案。
远程事件拨号互联网通知
这个想法源于一位客户在波特兰一个漫长炎热的夏天,需要监控办公楼空调的温度。办公室物业经理希望在办公室温度变得难以忍受、租户抱怨之前得到警报。该应用不仅限于检测温度变化,还已用于各种输入设备,例如接近开关和洪水传感器。
设计的第一版使用 DTMF 音调将数字消息留在办公室经理的电话上。除了难以破译数字的含义之外,呼叫设备还必须克服接收者语音邮件系统中的时序陷阱,才能选择留下数字反馈的一个选项。由此产生的系统既不健壮也不美观。
短信似乎是正确的选择,因为任何手机都可以轻松接收消息。大多数无线运营商都维护电子邮件到短信网关,并且许多现成的设备都可以生成电子邮件。我只受到拨号连接的限制——许多包含受监控设备的地点都无法接收无线信号。
想出使用短信的基本想法并选择组件后,我必须弄清楚如何让各个部分协同工作。
来自 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 编写的,这是一个来自 MicroEngineering Labs, Inc 的流行商业产品。

eBukal 事件在线日志截图,红色显示警报,每日诊断显示信息消息 放大
这次冒险得到了回报。系统运行良好,还可以添加许多附加功能:服务器日志功能、每日诊断和在线配置。Python 提供的超出了我的要求,并且根据所用库模块中功能的可用性添加了一些功能。
总结
这可能还不是 VAHNZ Controls 的杀手级应用,但我认为选择 Python 编程语言是朝着正确方向迈出的一步。技术总是在不断发展,没有人知道接下来会发生什么,但我相信 Python 将随时准备迎接挑战。平台独立性是另一个值得高兴的方面——在当今环境下,将所有筹码押在一个玩家身上可能比以往任何时候都更具风险。
欲了解更多信息,请访问 VAHNZ Controls 在线网站 eBukal.vahnzcontrols.com 或联系 info at vahnzcontrols.com。