現在、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
1<?php 2 echo $_POST['temp']; 3?>
// 実行環境
・Mac OS X Yosemite 10.10.4
// 実行アプリケーション
・Arduino
// Arduino機器
arduino uno R3
arduino wifi シールド (ESP-WROOM-02 Shield)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。