智能家居系统 QT

一 环境范围设置

(1)界面添加新控件

在mainwindow.ui 添加控件:

控件的类型

文本内容

对象名(唯一)

是否有槽函数

QLabel

<温度<

lable_随意

QLabel

<湿度<

lable_随意

QLabel

<光照度<

lable_随意

QPushButton

更新范围

PushButton_range

是 clicked()

控件的类型

当前值

最大值

最小值

对象名(唯一)

是否有槽函数

QSpinBox

0

99

-20

spinBox_temMIN

QSpinBox

50

100

-19

spinBox_temMAX

QSpinBox

0

99

0

spinBox_humMIN

QSpinBox

50

100

1

spinBox_humMAX

QSpinBox

0

3999

0

spinBox_illMIN

QSpinBox

1000

4000

1

spinBox_illMAX

(2)实现”更新范围”槽函数

在mainwindow.h 添加:

#include "daosingleton.h"  // range-1  单例模式类的头文件
//在public下面添加
    void setProgressBarRange(RangeEntity &e);//设置进度条的范围

在mainwindow.cpp 添加槽函数 :

//更新范围按钮 槽函数
void MainWindow::on_pushButton_range_clicked()
{
    //(a) 从界面上获得新的范围range
    RangeEntity range;
    range.temMAX = ui->spinBox_temMAX->value();
    range.temMIN = ui->spinBox_temMIN->value();
    range.humMAX = ui->spinBox_humMAX->value();
    range.humMIN = ui->spinBox_humMIN->value();
    range.illMAX = ui->spinBox_illMAX->value();
    range.illMIN = ui->spinBox_illMIN->value();
    //range-3  修改当前房间的环境范围  -- 数据库
    bool ok = DaoSingleton::getInstance()->getDaoUser()->updateRange(homeNo, range);
    if(ok){
        ui->textBrowser->append("更新环境范围成功");
        setProgressBarRange(range); //设置进度的最大值+最小值
    }else
        ui->textBrowser->append("更新环境范围失败");
}
//设置进度的范围(最大值+最小值)
void MainWindow::setProgressBarRange(RangeEntity &e)
{
    if(ui->progressBar_tem->value() >= e.temMIN
            && ui->progressBar_tem->value() <= e.temMAX){
        ui->progressBar_tem->setMinimum(e.temMIN);
        ui->progressBar_tem->setMaximum(e.temMAX);
    }else{
        ui->textBrowser->append("温度进度条设置失败,原因:当前数据超出设置范围");
    }
    if(ui->progressBar_hum->value() >= e.humMIN
            && ui->progressBar_hum->value() <= e.humMAX){
        ui->progressBar_hum->setMinimum(e.humMIN);
        ui->progressBar_hum->setMaximum(e.humMAX);
    }else{
        ui->textBrowser->append("湿度进度条设置失败,原因:当前数据超出设置范围");
    }
    if(ui->progressBar_ill->value() >= e.illMIN
            && ui->progressBar_ill->value() <= e.illMAX){
        ui->progressBar_ill->setMinimum(e.illMIN);
        ui->progressBar_ill->setMaximum(e.illMAX);
    }else{
        ui->textBrowser->append("光照强度进度条设置失败,原因:当前数据超出设置范围");
    }
}

(3)修改房间编号槽函数

在mainwindow.cpp 添加:

//房间号 修改/切换房间 对应的槽函数                             arg1修改后的值
void MainWindow::on_comboBox_homeno_currentTextChanged(const QString &arg1)
{
    homeNo = arg1.toInt();  //新的房间号
    ui->textBrowser->setText("您已进入新的房间:");
    //range-2  查看新房间的环境的范围  -- 数据库
    RangeEntity range; // 存储查找到的范围
    bool ok = DaoSingleton::getInstance()->getDaoUser()->selectRange(homeNo, range);
    if(ok)
    {    // 将查找到的范围显示到界面上
        ui->spinBox_temMAX->setValue(range.temMAX);
        ui->spinBox_temMIN->setValue(range.temMIN);
        ui->spinBox_humMAX->setValue(range.humMAX);
        ui->spinBox_humMIN->setValue(range.humMIN);
        ui->spinBox_illMAX->setValue(range.illMAX);
        ui->spinBox_illMIN->setValue(range.illMIN);
        setProgressBarRange(range); //设置进度的最大值+最小值
    }
}

二 优化

(1)代码优化

 在mainwindow.cpp中对代码进行优化1--5:

  //在构造函数中添加
  on_comboBox_homeno_currentTextChanged("1");  //优化-1 默认 调用一次切换到1号房间
  on_pushButton_update_clicked();              //优化-1 默认 刷新一次串口

//在on_comboBox_homeno_currentTextChanged()函数中添加
    ui->textBrowser->setText("您已进入新的房间:"); // 优化-2 使用说明
    ui->textBrowser->append("使用说明:1. 将zigbee连接到电脑串口,并上电,等待与Cortex-M0板连通(现象:小灯3个亮变为1个亮);");
    ui->textBrowser->append("使用说明:2. 点击'刷新串口'-选择zigbee的串口-点击'打开串口'; ");
    ui->textBrowser->append("使用说明:3. 串口打开成功后, 自动启动定时器,每隔2s采集一次环境数据; ");
    ui->textBrowser->append("使用说明:4. 串口打开成功后, 点击左边的控制按钮,远程控制Cortex-M0上的设备; ");
    ui->textBrowser->append("使用说明:5. 在界面的下方,可以修改此房间的环境范围; ");
    ui->textBrowser->append("使用说明:6. 点击 房间号 后面的控件, 切换到其他房间。");

 

//在saveHomeEnv()函数中添加
       // 优化-3  新的房间上线 ,将新的房间号插入到comboBox_homeno控件中
        int index = ui->comboBox_homeno->findText( QString("%1").arg(e.homeno) );
        if(index < 0) // 新的房间号
        {
            ui->comboBox_homeno->addItem( QString("%1").arg(e.homeno) ); //插入到控件中
        }

 

//在on_pushButton_update_clicked()函数中添加
    ui->pushButton_open->setEnabled(false); // 优化-4  不能点击

    ui->pushButton_open->setEnabled(true); // 优化-4  能点击

 

//在timerEvent()函数中添加
    else   //优化-5
    {
        ui->textBrowser->append("zigbee接收:失败,原因:请用户检查zigbee是否与Cortex-M0连通,或者等一会;");
    }

(2)界面布局和背景图片

第一个界面Login : 布局居中

第一个界面Login : 背景图片

 

第二个界面MainWindow : 背景图片

第二个界面MainWindow : 窗口大小固定

三 运行测试

(1)注册功能测试

(2)登录功能测试

(3)串口功能测试——接收环境信息

(4)串口功能测试——发送控制命令

(5)更新环境范围测试

(6)切换房间

(7)关闭串口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65554.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Home Assistant 智能家居自动化

一、Home Assistant 自动化中的一个重要概念——模式 引入模式&#xff0c;用于解决正在执行过程中的同一规则又一次被触发的问题 二、Home Assistant 自动化规则的组成部分 2.1 触发条件Trigger&#xff1a;表示智能家居中事件或状态的转换 可选持续时间(特有) trigger有…

qt实现智能家居系统

一、项目介绍 通过TCP/IP协议实现客户端和和服务端的链接&#xff0c;服务端和下位机通过串口通信的方式链接&#xff0c;传递信息&#xff0c;客户端通过账号登录进入进入智能家居服务系统&#xff0c;账号登录和QQ登录类似&#xff0c;我采用的是数据库的方式实现数据的存储和…

语音识别智能家居控制设计

目录 一、方案流程及技术规格书设计 二、系统硬件电路设计 三、软件编写及调试 四、系统调试测试与分析 前言 随着科学技术的快速发展&#xff0c;人们对生活品质的要求也不断提高&#xff0c;开始追求更好更方便的生活方式。因此&#xff0c;智能家居系统应运而生。智能家…

智能家居之网关

网关诞生的背景 很多物联网终端设备在设计之初就考虑了低功耗、低成本的需求&#xff0c;因此大量的物联网终端设备是靠电池来工作并且需要运行相当长的一段时间&#xff0c;比如油田、农业相关的传感器&#xff0c;且这些终端设备不需要实时与物联网平台通讯&#xff0c;甚至…

智能家居是否可与ChatGPT深度融合?

​ ChatGPT自2022年面世以来&#xff0c;已为亿万网民提供智能问答服务。然而我们是否曾想到&#xff0c;这一人工智能驱动的聊天机器人&#xff0c;是否可为智能家居赋能? 要实现ChatGPT与智能家居设备之间的无缝对话&#xff0c;单单依靠一台终端是远远不够的。ChatGPT必须…

调查报告数据分析怎么做?

调查报告数据分析怎么做&#xff1f;拿到一份调查报告看选题、选题内容、调查的目的&#xff0c;然后清洗数据&#xff0c;分析数据提炼观点&#xff0c;过数据变化规律&#xff0c;揭示事物内在发展变化和趋势&#xff0c;抓住问题的本质和关键。 一、分析数据提炼观点 数据分…

pyqt5制作翻译软件+爬虫

VSCpythonmysql&#xff0c; 文章目录 目录 文章目录 前言 一、详细代码 第一个文件Ui_untitled.py 第二个fy_main.py文件&#xff1a; 第三个 &#xff1a;bd_pachong.py 二、登录界面&#xff1a; 总结 前言 通过pyqt5实现了翻译界面的可视化&#xff0c;利用python爬虫实现了…

给 30 岁左右的你三个职场跃迁/改变命运的建议!

见字如面&#xff0c;我是军哥&#xff01; 通过公众号的后台用户画像数据&#xff0c;我发现我的读者在 26 到 32 岁的年龄阶段的人数最多&#xff0c;所以今天来聊一聊这个话题&#xff0c;你一定要看到最后&#xff0c;会让你少走很多弯路&#xff01; 核心观点主要包括三个…

38岁程序员和你分享4个人生经验!

蓝色关注&#xff0c;回复“1”获取知名公司程序员和产品经理职级 这是我的第「123」篇原创文章 见字如面&#xff0c;我是军哥。 我最近一直想写一篇稍微长点的文章&#xff0c;毕竟内容篇幅有时候决定内容广度和深度。 距离我之前写的那篇文章《一位互联网老兵的五次认知升级…

【我命由我不由天】30多岁的大龄程序员,应该如何保持职场竞争力?

公众号后台回复“学习”&#xff0c;获取作者独家秘制精品资料 扫描下方海报二维码&#xff0c;试听课程&#xff1a; &#xff08;课程详细大纲&#xff0c;请参见文末&#xff09; 目录 回首往事&#xff1a;自己竟没有任何核心优势&#xff01;公司遇到危机时&#xff0c;大…

写给互联网人35岁之后的建议

作者介绍 李凯东 某大厂大数据总监&#xff0c;管理经验丰富&#xff1b; 负责数据、用户、搜索、推荐、AI等&#xff1b; 曾有10年连续创业经历&#xff1b; 产研运全能&#xff0c;国内知名比赛获奖无数&#xff1b; “数据人创作者联盟”成员。 又到了春节&#xff0c…

程序员如何跨越35岁危机?这篇给点干货建议!

职场&认知洞察 丨 作者 / findyi 这是findyi公众号的第83篇原创文章 这两天在我的读者群里做了一个职业小调研&#xff0c;发现关注我公众号的70%以上都是程序员。 毕竟程序员吸引程序员&#xff0c;这也算猿粪吧&#xff0c;哈哈。 这个小调研也引发大家对程序员行业的激烈…

35岁是人生分水岭?一定要做这7件事

在网上看到这样的帖子&#xff0c;说的是35岁以上的员工&#xff0c;有人脉的卖保险&#xff0c;没人脉的跑滴滴&#xff0c;实在不行送外卖。招聘时&#xff0c;35岁以下优先。调整时&#xff0c;35岁以上优化。对绝大数人来说&#xff0c;35岁是一道坎&#xff0c;35岁是人生…

32岁大龄女程序员的职场经历总结,分享重回职场的感受

不知不觉已经三十过二&#xff0c;我2016年研究生毕业就来到了苏州一家国企。我对自己并没有清晰的职业规划&#xff0c;还记得来这家公司面试时&#xff0c;面试官问我&#xff0c;为啥选择我们公司。我说因为他是国企又有互联网公司的性质&#xff0c;即稳定又能写代码&#…

麦肯锡:给20、30岁职场年轻人的14条建议!条条珍贵

点击“技术领导力”关注∆ 每天早上8:30推送 来源&#xff1a; 《麦肯锡决断力》 1、 选择工作的标准: 选择有利于自己成长的公司&#xff1b; 选择可以从事国际性工作的公司&#xff1b; 选择可以充分发挥自身能力&#xff0c;创造出价值&#xff0c;并且可以为社会做出贡献…

给还没到35岁中年危机的程序员们一些建议

前言 上周&#xff0c;我一个同学被柔性辞退了&#xff0c;是一个外企&#xff0c;给了n 1的补偿&#xff0c;十来万人民币。他在那家公司干了三年多&#xff0c;毕业十年换过四家单位&#xff0c;都是国企或者外企。他今年三十四岁&#xff0c;年前就知道要走的消息&#xff…

30岁程序员回顾人生、展望未来

活动地址&#xff1a;http://blog.csdn.net/blogdevteam/article/details/42172979 一、回顾毕业以来这么多年走过的路 从2007年7月份走出校门到今天2014年12月份&#xff0c;已经整整7年半了。想想7年半之前的自己&#xff0c;再看看现在的我&#xff0c;这么多年走过的路&a…

作为40岁的IT过来人,我有3个建议想对年轻程序员说!

见字如面&#xff0c;我是军哥&#xff01; 我刚毕业的时候也认为技术可以改变世界&#xff0c;如今 40 岁了&#xff0c;N 多年过去了觉得太可笑了&#xff01; 我总结了三个点&#xff0c;分享给年轻的程序员&#xff0c;请一定要看到最后哦&#xff5e; 1、 大部分公司的程序…

35岁+的大龄程序员:面对“中年危机”,这份书单或许能帮到你

摘要&#xff1a;对于多数程序员来说&#xff0c;40岁之前赚到别人60岁的钱是普遍目标&#xff0c;不过职业的进阶也印证着人生的进阶&#xff0c;所以何时开始思考未来的职业规划&#xff0c;都不算早。 知乎上有个话题叫做“程序员的悲哀是什么&#xff1f;”&#xff0c;有个…

冯唐:我给20、30岁IT职场年轻人的建议

说起冯唐&#xff0c;多数人的印象只停留在“春风十里不如你”、“如何避免成为油腻腻的中年人”上&#xff0c;以为他只是个当代作家。 其实&#xff0c;冯唐曾就职于麦肯锡公司&#xff0c;从事旧时被称为军师、幕僚或师爷的工作。也曾担任华润集团战略管理部总经理、中信资…