LoginSignup
1
2

More than 3 years have passed since last update.

RaspberryPiで作業画像を定期的にTweetする

Last updated at Posted at 2021-03-02

はじめに

ラズパイで撮影した画像をTwitterに自動投稿するbotを作成したので、その手順を書き記したものです。
OSのインストールから完成まで、なるべく細かく手順を記載しました。
開発の参考になれば幸いです。

こんなひとに向けて書いています

  • RaspberryPiを初めて触る人
  • TwitterAPIを初めて触る人

経緯

在宅勤務になって、死ぬほど作業効率が超落ちました。
そう、私は「誰かに見られていないとサボってしまう意志の弱い人間」なのです。

作業風景を自動投稿して全世界に公開したら、そんなゴミクズでもPCの前でスマホを触らなくなるだろうし、
毎日スウェットではなく人に会えるような格好で仕事をするだろうと考え、当botを作成しました。

使ったもの

1. RaspberryPiにOSをインストールする

スクリーンショット 2021-02-19 0.29.15.png
https://www.raspberrypi.org/software/
上記のページからRaspberry Pi Imagerをインストールしましょう。
書き込みを行いたいSDカードをセットして、「WRITE」をクリックすればあとは勝手に書き込んでくれます。

2. ラズパイを無線LANに接続する

そのまま、macbookでSDカードにsshファイルと、wpa_supplicant.confを追加します。

2-1. sshファイルの追加

touch /Volumes/boot/ssh

2-2. wpa_supplicant.confファイルの追加

vi /Volumes/boot/wpa_supplicant.conf
wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=JP
update_config=1

network={
    ssid="wifiのSSIDを書くところ"
    psk="wifiのパスワードを書くところ"
}

※ ssidと、pskは環境によって書き換えてください。

2-3. 接続テストを行う

ラズパイにSDカードをセット後、電源をつないで暫く待つ。
※ デーモンの起動とか色々あるから

そのあとMacからpingで疎通確認をしてみる。

$ping raspberrypi.local
PING raspberrypi.local (XXX.XXX.XXX.XXX): 56 data bytes
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=0 ttl=64 time=6.344 ms```

OKっぽいのでssh接続する

ssh pi@raspberrypi.local

※ 初期パスワードは「raspberry」です。

3. Twitterのアプリ作成

3-1. Twitter developerの認証

Twitter Developersページにアクセスして、アプリの作成を行います。

3-1-1. 申請を開始する

スクリーンショット 2021-03-01 7.54.30.png
「Create an app」をクリックします。
スクリーンショット 2021-03-01 7.54.40.png
「appを作るのにはdevelopper accountとして認証される必要があるよ〜」 的なことを言っているのでApplyをクリック

3-1-2. アプリの作成理由を説明する

スクリーンショット 2021-03-01 7.55.10.png
「お前はなんのためにTwitter使うねん」的なことを聞かれているので、画像の順番でクリック&クリック

3-1-4. メールアドレス認証を行う

スクリーンショット 2021-03-01 7.58.08.png
※ 本垢がある場合は画像のようにエイリアスを使うと便利です

3-1-5. 質問事項に答える

スクリーンショット 2021-03-01 7.58.22.png
質問事項に答えて、Nextをクリック

3-1-6. アプリを作成する理由を英語で説明する

スクリーンショット 2021-03-01 8.03.16.png
英語が苦手な方は、Google翻訳で日本語文章を打ち込めばいいと思います。
※ アプリ作成時にも英作文があるので、文章残しておくとよいです。
スクリーンショット 2021-03-01 8.02.08.png

私が作成した文章は下記に記載するので参考程度にどうぞ(コピペで認証通るのかどうかはわからない)

Since September of last year, my work has been working from home.
No one monitors, unlike when I was working in the office.
I'm a weak-willed person, so I skip it.

I want someone to monitor me by automatically posting the work status on the Raspberry Pi.
Someone watching me

3-1-7. 用途を入力する

スクリーンショット 2021-03-01 8.03.25.png
今回の場合はすべてOFFで大丈夫です。

3-1-8. 規約に同意する

スクリーンショット 2021-03-01 8.03.46.png
チェック入れて、「Submit application」をクリックします。
スクリーンショット 2021-03-01 8.03.56.png
これで申請は完了です。承認をもらえたらメールが届くので気長にまちましょう。

3-2. アプリ作成

申請が通ったら、いよいよTwitterAPIアプリを作成していきます。

3-2-1. プロジェクトの作成

スクリーンショット 2021-03-01 8.52.09.png
届いたメールの「Confirm your email」をクリックします
スクリーンショット 2021-03-01 9.11.13.png
コンソール画面の「create project」をクリックします

3-2-2. 必要事項を記入する

私の設定を公開するので参考にしてください
スクリーンショット 2021-03-01 9.13.40.png
スクリーンショット 2021-03-01 9.13.51.png
スクリーンショット 2021-03-01 9.14.10.png
前手順で作成した英文をそのまま貼り付ければ良いです
スクリーンショット 2021-03-01 9.14.22.png
※ App nameは重複が許されないみたいなので、適当に書き換えてください
スクリーンショット 2021-03-01 9.16.39.png
完了後、上記の画面が表示されます。
アプリ作成に必要な情報が表示されるので、しっかりと控えておきましょう
こちらの情報は再作成するので、控えなくても大丈夫です

3−3. token情報を取得する

3-3-1. 権限の変更を行う

Appが作成できたら左のパネルに「App名」の項目が出現するので、「App名」 > 「Edit」の順にクリックして
権限変更画面に移動します。
スクリーンショット 2021-03-01 10.49.59.png
作成するAppでは書き込みも行うので、「Read and Write」を選択して、「Save」をクリックします
スクリーンショット 2021-03-01 10.53.36.png

3-3-2. token情報の生成と取得

「Keys and tokens」タブを選択したあと、
「API key & secret」 と 「Access token & secret」のRegenerateをクリックして、token情報を作成します。
※ 作成したtoken情報はアプリに設定する必要があるので控えておいてください
スクリーンショット 2021-03-01 11.13.47.png

自動投稿スクリプトを作成する

GitHubでリポジトリを公開しているので、cloneしてください。

git clone https://github.com/nekonisi/monitor_me.git

そのあと、const.py.exampleをコピーしてconst.pyを作成、
値を前手順で取得した情報に書き換えてください

cd monitor_me/
cp const.py.example const.py
vim const.py
const.py
#!/usr/bin/env python
#coding: UTF-8

#設定値の定数化
CONSUMER_KEY    = "YOUR_CONSUMER_KEY"
CONSUMER_SECRET = "YOUR_CONSUMER_SECRET"
ACCESS_TOKEN    = "YOUR_ACCESS_TOKEN"
ACCESS_SECRET   = "YOUR_ACCESS_SECRET"

下記コマンドで動作確認をしましょう

python monitor_me.py

問題なければ、カメラで撮影された画像がtweetされているはずです。

crontabの登録

定期的に画像投稿をするためにcrontabを登録しましょう。

crontab -e
*/1 10,11,13-18 * * 1-5 python /home/pi/monitor_me/monitor_me.py

上記のように登録しておけば月〜金の10~19時(12時台はなし)で1分毎に投稿されます。

おわりに

今回、初めて記事を作成しました。
どんな内容でも、なにかフィードバックいただけると幸いです。
作業風景はコチラで投稿しています。
サボってたら怒ってください。

参考サイト

それ、ラズパイでつくれるよ——画像の自動ツイートもできるよ! | fabcross

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2