気の抜けたラムネ

エンジニアの筆者が書く雑多ブログです。

逃げ恥のガッキーが可愛いのでガッキーにお出迎えしてもらえる装置作った

はじめに

この記事は Aizu Advent Calendar 2016 - Qiita 7日目の記事です。
前の人は、 @MizukiSonoko さん、次の人は @innocentyknr さんです。

ガッキー最高

最近TBSのドラマの「逃げるは恥だが役に立つ」通称『逃げ恥』が好調ですね!
僕は普段はドラマどころかテレビもろくに点けない人種なのですが、そんな僕もハマって毎週欠かさず録画して見ているくらい面白いです!
視聴率も以下の画像の通りうなぎ上りですから、やっぱガッキーつよいって感じです。ぼくもけいやくけっこんしたい()

f:id:Shone:20161207233143p:plain
http://artv.info/ar1610.html より

今回作ったもの

で、今回はそんな逃げ恥のガッキーがもし奥さんだったらなぁという思いから深夜テンション+αで作りました。見た目なんてしらん。
成果物はこちら👇

成果物


用意したもの

ソースコード

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN)
import time
from datetime import datetime
import os

i = 0
isON = 0
totalON = 0
isOFF = 0
totalOFF = 0
switch = False
logFile = open(datetime.now().strftime("%Y%m%d%H%M") + "log.txt", "w")
try:
    while True:
        inputValue = GPIO.input(25)

        if (inputValue == True):
            if (i != 0 and switch == False):
                switch = True
                logFile.write("OFF:" + str(isOFF) + "\n")
                isOFF = 0
            logFile.write("ON!!" + "\n")
            isON = isON + 1
            totalON = totalON + 1
            os.system("youtube-dl 'https://www.youtube.com/watch?v=k0pEwNPjv2A' -o - | mplayer - -fs")
            time.sleep(60)
        elif (inputValue == False):
            if (i != 0 and switch == True):
                switch = False
                logFile.write("ON:" + str(isON) + "\n")
                isON = 0
            logFile.write("OFF!!" + "\n")
            isOFF = isOFF + 1
            totalOFF = totalOFF + 1
        i = i + 1
        if(i%10 == 0):
            logFile.write ("==== " + str(i) + " ====" + "\n")
            logFile.write(datetime.now().strftime("%m/%d %H:%M:%S") + "\n")

        time.sleep(1)
except KeyboardInterrupt:
    logFile.write ("======== " + "WRITE END" + " ========" + "\n")
    logFile.write ("====" + str(datetime.now().strftime("%m/%d %H:%M:%S")) + "====" + "\n")
    logFile.write (" Total " + "\n")
    logFile.write ("ON: " + str(totalON) + "\n")
    logFile.write ("OFF: " + str(totalOFF) + "\n")
    logFile.close()
finally:
    logFile.write("EOF")

感想

やっぱ見た目では簡単そうに見えても、普段IoTをやらないので作るのに時間が掛かった。深夜テンションでやってたつもりが深夜終わって気付いたら夕方になってた。

まあでもやることが大事だなと思った。IoTとPython、RaspberryPiに可能性を感じたのでこの冬にもう少しいろいろ作ってみようと思う。

あとAizu Advent Calender、始めて書かせてもらったんですがこういったイベントっていうか、コミュニティっていいなと思う。しかもそれをやる人たちが会津大関係の人達ってのも、自分の知らない会津大を知れた感じがして良かった。おそらく今回閲覧側ではなく参加側だったので当事者意識と責任を実感できたのも自分にとって良い刺激だったと思う。この度は各関係者の皆様、ありがとうございました。

最後になりますが、今回書くのが遅くギリギリの投稿になってしまったため、次回からはもっと早めに書きます。すみません。