Ip Adres Web Server

Geef hier suggesties voor extra onderwerpen of andere dingen die je graag gewijzigd zou willen zien
Berichten: 12
Geregistreerd: 24 Mrt 2017, 16:28

Ip Adres Web Server

Berichtdoor DreArduino » 30 Mrt 2017, 16:12

Ik probeer de sketch " Webserver " in de voorbeelden " Ethernet " van Arduino te gebruiken...
Mijn board is de Arduino Leonardo Ethernet .
Ik probeer een client te creëren waar ik data naartoe kan sturen.
Vraagje : Hoe bepaal ik het IP adres ?
Hoe kan ik de regels " ClientPrintLn " zien ?
Ik moet blijkbaar hetvolgende IP adres wijzigen.... Hoe en waar vind ik dit ? ( IPAddress ip(192, 168, 1, 177);
Sketch:
(deze sketch kan je vinden in Bestand /Voorbeelden /Ethernet)
cpp code
/*
Web Server

A simple web server that shows the value of the analog input pins.
using an Arduino Wiznet Ethernet shield.

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Analog inputs attached to pins A0 through A5 (optional)

created 18 Dec 2009
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
modified 02 Sept 2015
by Arturo Guadalupi

*/

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

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 177);

// 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() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}


// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}


void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// 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
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// output the value of each analog input pin
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(sensorReading);
client.println("<br />");
}
client.println("</html>");
break;
}
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();
Serial.println("client disconnected");
}
}

Advertisement

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

Re: Ip Adres Web Server

Berichtdoor nicoverduin » 30 Mrt 2017, 20:18

Als je een IP adres meegeeft, dan moet ie in de range van IP adressen binnen jouw eigen netwerk passen. Die informatie staat in jouw router en moet je dus inloggen in de gateway. Het ip nummer kun je vinden door CMD te starten (dos box) en dan ipconfig <RETURN> in te tikken. daar wordt naast het ip nummer van jouw pc getoond ook het ip nummer van de gateway.
Als je dat nummer in een browser intikt (incl de punten) krijg je een login scherm. Als je nooit wat hebt veranderd aan de router op de router het standaard userid en passwoord om op de router in te loggen.
De router heeft ook een DHCP server die vrije ip nummers uitgeeft. Tevens kun je ook zien welke nummers al in gebruik zijn door andere apparaten in huis (w.o. telefoons). Meestal is het DHCP start adres +20 nummers verder voldoende om een vrij nummer te nemen. De meeste DHCP servers hebben een range van 64 nummers.

Of je doet gewoon gemakkelijk en laat het ip adres weg bij server.begin. Dan krijg je van de DHCP server een nummer. Nadeel is, is dat deze niet altijd hetzelfde moet zijn.
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 12
Geregistreerd: 24 Mrt 2017, 16:28

Re: Ip Adres Web Server

Berichtdoor DreArduino » 30 Mrt 2017, 23:23

IPconfig werkt niet, geeft geen bruikbare IP adressen...
Kan er iemand een bruikbaar voorbeeld tonen van een webserver voor arduino ?

Gebruikers-avatar
Berichten: 1731
Geregistreerd: 06 Aug 2016, 01:03

Re: Ip Adres Web Server

Berichtdoor Koepel » 31 Mrt 2017, 06:00

De Arduino Leonardo ETH (met een W5500 chip) is apart board. De meeste voorbeelden zijn voor een Arduino Uno met een Ethernet shield (met W5100 chip). Wanneer je ons vooraf had gevraagd wat te kopen, dan hadden voor iemand die begint met Ethernet de meest standaard manier geadviseerd.

Misschien is het nodig om bij Arduino.org alles over de Arduino Leonardo ETH te lezen.
Misschien is het nodig om de Ethernet2 library te gaan gebruiken. Kun je via het menu de "Bibliotheekbeheerder" vinden ?
Misschien is het nodig om de chip select voor de SD kaart uit te zetten (pin 4 hoog maken).

Maar probeer eerst eens wat nicoverduin schreef.

De regel met server.begin kun je zo doen:
Code: Alles selecteren
  Ethernet.begin(mac);
Dan laat je het 'ip' gedeelte dus weg. Er wordt dan DHCP gebruikt en de router geeft een IP adres aan je Arduino.

Het is nodig om de seriële monitor te openen om de sketch te starten. Weet je hoe dat gaat ? Met het knopje rechts-boven. In de seriële monitor zie je dan ook het IP adres dat de router heeft toegewezen.

Vertel duidelijk wat je doet en wat je op de seriële monitor ziet. Is dit je eerste Arduino board ? De meeste beginnen met een paar leds of eenvoudige sensors zoals een LDR (lichtgevoelige weerstand). Als je pin 4 en pin 10 niet gebruikt, dan kun je het als een normaal Leonardo board gebruiken. Kun je de led op pin 13 laten knipperen ?

Berichten: 12
Geregistreerd: 24 Mrt 2017, 16:28

Re: Ip Adres Web Server

Berichtdoor DreArduino » 31 Mrt 2017, 10:46

Beste Koepel
Het is heus niet mijn 1e project hoor.
Seriele monitor ken ik uiteraard ook, maar dan kan ik de berichten " SerialPrintLn " wel zien, maar waar zie ik "ClientPrintLn" ?
En volgens mij moet de arduino Leonarde Eth alles kunnen wat een Arduino Uno met Ethernetshield samen doen....

Gebruikers-avatar
Berichten: 1731
Geregistreerd: 06 Aug 2016, 01:03

Re: Ip Adres Web Server

Berichtdoor Koepel » 31 Mrt 2017, 11:27

Hier gaat het om:
Code: Alles selecteren
  Ethernet.begin(mac);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());

Heb je dat ? Werkt dat ? Wat zie je op de seriële monitor ?

Berichten: 12
Geregistreerd: 24 Mrt 2017, 16:28

Re: Ip Adres Web Server

Berichtdoor DreArduino » 31 Mrt 2017, 12:23

Werkt niet...
Seriele monitor geeft niets weer

Gebruikers-avatar
Berichten: 1731
Geregistreerd: 06 Aug 2016, 01:03

Re: Ip Adres Web Server

Berichtdoor Koepel » 31 Mrt 2017, 14:22

Dan een stapje terug en een bericht printen voordat ethernet en de server wordt opgestart:
Code: Alles selecteren
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.println("Hello World");    // <--- does this show on the serial monitor ?

Berichten: 12
Geregistreerd: 24 Mrt 2017, 16:28

Re: Ip Adres Web Server

Berichtdoor DreArduino » 31 Mrt 2017, 14:54

De serial monitor geeft wel " SETUP" maar verder niets...


void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);

while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.print("SETUP ");
// start the Ethernet connection and the server:
Ethernet.begin(mac);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());

}

Gebruikers-avatar
Berichten: 1731
Geregistreerd: 06 Aug 2016, 01:03

Re: Ip Adres Web Server

Berichtdoor Koepel » 31 Mrt 2017, 16:07

Probeer eens in de BibliotheekBeheerder de Ethernet2 by various te vinden. Installeer die. Vervang #include <Ethernet.h> door #include <Ethernet2.h>.

Voor zover ik weet werkt de W5500 alleen met Ethernet2. Op arduino.org staat dat het ook met de gewone Ethernet library werkt, maar ik weet niet of dat klopt.

De Ethernet.begin(mac) geeft bij DHCP een 0 of een 1 terug, die return waarde zou je kunnen printen naar de seriële monitor.

Volgende

Terug naar Forum suggesties

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast