TCM410JをXBeeとピンコンパチの基板に載せたものです。
Self-powered Internet of Things
1ホップのリピーターをWebに掲示していたら、大手企業さんからいくつかお問合せを頂いた。こういう超ニッチな製品は、欲しい人は確実にいるんだが、数が見込めないので大手企業さんは製品化はまずしないだろうと踏んでいるのです。
超ニッチな理由その1:EnOceanプロトコルにしか対応していない
超ニッチな理由その2:まだEnOceanの無線が普及していない時期に、飛距離を稼ぐリピーターが必要な人が何人いるんだ?
超ニッチな理由その3:1ホップにしか対応していない。しばらくしたらマルチホップ対応が欲しいという人は現れると思うが、技術的にハードルが高いんですよね。
こんな製品が作れます、という例として見ていただければいいです。
「帝〇データバンク」と名乗ってアポを取らずに突然の訪問がありました。
「近くに来たから」だそうですが。「近くに来たから」という理由で面会は受けておりません。アポのない方はお帰り願っております。悪しからず。
彼らのレポートを取り寄せようとした方。「面会拒否された」と書かれてあってもそういう事情ですから。
温度センサーが手元になかったので、動きが分かるように30秒ごとに1,2,3,,,をポストしていくスケッチを動かしました。
www.ermine.co.jpに3GIMの使い方、トラブルシュートの方法などを書くことにします。
ようやく3G回線上でHTTPが開通しました。その悪戦苦闘の記録です。
===
前回までの概要。
Arduino Uno <-> 3GIMの通信が開通しました。そこでセンサー値をxively.comに投稿するスケッチを動かしたら>httpPOST requestingでFailedになったところまで。
前回以降、今回までの記録。
ライブラリ仕様書にサンプルスケッチが公開されているので、これをstep by stepで実行してみることにした。
blink_led.ino:3GIM上のLEDをblinkさせるもの。Arduino <-> 3GIMの通信はできていることがわかる。
sample_TCPIP.ino:connectTCP() can’t connectになる。そこでライブラリ(a3gs.cpp)をデバッグモードにして動作させると以下のようになった。
==================
※デバッグモード:a3gs.cppのコメントアウトされている//#define DEBUG 1の//を取り除いて再コンパイルする
==================
Initializing.. ** >start():Turn on and wait for a moment..
** >start():IEM is available now.
** >begin():9600
** <sendCommand():$YV
** <getResult:$YV=OK 2.0
** >getVersion():$YV=OK 2.0
Succeeded.
** <sendCommand():$TC www.arduino.cc 80
** <getResult:$TC=NG 608 534
** >connectTCP():$TC=NG 608 534
connectTCP() can’t connect
===========
ここで <getResult:$TC=NG 608 534が臭そうなのでコマンド仕様を見ると607も609も出ているのに608が出ていない。ここでメーカ(タブレイン)にヘルプ。するとプロファイルに問題あるだろうとの回答。因みに608はDNSのエラーだそう。
そこでライブラリにset_defaultprofile.inoがあることを発見、DTIのプロファイルに設定した。その結果、sample_TCPIP.inoを動かすと
Ready.
Initializing.. Succeeded.
www.arduino.cc : Page title is “Arduino – Home”
Shutdown..
が出てめでたしめでたし。システムが大きいのでトラブルシューティングは結構厄介です。xivelyまで動いたら、センサー情報をサーバに上げるまでの一連の作業やその際のトラブルシューティング方法をわかる範囲でまとめようと考えています。
今日はここまで。
その1から進んだこと。
1)マイクロSIMを入手しました。
2)DC output12VのACアダプタから4Vを出力する回路を組んでArduino UnoのDC Jackから3GIMの電源を取るようにし、その他信号線も結線しました。
3)step by stepで動作を確認したいのですが、そのためだけのスケッチを組むのが面倒なのと、実績のあるスケッチが公開されているので、いきなりxivelyにつないでみることにしました。どこかで引っかかったらそのとき調べる、という方針。
4)早速取ってきたサンプルスケッチのコンパイルが通らない。error: stray ‘’ in programという謎のメッセージをネットで調べると、半角にすべきところを全角にしたときしばしば出るメッセージらしいことが判明。サンプルに”が大文字で入っていることを発見、修正したらコンパイルが通った。
5)Arduino Unoに書き込んで動作させたらvoid setupを抜けない。a3gs.start() == 0 && a3gs.begin() ==0にならないようで、Arduino <–> 3GIMが交信できていないことが判明。まずa3gs.hのシンボル、a3gsBAUDRATE=9600に修正しないといけないことがわかったがまだエラーになる。エラーコードを見ると、ライブラリが古いことが判明、最新をダウンロードしたらvoid setupは抜けた。次>httpPOST requestingでFailedになった。
今日はここまで。
とりあえずの備忘録。
http://blog.felicalauncher.com/sdk_for_air/?page_id=2699
上記からダウンロードしたライブラリですが、最近のIDE(私のは1.5.8)では
#include “WProgram.h” を #include “arduino.h” に変更しないとだめ
のようです。
3Gゲートウェイの話題についてはSIMが来るまで一休みするとして。
有線・無線を問わず通信関係の仕事をしていると、どのメーカのものでも相互に繋がる「相互接続性」が気になります。
「相互接続性」の身近な例では、国内でAC100V電源は、通常気にすることなくどのコンセントにもプラグが刺さって電源が取れます。JISで規格化されているからですね。
ところが私の関わっている、半導体チップ、基板モジュールのレベルになると、「相互接続性」がぐっと下がります。
最初に問題になるのが物理的な接続。つまりピンやソケットなどです。初めから半導体や基板モジュールに最適なマザー基板を設計するつもりならそれほど気にすることはないですが、1つか2つ作って動作試験をしたいとか、ソフト開発を先行するのにプロトタイプが数個欲しいとかのとき困ります。
電子回路のプロトタイピングはシリコンバレーが発祥地と思われ、「ブレッドボード」や「ユニバーサル基板」はヤードポンド法の2.54mm(0.1inch)ピッチが主流です。
2.54mmで事が足りていた時代は良かったのですが、半導体やそのモジュールが小型化して、次世代のプロトタイピングがどうなるか混沌としてきました。
ヨーロッパ系の半導体のためにメートル法の2mmピッチの基板が出始めています。2.54mmとの互換性を重視して1.27mm(0.05inch。ハーフピッチと称する)のものも出始めています。
2.54mmピッチの「ブレッドボード」や「ユニバーサル基板」はこのまま残り、2mmや1.27mmに全てが置き換わることはないでしょう。なぜなら2mmや1.27mmだと手作業がしにくいからです。日本含む先進国では技術者が高齢化しており、細かい仕事が苦手なはずだからです。
つまり、高密度の半導体や基板モジュールを「ブレッドボード」や「ユニバーサル基板」に載せるための、2->2.54/1.27->2.54への変換基板の需要は当面なくならない、と読んでいます。
(因みに「ブレッドボード」とは「パンを焼く板」に釘を打って回路を組んだのが語源らしい)
次回は電源について書こうと思います。
株式会社タブレインから発売になった、3G通信モジュール「3GIM」を使って、EnOcean Gatewayを構築しようとしています。自分自身のために備忘録を残そうと思ったのが発端ですが、皆様のご参考になればと思い、リアルタイムで公開していくことにしました。
===
1)まずは何はともあれ、3G通信モジュール「3GIM」を入手します
http://tabrain.jp/
から申し込んでください。私は発表直後に評価版を申し込んでいました。
2)3G回線を使うため「SIM」を入手します
手元にDTIのServersMan SIM LTEがあったのですが、サイズが合わず、「マイクロ」にサイズ変更を申込みました。2~3日で届くでしょう。
注:今現在販売されているSIMにはサイズがいくつかあり、DTIには、サイズの大きい方から順に「標準」「マイクロ」「ナノ」の3種があります。手元にあったのは「標準」だったのですが、3GIMは「マイクロ」しか使えません。DTIはこのような変更は年に1度までは無償でやってくれるので大変ありがたいです。端末が変わっても今まで使っていたSIMを挿せば使える、というのがSIMのいいところなわけですからね。DTIさんわかってらっしゃる。
注:オプションとして、SMS(short message service)が使えるようにできますが、オプション料金がかかるので今回は申込みませんでした。当面、通常の使い方で月額いくらまで安くできるのか?を追求しようとしているためです。
3)マイコンボード「Arduino Uno」に接続する
3GIMは電源電圧が3.6~4.2Vと、Arduino Unoの持っている3.3Vも5Vも使えないので、予め秋月電子通商で可変電源レギュレーターを調達していました。ここら辺は明日詳しく書こうと思います。
今日はここまで。
おはようございます。
本日、XBeeシリーズとピン互換の無線モジュールの基板を発注しました。年内に部品実装して来年早々発売できるよう準備をしているところです。これでXBeeシリーズが載る基板に挿して使っていただけるようになります。
さて、CQ出版社から出ている「インターフェース1月号」が920MHz無線の特集を組んでいました。無線規格に特化した記事なので、エナジーハーベストという切り口では書かれておらず、悲しいことにEnOcean規格が一言も触れられていません。知名度を上げる活動はまだまだです。
今日はここまで。