Ваш электронный адрес не будет опубликован. необходимые поля отмечены *

Я использую Arduino-Uno, но я не могу получить доступ к моей веб-странице. Я уже назначил IP-адрес для Arduino. Когда я запускаю Arduino (Ctrl + Shift + M), он отображает вывод. Но когда я захожу на мою веб-страницу, на ней отображается сообщение «Вы не можете» достичь этой веб-страницы.

Мой веб-сервер работает нормально с локальным IP и локальной сетью с кабелем Ethernet.

работа с переадресацией портов / общедоступными IP-адресами при использовании другого сетевого подключения к мобильному устройству, как указано в статье.

не работает в моем мобильном телефоне или ноутбуке при использовании маршрутизатора Wi-Fi / Wireless в той же сети с локальным IP-адресом. Пожалуйста, дайте мне знать, где я иду не так.

Мне нужна помощь в этом коде, потому что при чрезвычайной ситуации на 4 (высокий) я не могу вернуться в предыдущее состояние... как я могу это сделать ???

// ARDUINO 1.0+ ТОЛЬКО
// ARDUINO 1.0+ ТОЛЬКО

#включают
#включают
логическое чтение = ложь;

instagram viewer

////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
байт ip [] = {192, 168, 16, 71}; // Только ручная настройка
// byte gateway [] = {192, 168, 1, 1}; // Только ручная настройка
// байтовая подсеть [] = {255, 255, 255, 0}; // Только ручная настройка

// если нужно изменить MAC-адрес (очень редко)
байт mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

Сервер EthernetServer = сервер Ethernet (80); // порт 80
////////////////////////////////////////////////////////////////////////

void setup () {
Serial.begin (9600);

// Контакты 10,11,12 и 13 используются сетевым экраном

pinMode (2, INPUT); // SWICH
pinMode (3, ВЫХОД); //LAMP
pinMode (4, INPUT); // АВАРИЙНАЯ СИТУАЦИЯ
pinMode (6, INPUT);

Ethernet.begin (mac);
//Ethernet.begin (mac, ip, gateway, subnet); // для ручной настройки

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

}

void loop () {

digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HIGH)
{
digitalWrite (3, ВЫСОКИЙ);
задержка (5000);
digitalWrite (3, LOW);

}

}

checkForClient (); // прослушиваем входящих клиентов и обрабатываем qequest.

}

void checkForClient () {

Клиент EthernetClient = server.available ();

if (клиент) {

// HTTP-запрос заканчивается пустой строкой
логическое значение currentLineIsBlank = true;
логическое значение sentHeader = false;

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

если (! sentHeader) {
// отправляем стандартный HTTP-заголовок ответа
client.println («HTTP / 1.1 200 OK»);
client.println ("Content-Type: text / html");
client.println ();
sentHeader = true;
}

char c = client.read ();

if (чтение && c == '') чтение = ложь;
if (c == '?') чтение = истина; // нашли?, начинаем читать информацию

если (читает) {
Serial.print (c);

switch (c) {
дело «4»:
// добавить код для запуска на 2
triggerPin (4, клиент);
перерыв;
дело «6»:
// добавить код для запуска на 3
triggerPin (6, клиент);
перерыв;

}

}

if (c == '\ n' && currentLineIsBlank) break;

if (c == '\ n') {
currentLineIsBlank = true;
} иначе если (c! = '\ r') {
currentLineIsBlank = false;
}

}
}

задержка (1); // дать браузеру время для получения данных
client.stop (); // закрываем соединение:

}

}

void triggerPin (int pin, клиент EthernetClient) {
// моргание булавкой - Клиент нужен только для вывода HTML.
client.print («Включение булавки»);
client.println (pin);
client.print ( "");

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

}

Разве не было бы проще и дешевле сделать это с Raspberry Pi? Я не совсем уверен, потому что я никогда не использовал Arduino, но у меня есть Pi.