Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz polgcsabi #17540 üzenetére

    Például:
    https://prohardver.hu/tema/arduino/hsz_16434-16434.html

    Az int socket_descriptor-tól a FILE* -ig változatlanul beírhatod, persze a 216.58.208.110 helyett a saját szerver címét. De még vannak más lehetőségek is.

    [ Szerkesztve ]

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

  • Janos250

    őstag

    válasz polgcsabi #17540 üzenetére

    Ez meg egy minta WEB szerverre, eggyel magasabb szinten:

    #include <iostream>
    #include <string>
    #include <WiFi.h>
    #include <SPI.h>
    using namespace std;

    const char* ssid = "*********";
    const char* password = "*********";


    IPAddress ip(192, 168, 0, 30);
    IPAddress dns(192, 168, 0, 1);
    IPAddress gateway(192, 168, 0, 1);
    IPAddress subnet(255, 255, 0, 0);
    IPAddress primaryDNS(8, 8, 8, 8); //optional
    IPAddress secondaryDNS(8, 8, 4, 4); //optional


    WiFiServer myServer(80);


    const char httpHeader[] PROGMEM = R"=====(
    HTTP/1.1 200 OK
    Content-type:text/html
    Connection: close
    )=====";

    char htmlHeader[] PROGMEM = R"=====(
    <!DOCTYPE html>
    <html lang = hu >

    <head>
    <meta charset="UTF-8">
    <title>minta WEB szerver</title>
    </head>
    )=====";

    char body[] PROGMEM = R"=====(
    <body>
    Ez a kiirando
    </body></html>

    )=====";



    void setup(void) {

    Serial.begin(115200);
    delay(2000);


    WiFi.begin(ssid, password);
    if(!WiFi.config(ip, gateway, subnet, dns, secondaryDNS)) {
    Serial.println("STA Failed to configure");
    }
    Serial.print("Connecting to ");
    Serial.println(ssid);
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    // Print local IP address and start web server
    Serial.println("");
    Serial.println("WiFi connected.");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());// this will display the Ip address of the Pi which should be entered into your browser

    myServer.begin();

    Serial.println("setup lefutott");
    } ; // end setup


    void loop(void) {
    string header = "";
    uint16_t karakterszam = 0 ;
    unsigned long previousTime = 0;
    const long timeoutTime = 1000; //in milliseconds (example: 2000ms = 2s)
    IPAddress tavoliIP ; // = uint8_t tavoliIP[4]

    //https://randomnerdtutorials.com/esp32-web-server-arduino-ide/
    WiFiClient client = myServer.available(); // Listen for incoming clients

    if (client) {
    tavoliIP = client.remoteIP() ;
    printf("tavoli IP: %3d.%3d.%3d.%3d\n",tavoliIP[0],
    tavoliIP[1],tavoliIP[2],tavoliIP[3]);

    previousTime = millis();

    // Serial.println();
    // printf("\nNew Client\n");

    String currentLine = "";

    while (!client.available()){
    if ( (millis()- previousTime) > 100 ) {
    tavoliIP = client.remoteIP() ;
    Serial.println(tavoliIP) ;
    client.flush() ;
    client.stop() ;
    printf ("megszakitva\n");
    return;
    } ; // if ( (millis()- previousTime) > 100 )
    } ; // while (!client.available())


    while (client.connected() &&
    ( (millis() - previousTime) <= timeoutTime) ) {

    if (client.available()) {
    karakterszam++ ;
    char c = client.read();
    Serial.write(c);
    header += c;

    if (c == '\n') {
    if (currentLine.length() == 0) {
    break;
    // printf ("ures sor\n");
    }
    else {
    currentLine = "";
    // printf ("uj sor\n");
    }
    } else

    if (c != '\r') {
    currentLine += c;
    } ; // if (c != '\r')
    } ; // if (client.available())
    } ; // while (client.connected()

    if (karakterszam == 0){
    client.flush() ;
    client.stop() ;
    return;
    } ; // if (karakterszam == 0)



    // Serial.println(header.c_str());

    client.println(httpHeader);
    client.println(htmlHeader);
    client.println(body);
    client.flush();
    client.stop(); // Close the connection

    while (client.available()){
    delay(1) ;
    }; // while (client.connected())


    } ; // if (client)
    delay(50);
    } ; // end loop

    Azért WEB, mert figyeli, hogy mikor jön közvetlenül egymás után két sorváltás, mert a http szerint az jelzi az üzenet végét.
    Természetesen bármilyen beérkező szöveget figyelhetsz, és bármit válaszolhatsz rá, nem kell a headereket küldeni, ha nem WEB lap, amit elküldesz.

    Ezt használtam fel:
    https://randomnerdtutorials.com/esp32-web-server-arduino-ide/

    [ Szerkesztve ]

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

  • Janos250

    őstag

    válasz polgcsabi #17540 üzenetére

    Hoppá! :W

    Vissza az egész, hülyeséget írtam, de már lejárt a szerkesztési idő , nem tudom törölni.

    Most látom, hogy nem ESP32-ről van szó :W

    Bocs!

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

  • Janos250

    őstag

    válasz polgcsabi #17540 üzenetére

    De ahogy elnézem, ezt is hasonlóan lehet írni, olvasni:

    https://how2electronics.com/interface-enc28j60-ethernet-module-with-arduino/

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

Új hozzászólás Aktív témák