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");
}