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.)