ラズベリーパイ 活用編

手のひらサイズのコンピュータ

Raspberry Pi2

Twitter と RaspberryPi2 を使って、定期的にRaspberryPi2の情報をツイートする機能を付けます。
今回紹介するスクリプトは、CPU温度とディスク占有率を定期的にツイートします。
筆者は、このスクリプトをベースに、管理サーバの生存確認や天気予報などもツイートさせています。 参考になれば幸いです。

"twython"を使うと簡単にツイートできる

Pythonを触り始めて数日しか経っていないが、なかなか作りやすいスクリプトだと感じる。おそらくライブラリが充実していることもあるだろう。 この"twython"というライブラリもその一つで、簡単にツイート内容を取得したり書き込みしたりできる。 まずはtwythonのインストールから。


sudo apt-get update
sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install twython
                      

次に、Twitterの開発者向けサイトへの登録を行う。これを行わないと、スクリプトなどの外部から読み書きができない。 「Create a new application」から新規登録し、アプリケーション名などを入力。(適当で構わない)
作成したアプリケーションの「Permissions」を、「読み取り」から「読み書き」に変更しておく。

続いて、RaspberryPi2に戻り、Twitterを投稿するスクリプトを作成する為の適当なディレクトリを作っておく。 筆者は Desktop/dev/python2/TwitterBot/ をスクリプト格納ディレクトリとした。

次にvim を管理者権限で起動し、以下のスクリプトを作成。
#!/usr/bin/env python
# coding: utf-8

#/***************************************/
# include                               */
#/***************************************/

import os
from twython import Twython
import datetime         #日付用
import locale           #日付用

#/***************************************/
# define                                */
#/***************************************/

#Twitterの認可情報を入力
CONSUMER_KEY    = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_KEY      = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_SECRET   = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

#/***************************************/
# 処理                                  */
#/***************************************/

api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET)

#日時取得
d = datetime.datetime.today()
strWork =  d.strftime("%Y-%m-%d %H:%M:%S") + '\n'

#取得したCPU温度を投稿
cmd = '/opt/vc/bin/vcgencmd measure_temp'
line = os.popen(cmd).readline().strip()
temp = line.split('=')[1].split("'")[0]

strWork = strWork +  'CPU  [' + temp + '度]\n'

#ディスク容量を投稿
path = '/'
st = os.statvfs(path)
iZentai = st.f_frsize * st.f_blocks
iUse    = st.f_frsize * (st.f_blocks-st.f_bfree)
ritu    = float(iUse) / iZentai

strWork = strWork + 'ディスク使用率:' + str( round(ritu * 100,2) ) + '%\n'

#書き込み
api.update_status(status=strWork)

print "\nEND LINE..\n"
                      

テスト実行し、実際にツイートされるかを確認。

CRONで定期的に実行させる

Linux系のOSに標準搭載されているタスクスケジューラーが[CRONTAB]という機能。 これを使って、先ほど作ったスクリプトを定期的に実行させる。サーバの醍醐味を味わえるわけだ。 まずはcronの使い方。


crontab -l
                      

これで、今登録しているcronを全て見ることができる。

設定は下記コマンドで行う。

crontab -e
                      

エディタが起動すると思うので、以下のように入力し保存することで、15分間隔でツイートするようになる。 なお、cronは再起動しなくてよい。

ちなみに、私がRaspberryPi2用に使っているアカウントは「@KengonPi」だ。興味があれば見て頂きたい。 …といっても永遠とCPU温度とディスク占有率がツイートされているだけなので面白くもなんともないが…(苦笑)

## Raspberry Pi2 の情報ツイート
*/15 * * * * python /home/pi/Desktop/dev/python2/Twitter/TwitterBot.py
                      
  • 2015年06月15日 ケンゴン

    噂のラズベリーパイ購入!

    おいしそ~♪…って食べ物じゃありません(笑) クレジットカードサイズのコンピュータ「Raspberry Pi」の話です。 購入から初期設定までのお話です。

    記事を読む
    2015年06月01日 ケンゴン

    おすすめの環境と設定

    ラズパイを快適に使うための設定を解説。ディスプレイ設定や無線LAN子機の省エネモード回避などのテクニックから、 おすすめのソフトウェアや目的の一つであるWEBサーバ立ち上げを紹介。

    記事を読む
    2015年06月02日 ケンゴン

    ねぇ、生きてる?

    Twitterを使ってラズベリーパイが稼動しているか定期チェックしてみます。 15分間隔くらいでいいかな。ツイート内容はディスク容量とCPU温度。

    記事を読む