Ethernet W5100 probleem

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 59
Geregistreerd: 19 Mrt 2015, 01:17

Ethernet W5100 probleem

Berichtdoor hazanovo » 25 Jun 2017, 11:44

Beste leden,

ik heb dus een W5100 ethernet shield gekocht, aangesloten op mijn arduino mega. De W5100 is aangesloten op de modem met een internetkabel.

Met een simpele sketch kan ik een LED op pin 13 aan en uit zetten via mijn mobiele telefoon.

Dit gaat allemaal perfect wanneer mijn telefoon verbinding heeft met mijn huis WIFI. Wanneer ik mijn telefoon overschakel naar 4G, dan kan ik geen verbinding meer maken met de W5100. Geen enkele sketch werkt dan.
Mijn vraag is: waar gaat het fout en hoe dit op te lossen?


Mijn code:


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

boolean incoming = 0;

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:


byte mac[] = { 0x22, 0x23, 0xBB, 0xCC, 0xDA, 0x02 };

IPAddress ip(192, 168, 0, 33); //<<< ENTER YOUR IP ADDRESS HERE!!!

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
pinMode(13, OUTPUT);

// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
}

void loop()
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply

//reads URL string from $ to first blank space
if(incoming && c == ' '){
incoming = 0;
}
if(c == '$'){
incoming = 1;
}

//Checks for the URL string $1 or $2
if(incoming == 1){
Serial.println(c);

if(c == '1'){
Serial.println("ON");
digitalWrite(13, HIGH);
}
if(c == '2'){
Serial.println("OFF");
digitalWrite(13, LOW);
}

}

if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
}
}

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ethernet W5100 probleem

Berichtdoor nicoverduin » 25 Jun 2017, 12:27

als je met 4G werkt, wil je van buiten jouw huis (4G netwerk) toegang krijgen met het lokale (thuis netwerk). De router houdt dat gelukkig tegen want anders zou de hele wereld toegang kunnen krijgen op jouw lokale netwerk.
Je kan eventueel toegang verschaffen via de router door instellingen te veranderen en port forwarding in die router toe te passen. Er is wel een addertje. Het ip adres die je vanuit de app moet benaderen is die van jouw provider naar jouw huis. Dat staat ook in de router.
Dus je gaat dan als volgt:
Telefoon->App-> IP huis->router via port forwarding -> Arduino met lokaal IP adres.

Echter de meeste huis IP nummers zijn dynamisch toegewezen waardoor deze nog wel eens kunnen veranderen door de provider.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 59
Geregistreerd: 19 Mrt 2015, 01:17

Re: Ethernet W5100 probleem

Berichtdoor hazanovo » 25 Jun 2017, 12:55

"Telefoon->App-> IP huis->router via port forwarding -> Arduino met lokaal IP adres"

Hier loop ik dus vast. Hier heb ik helaas geen kaas van gegeten en ik zou niet weten waar en hoe ik nu moet beginnen.


Wat bedoel je met een app ? Ik open inernet explorer en type de ip nummer in van de W5100...

EDIT

ik heb bij mijn modem port forward aangemaakt. Bij "doel ip adres" heb ik de ip adres van de w5100 neergezet. Is dat de bedoeling? Hoe moet ik dat oproepen? En hoe nu verder...
Laatst gewijzigd door hazanovo op 25 Jun 2017, 13:06, in totaal 1 keer gewijzigd.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ethernet W5100 probleem

Berichtdoor nicoverduin » 25 Jun 2017, 13:04

Met je app moet je nu naar het huis IP gaan.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 59
Geregistreerd: 19 Mrt 2015, 01:17

Re: Ethernet W5100 probleem

Berichtdoor hazanovo » 25 Jun 2017, 13:40

Hoe moet ik de router oproepen ?

naar de w5100 doe ik het volgende:

open explorer> 192.168.0.33:poortnummer/$1 ($1 == led aan)

poortnummer is dezelfde die ik bij ziggo heb ingesteld. Maar nog steeds reageer die niet als ik hem met 4G stuur.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ethernet W5100 probleem

Berichtdoor nicoverduin » 25 Jun 2017, 15:08

In je router staat wat je ip nummer is van je provider. Daar moet je app over 4 g mee praten
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 59
Geregistreerd: 19 Mrt 2015, 01:17

Re: Ethernet W5100 probleem

Berichtdoor hazanovo » 25 Jun 2017, 16:13

ik kom er maar niet uit. Je praat over app maar ik heb helemaal geen app, heb er naar gezocht zonder resultaat.

Verder heb ik een " Kabelmodem IP-adres 10.105.***.*** " gevonden.

Toen dit geprobeerd:

Kabelmodem IP-adres/192.168.0.1/192.168.0.33:poort/$1

Kabelmodem IP-adres/192.168.0.1:poort/192.168.0.33/$1

Kabelmodem IP-adres/192.168.0.33:poort/$1



Dit alles zonder resultaat. Nog ideeën ?

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ethernet W5100 probleem

Berichtdoor nicoverduin » 25 Jun 2017, 16:18

Vlgs mij hoef je gewoon je kabeladres modem te kiezen en die forward hem naar de ethernet. Niks lokaal lan nummer want die staat nu al wijd open naar buiten toe. En ik dacht dat je een app gebruikte naar die arduino. Dan alleen de browser dus
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 59
Geregistreerd: 19 Mrt 2015, 01:17

Re: Ethernet W5100 probleem

Berichtdoor hazanovo » 25 Jun 2017, 17:45

Wederom als de telefoon met wifi is verbonder dan toets ik in explorer: 192.168.0.33:poort/$1 en dit werkt uitstekend

maar zodra ik overschakel op 4g gebeurt er niks


Ik heb al geprobeerd:



poort mag willekeurig zijn 7000+ ?

Kabelmodem IP-adres/192.168.0.1/192.168.0.33:poort/$1

Kabelmodem IP-adres/192.168.0.1:poort/192.168.0.33/$1

Kabelmodem IP-adres/192.168.0.33:poort/$1

Kabelmodem IP-adres/:poort/$1

192.168.0.1/192.168.0.33:poort/$1

Modem opnieuw opgestart



Code:


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

boolean incoming = 0;

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
IPAddress ip(192, 168, 0, 33); //<<< ENTER YOUR IP ADDRESS HERE!!!

byte gateway[] = { 192, 168, 0, 1};
byte subnetmask[] = { 255, 255, 255, 0};

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(7001);

void setup()
{
pinMode(13, OUTPUT);

// start the Ethernet connection and the server:
Ethernet.begin(mac, ip,gateway,subnetmask);
server.begin();
Serial.begin(9600);
}

void loop()
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply

//reads URL string from $ to first blank space
if(incoming && c == ' '){
incoming = 0;
}
if(c == '$'){
incoming = 1;
}

//Checks for the URL string $1 or $2
if(incoming == 1){
Serial.println(c);

if(c == '1'){
Serial.println("ON");
digitalWrite(13, HIGH);
}
if(c == '2'){
Serial.println("OFF");
digitalWrite(13, LOW);
}

}

if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
}
}





Het werkt gewoonweg niet, ergens gaat het mis. En als ik nou wist waar het fout gaat...

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Ethernet W5100 probleem

Berichtdoor nicoverduin » 25 Jun 2017, 18:11

Je kan niet zomaar een andere poort kiezen... Als jij op bijv. 7000 port forwarding doet en de Arduino op 80 luistert, dan krijg je weinig response.
Maar misschien een reden om je eerst eens te verdiepen hoe netwerken en routers werken.... voordat je aan allerlei ambitieuze projectjes begint.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Volgende

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten