- iPhone topik
- iPhone 17 Pro prototípus a vadonban
- Samsung Galaxy Watch7 - kötelező kör
- A HyperOS 3-ra helyezi a fókuszt a Xiaomi
- Mobil flották
- MIUI / HyperOS topik
- Samsung Galaxy S21 FE 5G - utóirat
- Huawei Watch Fit 3 - zöldalma
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Janos250
őstag
válasz
polgcsabi #17563 üzenetére
PL. a "digitalWrite(ledPin10, HIGH);" után írasd ki a buffer első mondjuk 50, vagy valahány tagját, és egyből látod, hol kezdődik benne az, ami neked kell.
Utána már ezeket fel tudod dolgozni. Pl. Aryes által javasolttal (amire azt mondtam, jéééé mindig tanul az ember), vagy bármi más módon. -
Janos250
őstag
válasz
polgcsabi #17551 üzenetére
Ezt az ethernet csatit nem ismerem, nem is tudom kipróbálni, nem akarok hülyeséget írni.
Ha esetleg ESP32-n tennéd, akkor pontos választ tudnék adni.
A megoldás lényege:
A WEB szerverek - már amit én ismerek - megadják neked egy karakter tömbben, amit a 192.168.1.139/ után írtál, és úgy kezeled, ahogy akarod, ez már csak kézügyesség kérdése. De csinálhatsz űrlapot, vagy valami hasonló bevitelt is. -
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/
-
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 loopAzé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/ -
Janos250
őstag
válasz
polgcsabi #17540 üzenetére
Például:
https://prohardver.hu/tema/arduino/hsz_16434-16434.htmlAz 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.
-
Janos250
őstag
válasz
polgcsabi #17534 üzenetére
Nem biztos, hogy jól értem a kérdést.
Ha jól értem, akkor a válasz:
Az internetet soros vonalként működik. Az egyik oldalon soros vonalként írunk rá, a másik oldalon meg soros vonalként fogadjuk.
Az, hogy milyen protokoll szerint, azt az üzenet első sora szabja meg.
Ha csak simán soros vonalként akarod használni, akkor ne foglalkozz protokollal, hanem használd soros vonalként.
Új hozzászólás Aktív témák
- BESZÁMÍTÁS! Asus B360M i7 9700 16GB DDR4 512GB SSD RX 6650 XT 8GB ZALMAN N4 600W
- Bomba ár! Lenovo ThinkPad L13 G1 - i5-10GEN I 16GB I 512SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! HP Elitebook 840 G1 - i5-4GEN I 8GB I 180GB SSD I 14" HD+ I Cam I W10 I Garancia!
- LG 55C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
- Asus TUF Gaming F16 (2024) FX607JV Grey - 16" - és Lenovo Legion Slim 5 RYZEN 7 8845HS