57
Raspberry Piでツイート天気ボットを作る方法

プログラミングを始めた頃、メンターの一人が毎日写真を撮り、現在の天気を重ねてツイートするというプロジェクトを作ったんです。当時は、あんなに複雑なものを作るなんて自分には到底無理だと思ったのを覚えています。 

話を今にして思えば、これは比較的簡単に組み立てられるもので、プログラミングを始めたい人にとっては素晴らしいスタータープロジェクトだと思います。さて、これらを踏まえて、Raspberry Piを使って毎日写真を撮ってツイートするTwitterボットを作ってみましょう。

必要なもの: Raspberry Pi Twitter 天気ボット

  • Raspberry Pi 4または Raspberry Pi 3(電源アダプター付き)
  • デスクトップスピーカーまたは3.5mm入力と3.5mmケーブルを備えたメガホン
  • ワイズカム
  • 8 GB(またはそれ以上)のmicroSDカード
  • Twitterアカウント
  • OpenWeatherMapアカウント

Raspberry PiでTwitter天気ボットを作る方法

始める前に、Raspberry Piをセットアップしましょう。まだセットアップをしていない場合は、Raspberry Piの初回セットアップ方法、またはヘッドレスRaspberry Piインストール(キーボードと画面なし)の方法を解説した記事をご覧ください。このプロジェクトでは、ヘッドレスRaspberry Piインストールを推奨します。

1. Gitをインストールします。GitHubからコードをダウンロードするために必要になります。

sudo apt-get update
sudo apt-get -y install git

2.リポジトリをホームディレクトリにクローンします。これにより、プロジェクトの実行に必要なすべてのコードとオーディオファイルが揃います。

cd ~/
git clone https://github.com/rydercalmdown/weather_twitter_bot.git

3. 「make install」コマンドを実行して、プロジェクトの依存関係をすべてインストールします。このスクリプトは、低レベルの依存関係と、プロジェクトの実行に必要なPythonライブラリのインストールを処理します。Raspberry Pi Zeroでは、この処理に最大10~15分かかる場合があります。

cd ~/weather_twitter_bot/
make install 

4. Open Weather MapからAPIキーを取得します。アカウントを登録し、そこからキーを取得する必要があります。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

Raspberry Pi を使った Twitter 天気予報ボット

(画像提供:Tom's Hardware)

5. Twitter 開発者ポータルにアクセスし、「プロジェクトの作成」と「アプリケーションの作成」をクリックして、Twitter アプリケーションを作成します。

6.アプリケーションの開発環境を選択し、「次へ」をクリックします。

7.アプリケーションに、 Twitter 全体で一意の名前 (weatherbot-yournamehere など) を付けて、[次へ] をクリックします。

Raspberry Pi を使った Twitter 天気予報ボット

(画像提供:Tom's Hardware)

8.次のページでAPI_KEY と API_KEY_SECRET の値を保存し、ダイアログを閉じます。

9.アプリケーション設定に移動し「アプリの権限」セクションを見つけて編集」をクリックしますアプリケーションの権限を「読み取りと書き込み」に変更し、「保存」をクリックします。

Raspberry Pi を使った Twitter 天気予報ボット

(画像提供:Tom's Hardware)

10. ページ上部の「キーとトークン」タブに移動し、「アクセストークンとシークレット」までスクロールダウンします。「生成」をクリックし後で使用するために値を保存します。

Raspberry Pi を使った Twitter 天気予報ボット

(画像提供:Tom's Hardware)

11.このチュートリアルに従って、カスタムRTSPファームウェアをWyzeカメラにフラッシュします 。RTSPサポートをインストールすると、カメラに接続してPythonで直接フレームを取得できるようになります。Wyze V2またはV3カメラとmicroSDカードが必要です。

Raspberry Pi を使った Twitter 天気予報ボット

(画像提供:Tom's Hardware)

12. WyzeアプリケーションからRTSP URL値を取得し、 Makefile内のRTSP_URI変数を編集して、Raspberry Piをカメラに向けます。RTSP URLは、スマートフォンのWyzeアプリケーションの「詳細設定」セクションで確認できます。

13.カメラからRTSP URL 環境変数を設定します。

# If you’re using a Wyze cam, this can be retrieved from the Wyze application
RTSP_URL=rtsp://username:[email protected]/live

14.天気 API キーをエクスポートします。

Export WEATHER_API_KEY=your_openweathermap_api_key

15. Twitter アプリケーションの資格情報をエクスポートします

# From the first stage of the app creation process
export TWITTER_APP_API_KEY=your_key
export TWITTER_APP_API_KEY_SECRET=your_secret
# From the generate access token and secret stage of the app creation process
export TWITTER_ACCESS_TOKEN=your_token
export TWITTER_ACCESS_TOKEN_SECRET=your_secret

これらの値はTwitterアカウントへのアクセスを許可するため、秘密にしておいてください。紛失または漏洩した場合は、Twitter開発者コンソールでいつでも再生成できます。

16.最もよく見えるようにカメラを外に向けて設置します。

Raspberry Pi を使った Twitter 天気予報ボット

(画像提供:Tom's Hardware)

17. make run コマンドを実行します。

make run 

画像

1

2

Raspberry Pi を使った Twitter 天気予報ボット
(画像提供:Tom's Hardware)

これで、景色の写真を自動撮影し、その上に天気情報を重ねて、その情報をツイートして世界中に公開するスクリプトが完成しました。お好きな時にお使いいただくか、crontabを使って自動化してみてください。頑張ってください!