Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *

Es izmantoju arduino-uno, bet es nevaru piekļūt savai tīmekļa vietnei. Man jau bija piešķirta IP adrese arduino. kad es palaižu arduino (Ctrl + Shift + m), tas parāda izvadi. Bet, kad es piekļūstu savai tīmekļa lapai, tajā tiks parādīts uzraksts “jūs nevarat”.

Mana vietne labi darbojas ar vietējo IP un vietējo tīklu ar Ethernet kabeli.

darbs ar ostas pāradresāciju / publisku IP, izmantojot citu tīkla savienojumu ar mobilo, kā minēts rakstā.

nedarbojas manā mobilajā vai klēpjdatorā, kad tiek izmantots Wifi / bezvadu maršrutētājs vienā tīklā ar vietējo IP. Lūdzu, paziņojiet man, kur es kļūdos.

man ir vajadzīga palīdzība šajā kodā, jo, ja ārkārtas gadījumā notiek 4 (augsts), es nevaru atgriezties iepriekšējā stāvoklī... kā es varu to izdarīt?

// TIKAI ARDUINO 1.0+
// TIKAI ARDUINO 1.0+

# iekļaut
# iekļaut
Būla lasījums = nepatiess;

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

instagram viewer

baits ip [] = {192, 168, 16, 71}; // Tikai manuāla iestatīšana
// baitu vārteja [] = {192, 168, 1, 1}; // Tikai manuāla iestatīšana
// baitu apakštīkls [] = {255, 255, 255, 0}; // Tikai manuāla iestatīšana

// ja jāmaina MAC adrese (ļoti reti)
baitu mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

EthernetServer serveris = EthernetServer (80); // 80. osta
////////////////////////////////////////////////////////////////////////

Nederīga iestatīšana () {
Sērijas.begin (9600);

// Ethernet vairogs izmanto tapas 10, 11, 12 un 13

pinMode (2, INPUT); // SWICH
pinMode (3, OUTPUT); //LAMP
pinMode (4, INPUT); // AVĀRIJAS
pinMode (6, INPUT);

Ethernet.begin (mac);
//Ethernet.begin (mac, ip, vārteja, apakštīkls); // manuālai iestatīšanai

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

}

tukšs cilpa () {

digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HIGH)
{
digitalWrite (3, HIGH);
kavēšanās (5000);
digitalWrite (3, LOW);

}

}

checkForClient (); // klausieties ienākošos klientus un apstrādājiet qequest.

}

void checkForClient () {

EthernetClient klients = serveris.pieejams ();

ja (klients) {

// http pieprasījums beidzas ar tukšu rindu
Būla pašreizējaisLineIsBlank = patiess;
Būla sentHeader = nepatiess;

kamēr (klients.saistīts ()) {
ja (klients.pieejams ()) {

if (! sentHeader) {
// nosūtīt standarta http atbildes galveni
client.println ("HTTP / 1.1 200 OK");
client.println ("Satura tips: teksts / html");
klients.println ();
sentHeader = taisnība;
}

char c = klients.lasīt ();

if (lasīšana && c == '') lasīšana = nepatiesa;
if (c == '?') lasījums = patiess; // atrada?, sāciet lasīt informāciju

ja (lasot) {
Serial.print (c);

slēdzis (c) {
gadījums '4':
// pievienojiet kodu šeit, lai iedarbinātu uz 2
triggerPin (4, klients);
pārtraukums;
gadījums “6”:
// pievienojiet kodu šeit, lai aktivizētu 3
triggerPin (6, klients);
pārtraukums;

}

}

if (c == '\ n' && currentLineIsBlank) pārtraukums;

ja (c == '\ n') {
currentLineIsBlank = patiess;
} cits, ja (c! = '\ r') {
currentLineIsBlank = nepatiess;
}

}
}

kavēšanās (1); // dodiet interneta pārlūkam laiku datu saņemšanai
klients.stops (); // aizveriet savienojumu:

}

}

void triggerPin (int PIN, EthernetClient klients) {
// mirkšķināt tapu - klients nepieciešams tikai HTML izvades nolūkos.
client.print ("Ieslēdzot tapu");
klients.println (pin);
klients.druka ("");

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

}

Vai to nebūtu vieglāk un lētāk izdarīt ar Raspberry Pi? Es neesmu pārliecināts, jo es nekad neesmu lietojis Arduino, bet man ir Pi.