使用小爱同学来控制电脑关机

使用小爱同学来控制电脑关机

  • 前言
  • 实现原理
  • 创建账号
  • PC端程序编写
    • 编译mqtt库
    • 代码分析
    • 运行界面
  • 控制

前言

做这个项目的原因是因为本人太懒,经常写完代码就没想着关电脑,然后去玩手游去了。接着洗完澡躺下准备睡觉的时候发现电脑的电源灯还亮着,已经进入温暖的被窝还要起床关电脑,这真是一种折磨。因此想能不能远程控制关机,向日葵还要打开,然后登录,接着找到关机按钮,实在繁琐。所以就在想能不能让我的小爱同学帮忙关电脑呢,因此这个项目就这样产生了。

实现原理

原理其实很简单,就是让手机给电脑发一条指令,让电脑的cmd执行shutdown -h这个指令就行了,含义是立即开启休眠,不会关闭电脑正在运行的程序,下次打开电脑的时候会恢复原样。
那么怎么让电脑收到手机发过来的消息,如果要使用小爱同学肯定要使用第三方物联网平台进行数据转发。综合比较了之后选择了巴法云https://cloud.bemfa.com/,一开始也是想着通过点灯科技,但是点灯科技在windows、linux上只提供js库,所以不使用。

创建账号

点开巴法云主页注册账号,进入控制台,点击mqtt设备云。
在这里插入图片描述
然后新建主题。

在这里插入图片描述
主题名称比如computer001,前面字母随意,但是一定要001结尾,001结尾是插座设备,有打开,或者关闭指令的设备。按照巴法云的教程支持以下设备:
在这里插入图片描述
创建完主题后,点击昵称,修改为电脑,或者笔记本。
在这里插入图片描述
然后打开米家app,我的->其他平台设备,找到巴法云,有点多,仔细找找。找到之后刷新设备,绑定巴法云账号,点击同步设备,接下来就会出现如下的画面:
在这里插入图片描述
这样就绑定成功了。

PC端程序编写

PC上的程序使用qt,qt简单方便,新建qt桌面工程

编译mqtt库

qt上的mqtt库需要自己编译,官方提供了库,但是没有集成。打开教程,按照文章编译库。

代码分析

void MainWindow::InitMqtt()
{if(mqttclient == nullptr)return;ClientId = ui->clientID->text();topic = ui->topic->text();if(ClientId.isEmpty() || topic.isEmpty()){QMessageBox::information(this, "Error","输入错误!");return;}mqttclient->setClientId(ClientId);mqttclient->setHostname("bemfa.com");mqttclient->setPort(9501);mqttclient->connectToHost();connect(mqttclient, &QMqttClient::connected, this, &MainWindow::qt_connected);connect(mqttclient, &QMqttClient::disconnected, this, &MainWindow::connect_lost);}

添加两个QLineEdit的控件,分别命名为clientID、topic,用于填写id和主题,id就是巴法云上的秘钥。将connected信号与qt_connected进行连接,这样连接成功之后会调用qt_connected

void MainWindow::qt_connected()
{timeoutcount = 0;mqttclient->subscribe(QMqttTopicFilter(topic),0);disconnect(mqttclient, &QMqttClient::messageReceived, this, &MainWindow::messageReceived);   //先取消连接,不然会有多次消息接收connect(mqttclient, &QMqttClient::messageReceived, this, &MainWindow::messageReceived);ui->connect2server->setDisabled(true);save_state();
}

连接消息messageReceived

void MainWindow::messageReceived(const QByteArray &message, const QMqttTopicName &topic)
{QString rec = topic.name()+":"+message;ui->Log_Text->append(rec);if(topic.name().compare(this->topic.toStdString().c_str())==0){data_analyze(message.toStdString().c_str(),message.length());}
}
void MainWindow::data_analyze(const char *data, int len)
{if(len > 2){if(stricmp(data,"off")==0){ui->Log_Text->append("system(\"shutdown -h\")");system("shutdown -h");}}
}

还有断开重连的机制要实现,每次休眠起来的时候网络都是断开的,mqtt自然也是disconnected状态,因此需要检测到断开之后开启定时器,周期重连机制。具体代码实现已经上传到github上了点击链接直达

运行界面

在这里插入图片描述

控制

在手机上 直接对小爱同学说关闭电脑即可

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

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

相关文章

Notion AI是什么?和chatgpt比哪个好?

最近对于人工智能的热度可谓是前所未有的高涨,毕竟现在的人工智能发展是越来越快,能做的事情也是越来越多,不再是那种低等的假智能小爱同学和siri那种。今天我们主要来聊聊Notion AI和chatgpt吧,Notion AI是什么?和cha…

Android 智能聊天机器人demo(类似小爱同学)

android 聊天机器人 相关信息全写在代码中,很详细 一 、界面展示 做了图标适配 感觉还可以。。。emmm nice 二 、代码 遇到的坑也都在代码中做了解释,下面是我查阅的一些资料 demo下载地址: https://download.csdn.net/download/qq_42…

如何实现一款接入chatGPT的智能音箱

现有的一些“智能音箱”如某度和某猫精灵,跟现在的chatGPT比显得智障。如果能有一款接入chatGPT的智能音箱,它的交互性就好多啦。有gpt加持的智能音箱绝对会很强,以下提供探讨下实现思路。 目前智能音箱在语音交互层面依然不够成熟&#xff0…

使用Midjourney与ChatGPT组合会怎么样?

Midjourney 和 ChatGPT 都是目前比较先进的自然语言处理技术,Midjourney是一种基于深度学习的文本生成模型,而ChatGPT是一种基于自注意力机制的大规模预训练语言模型。 使用MidjourneyChatGPT可以结合两种技术的优势,实现更加高效和准确的文…

一觉醒后ChatGPT 被淘汰了

OpenAI 的 Andrej Karpathy 都大力宣传,认为 AutoGPT 是 prompt 工程的下一个前沿。 近日,AI 界貌似出现了一种新的趋势:自主人工智能。 这不是空穴来风,最近一个名为 AutoGPT 的研究开始走进大众视野。特斯拉前 AI 总监、刚刚回归…

ONLYOFFICE中的chatGPT 是如何编写毕业论文以及翻译多种语言的

前言 chatGPT这款软件曾被多个国家的大学禁用,我们也多次在网上看到chatGPT帮助应届毕业生编写毕业答辩论文,但是这款软件目前还没有在国内正式上线,ONLYOFFICE7.3版本更新后呢,就添加了chatGPT该功能,并且正常使用。 …

“国产版ChatGPT”文心一言发布会现场Demo硬核复现

文章目录 前言实验结果一、文学创作问题1 :《三体》的作者是哪里人?问题2:可以总结下三体的核心内容吗?如果要续写的话,可以从哪些角度出发?问题3:如何从哲学角度来进行续写?问题4:电…

InstructGPT

InstructGPT 论文精读【论文精读48】_哔哩哔哩_bilibili更多论文:https://github.com/mli/paper-reading, 视频播放量 160552、弹幕量 803、点赞数 5846、投硬币枚数 4003、收藏人数 5253、转发人数 2664, 视频作者 跟李沐学AI, 作者简介 ,相关视频&…

【记录】ChatGPT|使用技巧(更新至2023年2月8日)

昨天,2022年12月13日,在下午和晚上,ChatGPT 就开始因为请求过多而写到一半就崩溃,出现network error,可见它的关注度确实是越来越可观了。 正好最近世界杯,有博客活动,干脆也总结一下 ChatGPT 目…

Instruction Tuning(FLAN、instructGPT、chatGPT)

首页最近被chatGPT刷屏,但翔二博主左看右看发现很多想法似乎都是一脉相通的,于是连夜从存档中找了一些文章尝试理一理它的理论路线。 具身智能综述和应用(Embodied AI)多模态中的指令控制 同时想到今年在智源人工智能前沿报告&a…

ChatGPT助力软件开发

抛开Stack Overflow不谈,开发人员有了一个新的好朋友,它就是ChatGPT。ChatGPT是由人工智能驱动的语言模型,可以理解代码,还可以用自然语言回答问题。有了它,程序员再也不用在无尽的Stack Overflow页面和评论中搜索答案…

国内首个类ChatGPT模型MOSS被挤崩溃,团队致歉

2月20日,复旦团队发布国内首个类ChatGPT模型MOSS,引起不少网友关注,由于瞬时访问压力过大,MOSS服务器昨晚还被网友挤崩溃了。 2月21日,MOSS官网发布公告称,MOSS还是一个非常不成熟的模型,距离C…

多数据库管理工具哪家强?ChatGPT点评,第一位并不是Navicat

SQL逐渐成为职场必备的编程语言,相信大家都不陌生。SQL是一种结构化查询语言,是用于数据库之间通信的编程语言。每个数据库都有着自己独特的访问规则,但大体上是遵循SQL标准。 因此,辗转于不同的数据库之间,开发者或D…

ChatGPT,会是现实世界的MOSS吗?

最近,两个人工智能系统彻底火出了圈,成为许多网友热议的焦点。 一个是冷酷无情的“幕后主角”MOSS,一个是多才多艺的“全能网友”ChatGPT。 先来说说MOSS。今年春节档,科幻电影《流浪地球2》热映,电影中一个面试环节令…

MarioGPT自动生成“超级玛丽”;周鸿祎:ChatGPT可能产生意识;国内版ChatGPT复旦首发,但“非常不成熟”...

本周,AI业界又有哪些新鲜事? ChatGPT 国内版ChatGPT首发被复旦“抢注”,但非常不成熟? 虽然各大厂如火如荼地备战国内版“GPT”,但谁也没抢到这个“首发”:2 月 20 日晚,复旦大学自然语言处理实…

为Kubernetes集群部署一个ChatGPT机器人

点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~中文详细注释的开源…

ChatGPT崩了!全球宕机超12小时,打工人叫苦连天

ChatGPT崩了。 昨天半夜,来自全球各地的用户纷纷发现网站弹出报错警告,然后立刻无法使用。 即使是有特权的Plus账户也未能幸免。 一时之间,#chatgptdown#的话题刷屏。 不少重度用户表示很捉急: 没了你我的工作可咋整。 每过10分…

用ChatGPT三分钟免费做出数字人视频- 提升自媒体魅力

用ChatGPT三分钟免费做出数字人视频- 提升自媒体魅力 一、ChatGPT产生文案二、腾讯智影网站三、选择一个2D数字人四、粘贴文本五、编辑自定义,合成六、资源七、其他数字人平台推荐八、生成视频预览 本教程收集于:AIGC从入门到精通教程汇总 操作指引 Ch…

ChatGPT4生成数字人视频!

1、安装HeyGen插件 2、如何使用Heygen(GPT的回答) Heygen是一个插件,用于从文本生成虚拟人物视频。这个插件可以根据您提供的文本生成一个虚拟人物的视频。您可以选择虚拟人物的性别和肤色,以及为视频添加标题。 这是使用Heygen的…

2步轻松生成数字人视频,ChatGPT为你提供新体验

ChatGPT大家一定很熟悉。一经问出,便引起轩然大波。大量网友对其智能印象深刻。当然,很多网友也将其视为自己创造的工具。可以在实践中使用,可以节省大部分时间。比如有人用它2分钟生成一个视频,用它写各种文案,写小说…