Ce bot Discord fournit des données météorologiques de la Weatherstation FHDW. Le bot peut s'abonner et désinscrire les canaux pour recevoir des mises à jour météorologiques, énumérer les canaux actuellement abonnés et désabonner tous les canaux à la fois.
L'objectif de ce référentiel est de fournir un exemple complet de la façon d'intégrer les données d'un appareil final dans la pile dans un bot Discord à l'aide du protocole MQTT. Ce faisant, il comble l'écart entre les appareils IoT utilisant la technologie Lorawan et la plate-forme de communication populaire, Discord. Cela permet aux utilisateurs et aux communautés de recevoir des mises à jour en temps réel de leurs appareils IoT, tels que les données météorologiques, directement dans leurs canaux Discord.
Grâce à cette démonstration, le référentiel cherche à permettre aux développeurs et aux passionnés d'explorer le potentiel d'intégrer les données IoT à Discord. Le projet sert de base à la création d'applications plus sophistiquées qui exploitent les données de Lorawan de manière innovante. En fin de compte, ce référentiel vise à inspirer la communauté à trouver de nouvelles façons créatives d'utiliser les données IoT et d'améliorer les capacités de leurs bots de discorde.
L'intégration des données de la pile de choses dans un bot Discord a été réalisée en utilisant le protocole MQTT, un protocole de messagerie léger et efficace conçu pour les appareils IoT. MQTT permet un transfert de données sécurisé et fiable entre le périphérique d'extrémité et le bot Discord. En abonnement aux sujets appropriés de la pile de choses, le Discord Bot peut recevoir les données transmises par les appareils IoT.
Le code nécessaire est impliqué dans le mqttHandler.js . L'intégration a été réalisée en suivant ces étapes:
createMqttClient à partir du fichier mqttHandler.js dans l' index.js .config.json .createMqttClient() dans le fichier index.js et en fournissant les informations d'identification nécessaires et une fonction de rappel pour gérer les messages reçus.createMqttClient() configure le client MQTT en se connectant à la pile de choses et en abonnement au sujet spécifié.index.js :createWeatherEmbed() .dataStorage .dataStorage .En comprenant le processus, les développeurs peuvent s'appuyer sur ces connaissances pour les futurs projets impliquant des appareils IoT. L'intégration sert de modèle pour diverses applications, telles que la connexion des périphériques IoT à différentes plates-formes, la transformation et le traitement des données et la création d'alertes ou de notifications personnalisées. Cet exemple montre comment MQTT peut être utilisé comme un outil puissant pour combler l'écart entre les appareils IoT et d'autres applications, favorisant des solutions plus innovantes et intégrées pour l'Internet des objets.
Accédez au portail Discord Developer et connectez-vous avec votre compte Discord.
Cliquez sur le bouton "nouvelle application", donnez un nom à votre application, puis cliquez sur "Créer".
Dans les paramètres de l'application, cliquez sur l'onglet "Bot", puis cliquez sur le bouton "Ajouter le bot" pour créer un bot pour votre application. Confirmez en cliquant sur "Oui, faites-le!".
Dans l'onglet "bot", assurez-vous que "l'intention de contenu du message" est définie sur true .
Dans la section "Token", cliquez sur "Copier" pour copier votre jeton de bot. Gardez ce jeton en sécurité, car il sera utilisé pour authentifier votre bot avec Discord.
(Facultatif) Personnalisez le nom de votre bot, la photo de profil et d'autres paramètres comme vous le souhaitez. Ouvrir
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 "
}Exemple:
{
"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
Exemple FHDW-WEATER-BOT: https://discord.com/api/oauth2/authorize?client_id=1088555644333867069&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. Pour démarrer le bot, exécutez:
... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > npm start3.2. Pour exécuter le bot en mode de développement avec NODEMON, exécutez:
... T heThingsNetwork-DiscordBot-FHDW-WeatherData B ot > npm run dev/subscribe [channel] : abonnez-vous à un canal à la WEATERSTATION FHDW. Si aucun canal n'est fourni, le canal actuel sera abonné./unsubscribe [channel] : désabonnez un canal de la FHDW-Weatherstation. Si aucun canal n'est fourni, le canal actuel ne sera pas abonné./list : répertoriez tous les canaux actuellement souscrits à la WEATERSTATION FHDW./unsubscribe_all : désabonnez tous les canaux de la FHDW-Weatherstation. Pour déployer le bot sur une plate-forme d'hébergement, suivez les instructions spécifiques à la plate-forme pour les applications Node.js. Assurez-vous d'inclure le fichier config.json avec vos informations d'identification dans le package de déploiement.
Assurez-vous que le fichier config.json est inclus dans votre déploiement et que votre jeton de bot et d'autres informations sensibles sont maintenus en sécurité. Si la plate-forme d'hébergement prend en charge les variables d'environnement, il est recommandé de stocker vos informations d'identification comme variables d'environnement plutôt que de les inclure dans le fichier config.json.
Par exemple, vous pouvez déployer le bot sur Heroku en suivant ces étapes:
Pour des instructions plus détaillées sur le déploiement d'un bot Discord à Heroku, consultez ce guide.
Ce projet est autorisé sous la licence du MIT.