Twoj adres e-mail nie bedzie opublikowany. wymagane pola są zaznaczone *

używam arduino-uno, ale nie mam dostępu do mojej strony. już przypisałem adres IP do arduino. kiedy uruchamiam arduino (ctrl + shift + m), wyświetla dane wyjściowe. Ale kiedy uzyskuję dostęp do mojej strony, wyświetli się komunikat „Nie możesz” dotrzeć do tej strony.

Mój serwer działa dobrze z lokalnym adresem IP i siecią lokalną za pomocą kabla Ethernet.

praca z przekierowaniem portów / publicznym adresem IP podczas korzystania z innego połączenia sieciowego z telefonem komórkowym, jak wspomniano w artykule.

nie działa na moim telefonie komórkowym lub laptopie podczas korzystania z routera Wi-Fi / bezprzewodowego w tej samej sieci z lokalnym adresem IP. Daj mi znać, gdzie się mylę.

Potrzebuję pomocy w tym kodzie, ponieważ gdy wystąpi nagły wypadek o 4 (wysoki), nie mogę wrócić do poprzedniego stanu... jak to zrobić?

// TYLKO ARDUINO 1.0+
// TYLKO ARDUINO 1.0+

#zawierać
#zawierać
odczyt boolowski = fałsz;

////////////////////////////////////////////////////////////////////////

instagram viewer

//CONFIGURE
////////////////////////////////////////////////////////////////////////
bajt ip [] = {192, 168, 16, 71}; // Tylko konfiguracja ręczna
// bajtowa brama [] = {192, 168, 1, 1}; // Tylko konfiguracja ręczna
// bajtowa podsieć [] = {255, 255, 255, 0}; // Tylko konfiguracja ręczna

// jeśli trzeba zmienić adres MAC (bardzo rzadko)
bajt mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

Serwer EthernetServer = EthernetServer (80); // port 80
////////////////////////////////////////////////////////////////////////

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

// Piny 10,11,12 i 13 są używane przez osłonę ethernetową

pinMode (2, WEJŚCIE); // SWICH
pinMode (3, WYJŚCIE); //LAMP
pinMode (4, WEJŚCIE); // AWARYJNE
pinMode (6, WEJŚCIE);

Ethernet.begin (mac);
//Ethernet.begin (mac, ip, brama, podsieć); // do ręcznej konfiguracji

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

}

void loop () {

digitalWrite (6, LOW);
if ((digitalRead (4) == LOW) || (digitalRead (6) == HIGH))
{
if (digitalRead (2) == HIGH)
{
digitalWrite (3, WYSOKI);
opóźnienie (5000);
digitalWrite (3, LOW);

}

}

checkForClient (); // nasłuchuj przychodzących klientów i przetwarzaj qequest.

}

void checkForClient () {

Klient EthernetClient = server.available ();

jeśli (klient) {

// żądanie HTTP kończy się pustą linią
boolean currentLineIsBlank = true;
boolean sentHeader = false;

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

if (! sentHeader) {
// wyślij standardowy nagłówek odpowiedzi http
client.println („HTTP / 1.1 200 OK”);
client.println („Content-Type: text / html”);
client.println ();
sentHeader = true;
}

char c = client.read ();

if (czytanie && c == '') czytanie = fałsz;
if (c == '?') reading = true; // znalazłeś?, zacznij czytać informacje

jeśli (czyta) {
Serial.print (c);

przełącznik (c) {
przypadek „4”:
// dodaj tutaj kod, aby uruchomić 2
triggerPin (4, klient);
złamać;
przypadek „6”:
// dodaj tutaj kod, aby uruchomić 3
triggerPin (6, klient);
złamać;

}

}

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

jeśli (c == '\ n') {
currentLineIsBlank = true;
} else if (c! = '\ r') {
currentLineIsBlank = false;
}

}
}

opóźnienie (1); // daj przeglądarce czas na otrzymanie danych
client.stop (); // zamknij połączenie:

}

}

void triggerPin (int pin, klient EthernetClient) {
// mrugnięcie szpilką - Klient potrzebny tylko do celów wyjściowych HTML.
client.print („Turning on pin”);
client.println (pin);
client.print („”);

if (pin, WYSOKI)
{
digitalWrite (4, WYSOKA);
digitalWrite (6, WYSOKA);}

}

Czy nie byłoby łatwiej i taniej zrobić to z Raspberry Pi? Nie jestem do końca pewien, ponieważ nigdy nie korzystałem z Arduino, ale mam Pi.