PICとXBee WiFiでツィートしてみる(その2)
花岡ちゃんのウィークエンド:ツィートガジェットの実験
今回はXBee WiFiとX-CTUでウェブサーバーにアクセスしてみます。つまりHTTPでの通信方法を手動で確認しておこうという訳です。HTTPの解説はいろいろありますが、このページがそのものズバリでわかりやすいでしょう。
サーバからファイルをGETしています。Webページのフォームに書き込んだ文字列をテキストファイルに落とし、コレを周期的にGETすることで、XBee WiFiを使ったガジェットに命令を送ることが出来ます。以前試作した猫のぞきカメラで撮影コマンドを送るにはこの方法を使っています。
なお、自分のドメインのipアドレスは、WindowsのコマンドプロンプトやMacのターミナルから
nslookup ドメイン名(yahoo.co.jpなど)
とやると、調べることが出来ます。
上の例はブラウザのように特定のファイルを読み出すやり方ですが、Xbee WiFiからサーバへツイート内容などをアップロードしたいときには、データをアップロード用のphpプログラムに"POST"します。POSTするにはこのような文字列を送ります。
POST /u.php HTTP/1.1
Host: example.com
Content-Type: multipart/form-data; boundary=---------------------------7dc3801415811aa
Connection: Keep-Alive
Content-Length: 194
-----------------------------7dc3801415811aa
Content-Disposition: form-data; name="upfile"; filename="tw.txt"
Content-Type: text/plain
Thanks!!
-----------------------------7dc3801415811aa--
ホスト(ドメイン)名example.comは架空のものです。試す場合は自分のドメイン名に直してください。空行から上の部分をヘッダ、下の部分をボディと呼びます。ボディに送信するデータ、この場合は文字列"Thanks!!"を入れます。アップロードしたデータはphpプログラムでtw.txtというテキストファイルに保存します。コレを行うu.phpは下記からダウンロードし、FTPで自分のサーバのドメイン直下に置いてください。
「u.php」をダウンロード
このHTTPリクエストをX-CTUから送信すると下記のようになります。
最後の方の"ok"がphpからの正常終了のメッセージです。ngの場合は受信されていません。HTTPリクエストの内容とContent-Lengthのバイト数を見直してください。
ヘッダー部分のboundaryはボディのはじめと終わりを示す文字列で、送信データに現れそうも無い文字列にする必要があります。
大事なのがContent-Lengthでボディのバウンダリ文字列の最初から最後までのCR、LFを含むバイト数です。つまり下記の部分のバイト数です。
(ここから→)-----------------------------7dc3801415811aa
Content-Disposition: form-data; name="upfile"; filename="tw.txt"
Content-Type: text/plain
Thanks!!
-----------------------------7dc3801415811aa--(←ここまで)
これが正しくないとエラーになったり途中で止まったりしてしまいます。実際のデータ転送ではThanksの部分を任意のデータに変えて送る訳ですが、送る前にボディのバイト数を計算してヘッダに記載する必要があります。
次回はphpでツィートの実験をします。
« PICとXBee WiFiでツィートしてみる(その1) | トップページ | PICとXBee WiFiでツィートしてみる(その3) »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
« PICとXBee WiFiでツィートしてみる(その1) | トップページ | PICとXBee WiFiでツィートしてみる(その3) »
コメント