Deine Email-Adresse wird nicht veröffentlicht. erforderliche Felder sind markiert *
Ich benutze ein Arduino-Uno, aber ich kann nicht auf meine Webseite zugreifen. Ich hatte Arduino bereits eine IP-Adresse zugewiesen. Wenn ich Arduino ausführe (Strg + Umschalt + M), wird die Ausgabe angezeigt. Wenn ich jedoch auf meine Webseite zugreife, wird angezeigt, dass diese Webseite nicht erreicht werden kann.
Mein Webserver funktioniert einwandfrei mit lokaler IP und lokalem Netzwerk mit Ethernet-Kabel.
Arbeiten mit Portweiterleitung / öffentlicher IP bei Verwendung einer anderen Netzwerkverbindung zum Mobiltelefon, wie im Artikel erwähnt.
funktioniert nicht in meinem Handy oder Laptop, wenn ich den Wifi / Wireless-Router im selben Netzwerk mit lokaler IP verwende. Bitte lassen Sie mich wissen, wo ich falsch liege.
Ich brauche Hilfe in diesem Code, weil ich im Notfall um 4 (hoch) nicht zum vorherigen Zustand zurückkehren kann... wie kann ich das tun ???
// NUR ARDUINO 1.0+
// NUR ARDUINO 1.0+
#umfassen
#umfassen
Boolesches Lesen = falsch;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
Byte ip [] = {192, 168, 16, 71}; // Nur manuelle Einrichtung
// Byte Gateway [] = {192, 168, 1, 1}; // Nur manuelle Einrichtung
// Byte-Subnetz [] = {255, 255, 255, 0}; // Nur manuelle Einrichtung
// falls die MAC-Adresse geändert werden muss (Sehr selten)
Byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServer-Server = EthernetServer (80); // Port 80
////////////////////////////////////////////////////////////////////////
void setup () {
Serial.begin (9600);
// Die Pins 10, 11, 12 und 13 werden von der Ethernet-Abschirmung verwendet
pinMode (2, INPUT); // SWICH
PinMode (3, OUTPUT); //LAMP
pinMode (4, INPUT); // NOTFALL
pinMode (6, INPUT);
Ethernet.begin (mac);
//Ethernet.begin (Mac, IP, Gateway, Subnetz); // für die manuelle Einrichtung
server.begin ();
Serial.println (Ethernet.localIP ());
}
void loop () {
digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HIGH)
{
digitalWrite (3, HIGH);
Verzögerung (5000);
digitalWrite (3, LOW);
}
}
checkForClient (); // auf eingehende Clients warten und qequest verarbeiten.
}
void checkForClient () {
EthernetClient client = server.available ();
if (client) {
// Eine http-Anfrage endet mit einer Leerzeile
boolean currentLineIsBlank = true;
boolean sentHeader = false;
while (client.connected ()) {
if (client.available ()) {
if (! sentHeader) {
// Sende einen Standard-HTTP-Antwortheader
client.println ("HTTP / 1.1 200 OK");
client.println ("Inhaltstyp: text / html");
client.println ();
sentHeader = true;
}
char c = client.read ();
if (Lesen && c == '') Lesen = falsch;
if (c == '?') Reading = true; // fand das?, beginne die Infos zu lesen
if (Lesen) {
Serial.print (c);
Schalter (c) {
Fall '4':
// füge hier Code hinzu, um 2 auszulösen
triggerPin (4, client);
brechen;
Fall '6':
// füge hier Code hinzu, um auf 3 auszulösen
triggerPin (6, client);
brechen;
}
}
if (c == '\ n' && currentLineIsBlank) break;
if (c == '\ n') {
currentLineIsBlank = true;
} else if (c! = '\ r') {
currentLineIsBlank = false;
}
}
}
Verzögerung (1); // Geben Sie dem Webbrowser Zeit, um die Daten zu empfangen
client.stop (); // Verbindung schließen:
}
}
void triggerPin (int pin, EthernetClient-Client) {
// blink a pin - Client wird nur für HTML-Ausgabezwecke benötigt.
client.print ("Pin einschalten");
client.println (pin);
client.print ("");
if (pin, HIGH)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}
}
Wäre es nicht einfacher und billiger, dies mit einem Raspberry Pi zu tun? Ich bin mir nicht sicher, weil ich noch nie einen Arduino benutzt habe, aber ich habe einen Pi.