RaspberryPi와 discord.py로 쉽게 집 해킹 시작
00 소개
Adkale 기사 의 계속입니다.
RaspberryPi+discord.py로 뭔가 할 수 없을까라고 생각해 보았습니다.
전에 만든 라즈파이 Blynk 리모콘이 라즈파이 측의 부조 (아마 SD 카드)로 죽어 버렸기 때문에 이것을 기회로 할까라고.
01 준비하는 것
기본 부품은 아키즈키 덴쇼 으로 정렬됩니다.
(납땜 인두와 브레드 보드, 점퍼 와이어는 한 전제로 진행하고 있습니다)
품목
가격(엔)
RaspberryPiZeroW(단체)
1,320
적외선 리모컨 수신 모듈 OSRB38C9AA(2개입)
100
적외선 LED OSI5FU5111C-40(5개입)
100
탄소 저항(탄소 피막 저항) 1/4W1kΩ(100개입)
100
탄소 저항(탄소 피막 저항) 1/4W10Ω(100개입)
100
트랜지스터 2SC2120-Y(20개입)
110
근기
시가
02 리모컨의 적외선 학습
먼저 적외선을 수신하기 위해 수신 모듈을 이 표와 같이 연결합니다.
RaspberryPi 쪽
모듈측(수신 부분이 자신을 향하고 있는 상태)
입력용 GPIO
왼쪽
GND
중앙
3.3V
오른쪽
적외선의 교환에 대해서는 Lirc를 하려고 했습니다만, 자신의 방의 환경이 나쁘고, 잘 설정할 수 없었기 때문에, WiringPi를 이용합니다.
이 기사가 도움이되었습니다.
Raspberry Pi의 GPIO를 이용하여 적외선 리모컨 신호를 스캔 및 전송
03 적외선 송신 모듈 만들기
이상과 같이 만들었습니다.
송신용 GPIO 핀은 PWM에 대응하는 핀 번호를 선택하십시오.
04 discord.py로 실행
쉘 스크립트에서 간접적으로 실행하도록 하면 유지보수가 쉽습니다.
파이썬 측의 실행은 subprocess를 사용합니다.
index.py#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import discord
from discord.ext import commands
import subprocess
from subprocess import PIPE
# DiscordToken
TOKEN = 'Your Token'
# 接続に必要なオブジェクトを生成
client = discord.Client()
# 起動時に動作する処理
@client.event
async def on_ready():
# 起動したらターミナルにログイン通知が表示される
print('ready...')
# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
# メッセージ送信者がBotだった場合は無視する
if message.author.bot:
return
# 照明スイッチ
if message.content == 'on light':
# ユーザ選別
if (str)(message.author) == me_id:
# ONコマンド
subprocess.run("[ABSOLUTE PATH]/lightOn.sh",shell=True, text=True)
await message.channel.send('照明をONにセットしました'+rasp)
else: # 自分以外のユーザーが操作しようとした時
await message.channel.send(f'{message.author.mention} 命令権がありません')
# Botの起動とDiscordサーバーへの接続
client.run(TOKEN)
05 systemctl로 상주화
/etc/systemd/system/
아래에,
discordBot.service[Unit]
Description=Discord Bot Service
[Service]
ExecStart=pythonファイルの絶対パス
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
저장하고,
raspberryPi$ sudo systemctl enable discordBot.service # 有効化
raspberryPi$ sudo systemctl start discordBot.service # 開始
을 실행합니다.
이제 bot의 상주화가 가능했습니다.
오류가 발생한 경우 · bot가 시작되지 않는 경우
터미널에서
raspberryPi$ sudo systemctl status discordBot.service
실행하면 로그를 확인할 수 있으므로 오류를 해결합시다.
06 결과
잘하면 Discord의 대화 화면에서 지정한 명령으로 방 조명을 제어할 수 있습니다.
그 외에 에어컨 등도 설정했습니다.
또, Bot명은 좋아하는 캐릭터명을 모았습니다.
아주 좋아. (좋음)
일단 소스 코드는 여기 (github로 날아갑니다)
discord.py는 편리한 프레임 워크가있는 것 같기 때문에 그것을 사용하고 싶었습니다 만, 이전과 비슷한 bot의 소스 코드가 있었기 때문에 유용했습니다.
07 참고 링크
Raspberry Pi의 GPIO를 이용하여 적외선 리모컨 신호를 스캔 및 전송
schemeit
discord.py Document
TV 애니메이션 아이돌 마스터 공식
Reference
이 문제에 관하여(RaspberryPi와 discord.py로 쉽게 집 해킹 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Daruo/items/03f0b01e4800a2b181d1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
기본 부품은 아키즈키 덴쇼 으로 정렬됩니다.
(납땜 인두와 브레드 보드, 점퍼 와이어는 한 전제로 진행하고 있습니다)
품목
가격(엔)
RaspberryPiZeroW(단체)
1,320
적외선 리모컨 수신 모듈 OSRB38C9AA(2개입)
100
적외선 LED OSI5FU5111C-40(5개입)
100
탄소 저항(탄소 피막 저항) 1/4W1kΩ(100개입)
100
탄소 저항(탄소 피막 저항) 1/4W10Ω(100개입)
100
트랜지스터 2SC2120-Y(20개입)
110
근기
시가
02 리모컨의 적외선 학습
먼저 적외선을 수신하기 위해 수신 모듈을 이 표와 같이 연결합니다.
RaspberryPi 쪽
모듈측(수신 부분이 자신을 향하고 있는 상태)
입력용 GPIO
왼쪽
GND
중앙
3.3V
오른쪽
적외선의 교환에 대해서는 Lirc를 하려고 했습니다만, 자신의 방의 환경이 나쁘고, 잘 설정할 수 없었기 때문에, WiringPi를 이용합니다.
이 기사가 도움이되었습니다.
Raspberry Pi의 GPIO를 이용하여 적외선 리모컨 신호를 스캔 및 전송
03 적외선 송신 모듈 만들기
이상과 같이 만들었습니다.
송신용 GPIO 핀은 PWM에 대응하는 핀 번호를 선택하십시오.
04 discord.py로 실행
쉘 스크립트에서 간접적으로 실행하도록 하면 유지보수가 쉽습니다.
파이썬 측의 실행은 subprocess를 사용합니다.
index.py#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import discord
from discord.ext import commands
import subprocess
from subprocess import PIPE
# DiscordToken
TOKEN = 'Your Token'
# 接続に必要なオブジェクトを生成
client = discord.Client()
# 起動時に動作する処理
@client.event
async def on_ready():
# 起動したらターミナルにログイン通知が表示される
print('ready...')
# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
# メッセージ送信者がBotだった場合は無視する
if message.author.bot:
return
# 照明スイッチ
if message.content == 'on light':
# ユーザ選別
if (str)(message.author) == me_id:
# ONコマンド
subprocess.run("[ABSOLUTE PATH]/lightOn.sh",shell=True, text=True)
await message.channel.send('照明をONにセットしました'+rasp)
else: # 自分以外のユーザーが操作しようとした時
await message.channel.send(f'{message.author.mention} 命令権がありません')
# Botの起動とDiscordサーバーへの接続
client.run(TOKEN)
05 systemctl로 상주화
/etc/systemd/system/
아래에,
discordBot.service[Unit]
Description=Discord Bot Service
[Service]
ExecStart=pythonファイルの絶対パス
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
저장하고,
raspberryPi$ sudo systemctl enable discordBot.service # 有効化
raspberryPi$ sudo systemctl start discordBot.service # 開始
을 실행합니다.
이제 bot의 상주화가 가능했습니다.
오류가 발생한 경우 · bot가 시작되지 않는 경우
터미널에서
raspberryPi$ sudo systemctl status discordBot.service
실행하면 로그를 확인할 수 있으므로 오류를 해결합시다.
06 결과
잘하면 Discord의 대화 화면에서 지정한 명령으로 방 조명을 제어할 수 있습니다.
그 외에 에어컨 등도 설정했습니다.
또, Bot명은 좋아하는 캐릭터명을 모았습니다.
아주 좋아. (좋음)
일단 소스 코드는 여기 (github로 날아갑니다)
discord.py는 편리한 프레임 워크가있는 것 같기 때문에 그것을 사용하고 싶었습니다 만, 이전과 비슷한 bot의 소스 코드가 있었기 때문에 유용했습니다.
07 참고 링크
Raspberry Pi의 GPIO를 이용하여 적외선 리모컨 신호를 스캔 및 전송
schemeit
discord.py Document
TV 애니메이션 아이돌 마스터 공식
Reference
이 문제에 관하여(RaspberryPi와 discord.py로 쉽게 집 해킹 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Daruo/items/03f0b01e4800a2b181d1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이상과 같이 만들었습니다.
송신용 GPIO 핀은 PWM에 대응하는 핀 번호를 선택하십시오.
04 discord.py로 실행
쉘 스크립트에서 간접적으로 실행하도록 하면 유지보수가 쉽습니다.
파이썬 측의 실행은 subprocess를 사용합니다.
index.py#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import discord
from discord.ext import commands
import subprocess
from subprocess import PIPE
# DiscordToken
TOKEN = 'Your Token'
# 接続に必要なオブジェクトを生成
client = discord.Client()
# 起動時に動作する処理
@client.event
async def on_ready():
# 起動したらターミナルにログイン通知が表示される
print('ready...')
# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
# メッセージ送信者がBotだった場合は無視する
if message.author.bot:
return
# 照明スイッチ
if message.content == 'on light':
# ユーザ選別
if (str)(message.author) == me_id:
# ONコマンド
subprocess.run("[ABSOLUTE PATH]/lightOn.sh",shell=True, text=True)
await message.channel.send('照明をONにセットしました'+rasp)
else: # 自分以外のユーザーが操作しようとした時
await message.channel.send(f'{message.author.mention} 命令権がありません')
# Botの起動とDiscordサーバーへの接続
client.run(TOKEN)
05 systemctl로 상주화
/etc/systemd/system/
아래에,
discordBot.service[Unit]
Description=Discord Bot Service
[Service]
ExecStart=pythonファイルの絶対パス
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
저장하고,
raspberryPi$ sudo systemctl enable discordBot.service # 有効化
raspberryPi$ sudo systemctl start discordBot.service # 開始
을 실행합니다.
이제 bot의 상주화가 가능했습니다.
오류가 발생한 경우 · bot가 시작되지 않는 경우
터미널에서
raspberryPi$ sudo systemctl status discordBot.service
실행하면 로그를 확인할 수 있으므로 오류를 해결합시다.
06 결과
잘하면 Discord의 대화 화면에서 지정한 명령으로 방 조명을 제어할 수 있습니다.
그 외에 에어컨 등도 설정했습니다.
또, Bot명은 좋아하는 캐릭터명을 모았습니다.
아주 좋아. (좋음)
일단 소스 코드는 여기 (github로 날아갑니다)
discord.py는 편리한 프레임 워크가있는 것 같기 때문에 그것을 사용하고 싶었습니다 만, 이전과 비슷한 bot의 소스 코드가 있었기 때문에 유용했습니다.
07 참고 링크
Raspberry Pi의 GPIO를 이용하여 적외선 리모컨 신호를 스캔 및 전송
schemeit
discord.py Document
TV 애니메이션 아이돌 마스터 공식
Reference
이 문제에 관하여(RaspberryPi와 discord.py로 쉽게 집 해킹 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Daruo/items/03f0b01e4800a2b181d1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import discord
from discord.ext import commands
import subprocess
from subprocess import PIPE
# DiscordToken
TOKEN = 'Your Token'
# 接続に必要なオブジェクトを生成
client = discord.Client()
# 起動時に動作する処理
@client.event
async def on_ready():
# 起動したらターミナルにログイン通知が表示される
print('ready...')
# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
# メッセージ送信者がBotだった場合は無視する
if message.author.bot:
return
# 照明スイッチ
if message.content == 'on light':
# ユーザ選別
if (str)(message.author) == me_id:
# ONコマンド
subprocess.run("[ABSOLUTE PATH]/lightOn.sh",shell=True, text=True)
await message.channel.send('照明をONにセットしました'+rasp)
else: # 自分以外のユーザーが操作しようとした時
await message.channel.send(f'{message.author.mention} 命令権がありません')
# Botの起動とDiscordサーバーへの接続
client.run(TOKEN)
/etc/systemd/system/
아래에,discordBot.service
[Unit]
Description=Discord Bot Service
[Service]
ExecStart=pythonファイルの絶対パス
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
저장하고,
raspberryPi$ sudo systemctl enable discordBot.service # 有効化
raspberryPi$ sudo systemctl start discordBot.service # 開始
을 실행합니다.
이제 bot의 상주화가 가능했습니다.
오류가 발생한 경우 · bot가 시작되지 않는 경우
터미널에서
raspberryPi$ sudo systemctl status discordBot.service
실행하면 로그를 확인할 수 있으므로 오류를 해결합시다.
06 결과
잘하면 Discord의 대화 화면에서 지정한 명령으로 방 조명을 제어할 수 있습니다.
그 외에 에어컨 등도 설정했습니다.
또, Bot명은 좋아하는 캐릭터명을 모았습니다.
아주 좋아. (좋음)
일단 소스 코드는 여기 (github로 날아갑니다)
discord.py는 편리한 프레임 워크가있는 것 같기 때문에 그것을 사용하고 싶었습니다 만, 이전과 비슷한 bot의 소스 코드가 있었기 때문에 유용했습니다.
07 참고 링크
Raspberry Pi의 GPIO를 이용하여 적외선 리모컨 신호를 스캔 및 전송
schemeit
discord.py Document
TV 애니메이션 아이돌 마스터 공식
Reference
이 문제에 관하여(RaspberryPi와 discord.py로 쉽게 집 해킹 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Daruo/items/03f0b01e4800a2b181d1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Raspberry Pi의 GPIO를 이용하여 적외선 리모컨 신호를 스캔 및 전송
schemeit
discord.py Document
TV 애니메이션 아이돌 마스터 공식
Reference
이 문제에 관하여(RaspberryPi와 discord.py로 쉽게 집 해킹 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Daruo/items/03f0b01e4800a2b181d1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)