ラベル XPort の投稿を表示しています。 すべての投稿を表示
ラベル XPort の投稿を表示しています。 すべての投稿を表示

2008年6月29日日曜日

yahooweather teruteru②

てるてるマイコンコードを色々いじってみる。

てるてるコードその1

てるてるコードその2

voltmeterが動かなくなったのですが

文字列の後にこの数値ひろえー命令をあれは出していて
サイトが時々更新されて
その文字列が無くなってしまう時があるようです。

文字列が復活したのでひとまず動きそうだ!
と思ってもう一度動作確認中なのですが
…またウェブから値がやってこない病が…

2008年6月28日土曜日

yahooweather teruteru

utano

てるてるリベンジ中。

yahoo news(英語)のお天気サイトから
お天気情報をひっぱって、
更に曇りなら1、晴れなら2、雨なら3にするというPHPを書きました。

これのソースコードを見ると、
本のp.131みたく <weather:1>とか出ます。

で、マイコン側のプログラムはほとんどそのままに、
このPHPを読んで<>内の数字を記憶して
その数字をintにして、
if文で1のときは曇りなので曇りLED光らせてねっていう
void teruteru()をつくりました。コンパイルは成功。
yahooweatherてるてるマイコンコード

でも光りませんでした。

たまにvoltmeterでもそうなのですが
ウェブを要求した後その内容を読み込んでくれない時が発生します。

うーむぅ。

しょうさまたすけて。

2008年6月27日金曜日

voltmeter完成

voltmeterが動きました!
このプロジェクトはアメリカの大気の汚染予報を教えてくれる、
AIRNowというサイトからNYの大気汚染度の現在情報を拾って
電流計メーター(アナログ)に出力させるというものです。
よく写真を見ると針が右にすこし振れています。



結局あの後いじったのは:
☆ルーターのIPを設定
(chapter3のp.84参照、ルータのIPアドレス調べ方)
☆ウェブから情報をはぎとるPHPのパーミッション変更
(Octalを707に、きょんちゃんアドバイス)

どれが果たして功を奏したのかw

全体像はこんな感じ:


あ、FT232Rのシリアル変換はさしっぱだっただけで無関係です。
LEDがナウシカのオームの目みたい…


2番目が光ってるのでHTTPrequest()してます。
情報を読み取るウェブ(PHP)を要求しているのです。
Arduinoの画面ではこんな感じ:

マイコンとXPortとウェブの三角関係②

本に沿って回路つくってコードを書くと、
ご丁寧に今どういう通信状態なのかをLEDで判断する事が出来ます。

でも大体サーバに接続しようとしてる所で
ピコピコ止まりだったので、
もう少し通信状態を可視化しようと思いました。

まずAcknowrichとshokai様から頂いたSocketClientで実験

XPort接続中。IPアドレスは192.168.0.150 ポート番号は50001に設定済。



ではSocketClientからXPortさんにアクセスしてみましょう



するとシリアル側(Acknowrich)ではI192.168.0.110と出る。



IはIncomeのIなので、情報が伝わった事はわかるけど
なんでIPアドレスが変わるんじゃ?
本でXPort設定のところでルーターのIPを指定する所あるけど
そこと関係があるんでしょうか??

まぁ一旦おいといて
シリアル側から、欲しいウェブがあるサーバに行ってねってお願いしてみる



…ただのテキスト扱いっぽいんですけど
GETとかHOSTも入れてみたけど同じ。

SocketClientを終了すると



ちゃんとDisconnectのDが現れる。

つながっているようでつながっていないような…
何が問題なんじゃー。

マイコンとXPortとウェブの三角関係①

utano

夜12時にDNPを訪れる!

てるてる坊主を作るにしても
とりあえず本にあるArduinoに書き込む、
ウェブを取り込むコードを理解しなければだめでしょう

ということで回路や本やら5時間くらいにらめっこして
ようやく本が書いてるコードが意図する所がつかめました。

マイコンで取ってきて欲しいウェブがあるサーバを呼ぶ
私の場合SFCなのでコマンドプロンプトでping web.sfc.keio.ac.jpを唱えて
SFCサーバのIPアドレスをゲットする。
そしてXPortに通じる呪文にする C133.27.4.40

接続が行われたらすかさずウェブを呼び出す
GET /~t05541ss/ほにゃほにゃ.php HTTP/1.0\n
HOST: web.sfc.keio.ac.jp

で、そのウェブのテキストをがーって読んで
その中から数字をゲットしてくる
その数字を更に数値にする(テキストのままだから)
あらかじめマイコンが読みやすい様に
そのウェブはPHPですっきりまとめてあります
HTMLタグ全部どけて、この文章の後に来る数字を表示してねって感じで。

で、その数値によってArduinoのoutputである電流計の触れ幅が変わる

っちゅうわけです。構造は分かるけど
XPort経由でウェブを問い合わせるのがなんかだめ。

ちゃんと動いているのか動作チェックする。

マイコンとXPortとウェブの三角関係②につづく。

2008年6月25日水曜日

てるてる坊主(途中)

o9no大先生の力によって
livedoorお天気のRSSから天気を表示するPHPが出来ました。
そこから更にマイコンが晴れとか雨とか読めるように
雨なら1、などの数字を割り当てるPHPを書きました。

問題はマイコンなのです。
XPortを通じて、
「ライブドアお天気の天気を数字に」ファイルを呼び出して
ウェブの情報をだーって読んでっていう本に載ってるプログラムを
てるてる仕様に変えなきゃいけないんですが…

そもそもの電流計のやつも動いてくれないので
(でもなんかわかりそうな気もする)

雲行きがあやしくなってきました。

2008年6月18日水曜日

XPort

utano

XPortで回路を組みました。p.125まで終わりました。



Arduinoは電源をXPortに供給しています。
なので電池とかアダプタが無くてもつくれます。

本に書いてある回路ではブレッドボードに
三端子とかコンデンサとかがぶっささってますが
上の写真では既にXPortにドッキングさせたものを使っています。

Arduinoの5VとGNDをXPortのVCCとGNDにそれぞれつなぎ
XPortのOUTをFT232R USBシリアル変換のRXD、INをTXDにつなぐ。
シリアル変換のGNDとArduinoのGNDは共有してください。
またシリアル変換の電源はUSBケーブルでPCから供給するので
5Vにつなぐ必要性はありません。

つないだら、XPortの設定を行います。
LANケーブルを用意してください。

Making Things TalkではMicroというマイコンを使っているので
設定の仕方が異なります。
p.121-123の部分は以下の資料で設定を行いましょう。

XPort設定資料:
ismlog XPort①
ismlog XPort②