Din e-mail-adresse offentliggøres ikke. Nødvendige felter er markeret *
Jeg bruger en arduino-uno, men jeg har ikke adgang til min webside. Jeg havde allerede tildelt idu-adresse til arduino. når jeg kører arduino (ctrl + shift + m), viser det output. Men når jeg åbner min webside, viser den "du kan ikke" nås til denne webside.
Min webserver fungerer fint med lokal IP og lokalt netværk med Ethernet-kabel.
arbejde med portvideresendelse / offentlig IP, når du bruger anden netværksforbindelse til mobil som nævnt i artiklen.
fungerer ikke i min mobil eller bærbare computer, når jeg bruger Wifi / Wireless-routeren i samme netværk med lokal IP. Lad mig vide, hvor jeg går galt.
Jeg har brug for hjælp til denne kode, fordi når nødsituation forekommer med 4 (høj), kan jeg ikke vende tilbage til forrige tilstand... hvordan kan jeg gøre dette ???
// KUN ARDUINO 1.0+
// KUN ARDUINO 1.0+
#omfatte
#omfatte
boolsk læsning = falsk;
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte ip [] = {192, 168, 16, 71}; // Kun manuel opsætning
// byte gateway [] = {192, 168, 1, 1}; // Kun manuel opsætning
// byte subnet [] = {255, 255, 255, 0}; // Kun manuel opsætning
// hvis nødvendigt at ændre MAC-adressen (Very Rare)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServer-server = EthernetServer (80); // port 80
////////////////////////////////////////////////////////////////////////
ugyldig opsætning () {
Serial.begin (9600);
// Pins 10,11,12 & 13 bruges af ethernet-skjoldet
pinMode (2, INPUT); // SWICH
pinMode (3, OUTPUT); //LAMP
pinMode (4, INPUT); // EMERGANCY
pinMode (6, INPUT);
Ethernet.begin (mac);
//Ethernet.begin (mac, ip, gateway, subnet); // til manuel opsætning
server.begin ();
Serial.println (Ethernet.localIP ());
}
void loop () {
digitalWrite (6, LAV);
if ((digitalRead (4) == LAV) || (digitalRead (6) == HØJ))
{
if (digitalRead (2) == HØJ)
{
digitalWrite (3, HØJ);
forsinkelse (5000);
digitalWrite (3, LAV);
}
}
checkForClient (); // lytte til indkommende klienter og behandle qequest.
}
void checkForClient () {
EthernetClient-klient = server.tilgængelig ();
hvis (klient) {
// en http-anmodning slutter med en tom linje
boolsk strømLineIsBlank = sand;
boolsk sendHeader = falsk;
while (client.connected ()) {
if (client.available ()) {
if (! sentHeader) {
// send en standard http-svarhoved
client.println ("HTTP / 1.1 200 OK");
client.println ("Indholdstype: tekst / html");
client.println ();
sentHeader = sandt;
}
char c = client.read ();
if (læsning && c == '') læsning = falsk;
if (c == '?') læsning = sandt; // fundet?, begynde at læse info
hvis (læsning) {
Serialprint (c);
switch (c) {
sag '4':
// tilføj kode her for at udløse på 2
triggerPin (4, klient);
pause;
sag '6':
// tilføj kode her for at udløse den 3
triggerPin (6, klient);
pause;
}
}
hvis (c == '\ n' && currentLineIsBlank) brydes;
if (c == '\ n') {
currentLineIsBlank = sandt;
} andet hvis (c! = '\ r') {
currentLineIsBlank = falsk;
}
}
}
forsinkelse (1); // give webbrowseren tid til at modtage dataene
client.stop (); // luk forbindelsen:
}
}
void triggerPin (int pin, EthernetClient-klient) {
// blink en pin - Klient er nødvendig kun til HTML-outputformål.
client.print ("Tænd for pin");
client.println (pin);
client.print ( "");
hvis (pin, HØJ)
{
digitalWrite (4, HØJ);
digitalWrite (6, HØJ);}
}
Ville det ikke være lettere og billigere at gøre dette med en a Raspberry Pi? Jeg er ikke rigtig sikker, fordi jeg aldrig har brugt en Arduino, men jeg har en Pi.