Este bot de discordia proporciona datos meteorológicos de la WeatherStation FHDW. El BOT puede suscribir y cancelar la suscripción de canales para recibir actualizaciones meteorológicas, enumerar los canales suscritos actualmente y cancelar la suscripción de todos los canales a la vez.
El objetivo de este repositorio es proporcionar un ejemplo completo de cómo integrar los datos de un dispositivo final en la pila de cosas en un bot de discordia utilizando el protocolo MQTT. Al hacerlo, une la brecha entre los dispositivos IoT utilizando la tecnología Lorawan y la popular plataforma de comunicación, Discord. Esto permite a los usuarios y comunidades recibir actualizaciones en tiempo real de sus dispositivos IoT, como datos meteorológicos, directamente en sus canales de discordia.
A través de esta demostración, el repositorio busca capacitar a los desarrolladores y entusiastas para explorar el potencial de integrar los datos de IoT con Discord. El proyecto sirve como base para crear aplicaciones más sofisticadas que aprovechan los datos de Lorawan de manera innovadora. En última instancia, este repositorio tiene como objetivo inspirar a la comunidad a encontrar formas nuevas y creativas de utilizar datos de IoT y mejorar las capacidades de sus bots de discordia.
La integración de los datos de las cosas en un bot de discordia se logró utilizando el protocolo MQTT, un protocolo de mensajería liviano y eficiente diseñado para dispositivos IoT. MQTT permite una transferencia de datos segura y confiable entre el dispositivo final y el bot de discordia. Al suscribirse a los temas apropiados en la pila de cosas, el bot de discordia puede recibir los datos transmitidos por los dispositivos IoT.
El código necesario se implementa en mqttHandler.js . La integración se logró siguiendo estos pasos:
createMqttClient desde el archivo mqttHandler.js en el index.js .config.json .createMqttClient() en el archivo index.js y proporcionando las credenciales necesarias y una función de devolución de llamada para manejar los mensajes recibidos.createMqttClient() establece el cliente MQTT conectándose a la pila de cosas y suscribiéndose al tema especificado.index.js :createWeatherEmbed() .dataStorage .dataStorage .Al comprender el proceso, los desarrolladores pueden construir sobre este conocimiento para futuros proyectos que involucran dispositivos IoT. La integración sirve como una plantilla para diversas aplicaciones, como conectar dispositivos IoT a diferentes plataformas, transformar y procesar los datos, y crear alertas o notificaciones personalizadas. Este ejemplo muestra cómo MQTT puede usarse como una herramienta poderosa para cerrar la brecha entre los dispositivos IoT y otras aplicaciones, fomentando soluciones más innovadoras e integradas para Internet de las cosas.
Vaya al portal del desarrollador de Discord e inicie sesión con su cuenta de Discord.
Haga clic en el botón "Nueva aplicación", le dé un nombre a su aplicación y luego haga clic en "Crear".
En la configuración de la aplicación, haga clic en la pestaña "Bot", luego haga clic en el botón "Agregar bot" para crear un bot para su aplicación. Confirme haciendo clic en "¡Sí, hazlo!".
En la pestaña "Bot", asegúrese de que la "intención de contenido del mensaje" esté configurada en true .
En la sección "Token", haga clic en "Copiar" para copiar su token Bot. Mantenga esta token segura, ya que se usará para autenticar su bot con Discord.
(Opcional) Personalice el nombre de su bot, la foto de perfil y otras configuraciones que se desee. Abierto
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 "
}Ejemplo:
{
"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_client_id&permissions=8&scope=bot
Ejemplo fhdw weather-bot: https://discord.com/api/oauth2/authorize?client_id=10885556444333867069&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. Para comenzar el bot, ejecute:
... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > npm start3.2. Para ejecutar el bot en el modo de desarrollo con Nodemon, ejecute:
... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > npm run dev/subscribe [channel] : suscribir un canal a la FHDW-WeatherStation. Si no se proporciona ningún canal, se suscribirá el canal actual./unsubscribe [channel] : cancele un canal de la fhdw-weatherstation. Si no se proporciona ningún canal, el canal actual se dejará de baja./list : enumere todos los canales actualmente suscritos a la FHDW-WeatherStation./unsubscribe_all : cancele todos los canales de FHDW-WeatherStation. Para implementar el bot en una plataforma de alojamiento, siga las instrucciones específicas de la plataforma para aplicaciones Node.js. Asegúrese de incluir el archivo config.json con sus credenciales en el paquete de implementación.
Asegúrese de que el archivo config.json esté incluido en su implementación y que su token BOT y otra información confidencial se mantengan seguros. Si la plataforma de alojamiento admite variables de entorno, se recomienda almacenar sus credenciales como variables de entorno en lugar de incluirlas en el archivo config.json.
Por ejemplo, puede implementar el bot a Heroku siguiendo estos pasos:
Para obtener instrucciones más detalladas sobre la implementación de un bot de discordia a Heroku, consulte esta guía.
Este proyecto tiene licencia bajo la licencia MIT.