Elektroda.pl
Elektroda.pl
X
BotlandBotland
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino Uno + ENC28J60 - Komunikacja

23 Maj 2013 19:56 3786 4
  • Poziom 9  
    Witam Kupiłem sobie moduł ENC28J60 do mojego Arduino Uno V3 i juz od początku zaczęły się schody. Użyłem Tej biblioteki. Podłączyłem według tego schematu. Następnie z przykładów wybrałem Hello world i wpisałem w przeglądarce 192.168.1.15 i nic. Windows łączy się z siecią i wyświetla ją jako niezyidentyfikowana. Próbowałem też innych bibliotek znalezionych w internecie ale skutek podobny. Co robię źle? Docelowo chciałbym sobie zapalać diody podłączone do wyjść Arduino za pośrednictwem przeglądarki
  • BotlandBotland
  • Moderator na urlopie...
    Brak istotnych informacji.
    1. Jak masz skonfigurowaną sieć (maska, itp.)?
    2. Jakim kablem ENC28J60 jest podpięty do routera (cross, czy prosty)?
    ---
    EDIT:
    No chyba, że, jak wnioskuję ze szczątkowych informacji w poście, podpinasz ENC28J60 bezpośrednio do komputera - na gotowych bibliotekach tak to nie ma szans zadziałać. Musi być router.
  • BotlandBotland
  • Poziom 9  
    Rzeczywiście podpinam bezpośrednio do laptopa zwykłą skrętką długości chyba 1m. Na jednym z filmików widziałem jak ktoś dopisał sobie do tego trochę php, na komputerze miał xampa i tak zapalał diody. W takim razie widzę, że potrzebuje przyspieszonego kursu podstaw sieci bo jestem zupełnie zielony i porwałem się z motyką na słońce. W domu mam Neostradę czyli zmienne ip. W tym momencie nie zależy mi na dostępie za pośrednictwem Internetu bo wtedy dyndys przekierowanie portu na urządzenie jeśli dobrze myślę. Na początek chciałem "dogadać się" z mikrokontrolerem za pomocą przeglądarki i Enc28j60 no i to co wydawało się banalne sprawiło mi spory problem...
    A więc tak mam gotową bibliotekę, do której podałem link. Usunąłem standardową Ethernet w Arduino IDE, ponieważ podobno funkcje tych bibliotek się dublują. Całość podpinałem bezpośrednio pod laptopa nie konfigurując przy tym zupełnie nic.
    Oto kod:

    // A simple web server that always just says "Hello World"

    #include "etherShield.h"
    #include "ETHER_28J60.h"

    static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network,
    // so unless you have more than one of these boards
    // connected, you should be fine with this value.

    static uint8_t ip[4] = {192, 168, 1, 15}; // the IP address for your board. Check your home hub
    // to find an IP address not in use and pick that
    // this or 10.0.0.15 are likely formats for an address
    // that will work.

    static uint16_t port = 80; // Use port 80 - the standard for HTTP

    ETHER_28J60 ethernet;

    void setup()
    {
    ethernet.setup(mac, ip, port);
    }

    void loop()
    {
    if (ethernet.serviceRequest())
    {
    ethernet.print("<H1>Hello World</H1>");
    ethernet.respond();
    }
    delay(100);
    }
  • Poziom 19  
    Pierwsza sprawa to konfiguracja Twojej sieci lokalnej. Zakładam, że działasz w windowsie więc ipconfig i sprawdzasz jak masz skonfigurowaną sieć eth. Jak ten kod działa to ustawia na ardunio 192.168.1.15 .

    Dodatkowo jak masz zamiar działać z protokołem ip warto zaprzyjaźnić się ze snifferem typu wireshark / network chemistry. Zamiast łączyć się po http możesz poćwiczyć z ICMP (komenda ping). Jak to nie zadziała to i tak nic wyżej nie zadziała.

    Cytat:
    No chyba, że, jak wnioskuję ze szczątkowych informacji w poście, podpinasz ENC28J60 bezpośrednio do komputera - na gotowych bibliotekach tak to nie ma szans zadziałać. Musi być router.

    Dlaczego musi być router? Nie znam tej biblioteki ale mimo wszystko nie widzę związku. Do czego on by miał by tu być konieczny? IP jak widać przypisane jest statycznie.
  • Moderator na urlopie...
    nibbit napisał:
    Dlaczego musi być router?

    Dlatego, że niestety te biblioteki nie za bardzo radzą sobie z sieciami at-hoc. Też sporo z tym walczyłem (nie mówię, że przerobiłem wszystko), ale niestety układ głupiał w tej konfiguracji.