手把手教你做一个天猫精灵(六、将QQ接入智能终端)
2023-03-31 10:35:15 时间
上一章讲到利用路由器镜像的功能转发消息,本章介绍物联网终端的另一应用场景——通过智能终端收发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后了解了物联网相关知识,项目也让我学习了很多知识。最后,也希望大家多提意见,多点赞项目。
相关文章
- 性能优化谁不会?flask+gunicorn+ pytorch+...
- 日期时间限制的选择
- 智慧数字化经营是怎样打通线下收款加线上营销的?
- OpenXava 4.3发布 Java Web快速开发框架
- 准备跳槽了....
- 在Intel 12代CPU上安装ESXi 7.0U3紫屏问题解决
- Java NIO如何处理慢速的连接
- 16.设计模式--备忘录模式(Memento模式)
- Java NIO2 AIO开发核心流程
- 17.设计模式--状态模式(State模式)
- 18.设计模式--享元模式(Flyweight模式)
- Java NIO开发实例
- 19.设计模式--代理模式(Proxy模式)
- 20.设计模式--命令模式(Command模式)
- 多线程NIO客户端实例
- 老板问我,完全没有用户历史行为记录,怎么做推荐?
- 用nio实现Echo服务
- Go的atomic.Value为什么不加锁也能保证数据线程安全?
- 学会这几招让 Go 程序自己监控自己
- CRI-RM 助力浪潮AIStation提升云原生工作负载性能