2025年9月24日水曜日

php buitin serverにR4からget reqをなげる

 PHPビルトインサーバーで特定のIPアドレスにサーバーを公開するには、コマンドの最後にIPアドレスとポート番号を指定します具体的には「php -S IPアドレス:ポート番号という形式で実行します。IPアドレスを指定しない場合、デフォルトで127.0.0.1(ローカルホスト)にバインドされます。

php -S 192.168.11.8:8000 -t php_public_html

test.php::  getをうけてsample.txtに書き込む 測定結果表示はtest2.phpでおこなう

<?php echo "Hello World!\n"; $data="temp=".$_GET['temp']." humidity=".$_GET['humidity']; ・・・文字連結が特殊! echo $data; file_put_contents("sample.txt", $data); ?>

test2.php::  逐次測定結果を表示

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>自動リロード</title>
    <!-- 10秒ごとにページをリロード -->
    <meta http-equiv="refresh" content="10">
</head>
<body>
    <p>このページは10秒ごとに自動で更新されます。</p>
    <?php $tempc_humidity = file_get_contents( './sample.txt');
          echo $tempc_humidity;
    ?>
</body>
</html>

----------------------------------------------------------------------------

#include <DHT.h>

#define DHT11_PIN 2 // The Arduino UNO R4 pin connected to DHT11

#include "WiFiS3.h"

#include "arduino_secrets.h" 

///////please enter your sensitive data in the Secret tab/arduino_secrets.h

char ssid[] = SECRET_SSID;        // your network SSID (name)

char pass[] = SECRET_PASS;    // your network password (use for WPA, or use as key for WEP)

int keyIndex = 0;            // your network key index number (needed only for WEP)


int status = WL_IDLE_STATUS

// Initialize the WiFi client library

WiFiClient client;

// setup DHT11

DHT dht11(DHT11_PIN, DHT11);

// server address:

char server[] = "192.168.11.8";


unsigned long lastConnectionTime = 0;

// last time you connected to the server, in milliseconds

const unsigned long postingInterval = 10L * 1000L;

 // delay between updates, in milliseconds


/* -------------------------------------------------------------------------- */

void setup() {

/* -------------------------------------------------------------------------- */  

   dht11.begin(); // initialize the sensor

  //Initialize serial and wait for port to open:

  Serial.begin(9600);

  while (!Serial) {

    ; // wait for serial port to connect. Needed for native USB port only

  }


  // check for the WiFi module:

  if (WiFi.status() == WL_NO_MODULE) {

    Serial.println("Communication with WiFi module failed!");

    // don't continue

    while (true);

  }


  String fv = WiFi.firmwareVersion();

  if (fv < WIFI_FIRMWARE_LATEST_VERSION) {

    Serial.println("Please upgrade the firmware");

  }


  // attempt to connect to WiFi network:

  while (status != WL_CONNECTED) {

    Serial.print("Attempting to connect to SSID: ");

    Serial.println(ssid);

    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:

    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:

    delay(10000);

  }

  // you're connected now, so print out the status:

  printWifiStatus();

}


/* just wrap the received data up to 80 columns in the serial print*/

/* -------------------------------------------------------------------------- */

void read_request() {

/* -------------------------------------------------------------------------- */  

  uint32_t received_data_num = 0;


  while (client.available()) {

    /* actual data reception */

    char c = client.read();

    /* print data to serial port */

    Serial.print(c);

    /* wrap data to 80 columns*/

    received_data_num++;

    if(received_data_num % 80 == 0) {     

    }

  }  

}


/* -------------------------------------------------------------------------- */

void loop() {

/* -------------------------------------------------------------------------- */  

  // if there's incoming data from the net connection.

  // send it out the serial port.  This is for debugging

  // purposes only:

  read_request();

  

  // if ten seconds have passed since your last connection,

  // then connect again and send data:

  if (millis() - lastConnectionTime > postingInterval) {

    httpRequest();

  }


}


// this method makes a HTTP connection to the server:

/* -------------------------------------------------------------------------- */

void httpRequest() {

/* -------------------------------------------------------------------------- */  

  // close any connection before send a new request.

  client.stop();

  // read humidity

  float humidity  = dht11.readHumidity();

  // read temperature as Celsius

  float tempc = dht11.readTemperature();

  Serial.println(tempc);

  Serial.println(humidity);

  String req;

  String d= "GET /test.php?temp=";

  String e= " HTTP/1.1";

  String f= "&humidity=";

  req=d+tempc+f+humidity+e;

  Serial.println(req);

  // if there's a successful connection:

  if (client.connect(server, 8000)) {

    Serial.println("connecting...");

    // send the HTTP GET request:

     client.println(req);

    client.println("Host: 192.168.11.8");

    client.println("User-Agent: ArduinoWiFi/1.1");

    client.println("Connection: close");

    client.println();

    // note the time that the connection was made:

    lastConnectionTime = millis();

  } else {

    // if you couldn't make a connection:

    Serial.println("connection failed");

  }

}


/* -------------------------------------------------------------------------- */

void printWifiStatus() {

/* -------------------------------------------------------------------------- */  

  // print the SSID of the network you're attached to:

  Serial.print("SSID: ");

  Serial.println(WiFi.SSID());


  // print your board's IP address:

  IPAddress ip = WiFi.localIP();

  Serial.print("IP Address: ");

  Serial.println(ip);


  // print the received signal strength:

  long rssi = WiFi.RSSI();

  Serial.print("signal strength (RSSI):");

  Serial.print(rssi);

  Serial.println(" dBm");

}


0 件のコメント:

コメントを投稿