質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

解決済

HttpClient_ESP8266_AT\.hのpost通信について

mizugasira
mizugasira

総合スコア0

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

1回答

0評価

0クリップ

3199閲覧

投稿2017/01/16 03:12

現在、arduinoの開発をしていて、Wifiで値をwebサーバにおくり、それをphpで受け取って表示させようとしています。
Wifiの接続・サーバへの接続もできているのですが、phpファイルのpostにうまく値が入っていません。
自分の意見としましては、postの引数の部分が間違っていると思っているのですが、どうもうまくいきません。
下にコードを貼り付けております。

/* wifi接続・webサーバに値を送信 */

#include <HttpClient_ESP8266_AT\.h> // Arduino UNO の場合は、例えばデジタル入出力の 2 番, 3 番ピンを利用して // ESP-WROOM-02 とシリアル通信するように設定します。 const byte rxPin = 2; // Wire this to Tx Pin of ESP8266 const byte txPin = 4; // Wire this to Rx Pin of ESP8266 HttpClient_ESP8266_AT httpClient\(rxPin, txPin\); char params\[64\]; void setup\(\) { // PC と通信する HardwareSerial の baudrate を設定します。 // ESP-WROOM-02 の baudrate とは関係ありません。 Serial\.begin\(115200\); // SSID と PASSWORD でアクセスポイントに接続します。 // シリアル接続確認と WiFi 接続確認を行い、設定不備があれば出力します。 while\(true\) { if\(httpClient\.statusAT\(\)\) { Serial\.println\("AT status OK"\); break; } else Serial\.println\("AT status NOT OK"\); delay\(1000\); } while\(true\) { // 書き換えてください↓ if\(httpClient\.connectAP\("SSID", "PASSWORD"\)\) { Serial\.println\("Successfully connected to an AP"\); break; } else Serial\.println\("Failed to connected to an AP\. retrying\.\.\."\); delay\(1000\); } while\(true\) { if\(httpClient\.statusWiFi\(\)\) { Serial\.println\("WiFi status OK"\); break; } else Serial\.println\("WiFi status NOT OK"\); delay\(1000\); } } void loop\(\) { // ノイズの影響でリクエストに失敗することがあるため while ループで囲います。 while\(true\) { // HTTP POST リクエストを実行します。 httpClient\.post\("host名", // ex: www\.◯◯\.com "ファイルまでのパス", // ex: /Arduinos/test/output\.php "temp=123", // 値の送信 <- たぶんここが間違っていると思います。 "application/x-www-form-urlencoded" //エンコードの指定 \); // レスポンス status code が 0 以上であればリクエスト成功です。 // -1: ノイズ等でシリアル通信ができず、そもそもデータ送信ができなかった。 // 0: データ送信はできたが、受信データがノイズで壊れてしまっていた。 // else \(>0\): 受信データから正常に HTTP レスポンス status code が得られた。 if\(httpClient\.responseStatusCode\(\) >= 0\) { // 本ページでは電圧レベルコンバータを用意していない想定のため、 // 受信データが壊れている可能性が高く、したがって 200 が 100 になっていたりするため、 // 値には興味をもたず、0 以上の値が得られることが重要であると考えてコーディングします。 Serial\.println\("SUCCESS"\); break; // 成功したので while を抜けます。 } else { Serial\.println\("FAILURE, retrying\.\.\."\); } } // 本サンプルでは 60 秒毎に POST を繰り返します。 delay\(60000\); }

/* webサーバ側: 表示するのみ */

php

<\?php echo \$_POST\['temp'\]; \?>

// 実行環境
・Mac OS X Yosemite 10.10.4

// 実行アプリケーション
・Arduino

// Arduino機器
arduino uno R3
arduino wifi シールド (ESP-WROOM-02 Shield)

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。