ようやく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まで動いたら、センサー情報をサーバに上げるまでの一連の作業やその際のトラブルシューティング方法をわかる範囲でまとめようと考えています。
今日はここまで。