作品タイトル:GR-CITRUSでTwitter
表示名:ksekimoto
コンセプト・作品説明 |
---|
Ruby(mRuby)が簡単に使える「GR-CITRUS」と、WiFi通信やマイクロSDカードをサポートした「WA-MIKAN」と組み合わせて、Twitterにつぶやくガジェットを作ってみました。 「WA-MIKAN」には、ESP8266を搭載していますが、このFiremwareが2017年5月に更新され、SSL通信がサポートされました。SSL通信がサポートされたことで、Twitter(やその他クラウドサービスの)APIアクセスに必要なOAuth認証の実装をしやすくなりました。 そこで、Twitterのドキュメントを参照しながら、OAuth認証関連の手続きを、GR-CITRUSのFirmwareとmRubyのプログラムで実装してみました。 |
用意するもの
このガジェットに必要なものは、以下の通りです。
- 「GR-CITRUS」ボード
- 「WA-MIKAN」ボード
- SD-CARD (Max:2GB) 通信ログの一時記憶のため
- Twitterアカウント
Twitterのアカウントは、よくあるWebページを参考にしながら、予め作成しておいてください。
作成手順
このガジェットを作成する手順は、以下の通りです。
1. 「WA-MIKAN」のESP8266のFirmwareの更新
2. Twitter APIアクセスに必要な情報の取得
3. 「GR-CITRUS」のFiremwareの更新
4. mRubyのプログラムの実行
「WA-MIKAN」のESP8266のFirewareの更新
「WA-MIKAN」のESP8266のfirmwareの更新には
* ESP8266のFirmware 書き込みツール、
* USBシリアル変換モジュール、
* 「WA-MIKAN」のJP1ピンをショートするための部品、
が必要になります。
こちらのページ(WA-MIKAN(和みかん)をGR-CITRUSから使える状態に戻す方法)に詳細が掲載されていますので、参考にしながら、以下の作業を実施します
ESP8266のFirmware 書き込みツール
ESP8266の書き込みツールを以下のページからダウンロードします。
USBシリアル変換モジュール
USBシリアル変換モジュールは、例えば、秋月電子の FT-232RQ USBシリアル変換モジュールなどが使用できます。
「WA-MIKAN」のJP1ピンのショート
「WA-MIKAN」のJP1ピンのショートには前述の参考ページでは、ワイヤーを使用していますが、私の方では、以下のピンヘッダとジャンパピンを使用しました。
* 1.27mmピッチピンヘッダ 1×40 (40P)
* 1.27mmピッチジャンパーピン (黒)(5個入)
書き込むFirmwareファイル
書き込みFirmwareファイルは、NON-OS SDKのZIPファイルに含まれています。以下のサイトよりダウンロードして、解凍します。
書き込みFirmwareファイルは以下の図の通りです。
* ESP8266_NONOS_SDK-2.1.0\bin\boot_v1.7.bin (0x000000)
* ESP8266_NONOS_SDK-2.1.0\bin\at\1024+1024\user1.2048.new.5.bin (0x001000)
* ESP8266_NONOS_SDK-2.1.0\bin\blank.bin (0x0fe000)
* ESP8266_NONOS_SDK-2.1.0\bin\esp_init_data_default.bin (0x3fc000)
* ESP8266_NONOS_SDK-2.1.0\bin\blank.bin (0x3fe000)
* ESP8266_NONOS_SDK-2.1.0\bin\blank.bin (0x3fb000)
書き込みツールを起動して、Firmwareファイルと書き込むアドレスは以下の図のように設定いたします。
書き込み開始はStartボタンを押します。数十秒で書き込みが終了します。これで、ESP8266でSSL通信が可能になりました。
Twitter APIアクセスの準備
次にTwitter APIにアクセスするために、Twitter APIのアプリケーションの登録をして、comsuer_keyとcomsumer_secretを取得し、さらにTwitter APIのアクセストークンの取得をします。
* Twitter APIのアプリケーションの登録 (consumer_keyおよびcomsumer_secret)
* Twitter APIのアクセストークンの取得 (access_tokenおよびaccess_token_secret)
* アプリケーション登録などを参照し、comsuer_keyとcomsumer_secretを取得してください。
* アクセストークンの取得などを参照し、access_token_keyとaccess_token_secretを取得してください。
「GR-CITRUS」のFiremwareの更新
「GR-CITRUS」のFiremwareの更新は、「GR-CITRUS」のリセットボタンを押してUSBメモリとして認識後、firemwareファイルをUSBメモリにコピーすること行います。
Twitter APIのためのfirmwareファイルは、以下のgithubのレポジトリよりダウンロードしてください。
* https://github.com/ksekimoto/wrbb-v2lib-firm/blob/dev/firmware_develop/citrus_sketch.bin
ソースファイルもこのgithubのレポジトリ(devブランチ)に格納されています。
mRubyファイルの実行
Twitter APIを使用したつぶやきのプログラムは、以下のgithhubのレポジトリに格納されています。
* https://github.com/ksekimoto/wrbb-v2lib-firm/blob/dev/samples/VSCode-Rubic/WiFi_Samples/Twitter/main.rb
ダウントードして、エディタあるいはVisual Studio Codeなどで開いてください。まず、WiFi環境のSSIDとPASSを設定します。次に、前段階で取得したTwitter APIアクセスに必要なconsumer_key, consumer_secret, access_token, access_token_sceretを設定します。
@SSID = "xxxxxxxxxxxxxx" @PASS = "xxxxxxxxxxxxxx" @consumer_key = "xxxxxxxxxxxxxxxxxxxxxxxxx" @consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @access_token_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" |
つぶやく内容は、以下のstrに設定します。
main.rbの抜粋 : |
mRubyのプログラムの実行方法は、以下のWebページを参照してください。
以下は実行結果の一例です。
ボードに接続します: GR-CITRUS @ COM9 1 |
週末に趣味で電子工作を楽しんでいます。
ちょっとしたものをいろんなCPUに移植することに特にはまっています。
よろしくお願いいたします。