Your new topic does not fit any of the above??? Check first. Then post here. Thanks.

Moderator: igrr

User avatar
By Nguyen Anh Tuan
#74295
Stampede wrote:Ah Hah, I see. That makes a whole lot of sense.
I had cut LuaBaz's write script out of my PHP file because I kept getting permissions errors.
I will work on a simple backend storage script, and I will post my solution when I get it running.

Thanks for the links, and the advice. I've been knocking on so many doors looking for that crumb of knowledge!

All the best,
Peter
LauBaz wrote:I have done something similar.

ESP is reading a sensor, connecting to my wifi, connecting to Apache2 webserver on raspberry pi, transmit info, then shut down.

ESP sketch (transmit part):
Code: Select allvoid setup() {
  Serial.begin(115200);
  delay(10);

  // We start by connecting to a WiFi network

  //Serial.println();
  Serial.println("");
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}
void loop() {

// Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 8000;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
//temp variable is set with a function to check the temp of an DS18B20 sensor. Let me know if you need it
  String data = "temp1=" + (String)temp;
// "temp1=" is what is going to be sent using GET to the apache server, see code in add.php

  // We now create a URI for the request
  String url = "GET /add.php?" + data + " HTTP/1.1";
client.println(url);
  client.println("Host: 192.168.1.200");
  client.println("Connection: close");
  client.println();
  delay(500);
 
  // Read all the lines of the reply from server and print them to Serial
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
  client.stop(); //Stopping client
  ESP.deepSleep(60U*60*1000000); //U for unsigned
  delay(1000); //for above sleep
}


Apache2 to receive data (using GET)
Code: Select all<?php

$date = new DateTime();
$date = $date->format("d-M-Y  h:i:s  ");


if(!empty($_GET["temp1"]))
{
 $tempesp = "Temperature=";
 $tempesp .= ($_GET["temp1"]);
 file_put_contents("/media/USB/Temp.ESP", $date);
 file_put_contents("/media/USB/Temp.ESP", $tempesp, FILE_APPEND);
}


echo $tempesp;

?>


I use this so that my server writes the value of temp1, along with a timestamp, to a text file, which I then read with RPI-Monitor to display nice graphs and such.

Hope this helps



Could you send me your project, I really need it