hogehoge, world.

米国カリフォルニアのソフトウェアエンジニアがIT・自転車・音楽・天体写真・語学などについて書く予定。

ESP-WROOM-02(Arduino)によるWiFiネットワーキング (2) ~ まずは普通のArduinoから

マイコンArduinoの世界に初めて触れる人は、ESP-WROOM-02の前にやはり普通の(authenticな)Arduinoを少し触っておいた方がいいと思う。詳細は後述するが、ESP-WROOM-02は使う前に次のようなお膳立てが必要であり、いきなりだとトラブったときに問題の切り分けが難しくなるかもしれない。

  • ちょっとした電源回路が要る
  • PCに接続してプログラムを書き込むのにちょっとしたパーツが要る
  • Arduino開発環境にちょっとしたプラグインやライブラリを入れる必要がある
  • 入出力信号が5Vではなく低めの3.3Vである

ノーマルなArduinoなら本体にUSBケーブルを直接挿すだけで起動し、素のArduino開発環境からすぐさまサンプルプログラムを流し込んで動かすことができる。解説サイトや解説本も豊富で、調査やトラブルシュートのための情報には事欠かない。まずはこれでLEDチカチカやセンサーで一通り遊んでみて、ハードウェア部分・ソフトウェア部分ともに基礎を理解しておくのがおススメである。

続きを読む

ESP-WROOM-02(Arduino)によるWiFiネットワーキング (1) ~ はじめに

ESP-WROOM-02というWiFiモジュールがある。たったの650円で手に入り、触ってみるとこれがなかなかおもしろい。

Wi−Fiモジュール ESP−WROOM−02 DIP化キット: 無線、高周波関連商品 秋月電子通商 電子部品 ネット通販

f:id:tomoto335:20160508013220j:plain

WiFiモジュール」とは一体何のことだかわかりにくいかと思うが、蓋を開けてみると「Arduino互換マイコンWiFi機能が付いたもの」である。

  • Arduinoというのは「誰でも簡単に組み込みソフトウェアの開発ができる」ことを目指した開発プラットフォームである。Arduinoマイコン(または互換機)を買ってきて、PC上のArduino開発環境からプログラムを書き込めば、LED・モーター・センサーなどを制御するシステムが簡単に作れてしまう。
  • ESP-WROOM-02は、これにWiFi機能が付いて、アクセスポイントに接続したり、あるいは自らがアクセスポイントになってPCやスマフォと無線でTCP/IP通信できるハードウェアである。
* * *

百聞は一見に如かず、ということで実例をお見せしよう。下の動画はWiFiを通じたHTTPリクエストでクマーを動かすシステムである。

  • 左下にあるESP-WROOM-02がHTTPサーバとして動作しており、HTTPリクエストとしてやって来るREST風コマンドにクマーが反応する。
  • 既存のWiFiアクセスポイントに参加することも、自身が単独のWiFiアクセスポイントになることもできる。WiFiの設定もHTTPでスマフォ等から行う。
  • 冒頭の写真は本クマーシステムのブレッドボードそのものである。

ちなみに、本クマーシステムは実際のソフトウェア開発現場でバグ報告やバグ修正の通知に使用され、殺伐としたソフトウェア品質保証行程に癒しを与えるという実績を上げている。

もうひとつ、こちらは同様にHTTPコマンドで回転灯を点灯させるシステムである。

f:id:tomoto335:20160508014255j:plain

これも実際のソフトウェア開発現場でCI(Continuous Integration)におけるビルド失敗通知に使用されており、「コラー、変なソースをチェックインしたヤツは誰だ!」「すいませんすぐ直します!(くそぅ回転灯のおかげで速攻ばれちまったぜ…)」と開発生産性向上に貢献している。*1

* * *

ここで個人的には、こんなArduino+WiFiを備えたモジュールがたったの650円で手に入るというのは、我々生粋のソフトウェア屋が組み込み分野に足を踏み出すという文脈において、かなり革命的なことではないかと思うわけである。

Arduino単体だと、LEDチカチカやセンサー読み取りのような実験レベルのものは驚くほど簡単に動かせてしまうのだが、いざ意味のあるアイディアを実現しようとするとこれがなかなか難しい。スタンドアロンなシステム(自律的に稼働する車とかロボットとか)を作るにしろ、PCに接続して使う外部デバイスとのインタフェースを作るにしろ、制約が厳しくアイディアを選んだり、ソフトウェア屋としてのスキルセットが活かしにくかったり、結局のところ「意味がある」と言えるレベルに到達するためのハードルは数も高さもそれなりにあるのである。

ところが、WiFiTCP/IPまでデフォルトで使えるとなると話は大きく変わって来る。デバイスから公開のWebサービスに直接アクセスしたり、親機やスマフォと普段使い慣れた方法で連携したり、我々ソフトウェア屋の得意な領分でアイディアをかたちにする余地が大きく広がる。またWiFiというどこにでもあるインフラを使えるので、設置場所を選ばず応用範囲が広くなる。しかも安いので、多数集めての連携もできるし、思い切った実験で壊しても惜しくない。ソフトウェア屋の技術や発想の基礎はそのままで、アイディアをかたちにしてくれる強力な「おもちゃ」が手に入ると言える。

例えばこの「天気予報サービスから情報を取得して色が変わる雪だるま君」は、この特性をうまく活かした、可能性を感じさせる好例と言えるだろう。

というわけで、これを自分だけの楽しみにしておくのはもったいない、特にアイディアを持っている人には是非実現手段の引き出しのひとつとして持っていてもらいたい、とこのような書き物をすることにした次第である。

ただし、ArduinoESP-WROOM-02の入門記事は既に秀逸なものがネット上に幾つも書かれているため、私が今更同じことを繰り返す意義はない。私は、私自身が辿った道筋や、私自身が発見した(ネット上にあまり情報がない)事柄を中心に紹介していきたい。基本的な事項が抜けてるなぁと思われた読者は、まずは適当なキーワードでググってもらい、それでも情報がなければコメントで質問いただければと思う。

*1:なお現在使われているのはWiFi版ではなく有線の版である。

VerizonのGalaxy S3(SCH-I535)にIIJmio音声通話付きSIMを差す (2)

前回書いた通り、IIJmio音声通話付きSIMを無事にゲット。早速SCH-I535からVerizonのSIMを抜いて代わりに差してみた。

ちゃんと動いてくれるかどきどきしながら電源を入れると、ステータスバーに "This SIM card is from an unknown source" というアラートアイコンが出た。うわっ、こりゃダメか?と一瞬あせったが、気を取り直してもう一台の端末に電話をかけてみると普通につながった。どうやらこのアラートは無視してよいらしい。

データ通信にはAPNの設定が必要らしいのでIIJmioのマニュアルに従って設定してみる。これは簡単につながった。ただシグナル表示はHで、LTEにはならない。調べてみると、SCH-I535のLTE対応周波数が米国Verizonの使っているBand 13 (700MHz)のみなのに対し、日本のNTT Docomoが使っている周波数はBand 19 (800MHz)/21 (1500MHz)/3 (1800MHz)/1 (2100MHz)ということなので、まあそういうものなのだろう。FOMAのHSPAが掴めているのでまあよしということにする。

参考: List of LTE networks - Wikipedia, the free encyclopedia

SMSには問題あり。受信はできるのだが、送信しようとすると必ずFailedになってしまう。原因はわからないが、いろいろやっているうちに、Google Hangoutsをデフォルトメッセージングアプリに設定しGoogle HangoutsをSMSの送信に使うことで問題を回避できることがわかった。

まとめると:

  • アラートが出るが、使える。
  • ネットワーク速度はHSPA止まり。LTEではつながらない。
  • SMSは標準アプリだと受信のみ。Google Hangoutsをデフォルトメッセージングアプリにすれば送受信できる。

まあこんなもんだろうとは思いつつも、ちょっと微妙である。

LTEでつながらない問題は端末を買い替えるしか解決方法がない。そのうちアメリカに戻るとすると両国のメジャーなキャリアのバンド幅に対応しているものが必要。これ↓とかよさそうなんだけど、invitationがないと買えない。

OnePlus One - OnePlus.net

LTEはあきらめるとしても、"unknown source" アラート/SMS問題完全にゴミとなったVerizonのプレインストールアプリ等の微妙さを解消するために、思い切ってOS丸ごとflashしてしまおうかちょっと考えている。

VerizonのGalaxy S3(SCH-I535)にIIJmio音声通話付きSIMを差す (1)

どうも、カリフォルニアから一旦日本に帰って来ました。一年半ほど滞在ののち、またアメリカに戻る予定です。

* * *

旅行にしても住むにしても、新しい場所でとにかく必要なのが通信・ネットワーク環境である。特に今回はモバイルの話。アメリカから持ってきた端末に適当なSIMを買ってきて差すだけ、と思っていたらけっこうトリッキーだったのでメモしておくことにする。

現在手元には端末が2つある。アメリカでメインで使っていたVerizonのSamsung Galaxy S3と古いiPhone 3GSである。iPhone 3GSにはHanacellのJapan SIMが差さっていて当座の音声通話用端末になっている。Galaxy S3の方はNetAgeのレンタルポケットWifiにつないでデータ通信onlyで使っている。これで当座はしのげるのだが、持ち歩くものが多いのとコストが高いので、あくまで帰国直後の一時的なソリューションである。Galaxy S3に噂の格安SIMというのを差して、1台持ち且つリーズナブルなコストで用が済むようにしたいのである。

ちなみにこのVerizonのGalaxy S3の型番はSCH-I535という。日本ではマイナーなため、日本のSIMの動作確認端末リストには載っていないことが多い。どのSIMを使うにせよギャンブルにはなる。

Specs - Verizon Wireless Cell Phones SCH-I535 | Samsung Cell Phones

* * *

まずは市場に出回っている格安SIMとやらについて調べてみると、どうやらデータ通信専用のものと音声通話付きのものとがあるようである。

  • データ通信専用は本当に格安(<1000円/月)。IP電話アプリを入れることでVoIPによる音声通話が一応可能となり、通話料も普通の音声通話より安かったりする(8円/30秒とか)。ただ110/119番等の緊急電話やフリーダイヤルに掛けられないなどの制約も多く、信頼性に疑問が残る(IPが通っていてアプリが正常に動作していなければならないなど)。
  • 音声通話付きだと月額利用料が少々高くなり、普通の音声通話ができるようになる。通話料は決して安くはないが(20円/30秒とか)、普通の携帯電話としての信頼性や品質が期待できる。

自分としては、音声通話は頻繁に使わないとはいえ、基本的かつ最終的な外界とのつながり手段としてなるべく確実なものを持っておきたいと思い、音声通話付きを選ぶことにした。追加のコストはまあ保険料だと思っておくことにする。非常時に110/119番にかけられないのはやはり困る。

* * *

というわけで、音声通話付き格安SIMの中で、信頼できそうでコストもリーズナブルと思われるIIJmio音声通話付きSIMをトライすることにした。基本料金1600円/月、高速通信上限2GB/月のミニマムスタートプランというやつ。音声通話料金は20円/30秒。

IIJmio:サービス概要

日本では音声通話の契約には本人確認等めんどくさい手続きがいまだに必要らしい(sigh)。データ通信専用だと店頭で現物を買ってすぐに使えるのだが、音声通話付きだと通常店頭や通販で申し込み番号を買う→Webで申し込む→審査の上SIMが発行され一週間くらいで手元に届く、というプロセスになるらしい。

ビックカメラの一部店舗にはこれを即日やってくれるカウンターがあり、川崎店まで出向くことにした(最寄りの横浜店にはなかった)。なおカウンターの営業時間は20:00までとなっているがあてにならない。早く閉まることがあるので行こうとしている人は注意。手続きの流れはこんな感じ。

  • 列に並ぶ(平日はすいてた)
  • 申し込み情報を端末に入力、免許証等本人確認書類の画像をアップロード
  • 控えを渡され30分ほど待たされる
  • SIMを渡され会計

これでめでたくSIMをゲット。(続く)