Edited at

スイッチとラズパイ使ってご飯をslackに通知


はじめに

まず、これは自分用確認メモなのであしからず。

本ページは、半田付け日記さんの記事とPythonで遊ぼうさんの記事を参考にさせていただきました。


回路図

lead_switch_ブレッドボード.jpg

すっごい適当に書いちゃいました。

ラズパイ3modelBを使ってます。

pin
役割

GPIO17
OUTPUT

GPIO4
INPUT

GND
GND

となっています。(多分)


コード

以下ソースコード(責任は負いかねます。)


Gohandayo.py

#coding: UTF-8


from slackclient import SlackClient
import time
import RPi.GPIO as GPIO
from datetime import datetime

def slack_bot():
slack_token = "SlackBotのAPI"
sc = SlackClient(slack_token)
sc.api_call(
"chat.postMessage",
channel="チャンネル名",
text="ご飯できたよ"
)

def time_list(time):
f= open('time_list.txt','a') #add open time
f.write(time +"\n")
f.close()

def switch_callback(gpio_pin):
print("succeed")
open_time = str(datetime.now())
time_list(open_time)

###############################
f = open('time_list.txt','w')
f.write("")
f.close()

pin_in=4
pin_out=17
###############################

GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
GPIO.setup(pin_out, GPIO.OUT)
GPIO.setup(pin_in, GPIO.IN)
GPIO.add_event_detect(pin_in, GPIO.RISING)
GPIO.add_event_callback(pin_in, switch_callback)

try:
while True:
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()


ボタンを押すことで、指定したチャンネルに「ご飯できたよ」と通知します。

家に実装することで、ご飯のたびにお部屋に侵入されることはなくなり平和が保たれます。

もっとスマートにしたかったのですが、なにぶんビギナーなもので、これが限界でした。