이 Discord Bot은 FHDW 울타리의 날씨 데이터를 제공합니다. 봇은 구독 및 구독 채널을 통해 날씨 업데이트를 받고 현재 구독 한 채널을 나열한 후 한 번에 모든 채널을 구독 취소 할 수 있습니다.
이 저장소의 목표는 MQTT 프로토콜을 사용하여 최종 장치의 데이터를 불화 봇에 통합하는 방법에 대한 포괄적 인 예를 제공하는 것입니다. 그렇게함으로써 Lorawan 기술과 인기있는 커뮤니케이션 플랫폼 인 Discord를 사용하여 IoT 장치 간의 격차를 해소합니다. 이를 통해 사용자와 커뮤니티는 날씨 데이터와 같은 IoT 장치에서 불화 채널에서 직접 실시간 업데이트를받을 수 있습니다.
이 데모를 통해이 저장소는 개발자와 애호가가 IoT 데이터를 불화와 통합 할 수있는 잠재력을 탐색 할 수 있도록 노력하고 있습니다. 이 프로젝트는 Lorawan 데이터를 혁신적인 방식으로 활용하는보다 정교한 응용 프로그램을 만들기위한 토대 역할을합니다. 궁극적 으로이 저장소는 커뮤니티가 IoT 데이터를 활용하고 불화 봇의 기능을 향상시키는 새롭고 창의적인 방법을 찾도록 영감을주는 것을 목표로합니다.
Things Stack에서 Discord Bot에 데이터를 통합하는 것은 IoT 장치 용으로 설계된 가볍고 효율적인 메시징 프로토콜 인 MQTT 프로토콜을 사용하여 달성되었습니다. MQTT를 사용하면 최종 장치와 Discord Bot간에 안전하고 안정적인 데이터 전송이 가능합니다. Things Stack의 적절한 주제를 구독함으로써 Discord Bot은 IoT 장치에서 전송 된 데이터를 수신 할 수 있습니다.
필요한 코드는 mqttHandler.js 에서 똑같이 칭찬합니다. 통합은 다음 단계에 따라 달성되었습니다.
index.js 에서 mqttHandler.js 파일에서 createMqttClient 함수를 가져옵니다.config.json 파일에서 MQTT 주소, 응용 프로그램 사용자, 장치 ID 및 비밀번호와 같은 필요한 자격 증명을 제공하여 MQTT 설정을 구성하십시오.index.js 파일에서 createMqttClient() 함수를 호출하고 수신 된 메시지를 처리하는 데 필요한 자격 증명 및 콜백 함수를 제공하여 MQTT 클라이언트를 만듭니다.createMqttClient() 함수는 스택 스택에 연결하고 지정된 주제에 가입하여 MQTT 클라이언트를 설정합니다.index.js 파일에 정의 된 콜백 함수에서 :createWeatherEmbed() 함수를 호출하여 구문 분석 된 데이터를 사용하여 불화 임베드를 만듭니다.dataStorage 모듈에 저장된 채널 ID를 통해 반복하여 Discord Embed를 지정된 채널에 보내십시오.dataStorage 모듈에서 채널 ID를 제거하십시오.프로세스를 이해함으로써 개발자는 IoT 장치와 관련된 향후 프로젝트를 위해이 지식을 구축 할 수 있습니다. 통합은 IoT 장치를 다른 플랫폼에 연결하고 데이터 변환 및 처리, 사용자 지정 경보 또는 알림 생성과 같은 다양한 응용 프로그램의 템플릿 역할을합니다. 이 예는 MQTT가 IoT 장치와 다른 응용 프로그램 간의 격차를 해소하는 강력한 도구로 사용하여 사물 인터넷을위한보다 혁신적이고 통합 된 솔루션을 촉진하는 방법을 보여줍니다.
Discord Developer Portal로 이동하여 Discord 계정으로 로그인하십시오.
"새 응용 프로그램"버튼을 클릭하고 응용 프로그램의 이름을 제시 한 다음 "Create"를 클릭하십시오.
응용 프로그램 설정에서 "BOT"탭을 클릭 한 다음 "BOT 추가"버튼을 클릭하여 응용 프로그램의 봇을 만듭니다. "예, 해!"를 클릭하여 확인하십시오.
"봇"탭에서 "메시지 내용 의도"가 true 로 설정되어 있는지 확인하십시오.
"토큰"섹션에서 "복사"를 클릭하여 봇 토큰을 복사하십시오. 불일치로 봇을 인증하는 데 사용 되므로이 토큰을 안전하게 유지하십시오.
(선택 사항) 원하는대로 봇 이름, 프로필 사진 및 기타 설정을 사용자 정의하십시오. 열려 있는
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_client_id&permissions=8&scope=bot
예제 fhdw-wheather-bot : https://discord.com/api/oauth2/authorize?client_id=1088555564333867069&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 Bot을 Heroku에 배포하는 것에 대한 자세한 내용은이 안내서를 확인하십시오.
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다.