Vaš e-poštni naslov ne bo objavljen. Obvezna polja so označena *

Uporabljam arduino-uno, vendar ne morem dostopati do svoje spletne strani.i sem že dodelil ip naslov arduino. ko zaženem arduino (ctrl + shift + m), prikaže izhod. Ko pa dostopam do svoje spletne strani, se prikaže "ne morete" doseči to spletno stran.

Moj spletni strežnik dobro deluje z lokalnim IP in lokalnim omrežjem z ethernetnim kablom.

delo s posredovanjem vrat / javnim IP pri uporabi druge omrežne povezave do mobilne telefonije, kot je omenjeno v članku.

ne deluje v mojem mobilnem ali prenosnem računalniku, ko uporabljam usmerjevalnik Wifi / Wireless v istem omrežju z lokalnim IP-om. Prosim, obvestite me, kam grem narobe.

Potrebujem pomoč pri tej kodi, ker se v primeru nujnih primerov za 4 (visoko) ne morem vrniti v prejšnje stanje... kako naj to storim ???

// SAMO ARDUINO 1.0+
// SAMO ARDUINO 1.0+

#include
#include
logično branje = napačno;

////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////

instagram viewer

bajt ip [] = {192, 168, 16, 71}; // Samo ročna nastavitev
// prehod bajtov [] = {192, 168, 1, 1}; // Samo ročna nastavitev
// podmrežje bajtov [] = {255, 255, 255, 0}; // Samo ročna nastavitev

// če je treba spremeniti naslov MAC (zelo redko)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

Strežnik EthernetServer = EthernetServer (80); // vrata 80
////////////////////////////////////////////////////////////////////////

nična namestitev () {
Serial.begin (9600);

// Zatiči 10,11,12 in 13 uporabljajo eternetni ščit

pinMode (2, INPUT); // SWICH
pinMode (3, IZHOD); //LAMP
pinMode (4, INPUT); // NAPREJ
pinMode (6, INPUT);

Ethernet.begin (mac);
//Ethernet.begin (mac, ip, prehod, podomrežje); // za ročno nastavitev

server.begin ();
Serial.println (Ethernet.localIP ());

}

void loop () {

digitalWrite (6, NIZKA);
if ((digitalno branje (4) == LOW) || (digitalno branje (6) == HIGH))
{
če (digitalno branje (2) == HIGH)
{
digitalWrite (3, HIGH);
zamuda (5000);
digitalWrite (3, NIZKA);

}

}

checkForClient (); // poslušajte dohodne stranke in obdelajte qequest.

}

void checkForClient () {

Odjemalec EthernetClient = server.available ();

če (odjemalec) {

// Zahteva http se konča s prazno vrstico
logični tokLineIsBlank = res;
boolean sentHeader = napačen;

medtem ko (client.connected ()) {
če (client.available ()) {

če (! poslalHeader) {
// pošlje standardno glavo odziva http
client.println ("HTTP / 1.1 200 OK");
client.println ("Vrsta vsebine: besedilo / html");
odjemalec.println ();
sentHeader = res;
}

char c = client.read ();

če (branje && c == '') branje = napačno;
če (c == '?') branje = res; // našel?, začnite brati informacije

če (branje) {
Serijski odtis (c);

stikalo (c) {
primer '4':
// dodajte kodo, da se sproži 2
sprožilec (4, odjemalec);
odmor;
primer '6':
// dodajte kodo, da se sproži na 3
sprožilec (6, odjemalec);
odmor;

}

}

če (c == '\ n' && currentLineIsBlank) prekinitev;

če (c == '\ n') {
currentLineIsBlank = res;
} else if (c! = '\ r') {
currentLineIsBlank = napačno;
}

}
}

zamuda (1); // dajte spletnemu brskalniku čas za sprejemanje podatkov
odjemalec.stop (); // zaprete povezavo:

}

}

nični sprožilecPin (int pin, odjemalec EthernetClient) {
// utripa pin - odjemalec je potreben samo za izhod HTML.
client.print ("Vklop pin");
odjemalec.println (pin);
client.print ("");

če (pin, VISOK)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}

}

Ali ne bi bilo to lažje in ceneje narediti z Raspberry Pi? Nisem prepričan, ker Arduino nikoli nisem uporabljal, vendar imam Pi.