URL Trigger Arduino IDL

Hallo, ich bastel grade an einem, ich dacht simplen, Knopf Projekt. Mein Ziel ist es, dass eine Push Nachricht gesendet wird sobald der Knopf gedrückt ist.

Ich arbeite hierzu mit dem/der Arduino Idl und als Hardware nutze ich einen ESP8266 NodeMcu.

Nun mein Problem: Wie lade ich eine Webseite? Die Internetverbindung hab ich hergestellt und das Knopfprogramm gibt im Serial Monitor auch das passende aus. Für die Pushnachricht muss ich einen Link Triggern. Aber wie? Im Terminal kenne ich dazu "curl" habe auch gelesen, dass das auch "http Request" und "wget" "gennant" wird. Aber wie mache ich sowas jetzt im Programm?

Das sollte ich verstehen?

Ich möchte einfach nur eine Webseite öffnen. Es muss jedoch nix dargestellt werden in irgendeiner Form.

Das hilft jetzt auch nicht weiter, bzw scheint sich zu widersprechen. Zeig mal dein Programm, vielleicht ergibt sich dann der Sinn und das Problem

#include <Process.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <EEPROM.h>
 
const char* ssid = "xxxx";
const char* password = "xxxx";
const int DoorGpioPin = 5; // D1 of Node MCU

int doorState=0;

#define closed 0
#define opened 1

void runCurl() {
  Process p;            
  p.begin("curl");      
  p.addParameter("http://api.prowlapp.com/publicapi/add/?apikey=dxxxxxxxxxxxxxxxx4&application=ESP&event=Message&description=Door%20has%20been%20opened%21"); 
  p.run();
  Serial.println("push");
}


void setup() {
  Serial.begin(115200);
  delay(10);

  // prepare GPIO2
  pinMode(DoorGpioPin, INPUT);
  
  
  // Connect to 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");
  
  // Start the server
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
  
} 
void loop() {
 // While pin 12 is HIGH (not activated)
 //   yield(); // Do (almost) nothing -- yield to allow ESP8266 background functions
if( digitalRead(DoorGpioPin)==HIGH && doorState==opened){ // Print button pressed message.
   
   Serial.println("Close");
   doorState=closed;
}
yield();
if( digitalRead(DoorGpioPin)==LOW && doorState==closed){ 
   Serial.println("Open");
   doorState=opened;
   runCurl(); # an dieser Stelle soll eine URL geöffnet werden, die eine PushNachricht schickt
}
yield(); // this is most important part of the code, as it tells the esp8266 keep running background wifi work, 
         //without this, your code  will disconnect from wifi, after long run of code. 
}

Ich möchte einfach nur das die Webseite angesprochen wird und der PHP Code ausgeführt wird!

Was hältst du von diesem Beispiel?

/**
 * BasicHTTPClient.ino
 *
 *  Created on: 24.05.2015
 *
 */

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

void setup() {

    USE_SERIAL.begin(115200);
   // USE_SERIAL.setDebugOutput(true);

    USE_SERIAL.println();
    USE_SERIAL.println();
    USE_SERIAL.println();

    for(uint8_t t = 4; t > 0; t--) {
        USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
        USE_SERIAL.flush();
        delay(1000);
    }

    WiFiMulti.addAP("SSID", "PASSWORD");

}

void loop() {
    // wait for WiFi connection
    if((WiFiMulti.run() == WL_CONNECTED)) {

        HTTPClient http;

        USE_SERIAL.print("[HTTP] begin...\n");
        // configure traged server and url
        //http.begin("https://192.168.1.12/test.html", "7a 9c f4 db 40 d3 62 5a 6e 21 bc 5c cc 66 c8 3e a1 45 59 38"); //HTTPS
        http.begin("http://192.168.1.12/test.html"); //HTTP

        USE_SERIAL.print("[HTTP] GET...\n");
        // start connection and send HTTP header
        int httpCode = http.GET();

        // httpCode will be negative on error
        if(httpCode > 0) {
            // HTTP header has been send and Server response header has been handled
            USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);

            // file found at server
            if(httpCode == HTTP_CODE_OK) {
                String payload = http.getString();
                USE_SERIAL.println(payload);
            }
        } else {
            USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
        }

        http.end();
    }

    delay(10000);
}