Python(Raspberry Pi)アプリケーション

今をときめく言語python。AIやWeb開発などいろいろなところで利用されています。
しかも高い可読性と生産性のおまけつきとか(ほんとですか)。

というわけで今回はpythonでアプリケーション開発してみたいと思います。

開発するもの
・現在の気温を測定し、音声とTwitterで教えてくれるIoTアプリケーション

用意したもの
・RaspberryPi モデルB
・ブレッドボード他電子工作キット(温度センサーが入っているもの)
・miniSDカード
・キーボード、ディスプレイ、スピーカー
・インターネット環境
・Twitter Developerアカウント

RaspberryPiとは
ちっちゃいコンピュータ。マザーボード上にCPUとメモリ、チップセット、あとは入出力端子があるくらい。
無限の可能性を秘めている気はするけど、使い方を考えないと、何もできません。それは普通のPCも一緒かもしれない。

なぜRaspberryPiでPythonなのか
RaspberryPiの標準OS、Raspbian(Linux)にPythonが抱き合わせされているのでそれを使います。
流行りだし、高い可読性と生産性も確かめてみます。

GPIOとは
HDMIやUSB,LAN等の入出力は専用で用意されていますが、センサーやLEDを利用するにはこのGPIO(汎用入出力)を利用します。
GPIOに流す電流をRaspberryPiから制御することで様々なアプリケーションになるということですね。

まずはRaspberryPiで四苦八苦する
とりあえず記憶装置がないとなんにもできないので、miniSDカードを装着しOS(Raspbian)をインストール。
入出力装置はUSBキーボードと普通のディスプレイで。
※ただしD-Subのケーブルはコネクタの受け口がないので使えません。HDMIケーブルを用意します。
これで開発環境は整いました。

写真はRaspberryPiでの開発の様子。隣にPCも置いてあるのでわかってもらえないかもですが緑の箱からの出力が画面に表示されています。

センサーとスイッチの回路を作成する
スイッチが押されたら電流がセンサーに流れて値をRaspberryPiに返す回路です。

Pythonアプリケーションの作成
ようやくアプリケーションの作成です。
結論から述べると、ライブラリのインポートが10行余り、定数、変数定義も10行余り。
メイン処理は30行余りで完成しました。

Twitterとの連携
TwitterAPIにアクセスするためにはTwitter公式サイトからデベロッパー登録をまず行います。
登録が完了すると
「Consumer Key」「Consumer Secret」「Access Token」「Access Token Secret」
の4つのキー(多分正確にはキーとパスワード)が得られるので、それをプログラムに記述します。
これら4つの値でOAuth認証を行います。この辺の技術を語るとブログ一つ分必要なので割愛します。
そしてこれらをPythonアプリケーションから簡単に利用するためにtweepyライブラリをインポートしました。

日本語での音声出力
Open JTalkという有名かつフリーのという日本語音声合成ソフトをインストールして連携します。
イントネーションは多少気になりますが、ちゃんと喋ってくれました。

結論
わずか数十行でIoTアプリケーションができました。
高い生産性は先達たちの成果の積み上げの賜物でしょう。ネットで直ぐに情報が手に入るのがうれしい。
可読性については、インデントがルールになっていることもあり、見た目はきれい。
コード自体はjavaでもcでもやっていれば違和感なく読むことができると思います。
ちなみにPython初挑戦でしたが、特段のくせもなく、開発しやすい言語の印象は受けました。
ソフトウェアの開発をしてたつもりがセンサー周りの配線だとか別のところに多くの時間を割いたのはご愛敬。

おしまい