Skocz do zawartości

Kontrola Arduino ethernet za pomocą strony internetowej


Pomocna odpowiedź

Napisano

Dzień dobry,

mam problem nigdzie nie mogę znaleźć odpowiedzi na moje pytanie.

Chciałbym aby moje Arduino mogło odbierać stan przełącznika zamieszczonego na stronie internetowej zahostowanej na xampp-ie. Chodzi mi na przykład o włączanie i wyłączanie diody.

Proszę o konkretny kod arduino i html.

Z góry dzięki.

@BLACK338OUT witam na forum 🙂

2 godziny temu, BLACK338OUT napisał:

Proszę o konkretny kod arduino i html.

Jeśli chcesz się nauczyć to oczywiście chętnie podpowiemy, ale nie mamy w zwyczaju dawać gotowców. Jeśli oczekujesz, że ktoś dostarczy gotowy program to napisz zlecenie w dziale z ogłoszeniami o pracę 🙂 Jeśli jednak chcesz się nauczyć to napisz zwyczajnie na czym utknąłeś i co sprawia Ci dokładnie problem.

To dość ogólnie przedstawiony problem, więc wskazówka też będzie ogólna 😉 Jeśli chcesz odbierać dane ze strony to najprościej przygotować podstronę, która wyświetla np. wartość 1, gdy przycisk jest wciśnięty i 0, gdy nie jest wciśnięty. Za pomocą Arduino pobierasz wtedy całą stronę i analizujesz jej treść. Pytanie co to dokładnie za strona i w jakiej technologii wykonana. Czy to tylko html? Co chcesz docelowo osiągnąć? Pytam, bo może rozwiązanie powinno być zupełnie inne... Najłatwiej będzie jak podasz konkretne zastosowanie tego mechanizmu.

Pierwsze to adres Twojego urządzenia, a drugie to adres routera, czyli domyślnej bramy w sieci. Jeśli DHCP działa poprawnie to elementy tę będą zbędne (zgodnie z informacją w komentarzu - linijka nad cytowanym przez Ciebie fragmentem).

Ja bym powiedział, że ip i myDns jakie pokazujesz to dwa adresy IP (obiekty klasy IPAddress). Urządzenie do pracy w sieci musi posiadać unikatowy w skali sieci identyfikator - adres IP. W konfiguracji urządzenia to nie wystarczy - należy jeszcze podać tzw. maskę podsieci (subnet mask). Do pracy w obrębie sieci LAN to wystarczy. Jeśli jednak urządzenie ma komunikować się z innymi sieciami np. z internetem to w konfiguracji podajemy także adres IP urządzenia pełniącego funkcję bramy sieciowej (gateway) i adres serwera usługi DNS, który umożliwi Ci korzystanie z nazw domenowych typu www.forbot.pl

Taki przykład możesz znaleźć w serwisie arduino.cc - zobacz

#include <SPI.h>
#include <Ethernet.h>

// network configuration. dns server, gateway and subnet are optional.

 // the media access control (ethernet hardware) address for the shield:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  

// the dns server ip
IPAddress dnServer(192, 168, 0, 1);
// the router's gateway address:
IPAddress gateway(192, 168, 0, 1);
// the subnet:
IPAddress subnet(255, 255, 255, 0);

//the IP address is dependent on your network
IPAddress ip(192, 168, 0, 2);

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

  // initialize the ethernet device
  Ethernet.begin(mac, ip, dnServer, gateway, subnet);
  //print out the IP address
  Serial.print("IP = ");
  Serial.println(Ethernet.localIP());
}

void loop() {
}

 

Po wgraniu programu na porcie otrzymuję komunikat (załącznik).

//IPAddress server(74,125,232,128);
char server[] = "http://192.168.0.5/";

IPAddress ip(192, 168, 0, 4);
IPAddress myDns(192, 168, 0, 1);

 

 

Port.png

@Belferek w przypadku sieci domowych prawie zawsze router będzie pełnił rolę "serwera DNS". Przynajmniej ja nie spotkałem się z sytuacją, aby przy podstawowej konfiguracji było inaczej 🙂

@BLACK338OUT a co to za adres IP? Masz tam coś uruchomione? Jakiś swój serwer? Co się stanie jak zostawisz tam adres www.google.com (zgodnie z przykładem)?

(edytowany)
16 minut temu, Treker napisał:

w przypadku sieci domowych prawie zawsze router będzie pełnił rolę "serwera DNS"

Prawie ... tyle, że w przypadku domowej sieci LAN ( do połączeń w jej obrębie) praktycznie do czego ten DNS potrzebny? Wystarczy IP i maska zresztą autor tak próbuje się łączyć. Przy takim komunikacie o braku połączenia nie czepiałbym się od razu Arduino. Spróbuj połączyć się z innego urządzenia - komórki, laptopa (tylko nie tego na którym masz Xamp-a). Jak się połączysz ze swoim serwerem z innego urządzenia to problemu można szukać w Arduino, a jak nie to w konfiguracji ... serwera.

Edytowano przez Belferek
(edytowany)

czyli Arduino łączy się z siecią (nawet korzysta z dns) - problemu szukaj w konfiguracji serwera - swojego Xampa ( jak wyżej pisałem).

Edytowano przez Belferek

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...