server_sent_events000

Server-Sent Eventsについて(Arduinoとスマートフォン連携の可能性)

記事公開日:2015年7月12日

こんばんは。
今回は、前回と、前々回の記事で取り上げたServer-Sent Events について、個人的に感動したので、もうちょっと語らせていただきます。
(重複するところもあります)
前回の動画を見てもらえばわかると思いますが、これだけリアルタイムにArduinoからのデータ変化を捉えられるということは、たかが電子工作でメーカー製品に負けない様々な可能性を秘めていると思います。

スポンサーリンク


まず、よくわからない方のためにServer-Sent Eventsを説明しますと、
要するにGoogle Chrome やiOS のSafari などのブラウザで動作するHTMLタグ内のJava Script で動作するプログラムの関数みたいなものといった方がよいでしょうか。
ArduinoのC++言語ではないのですが、ArduinoのプログラムのClient.print文でこのJavaScriptをブラウザに出力するとブラウザでデータを表示してくれます。
簡単な動作イメージはこんな感じです。
Server-Sent Events Realtime Streaming Transmit

serversentevents004.jpg



因みに、これはArduinoからの送信のみです。
スマートフォンからの送信はネットでかなりの情報があるので、ここではあえて取り上げません。
スマホからリアルタイム常時送信するようなことはArduinoでは個人的にあまり必要性を感じませんが・・・。
スマホからデータを送る場合はHTTPのPOST送信で、日本語はパーセントエンコードされているので、その処理が辛いところです。
ブラウザからデータをそのまま送ってくれる方法はないもんでしょうか・・・。
あとこれは、Arduinoからの常時連続送信なんです。
外国の方は試されているかもしれませんが、日本のサイトでは情報が全く見当たりません。
しかも、AndoroidアプリやiOSアプリを開発する必要がありません
最新版Google Chrome かSafari があればパソコンだろうが、スマートフォンだろうが、同じく画面が見えるんです。
それがとにかくスゴイ!!
自作サンプルソースプログラムは前々回の記事に掲載してますので、ぜひ使ってみてください。
電子工作ごときでここまでできるんですから、いろんな可能性を感じますね。
これは有線のEthernet Shield を使ってますが、Wi-Fiシールドも近々試してみたいですね。
そしたら、もっとコンパクトにオモシロイ物ができそうです。
ただ、これの大きな欠点は、ArduinoのSRAMメモリーを多量に消費してしまうことです。
沢山指令するCrient.Print文がネックです。
UNOではテキストを表示するところまではできますが、
JavaScriptのCanvas要素を使ってグラフィック表示させるのは辛いですね。
前々回の記事では何とかUNOで間に合いましたが、前回の記事ではMEGAでないと無理でした。
早く超小型で安価なSRAMが多量にあるArduinoが出て欲しいです。
今回はこんなところです。
ではまた、何かできたらアップしたいと思います。

スポンサーリンク



(関連記事)
ArduinoとスマホブラウザのServer-Sent Eventsで、Canvas要素を使ってグラフ表示してみました。
Server-Sent Eventsを使って、Arduinoからブラウザへリアルタイムデータ送信できました!!
つづき、動画アップしました。Arduinoタイマー付きLED電光掲示板 試作完成 その4

[ホーム(home)]

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください