Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *

Χρησιμοποιώ ένα arduino-uno, αλλά δεν μπορώ να αποκτήσω πρόσβαση στην ιστοσελίδα μου. Είχα ήδη αντιστοιχίσει διεύθυνση IP στο arduino. όταν τρέχω arduino (ctrl + shift + m), εμφανίζει την έξοδο. Αλλά όταν έχω πρόσβαση στην ιστοσελίδα μου, θα εμφανιστεί "δεν μπορείτε" να προσεγγιστεί σε αυτή την ιστοσελίδα.

Ο Webserver μου λειτουργεί καλά με τοπικό δίκτυο IP και τοπικό δίκτυο με καλώδιο Ethernet.

που εργάζονται με την προώθηση των θυρών / δημόσια IP κατά τη χρήση άλλων συνδέσεων δικτύου στο κινητό όπως αναφέρεται στο άρθρο.

does not work στο κινητό ή φορητό υπολογιστή μου όταν χρησιμοποιείτε το δρομολογητή Wifi / Wireless στο ίδιο δίκτυο με την τοπική IP. Παρακαλώ επιτρέψτε μου να ξέρω πού πηγαίνω στραβά.

Χρειάζομαι βοήθεια σε αυτόν τον κώδικα επειδή όταν έκτακτη ανάγκη από 4 (υψηλή) δεν μπορώ να επιστρέψω στην προηγούμενη κατάσταση... πώς μπορώ να κάνω αυτό ???

// Μόνο το ARDUINO 1.0+
// Μόνο το ARDUINO 1.0+

#περιλαμβάνω
#περιλαμβάνω
boolean ανάγνωση = ψευδής?

instagram viewer

////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte ip [] = {192, 168, 16, 71}. // Μη αυτόματη ρύθμιση μόνο
// byte gateway [] = {192, 168, 1, 1}. // Μη αυτόματη ρύθμιση μόνο
// byte υποδίκτυο [] = {255, 255, 255, 0}. // Μη αυτόματη ρύθμιση μόνο

// αν χρειάζεται να αλλάξετε τη διεύθυνση MAC (πολύ σπάνια)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}.

Διακομιστής EthernetServer = EthernetServer (80); // θύρα 80
////////////////////////////////////////////////////////////////////////

άκυρη ρύθμιση () {
Serial.begin (9600);

// Οι ακίδες 10,11,12 & 13 χρησιμοποιούνται από την ασπίδα του ethernet

pinMode (2, INPUT), // SWICH
pinMode (3, OUTPUT). //LAMP
pinMode (4, είσοδος), // EMERGANCY
pinMode (6, INPUT);

Ethernet.begin (mac);
//Ethernet.begin (mac, ip, πύλη, υποδίκτυο); // για χειροκίνητη ρύθμιση

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

}

void loop () {

ψηφιακή γραφή (6, χαμηλή);
αν ((ψηφιακόRead (4) == LOW) || (digitalRead (6) == HIGH))
{
αν (ψηφιακόRead (2) == HIGH)
{
ψηφιακή γραφή (3, υψηλή);
καθυστέρηση (5000);
ψηφιακή γραφή (3, χαμηλή);

}

}

checkForClient (); // ακούστε τους εισερχόμενους πελάτες και επεξεργαστείτε το qequest.

}

void checkForClient () {

Πελάτης EthernetClient = server.available ();

αν (πελάτης) {

// ένα αίτημα http τελειώνει με μια κενή γραμμή
boolean currentLineIsBlank = true;
boolean sentHeader = ψευδής;

ενώ (client.connected ()) {
αν (client.available ()) {

αν (! sentHeader) {
// στείλτε μια τυπική κεφαλίδα απόκρισης http
client.println ("HTTP / 1.1 200 ΟΚ");
client.println ("Τύπος περιεχομένου: κείμενο / html");
client.println ();
sentHeader = true;
}

char c = client.read ();

αν (ανάγνωση && c == '') ανάγνωση = ψευδής?
αν (c == '?') ανάγνωση = αληθινό; // βρήκε το;, αρχίστε να διαβάζετε τις πληροφορίες

αν (ανάγνωση) {
Serial.print (c);

διακόπτης (c) {
περίπτωση '4':
// προσθέστε τον κωδικό εδώ για να ενεργοποιήσετε το 2
triggerPin (4, client);
Διακοπή;
περίπτωση 6:
// προσθέστε τον κωδικό εδώ για να ενεργοποιήσετε στις 3
triggerPin (6, client);
Διακοπή;

}

}

εάν (c == '\ n' && currentLineIsBlank) σπάσει.

αν (c == '\ n') {
currentLineIsBlank = true;
} else αν (c! = '\ r') {
currentLineIsBlank = false;
}

}
}

καθυστέρηση (1); // δώστε στο web browser την ώρα για να λάβετε τα δεδομένα
client.stop (); // κλείσιμο της σύνδεσης:

}

}

άκυρη triggerPin (int pin, πελάτης EthernetClient) {
// αναβοσβήνει μια καρφίτσα - Ο πελάτης χρειάζεται μόνο για λόγους εξόδου HTML.
client.print ("Ενεργοποίηση της καρφίτσας").
client.println (pin)?
client.print ("");

αν (pin, HIGH)
{
Ψηφιακή εγγραφή (4, ΥΨΗΛΗ);
ψηφιακή καταγραφή (6, υψηλή),}

}

Δεν θα ήταν ευκολότερο και φθηνότερο να το κάνετε αυτό με ένα Raspberry Pi; Δεν είμαι πραγματικά βέβαιος γιατί δεν έχω χρησιμοποιήσει ποτέ ένα Arduino, αλλά έχω ένα Pi.