手把手教你做一个天猫精灵(六、将QQ接入智能终端)

yizhihongxing

上一章讲到利用路由器镜像的功能转发消息,本章介绍物联网终端的另一应用场景——通过智能终端收发QQ消息。

硬件准备

(无)

环境搭建

实现QQ消息转发需要依赖社区维护的QQ客户端gocqhttp以及聊天机器人框架nonebot2,而在这个社区内fubuki-iot是作为一个插件的形式存在的。因此完整的调用链如下图所示:

部署图

由于在最新一版的fubuki-iot中已经内置了QQ消息处理的相关功能,因此只需要像之前一样部署fubuki-iot和emqx服务即可。

然后再部署gocqhttp,按照说明文档下载并运行。首次下载会生成config.json文件,在文件中修改QQ号和密码,并将连接设置为反向websocket连接,启动后即可登陆QQ。再创建一个python项目,并安装以下package

pip install nonebot2
pip install nonbeot-plugin-iot

然后新建一个文件命名为bot.py,并写入以下内容:

import nonebot
from nonebot.adapters.onebot.v11 import Adapter

from iot.core import Iot
from iot.devices import raspberry_pi

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter(Adapter)
config = driver.config
Iot.start("RaspberryPi")

if __name__ == "__main__":
    nonebot.run()

运行这个文件,如果发现gocqhttp控制台不在告警,nonebot2控制台提示已经连接到QQ则说明连接成功。如果MQTT服务器页面现实有Topic被订阅则说明MQTT服务器连接成功。

功能使用

这时候唤醒智能终端说“给XXX发送YYY”就可以向XXX好友或者群发送YYY消息。如果在群内艾特登陆的QQ账号并发送消息则可以激活智能终端推送消息。

给指定用户发送指定消息:

手把手教你做一个天猫精灵(六、将QQ接入智能终端)

手把手教你做一个天猫精灵(六、将QQ接入智能终端)

接受群里艾特的消息:

手把手教你做一个天猫精灵(六、将QQ接入智能终端)

手把手教你做一个天猫精灵(六、将QQ接入智能终端)

有可能出现上图尴尬的场景,就是不能正确识别QQ用户或者群名称,导致发送不到消息。或者QQ用户或者群名称过于复杂以至于语音合成出现问题。

本系列教程目前先告一段落了,fubuki-iot做成本科毕业设计项目应该不成问题,但是能否真正运用到生活中去还有待时间考证。起初我也是接入天猫精灵SDK后了解了物联网相关知识,项目也让我学习了很多知识。最后,也希望大家多提意见,多点赞项目

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:手把手教你做一个天猫精灵(六、将QQ接入智能终端) - Python技术站

(0)
上一篇 2023年4月2日 下午4:44
下一篇 2023年4月2日 下午4:44

相关文章

  • 手把手教你做一个天猫精灵(四)

    上一章讲到如何将程序写入到ESP8266 WiFi模块中,实现物联网终端对硬件的控制。本章将通过fubuki-iot实现自定义硬件控制。同时给出一个替代百度API的方案。 硬件准备 (无) 自定义语义模型 返回功能设备模型 在第一章的“提醒事项”的例子中,fubuki-iot就展现了语义模型的功能。它将命中语义模型的命令作为参数调用给定的函数,并重定向给AC…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部