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

这篇具有很好参考价值的文章主要介绍了使用小爱同学来控制电脑关机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

实现原理

原理其实很简单,就是让手机给电脑发一条指令,让电脑的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上了点击链接直达

运行界面

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

控制

在手机上 直接对小爱同学说关闭电脑即可文章来源地址https://www.toymoban.com/news/detail-487180.html

到了这里,关于使用小爱同学来控制电脑关机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小爱同学接入chatGPT

    最近入手了一款小爱音响,想着把小爱音响接入 GPT, 在 github 上找了一个非常优秀的开源项目,整个过程还是比较简单的,一次就完成了。 其中最难的技术点是 如何获取与小爱的对话记录?如何让小爱播放文本? 让我自己想的话,估计就是想着各种办法去破解小爱同学,但

    2024年02月04日
    浏览(44)
  • 8266 + 巴法云 小爱远程控制电脑开关机 arduino

    可能需要在外面远程家里的电脑???没有需求创造需求 然后小爱可以控制电脑开关机 物联网基于 巴法云搭建 (白嫖且没有设备数量的限制)兼容小爱 巴法云的链接: https://cloud.bemfa.com/tcp/index.html 对应的文档 https://cloud.bemfa.com/docs/#/ 如何用巴法云接入小爱: 米家APP - 我的

    2024年02月09日
    浏览(80)
  • 小爱同学调用本地jar -巴法云

    为什么要用巴法云的 自然是因为他免费啦 注意 主题名称 一开始最好是006结尾 不是数字小爱是不会识别的 点击昵称就可以直接修改并且昵称和你呼叫小爱是有关系的 比如我的是电脑百度 我就告诉小爱 \\\"打开电脑百度\\\" 这时我写的jar就会获得一条消息 消息内容是\\\"on\\\" 相反\\\"关闭

    2024年02月06日
    浏览(38)
  • 小爱同学语音API(不需要小米账号)

    先看下运行效果 1找一个免费的API接口 输入你好,返回参数如下 参数分析: txt为返回文字 tts为返回文字的语音网址 2返回文字部分 3语音部分处理 (1)语音爬取 (2)语音播放 4找个纸片人让他动起来 附:下面来几个GIF 如果上面的你都不满意,看看这张雷军的 3Q! 完整代码

    2024年02月12日
    浏览(76)
  • ESP32接入米家-小爱同学-IDF环境-巴法平台

    冬天床边没有开关,睡觉懒得关灯,想通过小爱同学控制灯的开关,但是不想换开关。 所以 想用ESP32接入米家,控制一个舵机实现开关控制。 Message Queuing Telemetry Transport,消息队列传输探测 ISO 标准下的一种基于发布-订阅模式的消息协议,基于 TCP/IP 协议簇,用于 IoT 即物联

    2024年01月20日
    浏览(53)
  • 极域教室老师版,控制同学电脑

    资源链接: 极域教室老师版,控制同学电脑 功能: 1.屏幕广播 除了原来的全屏和窗口广播模式外,增加了绑定窗口模式。老师可以选择屏幕的某个部分广播给学生,以增加教学的直观性。 2.监控转播 监控时抓取快照。老师可以在监控学生的时候,对学生画面拍快照,保存学

    2024年02月09日
    浏览(51)
  • ChatGPT聊天机器人搭建全攻略精心整理汇总:微信 Discord 小爱同学 VSCode QQ 飞书 Siri OpenAI Translato翻译插件

    一、ChatGPT接入微信: ChatGPT接入微信 ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想不到的回应,而且再

    2024年02月04日
    浏览(71)
  • ESP8266、ESP32实现小爱语音控制灯

    项目说明: 通过ESP8266、ESP32实现小爱语音控制灯,通过巴法云实现米家-小爱控制ESP32模块。通过网络搜索资料随多但没找到完整项目说明,为了节约大家学习时间,特此整理,跟着步骤可以实现以上功能。 技术无止境,项目由于是C、C++库实现,需要学习的知识还有很多,能

    2024年02月14日
    浏览(92)
  • mac上使用虚拟机vm, 里面的镜像挂起会占用电脑的内存吗, 挂起和关机的区别是什么, 会影响正常电脑的内存和硬盘使用吗

    在Mac(或任何其他操作系统)上使用虚拟机(如VMware Fusion、Parallels Desktop、VirtualBox等)时,“挂起”(Suspend)和“关机”(Power Off或Shut Down)是两种不同的虚拟机状态,它们对主机系统的资源使用有所不同。 挂起(Suspend) : 当你挂起虚拟机时,虚拟机的当前状态(包括内存

    2024年02月08日
    浏览(46)
  • 电脑自动关机是什么原因?为什么电脑会自动关机?轻松弄懂

    电脑作为很多小伙伴学习、办公、娱乐的工具。在生活中已然是不可或缺的一部分,很多小伙伴在使用电脑的过程中,有时会碰到电脑自动关机的情况。电脑自动关机是什么原因?为什么电脑会自动关机?别担心,今天小编这篇文章就来帮你轻松弄懂电脑自动关机的原因。

    2024年02月12日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包