- ベストアンサー
建築農工ゼミのArduinoで計測した値を指定のwebサーバに送信、保存する
- 建築農工ゼミのArduinoで計測した値を指定のwebサーバに送信、保存する方法について
- 記事に書かれている内容を実験中の私が質問します。Apacheを使ってローカル内でも使えるようにするにはどうすればいいですか?また、摂氏への変換式の計算方法は正しいですか?IPアドレスの設定がうまくいかないのは、自分のネットワークの問題ですか?
- Arduinoで計測した値をwebサーバに送信、保存する際に問題が発生しています。それに関連して3つの質問があります。1つ目は、ローカル内でもApacheを使用するにはどうすればいいかということです。2つ目は、摂氏への変換式の計算方法についてです。3つ目は、IPアドレスの設定が上手くいかない原因は自分のネットワークにあるのかということです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>・Apacheを使ってローカル内のみでも使えることを確認したいのです。その場合www.○○○.netという所localhostに変更すればよいのでしょうか? DNS参照していませんので無意味です。 HTTPプロトコルの1.1では、ネームベースのバーチャルホストに対応するためか、 リクエストヘッダにHostが必要になったために、付与されているだけです。 接続先自体はIPアドレスで指定されています。 >// 接続先のIPアドレス >byte server[] = { 123, 456, 789, 012 }; # ちなみに、桁揃えで上記の様に012という形式で書くのは避けた方が良いでしょう。 # 思わぬ不具合の元になります。 「8進数表記」とかで検索すると出てくると思いますが。 # DNS引かないので関係ありませんか…ホスト名で"localhost"を指定した場合は、「自分自身」を指すということは理解しておいた方が良いでしょう。 >・また摂氏に変換する式ですがtempC = ((v * A_val) / 1024) * 10000という式は×10000ではなく×100ではないのでしょうか? x100だと…36.7℃の時に36℃となります。 小数点第2位まで計測するために、「100倍の下駄」を履かせています。 # tempCはintである点に注意。 受け取ったサーバ側で100で割って、下駄を脱がせています。 >// 値をフォーマット(小数点以下の数値を1桁まで切り詰める)+ 改行コード >$strTempVal = number_format(($strTempVal / 100), 1) . "\n"; この処理で。 >・最後にIPアドレスの設定がどれもうまくいかないのは自分のネットワークの責任でしょうか。 ドコで設定していますか? >// Ethernet Shild MACアドレス >byte mac[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; >// Ethernet Shild IPアドレス >byte ip[] = { 10 , 0 , 1 , 100 }; >// 接続先のIPアドレス >byte server[] = { 123, 456, 789, 012 }; で設定することになりますが。 # ネットマスクは設定できない…のかな? # ゲートウェイの指定も無いようですから、同じネットワーク内で直接通信のみ…なのでしょう。 8進数表記には注意が必要かと思われます。 あと… >// Ethernetライブラリとネットワーク設定を初期化Ethernet.begin(mac, ip); なぜか直前の行と繋がってコメントアウト状態になっているようですので、ソコはきちんと修正が必要でしょう。 # Ethernetシールド持っていないので試せない。 # LM35は持っているけど…特性にバラ付きでもあるんですかねぇ? # ブレッドボードに隣接して接続しているのに算出結果が1℃以上違う。
お礼
またまた答えていただきありがとうございました。 Wr5さんに答えていただいてからすぐにスケッチを見直して解決することができました。 問題は自分の知識のなさと勘違いでした。 接続先のIPアドレスに自分のIPアドレスを間違えて入力してました。 何度も見直していたのに・・・人に言われて気付くとは情けないです。 あと温度の×100云々については自分で理解していなかったところでしたので説明ありがとうございました。 また何か初歩的な質問をするかもしれませんが、見つけたらよろしくお願いします。