klassenarbeit 2 progp vom 15.1.12025
This commit is contained in:
99
INF/CaptivePortal/CaptivePortal.ino
Normal file
99
INF/CaptivePortal/CaptivePortal.ino
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
/* Basisprogramm für ein Captive Portal
|
||||||
|
* Grundversion, die bei einer Verbindung auf dem Client den Browser öffnet
|
||||||
|
* und eine Startseite darstellt.
|
||||||
|
* Der HTML-Code ist rudimentär, um das Beispiel einfach zu halten
|
||||||
|
* Der Webserver antwortet auf die url / mit der Captive-Seite, bei index.html
|
||||||
|
* wird eine andere Webseite ausgegeben, die über eine Funktion generiert wird.
|
||||||
|
* Version 1.0
|
||||||
|
* Getestet mit Android-Handy und Android-Tablet => ok
|
||||||
|
* Gestestet mit Windows-PC => Browser versucht auf eine Microsoft-Adresse umzuleiten
|
||||||
|
*/
|
||||||
|
#define __Version__ "V1.0 CaptivePortal"
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include <WiFi.h>
|
||||||
|
#include <WebServer.h>
|
||||||
|
#include <DNSServer.h>
|
||||||
|
|
||||||
|
const char* ssid = "wlan4win"; // SSID des Netzwerks
|
||||||
|
const char* password = "lol4win"; // Passwort
|
||||||
|
|
||||||
|
const byte DNS_PORT = 53;
|
||||||
|
DNSServer dnsServer;
|
||||||
|
WebServer server(80);
|
||||||
|
|
||||||
|
// IP-Adresse des ESP32
|
||||||
|
IPAddress apIP(192, 168, 4, 1);
|
||||||
|
|
||||||
|
// HTML für die Captive Portal-Seite
|
||||||
|
void handleRoot() {
|
||||||
|
server.send(200, "text/html", "<h1>Willkommen zum ESP32 Captive Portal!</h1><p>Du bist jetzt verbunden, jetzt zur <a href=/index.html>Hautpseite</a> wechseln.</p>");
|
||||||
|
}
|
||||||
|
|
||||||
|
void handleNotFound() {
|
||||||
|
server.sendHeader("Location", "/", true); // Redirect zur Root-Seite
|
||||||
|
server.send(302, "text/plain", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
void handleMain() {
|
||||||
|
server.send(200, "text/html", getPage());
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
// Access Point starten
|
||||||
|
WiFi.softAP(ssid, password);
|
||||||
|
// IP-Adresse des ESP, Gateway-Adresse=ESP, Netzmaske
|
||||||
|
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
||||||
|
Serial.println("Access Point gestartet.");
|
||||||
|
Serial.println(WiFi.softAPIP());
|
||||||
|
|
||||||
|
// DNS-Server starten und alle Domains zur AP-IP weiterleiten
|
||||||
|
dnsServer.start(DNS_PORT, "*", apIP);
|
||||||
|
|
||||||
|
// HTTP-Server konfigurieren
|
||||||
|
server.on("/", handleRoot);
|
||||||
|
server.on("/index.html", handleMain);
|
||||||
|
server.onNotFound(handleNotFound);
|
||||||
|
server.begin();
|
||||||
|
Serial.println("HTTP-Server gestartet.");
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
uint32_t currentMillis = millis();
|
||||||
|
static uint32_t lastMillis;
|
||||||
|
static uint8_t currentClientCount, lastClientCount;
|
||||||
|
|
||||||
|
dnsServer.processNextRequest(); // DNS-Anfragen verarbeiten
|
||||||
|
server.handleClient(); // HTTP-Anfragen verarbeiten
|
||||||
|
|
||||||
|
// Optional: 1x pro Sekunde nachschauen, ob sich an der Anzahl der Clients was geändert hat
|
||||||
|
if (currentMillis - lastMillis >= 1000) {
|
||||||
|
lastMillis = currentMillis;
|
||||||
|
currentClientCount = WiFi.softAPgetStationNum();
|
||||||
|
|
||||||
|
// Überprüfen, ob sich die Anzahl der Clients geändert hat
|
||||||
|
if (currentClientCount != lastClientCount) {
|
||||||
|
Serial.printf("Anzahl verbundener Clients: %d\n", currentClientCount);
|
||||||
|
|
||||||
|
// Optional: Aktion für neue Clients
|
||||||
|
if (currentClientCount > lastClientCount) {
|
||||||
|
Serial.println("Ein neuer Client hat sich verbunden!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optional: Aktion für getrennte Clients
|
||||||
|
if (currentClientCount < lastClientCount) {
|
||||||
|
Serial.println("Ein Client hat sich getrennt!");
|
||||||
|
}
|
||||||
|
|
||||||
|
lastClientCount = currentClientCount; // Aktualisiere den letzten Stand
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String getPage() {
|
||||||
|
// zunächst nur ganz einfacher HTML-Code, es fehlt der komplette Header, CSS und vieles mehr
|
||||||
|
String page = "<h1>ESP32 Steuerung</h1><p>Setze ein Lesezeichen auf diese Seite</p>";
|
||||||
|
page += "<p>oder gibt die Adresse 192.168.4.1 im Browser ein.</p>";
|
||||||
|
return page;
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
function sucheMinBelegung(zimmerliste: Zimmer[], weiblich: boolean): int {
|
function sucheMinBelegung($zimmerliste, $weiblich) {
|
||||||
$minIndex = -1;
|
$minIndex = -1;
|
||||||
$belegung = 1.0;
|
$belegung = 1.0;
|
||||||
$minBelegung = 1;
|
$minBelegung = 1;
|
||||||
|
|||||||
34
progp/Klassenarbeiten/ggt.php
Normal file
34
progp/Klassenarbeiten/ggt.php
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
// #################
|
||||||
|
// # NAME #
|
||||||
|
// # DANIEL CWIKLA #
|
||||||
|
// #################
|
||||||
|
echo "<h2>Größter Teiler</h2>";
|
||||||
|
$zahl_a = 1071;
|
||||||
|
$zahl_b = 1029;
|
||||||
|
|
||||||
|
function ggt(int $a, int $b):int {
|
||||||
|
$ausgabe = "NIX";
|
||||||
|
$gr_rest = array();
|
||||||
|
if ($a > $b) {
|
||||||
|
$rest = $b;
|
||||||
|
echo "rechnen...<br>";
|
||||||
|
while($rest != 0){
|
||||||
|
$rest = $a % $rest;
|
||||||
|
//echo $rest."<br>";
|
||||||
|
$gr_rest[] = $rest;
|
||||||
|
}
|
||||||
|
array_pop($gr_rest);
|
||||||
|
echo "Der größte Teiler ist: " . $gr_rest[count($gr_rest)-1];
|
||||||
|
echo "<br> Zahlen: ".$a." und ".$b ;
|
||||||
|
}else {
|
||||||
|
echo"a darf nicht kleiner als b sein!<br>";
|
||||||
|
$groester_teiler = -1;
|
||||||
|
echo "Der größte Teiler ist: $groester_teiler";
|
||||||
|
echo "<br> Zahlen: ".$a." und ".$b ;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
ggt($zahl_a, $zahl_b);
|
||||||
|
|
||||||
|
?>
|
||||||
31
progp/Klassenarbeiten/pruefersumme.php
Normal file
31
progp/Klassenarbeiten/pruefersumme.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
// #################
|
||||||
|
// # NAME #
|
||||||
|
// # DANIEL CWIKLA #
|
||||||
|
// #################
|
||||||
|
|
||||||
|
echo "<h2>Prüfsumme</h2>";
|
||||||
|
$zahl_vorgabe = 4581072;
|
||||||
|
|
||||||
|
function idValidator($id):int {
|
||||||
|
$faktor = 1;
|
||||||
|
$i = -1;
|
||||||
|
echo "id".$id;
|
||||||
|
$arr_id = str_split($id,1);
|
||||||
|
while( $i < (count($arr_id))){
|
||||||
|
$i++;
|
||||||
|
echo "<br>".$i+1 .". ".$arr_id[$i];
|
||||||
|
if ($i == 2 or $i == 5){
|
||||||
|
$faktor = 3;
|
||||||
|
}else {
|
||||||
|
$faktor = 1;
|
||||||
|
}
|
||||||
|
$arr_faktor = array($faktor * $arr_id[$i]);
|
||||||
|
print_r($arr_faktor);
|
||||||
|
$ps = $ps+ $arr_faktor[$i];
|
||||||
|
echo ", $ps";
|
||||||
|
}
|
||||||
|
echo"<br>---<br>$ps";
|
||||||
|
}
|
||||||
|
idValidator($zahl_vorgabe);
|
||||||
|
?>
|
||||||
6
progp/lernen/ka_2/arrays.php
Normal file
6
progp/lernen/ka_2/arrays.php
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
$number = $array(3,5,1,2); // index 0 = 3, index 1 = 5, index 2 = 1, index 3 = 2
|
||||||
|
sort($number); // => $number = array(1,2,3,5); index: 0 = 1, index 1 = 2, index 2 = 3, index 3 = 5
|
||||||
|
asort($number); // => $number = array(1,2,3,4,5); index: 0 = 2, index 1 = 1, index 2 = 5, index 3 = 3
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user