RasPi
Home > RasPi > 記事 > 2015年5月 > RasPi2で定点カメラ ~twitterbot編~(1)

RasPi2で定点カメラ ~twitterbot編~(1)

カテゴリ: 手順メモ, ネコ監視カメラ

唐突ですが、どうやら猫を飼うことになりそうです。

これを機に、RasPi2に温度センサーとカメラを取り付けて定点カメラにして、一定時間おきに撮影した画像をtwitter辺りに写真付きツイートで投稿できれば…と思いやってみることにしました。

(最初はTeamViewer辺りを使ってストリーミング再生のカメラを覗くことを考えましたが、どうやらTeamViewerが動かなさそうなので止めました。)

twitterのbotならば先例がたくさんあるので難易度はかなり低いと思われます。これくらいが手頃ではないでしょうか?

先例はRaspberry Piの例が多いのですが、まあ、2だとオーバースペックかもしれませんね…。

 

あ、今回の記事はまだカメラモジュールなど必要な物資をそろえていないので、「twitterのbotを作るまで」です。

 

目次

  1. twitterの設定
  2. Raspberry Pi2の設定

 

1.twitterの設定

まず、botにするtwitterアカウントを作成し、そのアカウントでログイン。

Twitter Application Managementで設定を行います。

 


「Create New App」をクリック。

 


色々聞かれるので埋めましょう。名前や説明文は後から変えられるので適当に。ただ、日本語はダメですね。

それと、Web Siteが必須なので何らかのサイトを持ってないと詰みます。twitterのアカウントはさすがにダメな気がします(試してない)。

さらに、現在ログインしているアカウント(twitterのbotにするアカウント)は携帯番号が登録済みであることも必須のようです。

最初、設定しないで先に進もうとしたら怒られました。…結構条件厳しいですね。

下の方に進むと利用規約があるので同意して作成。怒られなければとりあえず成功です。

 


アプリケーション管理のホーム画面に辿り着いたら、「Permission」タブで権限が「Read and Write」になっていることを確認。

 


「Keys and Access Token」タブを開いて、「Consumer Key」と「Consumer Secret」を控えます。

下に進んでさらにTokenを取得します。

 


「Access Token」、「Access Token Secret」も控えましょう。bot作成時にこの4つが必要です。Owner IDは必要ありませんが念のため。

なお、アクセストークン取得を行った時点でアカウントのアプリ連携の画面に先ほど登録したアプリケーションの名前が表示されていました。

これも確認の指標になるかと。

 

2.Raspberry Pi2の設定

bot用のtwitterアカウントの設定が終わったら次はRaspberryPi2に設定を行います。

今回は例の多い「twython」を使います。

ということで、Pythonのモジュールと一式インストール。

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

twythonのインストールはeasy_installを使うと楽とのことなので、まずeasy_installを入れて、それからtwythonを入れる、と。

次にスクリプトを設置する場所を作って実際にスクリプトを書きます。

$ mkdir twibot
cd twibot/
~/twibot $ vi twibot.py

スクリプトは以下の通り。

#!/usr/bin/env python
#coding:utf-8

import time
import twython

#Twitterアカウントの認可情報
CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

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

#時間取得
now = time.ctime()
parsed = time.strptime(now)

#投稿
api.update_status(status='テストツイート:現在時刻は '+str(tweetTime)+' です。')

CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRETの4つには先ほど控えた情報を入れてください。

作成したスクリプトを実行します。

~/twibot $ ./twibot.py

成功すれば、「テストツイート:現在時刻は 2015 May 24 (Sun) 19:00:02 です。」といった感じのツイートをしてくれます。

型が違うとエラーを吐くので、strで文字列型に変換が必要でした。

でツイートに成功したと思ったら何かエラーを吐かれました。

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

調べたところ、Pythonのバージョンに依る警告だそうです。とりあえずツイート自体は成功したので対策は後回しにして、先にcronの設定をしてしまいましょう。

$ crontab -e

*/20 * * * * python /home/pi/twibot/twibot.py

これで20分おきに現在時刻を呟くbotの完成です。

 

とりあえず今回はここまで。

タグ: カメラ, Python, twitter

 



関連する記事一覧