「勉強会に行ってみた!」第14回「ArduinoではじめるIOT入門~Twitter通知を可視化してみよう~」
event

「勉強会に行ってみた!」
第14回「ArduinoではじめるIOT入門
~Twitter通知を可視化してみよう~」

2015.07.02

ent109_img01.jpg

最近各地でよく開かれているIT勉強会。あなたは参加したことはありますか?
一口に勉強会といっても、企業によるセミナー形式のものから有志による輪講形式のものなど様々ありますし、「行く価値があるのかな?」とか、逆に「自分だとレベルが追いつかないんじゃないか?」みたいに考えてしまって、二の足を踏むことも多いんじゃないかと思います。また、勉強会のテーマについては事前に分かっても、具体的にどんな雰囲気までは分からないことがほとんどです。
そこで実際に勉強会にお邪魔して、こんな雰囲気でしたよ!と紹介するのがこの記事の目的です。「こんな感じなら行ってみようかな」みたいに思ってもらえたらうれしいです。
三土たつお

今回はArduinoの勉強会に行ってきました。Arduinoっていう名前はよく聞くんですが、実際に触ったことはなかったのでどういうものなのか見てみたかったんですよね。

会場は渋谷にある Voyage Group のセミナールーム。

ent109_img02.jpg

Voyage Group では、勉強会向けに無料で会場を貸し出しているんだそうです。ありがたいですね。

講師はニャンパス株式会社の登尾さんです。

ent109_img03.jpg

登尾さんというとClojure の著書で有名ですが、ArduinoとかGoogle Glass とかを使った開発もやっていて、主に地元の越谷レイクタウンで勉強会を開いているんだそうです。今回は東京での出張版という感じですね。

今回使う Arduino というのはこういうものです。

ent109_img04.jpg

初めて見ましたが、かっこいいですね! いかにも電子回路という見た目ですが、いろんな入出力ポートを備えた立派なコンピュータなんですよね。今日はこれを Twitter と連携させるとのこと。どうやるかは全然分かりませんが、とにかく面白そうです。

■ 「Lチカ」は電子回路界の「Hello World」

いきなりTwitterと連携させる前に、まずは一歩ずつ進めていきます。最初にやることは、ArduinoにLEDをつないでチカチカと光らせることです。

手順はこうです。

  • 1. LEDをArduinoに挿して、Arduino をパソコンに接続する
  • 2. パソコンからArduino に、LEDを光らせるためのプログラムを転送する
  • 3. LEDが光る!

まずLEDとArduinoとパソコンをつなぎます。こんな感じですね。

ent109_img05.jpg

LEDがささっているのはArduinoのデジタルピンと呼ばれるもののひとつ(12番ピン)で、ArduinoとパソコンはUSBケーブルでつながっています。

つぎに、パソコン上にArduino IDEをダウンロードして起動し、LEDを光らせるためのプログラムを書きます。

ent109_img06.jpg

プログラムはこんな感じですね。digitalWrite(12,HIGH)とかdelay(1000)とかの記述から、一秒ごとにLEDに電圧をかけて光らせる感じが伝わってきます。そしてこれを実行させると・・

ent109_img07.jpg

みごとにチカチカと点滅しました!

こういうふうにLEDをチカチカさせるのは「Lチカ」と呼ばれて、プログラム言語の習得でいう「Hello World」のような最初の一歩なんだそうです。なるほどー。面白いですね。

■ いよいよ Twitter と連携していく

LEDが光って一安心する参加者に対して、講師の登尾さんは

「これから徐々に難易度が上がって行くと思って下さい。これはLEDを光らせようっていう勉強会じゃないので」

と笑いながら言っていました。実際これから、

  • ・ブレッドボード
  • ・シリアル通信
  • ・Processing

といった要素が加わってきます。

まずはArduinoをブレッドボードにつなぎます。こんなやつですね。

ent109_img08.jpg

さっきまでArduinoに直接LEDを指していましたが、広いブレッドボードを経由してそこに挿していくことで、配線がしやすくなるわけですね。

次はシリアル通信です。今回は、パソコンでTwitterのタイムラインの情報を取得し、それをもとにArduinoに指令を送ることで、LEDを光らせようとしています。パソコンからArduinoに指令を送るために使うのがシリアル通信です。

ent109_img09.jpg

(登尾さんの資料より)

まず、Arduino側にはシリアル通信の内容に応じてLEDを光らせるためのプログラムを送り込んでおきます。そして、Twitter から情報を取得してArduinoにシリアル通信を行うための処理は、Processing で行います。

ent109_img10.jpg

画面はこんな感じです。一分ごとにTwitterをチェックし、タイムラインに更新があればLEDが1つ光り、自分へのメンションがあればもう一つLEDが光るようにします。

プログラムを見ると、isNewMention() とかがあって、結果を sendToArduino() で送ってるのがなんとなく分かります。Twitterの情報を集めてくる部分は、Twitter4J というJavaのライブラリーを使っています。

Twitterアプリのお作法として、OAuth関連のキーやトークンを取得する手順があるので、そのために一度ネットに接続する必要があるのですが、会場のWi-Fiがなぜか不調で参加者によってつながったりつながらなかったりするようでした。

そこで登尾さんが取り出したのは、これ。

ent109_img11.jpg

こんなこともあろうかと、私用のモバイルルーターを持参していたのです。

「会場のWi-Fiにつながらない人はこっちにつないでください」

という登尾さん。いろいろ勉強会に参加してきましたが、こんなシーンは初めて見ました。登尾さん、いい人ですね。

ent109_img12.jpg

こんなふうに参加者といっしょに問題を解決する姿もよく見ました。

さて、ではいよいよ実行してみましょう。どうでしょうか?

ent109_img13.jpg

Twitterで更新があると・・

ent109_img14.jpg

LEDが光る(ピカー)

光りました!見た目だと単にLEDが光ってるだけなのでいまいち伝わりにくいかもしれませんが、けっこうな感動です。いろいろ下準備をして、電子回路のさきっぽのLEDがTwitterのタイムラインの変化によって光ってるわけですからね。なんだかIoTの香りが感じられたようでした。

■ Arduino からTwitterに発言する

こんどは逆をやります。つまり、ArduinoからTwitterに発言します。どうやるか。
まずは、ブレッドボードにスイッチを接続します。

ent109_img15.jpg

スイッチ

この、いかにも電子部品という姿がいいですよね。このシンプルな姿とインターネットとのギャップがいい。
じつは、さきほどArduinoに送り込んだプログラムの中に、スイッチが押されたらシリアル通信でパソコンに通知する仕組みがすでに入っています。

なので、あとはパソコン側で通知を受け取って Twitter に発言する処理を書けばいい。具体的にはこんなふうになります。

ent109_img16.jpg

ポートの内容を読み取って TwitterにupdateStatus()してる、つまり発言してるのがなんとなく分かりますね。では実際に発言してみましょう。参加者の方にボタンを押してもらいました。

ent109_img17.jpg

ポチットな

ent109_img18.jpg

Twitter に発言されてる!

やった!素晴らしいですね。ボタンを押すとインターネットに発信される。むやみに押したくなります。

■ 主催者と講師の方に話をきいた

今回のイベントの主催は平間さん。ふだんはWebデザイナー兼ディレクターとして仕事をしながら、WebSig24/7というコミュニティのモデレーターをしているそうです。

ent109_img19.jpg

平間さん

登尾さんとは知り合いで、IoTの勉強会ができたらいいねと意気投合して、二人で企画して開催したそうです。

「ウェブ系のプログラマーの人たちにきくと、IoT系のプログラムは知らないとかできないという人が意外と多かったので、もっとみんなIoTに入っていけばいいなと思って企画しました」

とのこと。参加者への貸し出し用に大量に用意されたArduinoは、登尾さんが別の場所でふだんやっている講習会で使っているものを持ってきたんだそうです。

ent109_img20.jpg

登尾さんは、会社のある越谷レイクタウンでHaLakeというコワーキングスペースもやっていて、そこで講習会もやっているとのこと。こども向けの勉強会もあるそうです。

HaLake
http://halake.com/

■ まとめ

「Lチカ」という言葉を知っただけで、一歩IoTに近づいた気がします。ぼくもまさに平間さんのいうウェブ系のプログラマーで、モノと連携するプログラムなんて難しそうと思ってました。でも実際に動かす過程を見ると、これなら自分でもできそう、という気分になりました。

今回参加した勉強会:
ArduinoではじめるIOT入門~Twitter通知を可視化してみよう~
https://2e00630b7c76537026c523f117.doorkeeper.jp/events/26091

三土たつお。1976年生まれ。プログラマー、ライター。プログラマーとしてはふだんPHPを書いてます。
ライターとしてはニフティのデイリーポータルZとかで書いてます。
http://mitsuchi.net/

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW