昨日は駆け足でFacebookへの投稿をテストしてみました。
今日からArduino Yun + BME280(Boschのセンサー)を使って事務所の温度を1時間毎にFacebookに投稿を始めています。
https://www.facebook.com/toshi.hat
一日放置して、安定して動くか確認してみます。
今日はここまで。
Self-powered Internet of Things
昨日は駆け足でFacebookへの投稿をテストしてみました。
今日からArduino Yun + BME280(Boschのセンサー)を使って事務所の温度を1時間毎にFacebookに投稿を始めています。
https://www.facebook.com/toshi.hat
一日放置して、安定して動くか確認してみます。
今日はここまで。
センサー情報をメールで飛ばすのは実用になりますが、「そういうことができるんだよ、面白いよ、有効だよ」、と広く知らしめるには不都合です。メールアドレスを聞き出して(登録してもらって)、そこに定期的に発信すればいいんでしょうが。
そこで次にSNSの代表格であるFacebookに、Arduinoを自分の代理として投稿してもらうことにします。
大まかな流れを書きますと
(1) Facebookの開発者アカウントを取る
(2) Facebookの開発者サイトで「アプリケーションID他」を取得する。つまりFacebookに、Arduinoが外部アプリケーションであると認識させるわけです。
(3) TembooのサイトでInitializeOAuth –> FinalizeOAuth –> Postに登録してArduinoのプログラムコード(スケッチ)を取得する
(4) Arduinoにコードをcompile & goするとFacebookに投稿される
となります。長いですが一気に(4)までやってしまいましょう。
(1) Facebookの左のカラムから「アプリを管理」を見つけてクリック
(2) Developers siteに入るので、ここでMy Appsタブをクリック
(3) 下の画面が出たら”Create a New App”をクリック
(4) 下の画面でDisplay Nameに適当な名前を入力する。Namespaceはoptionalなのでなくて構いません。カテゴリも適当で問題ないです。Create App IDを押すと…
(5) 作られたアプリのDashboardの画面が出ます。ここでSettings(設定)をクリック
(6) ここで”+Add Platform”をクリックします
(7) 下の画面が出るので”Website”をクリックすると・・・
(8) この画面になり、Websiteの欄が追加されているのがわかります。
(9) ここでTembooのサイト、Library-tab>Facebook>OAuthをクリックするとこれからすることの説明が出ています。
やることは簡単で、
https://{ACCOUNT_NAME}.temboolive.com/callback/
の{ACCOUNT_NAME}の部分を自分のアカウントに置き換えて、先ほどのFacebookの”Site URL”に入れ、Save Changesをクリックしてください。
(10) 再びTembooに戻ってFacebook>OAuth>InitializeOAuthをクリック
INPUTを要するのが2つ。AppIDはFacebookのdashboardからコピーして入力してください。Scopeはとりあえず
publish_actions,read_mailbox
だけ入れればしばらく用は足ります。
ここでRunをクリックすると、AuthorizationURLとCallbackIDが出てきます。AuthorizationURLをweb-browserに入れてクリックすると、どこかで見たことのあるFacebookの「投稿を許可しますか?」という画面が出ます。これをOK。CallbackIDは次のステップで使うのでメモ帳にコピーしておく
(11) もう少しです。TembooでFacebook>OAuth>FinalizeOAuthをクリック
今度は入力するのが3つ。AppIDは先ほどと同じ。AppSecretもFacebookのdashboardからコピー、CallbackIDはInitializeOAuthで取得したものを入れます。終わったらRunをクリック。
(12) ようやくArduinoのコードが出てきました。これをArduinoでcompile & goすればFacebookの自分のタイムラインに投稿されます。
長くなったので今日はここまで。
「TEMBOOを使ってみる(2)」でgmailから「アプリ パスワード」が取得できたので、今回はTembooでArduinoに書き込むべきコードを生成させて、実際にArduinoから定期的にメールを飛ばすところまでやってみます。
(1) Tembooのアカウントを取ります
※account nameはアプリIDを生成する際に使われるようです。
(2) account name/email address/passwordを入れてsign upすると次の画面になります
(3)ArduinoからYahoo!サイトをアクセスするデモを見て、Tembooとはどんなものか、どんなことができるか、イメージを掴みます。
(ここで右上のLibraryをクリックすればこのデモはスキップできます)
右のArduinoのロゴをクリックすると次の画面になります。ここではArduinoからYahoo! Weatherをアクセスしようとしています。
自分の住んでいる住所を入れてGenerate Codeを押してみましょう。すると次のようにArduinoのコードが生成されているのがわかります。
Run the Codeを押してみましょう。Arduinoにコードを書き込んで実行しているシミュレーションです(本当にArduinoのエミュレーションをしているかは不明です)。
OUTPUTを見ると華氏66度となっています。摂氏だと19度くらいです。ArduinoからYahoo! Weatherをアクセスして気温を取り込んだところをイメージしてください。
さて次にGet Started Nowを押すといよいよ本番です。
(4) Libraryの画面、左のCHOREOSからGoogleを探してください。
その下の階層のGmail、更にその下のSendEmailをクリックします。
私の場合、上部の選択肢は、Arduino Yun,、Onboard Ethernet & WiFi、Want to stream sensor data?はそのまま、にしました。
INPUTの枠の中は、
Passwordは先ほどGmailから取得した「アプリ パスワード」
UsernameはGmailのアドレス
FromAddressは受け取ったメールにFromで表示されるアドレス
MessageBodyはメール本文
Subjectはメールのタイトル
ToAddressはメールを送信するアドレス
ここまで入力が終わったらRunを押してしばらくするとOUTPUTにArduinoに書くべきコードが現れます。
これをcopyボタンでコピーし、IDEを使ってArduinoに書き込み、Runさせれば
Arduino –> Temboo –> Gmail –> 送りたいアドレス
の経路でメールが送られます。
ここまで。
ここではgmailの「アプリ パスワード」を取得するまで、をやってみます。
「アプリ パスワード」とは、他のアプリケーションからgmailにログインする際に使うパスワードのことです。元来はgmail以外のアプリケーションがgmailを操作するために開放されているAPIですが、我々はこのI/Fを使ってArduinoからメールを飛ばそうとしているわけです。
(1) googleのサイトの右端のボタンから「アカウント情報」のページを表示させてください。
(2) 「アカウント情報」のページの「ログインとセキュリティ」をクリックします。
(3) 「ログインとセキュリティ」のページを下にスクロールしてもらうと、「Googleへのログイン」の項が現れます。ここで「2段階認証プロセス」をクリックします。2段階認証プロセスとは、通常のパスワードによる認証の他に、携帯やスマホを使った認証を加えてセキュリティを強化したもので、目標とする「アプリ パスワード」を得るにはまずこの2段階認証プロセスを選択する必要があります。
(4)携帯やスマホへ、SMS/MMSか音声による数字のパスワードを送信します。この数字をサイトに入れれば「2段階認証プロセス」が有効になります。今後はgmailから認証が必要になったとき「2段階認証プロセス」になります。
(5) 「ログインとセキュリティ」のページの「Googleへのログイン」に戻ると、「2段階認証プロセス」が有効になっており、「アプリ パスワード」の項目が現れるのでこれをクリックします。
(6) 「アプリ パスワード」が生成されるのでこれを控えます。
※こういうとき私はスクリーンショットを使います。私のlenovoではPrtScキーを押してコピー、「ペイント」アプリを立ち上げてペーストします。
この項はここまで。次回いよいよTembooを動かします。
「センサーやスイッチの情報をPCやスマホで見たい」
という方は多いと思います。センサー情報を可視化できるXivelyというサービスがあるのですが、ここでは敢えてTembooを使ってみます。
理由はTembooが、Arduinoのサイトで薦めていることもあるのですが、メールを飛ばすとかTwitter/Facebookとの連携から始めて、それができるようになったらGoogle BigQueryのようなセンサー情報を蓄えて後で解析するような用途にも発展できそうだからです。私が目指しているスタートスモールの精神に合っています。
では一番簡単な「Arduinoから一定の時間間隔で任意のアカウントにメールを飛ばす」ことをやってみます。
ゴールまでを大まかに説明すると
(「gmailのアカウントがある」、「Arduino YunをWi-Fiで、またはArduino + Ethernet Shieldで、インターネットにつなぐ環境にある」、ことを前提とします)
(1) gmailの「アプリ パスワード」を取得する
(2) tembooに「Arduinoの情報」、上記「アプリ パスワード」、「飛ばしたいメールアカウント」を入れて、Arduinoのコードを取得する
(3) Arduinoでcompile & goすると指定のアカウントにメールを飛ばし始める
です。次の投稿から実際にやってみます。
ここまで
今まで、4つのセンサー値をmicroSDカードに蓄積する、オフラインのデータロガーを作ってきましたが、そろそろネットワークを使って外部にデータをリアルタイムで飛ばしたくなってきました。
インターネットに出る方法には、コントローラのハードウェア構成から大きく分けて3種類、(1)有線LAN、(2)無線LAN(Wi-Fi)、(3)3G/LTEの携帯網に直接、があります。これらのハードウェアは既に一通り試しており、お客様のご要望に応じてケースバイケースで使い分けができるようになりました。
次に問題になるのは、得られた情報を、(1)どこかに通知しておしまいにするのか、(2)どこかに溜めておいて後から使うのか、です。また、(1)既存サービスを使うのか、(2)自分で構築するのか、も問題でしょう。
ここでは一つの例として、”TEMBOO”というサービスを紹介します。理由は、
(1)gmail/Twitter/Facebookへのインターフェースが簡単に構築できる、つまり通知しておしまい、ができる。
(2)Microsoft Power BI/Google BigQueryへのインターフェースもある。つまりビッグデータを貯めておいて後で処理、ということもできる。
(1)は何かの状態変化を通知する、つまり押しボタン、人感センサー、ドア窓開閉センサーで人が平常に生活している、もしくは異常を発見、という通知をするイメージ
(2)は温度・湿度等のセンサー情報を溜めておいて後で解析するイメージです。
明日以降、実際に使っている様子を説明していくことにしましょう。
今日はここまで。
NHKクローズアップ現代にてLIXILの研究所が紹介されています。
ここに伺ったことがあります。EnOceanを使ったセンサー満載です。
展示会中にお会いできた方々への訪問を始めています。
そこでいろいろお話したことなど。
まず何といっても情報の発信不足を痛感します。
「EnOceanの製品寿命は?」
「EnOcean無線の特徴は?」
こんな単純な質問に明快に答えられていません。
直にお会いしたときには実物や、事例や、情報源を示したりしながら総合的に理解していただけるよう工夫するのですが、いかんせんネットだけでこれらを理解しようとすると隔靴掻痒の感が否めません。
ネットでも動画やスライドショーなどが使えるので手を変え品を変え理解を深めていただけるよう努力しようと決意した次第。
今日はここまでです。
先日展示会中に沢山頂いた質問への回答を書きました。
今回はその続きです。
(1) EnOcean製品を作りたいのだがアライアンスに入る必要はありますか?
結論から申せば、アライアンスに入らないでEnOcean応用製品を開発・製造・販売することは可能です。EnOceanの無線規格はISO/IEC14543-3-10という国際規格になっていますし、ERP,ESP,EEPという開発に必要なプロトコルの情報は公開されています。EnOcean製品を購入すると同時に特許やこれらのライセンスが付与されます。”EnOcean”の公式な認証は今のところありません。
アライアンスに入るメリットは、新しい規格に対して意見を述べたり、アライアンスメンバーだけに公開されている情報に触れたり、メンバー同士の交流ができることです。上位クラスになれば固有のIDを付与されてproprietaryな機能を追加することもできます。今後の認証プログラムの動向には注意しておく必要があります。
(2) EnOcean製品はどこで買えますか?
EnOcean社のリリースしている日本向け製品(無線モジュールなら国内規格を取得したもの)の入手先は、ローム(の代理店)、丸文株式会社、そして当社、の三社です。ロームは部品メーカ、丸文は半導体商社、当社はEnOceanのValue added distributer(付加価値を付けて販売する)という棲み分けになります。
ここで当社の強み、存在価値、を説明しておくと、EnOcean製品をそのまま供給するのは当然として、
a) 開発サポート、開発請負ができる
b) 自社オリジナルの完成品を開発・販売できる
ということでしょう。部品メーカ、半導体商社、が直接できないことです。
ここまで。
展示会が終わって、今週からそのフォローを始めますが、それと並行して今まで蒔いてきた種から芽を出させるべく商品企画を開始しています。
今日は地域行政の関連組織にお願いして、どんな商品が医療・介護・福祉関係に必要なのか、ヒアリングをしました。
話をしている中で、「無線機器の開発」を生業とする私と、「医療・介護・福祉」の現場を預かる方たちとの間には、関心事に大きな隔たりがあることを再認識しました。
結論から言えば、「困っていることを言ってください」では何も生まれない。こちらから「(無線を使うと)こんなことができるよ」というのを形にして見せて初めて「ここをこうしたら使える」「ここはいやだな」という意見が言える、ということです。
「欲しい」と思ってもらえるまでは辛抱、我慢の連続です。
今日はここまで。