Arduino schéma - arduino.sk

ENC28J60 Ethernet Module

Programovanie arduina
Príspevky: 14
Registrovaný: Štv 10. Jan 2013 0:07:01

ENC28J60 Ethernet Module

Poslaťod lieky » Str 06. Feb 2013 20:30:33

dnes dorazil ENC28J60 Ethernet z Geeetech-u

pri kompilácií examplu mi vyhadzuje chybu.
našiel som zatiaľ iba niečo o tom, že mám použiť 023 IDE, resp. iný IDE alebo niečo s tým
neviem, čo to je..

z originál Arduino priečinka Libraries som vymazal Ethernet, ako píšu na wiki geetech

chyba pri kompilácií:
Kód: Vybrať všetko
In file included from C:\Users\Dill\Documents\Arduino\libraries\ENC28J60/Ethernet.h:5,
                 from WebClient.pde:1:
C:\Users\Dill\Documents\Arduino\libraries\ENC28J60/Client.h:22: error: conflicting return type specified for 'virtual void Client::write(uint8_t)'
D:\Programy\arduino-1.0.3\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'
C:\Users\Dill\Documents\Arduino\libraries\ENC28J60/Client.h:24: error: conflicting return type specified for 'virtual void Client::write(const uint8_t*, size_t)'
D:\Programy\arduino-1.0.3\hardware\arduino\cores\arduino/Print.h:53: error:   overriding 'virtual size_t Print::write(const uint8_t*, size_t)'
In file included from C:\Users\Dill\Documents\Arduino\libraries\ENC28J60/Ethernet.h:6,
                 from WebClient.pde:1:
C:\Users\Dill\Documents\Arduino\libraries\ENC28J60/Server.h:16: error: conflicting return type specified for 'virtual void Server::write(uint8_t)'
D:\Programy\arduino-1.0.3\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'
C:\Users\Dill\Documents\Arduino\libraries\ENC28J60/Server.h:18: error: conflicting return type specified for 'virtual void Server::write(const uint8_t*, size_t)'
D:\Programy\arduino-1.0.3\hardware\arduino\cores\arduino/Print.h:53: error:   overriding 'virtual size_t Print::write(const uint8_t*, size_t)'



kód examplu (WebClient):
Kód: Vybrať všetko
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 42, 42 };
byte server[] = { 192, 168, 42, 1 };

Client client(server, 80);

void setup() {
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
 
  delay(1000);
  Serial.println("connecting...");
 
  if (client.connect()) {
    Serial.println("connected");
    client.println("GET /search?q=arduino HTTP/1.0");
    client.println();
  }
  else {
    Serial.println("connection failed");
  }
}

void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }
 
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
      ;
  }
}

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Štv 07. Feb 2013 9:06:35

Skús libku čo som priložil, obsahuje 2 adresáre, aj príklady :) Funguje mi aj v IDE 1.0.1.

Kód: Vybrať všetko
#include <EtherShield.h>
#include <ETHER_28J60.h>

LEDpin = 3;
static uint8_t mac[6] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};   //nastavime nejaku MAC
static uint8_t ip[4] = {192, 168, 0, 180};    //IP adresu
static uint16_t port = 80;     //port webservra
ETHER_28J60 eth;

void setup(){
  pinMode(LEDpin, OUTPUT);
  eth.setup(mac, ip, port);
}

void loop(){
  char* params;     // sem sa dostane http GET request, napr. 192.168.0.180[b]?led=100[/b]
  if (params = eth.serviceRequest()){
    eth.print("Arduino online");
    eth.respond();

    char* s_val = strchr(params ,'=') + 1;    //s_val bude obsahovat znaky "100" z prikladu, t.j. hodnotu premennej
    char* key = strchr(params ,'?') + 1;     //key je nazov premennej, z prikladu, t.j. "led"
    int val = atoi(s_val);     //val bude bude obsahovat integer cislo reprezentujuce textovu premennu s_val

    if (strcmp(key, "led") == 61) {      //ak sa premenna key rovna "led"...
      analogWrite(LEDpin, val);     //nastav hodnotu premennej val na PWM vystup
    }
  }
}
Prílohy
enc.zip
(23.28 KiB) 601 krát
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 14
Registrovaný: Štv 10. Jan 2013 0:07:01

Re: ENC28J60 Ethernet Module

Poslaťod lieky » Štv 07. Feb 2013 11:38:49

ok :)

program som nahral
ešte musím zrejme nastaviť router:

podarilo sa mi vytvoriť na routri Virtual HTTP Server pre
Kód: Vybrať všetko
IP 192.168.1.2 - TCP, Start port 80, End port 80

(192.168.0.180 mi router z nejakého dôvodu nechcel zobrať, ani nepovedal prečo)

teraz čo s tou MAC adresou? našiel som v statuse routru 6miestne hex číslo takto:
Kód: Vybrať všetko
hex:hex:hex:hex:hex:hex


a mám ho dať do static uint8_t mac[6] v takomto formáte? - to som si iba domyslel, ale nefungovalo mi to :)
Kód: Vybrať všetko
0x[hex],0x[hex],0x[hex],0x[hex],0x[hex],0x[hex]

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Štv 07. Feb 2013 14:08:01

To teda netuším čo nastavuješ na routri. Maximálne tak rezervovanie statickej IP. Ja mám napr. aj forwardovanie portu na verejnú IP, aby som to mal dostupné z internetu, ale to na skúšanie ozaj netreba.

Ak máš aktivované DHCP (automatické priradenie IP adresy), tak si treba pozrieť rozsah z ktorého sa vyberajú adresy, štandardne to býva 192.168.0.1 - 100, takže ETH modul dáš niekde nad 100, v príklade je to 180. Žiadna jadrová fyzika :) Aký máš typ routra, skúsim to pozrieť niekde na nete.
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 14
Registrovaný: Štv 10. Jan 2013 0:07:01

Re: ENC28J60 Ethernet Module

Poslaťod lieky » Štv 07. Feb 2013 21:25:52

mám TP-Link TD-W8901GB

nedarí sa mi pripojiť..
čísla tam mám tieto:

static uint8_t mac[6] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
static uint8_t ip[4] = {192, 168, 1, 180};
static uint16_t port = 80;

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Pia 08. Feb 2013 9:27:57

Skontroluj priložené nastavenia na routeri. No a nejde to len cez browser, alebo ani ping neodpovedá? Základ je aby modul odpovedal na ping, potom je všetko ostatné.
Prílohy
router-setup.PNG
router-setup.PNG (79.46 KiB) Zobrazené 13255 krát
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 14
Registrovaný: Štv 10. Jan 2013 0:07:01

Re: ENC28J60 Ethernet Module

Poslaťod lieky » Pia 08. Feb 2013 10:39:19

router mám nastavený tak

na 192.168.0.180 mam Time Out

na 192.168.1.180 mam odpoved z 192.168.1.6 (alebo 1.3 ak som na kábli)
destination host unreachable

zapojenie som kontroloval
nemôže tam byť niečo inak nastavené na leonardo?
hm

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Pia 08. Feb 2013 10:48:32

Postupuj podľa http://www.geeetech.com/wiki/index.php/ ... net_Module

Skontroluj či svieti LINK LED na module, tuším zelená... No a píšu tam "power supply is 3.3 V or 5V", ale každý datasheet ku ENC28J60 spomína len a len 3,3V, takže tak.

Obrázok
Naposledy upravil tomXX dňa Pia 08. Feb 2013 10:52:10, celkovo upravené 1
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 14
Registrovaný: Štv 10. Jan 2013 0:07:01

Re: ENC28J60 Ethernet Module

Poslaťod lieky » Pia 08. Feb 2013 10:52:03

tomXX píše:http://www.geeetech.com/wiki/index.php/Arduino_ENC28J60_Ethernet_Module


áno, podľa tohto som to zapájal
Naposledy upravil lieky dňa Pia 08. Feb 2013 11:11:11, celkovo upravené 1

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Pia 08. Feb 2013 10:52:52

INT a RESET som ani nezapájal...
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 14
Registrovaný: Štv 10. Jan 2013 0:07:01

Re: ENC28J60 Ethernet Module

Poslaťod lieky » Pia 08. Feb 2013 11:14:54

akú máš verziu arduino software?

Kód: Vybrať všetko
#include "etherShield.h"
#include "ETHER_28J60.h"


mi nechce zobrať, vždy to musím zmeniť na < > miesto " "


(píše mi HelloWorld.cpp:3:25: error: etherShield.h: No such file or directory)

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Pia 08. Feb 2013 13:46:25

Ja mám 1.0.1
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 14
Registrovaný: Štv 10. Jan 2013 0:07:01

Re: ENC28J60 Ethernet Module

Poslaťod lieky » Ned 17. Feb 2013 11:36:28

nerozchodil som to..

asi kúpim teda ethernet shield

ak rozumiem dobre, nastrčím ho na Leonardo a vlastne mi tam ostanú všetky Dig. výstupy k dispozícii?

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Ned 17. Feb 2013 17:36:28

lieky píše:nerozchodil som to..

asi kúpim teda ethernet shield

ak rozumiem dobre, nastrčím ho na Leonardo a vlastne mi tam ostanú všetky Dig. výstupy k dispozícii?


Héééj, život je boj, nevzdávaj sa tak ľahko :)

Skús ešte túto knižnicu, mala by byť kompatibilná s tou originálnou. Ešte som ju neskúšal, lebo ďalší ETH modul je na ceste z Číny :)

https://github.com/jcw/ethercard
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: ENC28J60 Ethernet Module

Poslaťod tomXX » Štv 21. Feb 2013 21:33:21

Ešte by sa patrilo spomenúť, že tento modul (akýkoľvek s čipom ENC28J60) podporuje LEN A IBA 10 Mbit rýchlosť. Takže ak máte router/switch ktorý podporuje len 100/1000 Mbit môžete mať problém :(
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Ďalší

Späť na Software