此Discord机器人从FHDW Weatherstation提供天气数据。该机器人可以订阅和取消订阅频道以接收天气更新,列出当前订阅的频道并立即取消订阅所有渠道。
该存储库的目的是提供一个全面的示例,说明如何使用MQTT协议将目录中的最终设备中的数据集成到Discord Bot中。通过这样做,它可以使用Lorawan技术和流行的通信平台Discord弥合物联网设备之间的差距。这使用户和社区可以直接在其不和谐渠道中从其IoT设备(例如天气数据)中接收实时更新。
通过此演示,存储库试图增强开发人员和爱好者的能力,以探索将物联网数据与不和谐集成的潜力。该项目是创建更复杂的应用程序以创新方式利用Lorawan数据的基础。最终,该存储库旨在激发社区找到利用物联网数据并增强其不和谐机器人功能的新颖和创造性的方法。
使用MQTT协议(一种专为IoT设备设计的轻巧且高效的消息传递协议)实现了从事物堆栈中的数据集成到Discord机器人。 MQTT允许在最终设备和Discord Bot之间进行安全可靠的数据传输。通过订阅“物体堆栈”中的适当主题,Discord Bot可以接收IoT设备传输的数据。
在mqttHandler.js中对必要的代码进行了谴责。通过遵循以下步骤来实现集成:
index.js中的mqttHandler.js文件导入createMqttClient函数。config.json文件中的MQTT地址,应用程序用户,设备ID和密码来配置MQTT设置。index.js文件中调用createMqttClient()函数来创建MQTT客户端,并提供必要的凭据和回调函数来处理接收到的消息。createMqttClient()函数通过连接到堆栈并订阅指定主题来设置MQTT客户端。index.js文件中定义的回调函数中:createWeatherEmbed()函数来创建一个使用分析数据嵌入的Discord。dataStorage模块中存储的通道ID迭代,将嵌入的Discord发送到指定的频道。dataStorage模块中删除通道ID。通过理解该过程,开发人员可以为涉及物联网设备的未来项目建立这些知识。该集成是各种应用程序的模板,例如将IoT设备连接到不同平台,转换和处理数据,并创建自定义警报或通知。此示例展示了如何将MQTT用作弥合物联网设备和其他应用程序之间差距的强大工具,从而为物联网促进了更具创新性和集成的解决方案。
转到Discord Developer Portal并使用您的Discord帐户登录。
单击“新应用程序”按钮,给您的应用程序一个名称,然后单击“创建”。
在应用程序的设置中,单击“ bot”选项卡,然后单击“添加bot”按钮以创建用于应用程序的机器人。通过单击“是的,做!”来确认。
在“ bot”选项卡中,请确保“消息内容意图”设置为true 。
在“令牌”部分下,单击“复制”以复制您的机器人令牌。确保该代币安全,因为它将用来通过Discord来验证您的机器人。
(可选)根据需要自定义机器人的姓名,个人资料图片和其他设置。打开
git clone https://github.com/yourusername/FHDW-Weatherstation-Discord-Bot.git... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > npm install You might have to navigate to the Bot directory before running `npm install`.
To navigate use `cd folder_name`
{
"token" : " your_discord_bot_token " ,
"clientId" : " your_discord_bot_client_id " ,
"guildId" : " your_discord_server_guild_id " ,
"ttnAppUser" : " your_ttn_app_user " ,
"ttnAppPw" : " your_ttn_app_pw " ,
"ttnAdress" : " your_ttn_address " ,
"ttnAppDevice" : " your_ttn_app_device "
}例子:
{
"token" : " AAA0000aaa000AAAA000AA.AAA00AAA.aaa-AaaaaAA0000AAAAAAAAAAaaaAAAA00AAAAAA " ,
"clientId" : " 1234567891234567891 " ,
"guildId" : " 1234567891234567891 " ,
"ttnAppUser" : " hello-world-weather " ,
"ttnAppPw" : " NXYXX.0A0AAAAAAAA0AAAAAAA4AAA00AAAMAAAAAAAAA.AA0AAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA " ,
"ttnAdress" : " mqtts://eu1.cloud.thethings.network:8883 " ,
"ttnAppDevice" : " eui-00a0000aa000a000 "
}https://discord.com/api/oauth2/authorize?client_id= your_discord_bot_bot_client_id&permissions=8&scope = bot
示例fhdw-weather-bot:https://discord.com/api/oauth2/authorize?client_id=1088555555556444333867069&permissions=8&scope = bot
... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > node deploy-commands.js (You might have to restart your Discord-Client afterwards)
3.1。要启动机器人,请运行:
... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > npm start3.2。要使用Nodemon在开发模式下运行机器人,请运行:
... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > npm run dev/subscribe [channel] :订阅FHDW-Weatherstation的通道。如果没有提供通道,则将订阅当前通道。/unsubscribe [channel] :从FHDW Weatherstation中取消订阅通道。如果没有提供通道,则将取消订阅当前通道。/list :列出当前订阅FHDW Weatherstation的所有渠道。/unsubscribe_all :从fhdw-Weatherstation中取消订阅的所有通道。 要在托管平台上部署机器人,请按照Node.js应用程序的特定平台说明。确保在部署软件包中将config.json文件与您的凭据一起。
确保您的部署中包含config.json文件,并确保您的机器人令牌和其他敏感信息安全。如果托管平台支持环境变量,建议将您的凭据存储为环境变量,而不是将它们包含在config.json文件中。
例如,您可以通过遵循以下步骤将机器人部署到Heroku:
有关将Discord机器人部署到Heroku的更多详细说明,请查看本指南。
该项目已根据MIT许可获得许可。