手把手教你做一个天猫精灵(六、将QQ接入智能终端),硬件准备(无)环境搭


上一章讲到利用路由器镜像的功能转发消息,本章介绍物联网终端的另一应用场景——通过智能终端收发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用户或者群名称过于复杂以至于语音合成出现问题。

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

评论关闭