כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *

אני משתמש ב- arduino-uno, אך אינני יכול לגשת לדף האינטרנט שלי. אני כבר הקצה את כתובת ה- ip ל- arduino. כשאני מפעיל ארדואינו (ctrl + shift + m), הוא מציג פלט. אבל כשאני ניגש לדף האינטרנט שלי, הוא יציג את "אי אפשר" לדף אינטרנט זה.

שרת האינטרנט שלי עובד מצוין עם IP מקומי ורשת מקומית עם כבל אתרנט.

עבודה עם העברת יציאה / IP ציבורי בעת שימוש בחיבור רשת אחר לנייד כמוזכר במאמר.

לא עובד בנייד או במחשב הנייד שלי בעת השימוש בנתב Wifi / Wireless באותה רשת עם IP מקומי. אנא הודע לי לאן אני משתבש.

אני זקוק לעזרה בקוד זה מכיוון שכאשר מצב חירום על ידי 4 (גבוה) אני לא יכול לחזור למצב הקודם... איך אני יכול לעשות זאת ???

// ARDUINO 1.0+ בלבד
// ARDUINO 1.0+ בלבד

# כלול
# כלול
קריאה בוליאית = שקרית;

////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
בתים ip [] = {192, 168, 16, 71}; // הגדרה ידנית בלבד
// שער בייט [] = {192, 168, 1, 1}; // הגדרה ידנית בלבד
// רשת משנה של בתים [] = {255, 255, 255, 0}; // הגדרה ידנית בלבד

instagram viewer

// אם צריך לשנות את כתובת MAC (נדיר מאוד)
בתים מק [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

שרת EthernetServer = EthernetServer (80); // יציאה 80
////////////////////////////////////////////////////////////////////////

הגדרת ביטול () {
Serial.begin (9600);

// סיכות 10,11,12 ו- 13 משמשות את מגן האתרנט

pinMode (2, INPUT); // SWICH
pinMode (3, פלט); //LAMP
pinMode (4, קלט); // חירום
pinMode (6, קלט);

Ethernet.begin (mac);
//Ethernet.begin (mac, ip, gateway, subnet); // להגדרה ידנית

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

}

לולאת חלל () {

digitalWrite (6, נמוך);
אם ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
אם (digitalRead (2) == HIGH)
{
digitalWrite (3, HIGH);
עיכוב (5000);
digitalWrite (3, נמוך);

}

}

checkForClient (); // האזנה עבור לקוחות נכנסים, ועבד qequest.

}

check voidForClient () {

לקוח EthernetClient = server.available ();

אם (לקוח) {

// בקשת http מסתיימת בשורה ריקה
boolean currentLineIsBlank = נכון;
בוליאני sentHeader = שקר;

while (client.connected ()) {
אם (client.available ()) {

אם (! sentHeader) {
// שלח כותרת תגובה רגילה של http
client.println ("HTTP / 1.1 200 אישור");
client.println ("סוג תוכן: טקסט / HTML");
client.println ();
sentHeader = נכון;
}

char c = client.read ();

if (קריאה && c == '') קריאה = שקר;
if (c == '?') קריאה = נכון; // מצא את?, התחל לקרוא את המידע

אם (קורא) {
Serial.print (c);

מתג (ג) {
מקרה '4':
// הוסף כאן קוד להפעלת ב -2
triggerPin (4, לקוח);
לשבור;
מקרה '6':
// הוסף כאן קוד להפעלת 3
triggerPin (6, לקוח);
לשבור;

}

}

אם (c == '\ n' && currentLineIsBlank) להישבר;

if (c == '\ n') {
currentLineIsBlank = נכון;
} אחרת אם (c! = '\ r') {
currentLineIsBlank = שקר;
}

}
}

עיכוב (1); // תן לדפדפן האינטרנט זמן לקבל את הנתונים
client.stop (); // סגור את החיבור:

}

}

void triggerPin (סיכת אינט, לקוח EthernetClient) {
// למצמץ סיכה - הלקוח נדרש רק למטרות פלט HTML.
client.print ("הפעלת סיכה");
client.println (סיכה);
client.print ("");

אם (סיכה, גבוהה)
{
digitalWrite (4, HIGH);
digitalWrite (6, HIGH);}

}

האם זה לא יהיה קל וזול יותר לעשות זאת עם Pi פטל? אני לא ממש בטוח כי מעולם לא השתמשתי בארדואינו, אבל יש לי פי.