Professional Documents
Culture Documents
基于Qt的地铁站智能照明系统软件设计与实现
基于Qt的地铁站智能照明系统软件设计与实现
基于Qt的地铁站智能照明系统软件设计与实现
Istelligest Lightisg System Software for Subway Statios Based os Qt
潘志安高知林秦华旺谢鑫 (南京理工大学自动化学院,江苏南京210094)
摘要:随着轨道交通在我国大中型城市的普及,轨道交通公共区域照明节能设计愈发迫切,而传统的照明控制并不能满
足“节能、增效、环保”的要求,智能照明系统的呼声越来越高。针对这一现状,利用Qt开发工具,根据智能照明系统设计方案
开发了一款上位机软件,该软件可实现对照明系统的远端控制、故障排查等功能,充分考虑了照明使用效率并兼顾照明舒适
度⑴遥软件运行稳定,人机交互性好遥
关键词:轨道交通;智能照明系统;Qt;上位机软件
Abstract:With the popularity of rail transit in China's large and medium-sized cities,the lighting energy-saving design of
rail transit public areas is becoming more and more urgent. However,the traditional lighting control can not meet the require
ments of "energy saving,efficiency increasing and environmental protection",so the voice of intelligent lighting system is be
coming higher and higher.In view of this situation,this paper uses Qt development tools,according to the intelligent lighting
system design scheme to develop a PC software,the software can realize the lighting system remote control,troubleshooting
and other functions,fully considering the lighting efficiency and lighting comfort⑴.The software runs stably and the human-com
puter interaction is good.
Keywords:rail transit,intelligent lighting system,Qt,PC software
Qt的相关理论与技术
i.i Qt框架简介 蜿计节的敌匱和故牌益萸I
Qt是一个跨平台的图形用户界面应用程序框架 ,它主要用
于桌面程序开发和嵌入式开发 。开发人员可以根据不同的需求,
用户册与背眾机制
灵活地选择合适的语言进行开发。Qt是面向对象的,所有的主 图1程序总体结构
界面都会从这三个类:QWiget、QMainWindow、QDialog中的一
3软件设计
个继承而来,并在main函数里生成实例并show岀来。而Qt最 3.1串口通信功能实现
大的特性就是可移植性强,具有“一次开发、多处编译”的特点,
在Qt中预设有与串口相关的板块sarialport,该板块中封
在不同的开发平台上解决了软件移植性的问题。
装多种与串口设置相关的类遥通过对串口波特率 、数据位、奇偶
1.2信号与槽 位、停止位、控制流等参数的设置,配置好与下位机的串口连接遥
信号和槽机制是Qt的核心机制,可以让编程人员将互不相 串口设置界面如图2所示遥
关的对象绑定在一起,实现两个对象之间的通信。信号与槽是观
通过以上设置,我们可以实现电脑与工控下位机的串口通
察者模式的一种体现,例如,若要将一个窗口部件的变化情况通
信, 由工控下位机发通过串口发送检测到的数据到上位机 (电
知给另一个窗口部件,则一个窗口部件发送信号,另一窗口部件
脑冤,在使用Qt的开发的界面接收数据,然后截取并显示数据遥
的槽接受此信号并进行相应的操作,即可实现两个窗口部件之
进而做到对灯具状态信息(当前亮度、功率、状态)的数据接收与
间的通信。因此,信号与槽机制在一定程度上也增强了对象通信
显示,反应灯具照明系统的实时情况遥
间的灵活性叫
114 基于Qt的地铁站智能照明系统软件设计与实现
emit lampCtrl(ui->currentLumin->text());
)
3.3统计节能数据和故障监测
利用 Qt 关于数据库的板块 SQL, 该板块包括有与使用数
工旨車口 卯曰」』述I 囂矍弓口亍射先戋囱丰□:■ 据库功能的相关类, 调用相关类实现数据库的连接、打开、储存
吊□号 的操作,这里我们根据本项目的需求量要求,选择了轻量化数据
浪特痢帕凶 * 库 SQLITE 数据库。 在上位机上设置有数据库, 用于存储灯具状
态信息。工控主板将采集到的数据反馈到上位机,上位机将数据
进行存储,能够更加清晰地了解各灯具的情况。目前的存储信息
格式为“灯具状态-灯具亮度-灯具功率-灯具耗电量”, 并根据
时间段统计耗电量和故障率统计。 相关界面如图 5 所示:
图2串口设置界面
3.2灯具状态信息实时监测与控制
本软件通过与下位机实时通信来获取灯具状态信息,同时
通过控制切换模式来实现照明系统的智能控制和手动控制 。 手
动控制模式下可实现单灯控制, 而智能控制模式下则是通过红
外传感器来获取人流量信息来自动调剂灯具亮度 。同时通过红
外传感器,其监测和控制界面如图 3 所示:
图3灯具状态信息界面
单灯控制界面如图 4 所示:
图5统计节能数据和故障监测
故障灯具实时报警数据如图6所示:
图6故障灯具实时报警界面
3.4用户注册和登录
本系统采用权限管理机制,只有通过系统注册账号后才能
使用。 初次使用者需要首先转入注册界面进行注册, 获得账号
图4单灯控制界面
后,返回登录界面输入注册的账号密码,进入操作主界面。
其部分实现代码如下:
对于系统的登录功能,同样采用建立数据库的方式完成,注
void LampInfoDialog::on_switchBtn_clicked()
册账号即是加入新的用户信息到数据库, 而登录即是在数据库
{
if(ui->currentState->text()=="故障") 中查找对应的注册数据,从而实现登录功能 。
ui->switchBtn->setEnabled(false); 功能代码如下:
else void MainWindow::on_pushButton_register_clicked()
if(ui->switchBtn->getCheck()) {
{ int a — 1;
ui->luminLevel->setEnabled(true); if (ui->lineEdit_setUserName->text ().isEmpty ()lui->lineEd-
ui->luminLevel->setCurrentText("100%"); it_setPassword->text ().isEmpty ()lui->lineEdit_surePassword->
ui->currentLumin->setText("100%"); text ().isEmpty ())
) {
else QMessageBox::warning (this,"警告",义用户名和密码不能为
{ 空!!!");
ui->currentLumin->setText(""); )
ui->luminLevel->setEnabled(false); else
) {
《工业控制计算机》2020年第33卷第10期 115