E-postadressen din vil ikke offentliggjøres. Nødvendige felt er merket *

Jeg bruker en arduino-uno, men jeg får ikke tilgang til websiden min. Jeg hadde allerede tildelt ip-adressen til arduino. Når jeg kjører arduino (ctrl + shift + m), viser den output. Men når jeg får tilgang til websiden min, vil den vise "du kan ikke" nås til denne websiden.

Min webserver fungerer fint med lokal IP og lokalt nettverk med Ethernet-kabel.

jobber med port forwarding / public IP når du bruker annen nettverkstilkobling til mobil som nevnt i artikkelen.

fungerer ikke på mobilen eller den bærbare datamaskinen min når jeg bruker Wifi / Wireless-ruteren i samme nettverk med lokal IP. Gi meg beskjed hvor jeg går galt.

Jeg trenger hjelp i denne koden, fordi når en nødsituasjon med 4 (høy) ikke kan komme tilbake til forrige tilstand... hvordan kan jeg gjøre dette ???

// KUN ARDUINO 1.0+
// KUN ARDUINO 1.0+

#inkludere
#inkludere
boolsk lesning = falsk;

////////////////////////////////////////////////////////////////////////

instagram viewer

//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte ip [] = {192, 168, 16, 71}; // Bare manuelt oppsett
// byte gateway [] = {192, 168, 1, 1}; // Bare manuelt oppsett
// byte subnet [] = {255, 255, 255, 0}; // Bare manuelt oppsett

// ved behov for å endre MAC-adressen (veldig sjelden)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

EthernetServer server = EthernetServer (80); // port 80
////////////////////////////////////////////////////////////////////////

ugyldig oppsett () {
Serial.begin (9600);

// Pins 10,11,12 & 13 brukes av ethernet-skjoldet

pinMode (2, INPUT); // SWICH
pinMode (3, UTGANG); //LAMP
pinMode (4, INPUT); // EMERGANCY
pinMode (6, INPUT);

Ethernet.begin (mac);
//Ethernet.begin (mac, ip, gateway, subnet); // for manuell oppsett

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

}

void loop () {

digitalWrite (6, LAV);
if ((digitalRead (4) == LAV) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HØY)
{
digitalWrite (3, HIGH);
forsinkelse (5000);
digitalWrite (3, LAV);

}

}

checkForClient (); // lytte etter innkommende klienter, og behandle qequest.

}

void checkForClient () {

EthernetClient-klient = server.available ();

hvis (klient) {

// en http-forespørsel slutter med en tom linje
boolsk strømLineIsBlank = sann;
boolsk sentHeader = falsk;

while (client.connected ()) {
if (client.available ()) {

if (! sentHeader) {
// send en standard http-svarhode
client.println ("HTTP / 1.1 200 OK");
client.println ("Innholdstype: tekst / html");
client.println ();
sentHeader = sant;
}

char c = client.read ();

if (lesing && c == '') lesing = usant;
if (c == '?') lesing = sant; // fant?, begynne å lese informasjonen

hvis (leser) {
Serial.print (c);

bryter (c) {
sak '4':
// legg til kode her for å utløse 2.
triggerPin (4, klient);
gå i stykker;
sak '6':
// legg til kode her for å utløse 3.
triggerPin (6, klient);
gå i stykker;

}

}

hvis (c == '\ n' && currentLineIsBlank) bryter;

if (c == '\ n') {
currentLineIsBlank = sant;
} annet hvis (c! = '\ r') {
currentLineIsBlank = falsk;
}

}
}

forsinkelse (1); // gi nettleseren tid til å motta dataene
client.stop (); // lukk forbindelsen:

}

}

void triggerPin (int pin, EthernetClient-klient) {
// blink a pin - Klienten trengs bare for HTML-outputformål.
client.print ("Slå på pin");
client.println (pin);
client.print ( "");

if (pin, HIGH)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}

}

Ville det ikke være enklere og billigere å gjøre dette med en Raspberry Pi? Jeg er ikke helt sikker fordi jeg aldri har brukt en Arduino, men jeg har en Pi.