hoe beginnen met ethernet shield

Arduino shields
Berichten: 139
Geregistreerd: 28 Jul 2013, 13:30

hoe beginnen met ethernet shield

Berichtdoor ercmrj » 26 Aug 2013, 14:16

Ik kan op internet niets vinden over het allereerste begin met een ethernet-shield.

Onlangs heb ik een arduino aangeschaft en het programeren en een ledje bedienen is me al gelukt. Laatst een ethernet-shield gekocht maar ik zou niet weten hoe ik daarmee moet beginnen.

Er staan een paar voorbeeldjes op de arduino-site over ethernet, maar ze beschrijven niet hoe je bv de router in moet stellen of welke ip adressen je moet gebruiken of waar ik die kan vinden. Waar moet je de ethernet kabel insteken in je router of kan dat ook rechtstreeks in de pc?

Kan mij iemand vertellen of er ergens een duidelijke handleiding staat over hoe je te werk moet gaan?

Advertisement

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

Re: hoe beginnen met ethernet shield

Berichtdoor nicoverduin » 26 Aug 2013, 18:37

Zodat we het allemaal kunnen begrijpen :)
WELKE ethernet shield?
Als je een router hebt met DHCP aan dan krijg je vanzelf een IP adres. Je hebt een Ethernet (dus geen WIFI) shield dus moet je de shield gewoon prikken in de router (mits die een aantal ethernet [RJ45]) aansluitingen hebt.
In de Arduino voorbeelden zie j hoe je een client of server kan installeren (software matig). Maar ligt het probleem nu in het ontbreken van LAN/WAN kennis of de Shield zelf.?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 139
Geregistreerd: 28 Jul 2013, 13:30

Re: hoe beginnen met ethernet shield

Berichtdoor ercmrj » 26 Aug 2013, 19:04

Dit shield heb ik gekocht:
http://floris.cc/shop/en/shields/167-ar ... ield-.html

router: linksys E3200

Ik heb weinig ervaring met LAN/WAN of van met shield, als je vraagt of mijn router een DHCP heeft moet ik je het antwoord al schuldig blijven, de term heb ik wel eens gehoord maar wat het precies is?

Ik heb me wel eens verdiept in de instellingen van de router maar dat is ook mijn enige ervaring met LAN/WAN

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

Re: hoe beginnen met ethernet shield

Berichtdoor nicoverduin » 26 Aug 2013, 22:16

Tja het wordt wel lastig om uit te leggen ff wat een ethernet shield doet, hoe je eerst verbinding maakt met het netwerk, daarna met een server en ook nog eens een PHP script op de server zet.
Daarnaast zou ik ff een freeware telnet zoeken zodat je ook via het internet kan praten met de Arduino+shield.

maar als je nu dit voorbeeld neemt:
Code: Alles selecteren
/*
 Web client
 
 This sketch connects to a website (http://www.google.com)
 using an Arduino Wiznet Ethernet shield.
 
 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 
 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe, based on work by Adrian McEwen
 
 */

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

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
//
// Als het goed is zit er een sticker op de shield met een reeks cijfers in de vorm zoals hier onder
//
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.google.com";    // name address for Google (using DNS)

// Set the static IP address to use if the DHCP fails to assign
//
// waarschijnlijk kun je onderstaande regel weglaten en de DHCP server een IP nummer automatisch toewijzen
//
IPAddress ip(192, 168, 0, 177);

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
//
// hier wordt de zogenaamde Ethernet client gecreerd. Die heb je nodig om met een server te kunnen praten. Beetje als een browser
//
EthernetClient client;

void setup() {
   // Open serial communications and wait for port to open:
   Serial.begin(9600);
   while (!Serial) {
      ; // wait for serial port to connect. Needed for Leonardo only
   }
   
   // start the Ethernet connection:
   //
   // hier gaat hij eerst een verbinding proberen te creeren
   // met automatische IP nummering. Als dat niet lukt probeert hij het met een vast IP nummer
   //
   // als je nu je IP nummer reeks van jouw netwerk wil vinden doe je dat als volgt:
   // a) open een cmd box onder windows
   // b) type in ipconfig /all  <RETURN>
   // je krijgt dan te zien wat het gateway nummer is (jouw router) en het IP nummer van je PC. Als je een nummer neemt waarvan
   // het laatste getal (van de 4) 10 hoger zit als van jouw PC dan gaat het wel goed. Tnezij er een stuk of 10PC's in jouw netwerk hangen
   // De reeksen in gebruik thuis zijn meestal 192.168.0.xxx of 192.168.1.xxx of 10.0.0.xxx
   //
   
   if (Ethernet.begin(mac) == 0) {
      Serial.println("Failed to configure Ethernet using DHCP");
      // no point in carrying on, so do nothing forevermore:
      // try to congifure using IP address instead of DHCP:
      Ethernet.begin(mac, ip);
   }
   // give the Ethernet shield a second to initialize:
   delay(1000);
   Serial.println("connecting...");

   // if you get a connection, report back via serial:
   if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:
      //
      // hier onder gebeurt er nu als jij een www intikt op je browser
      //
      client.println("GET /search?q=arduino HTTP/1.1");
      client.println("Host: www.google.com");
      client.println("Connection: close");
      client.println();
   } else {
      // kf you didn't get a connection to the server:
      Serial.println("connection failed");
   }
}

void loop() {
   // if there are incoming bytes available
   // from the server, read them and print them:
   //
   // wat hij hier doet is kijken of er een client is (browser als het ware) en dan gaat hij alle tekens
   // die van de server (google in dit geval) op de serial uitprinten
   //
   if (client.available()) {
      char c = client.read();
      Serial.print(c);
   }

   // if the server's disconnected, stop the client:
   if (!client.connected()) {
      Serial.println();
      Serial.println("disconnecting.");
      client.stop();

      // do nothing forevermore:
      while (true)
         ;
   }
}





Ikj heb die web client wat toegelicht om je een idee te geven wat er gebeurt. Snap je hem?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 139
Geregistreerd: 28 Jul 2013, 13:30

Re: hoe beginnen met ethernet shield

Berichtdoor ercmrj » 27 Aug 2013, 18:36

Volgens mij werkt het

Ik weet niet hoe ik de tekst op de monitor hier kan plakken maar krijg ongeveer deze text op mijn terminal:

Code: Alles selecteren
             connecting...
connected
HTTP/1.1 20 OK
Date: Tue enz.
Expires: -1
Cache-Control: private, max-age=0
Content-Type: bla bla
Set-Cookie bla bla
enz.....


Connection : close

bla bla

disconnecting.


De bedoeling is natuurlijk om met het board te communiceren op een simpele manier dus gewoon iets aan of uit zetten en controleren of het ook aan of uit is. Of is dat nog moeilijker?

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

Re: hoe beginnen met ethernet shield

Berichtdoor nicoverduin » 27 Aug 2013, 22:29

Communiceren heeft altijd 2 partijen :)
Wie is de andere partij?
Ik denk dat je wilt dat de Arduino een Server wordt in jouw netwerk. Dus jij typt iets op een browserscherm (dat moet de server dus aanmaken). drukt op versturen en de server (= Arduino) wikkelt het af en geeft een pagina terug.
Dat betekent dat je wel eea nodig hebt aan kennis:
- browser pagina's hoe zijn die opgebouwd (druk maar eens op een pagina met de rechtermuisknop en selecteer dan broncode. dat laat de inhoud van een web pagina zien)
- Server op Arduino inrichten (
- Wat komt er op de browser pagina (= HTML en evt. JavaScript oid) te staan?
Daarnaast heb je de beperkingen van de Arduino ed. kwa ruimte ed.
Wel kun je via een telnet praten met de Arduino. Telnet is een soort Serial over het Internet. Maar dan heb je in feit nog niks.

Ik zou beginnen met de Server voorbeeld en dan kijken of jer een beetje gevoel bij krijgt anders gaat het wel zeuren worden.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 139
Geregistreerd: 28 Jul 2013, 13:30

Re: hoe beginnen met ethernet shield

Berichtdoor ercmrj » 28 Aug 2013, 14:10

Bedankt alvast,

We zullen eens verder gaan studeren, in ieder geval weet ik nu waar ik moet beginnen.

Klopt het dat ik nu wel al eenrichtingsverkeer kan doen? Als ik bv een eigen webpagina aanmaak en ik zet daar tekst op dan zou ik die uit moeten kunnen lezen met de arduino en aan de hand van de tekst kan ik de arduino toch commando's uit laten voeren. bv. ff heel simpel een lege pagina met de tekst 'aan' dan zou ik toch een lampje aan kunnen sturen door de arduino?

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

Re: hoe beginnen met ethernet shield

Berichtdoor nicoverduin » 28 Aug 2013, 17:25

Dan moet je de Arduino als Server instellen en ik zou dan kijken of je niet gewoon ff een $POST kan maken in je webpagina.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: hoe beginnen met ethernet shield

Berichtdoor pjh » 28 Aug 2013, 20:49

Wat misschien wel aardig is en niet veel problemen zou moeten opleveren, is het online zetten van je Arduino-data met Xively.

Dit werkte (net nog) bij mij:
1. meld je aan bij https://xively.com/signup
2. eenmaal aangemeld ga je naar tabblad [webtools] en [develop]
3. click op [add device]
4. verzin een Device Name en onthoud deze
5. vul eventueel de device description in
6. selecteer Public Device of Private Device

en dan heb je zoiets als dit:
Afbeelding

7. prik je Ethernet shield in je arduino en je ethernet kabel in het shield.
8. Ga in de Arduino-IDE naar [Bestand]-[Voorbeelden]-[Ethernet]-[PachubeClient]

Wat je moet weten is dat Xively voorheen Cosm was en Cosm weer Pachube.

9. Vul de APIKEY, Feednummer en device Name in aan het begin van de sketch. Deze staan allemaal onder het kopje API Keys, zoals in mijn screenkopie hierboven ook is te vinden en hierbeneden is ingevuld.

Code: Alles selecteren
#include <SPI.h>
#include <Ethernet.h>

#define APIKEY         "KHGMxKBBzTydUyNHpahaUYu3S0ZcLCcuvYTb3Zq1SvNl7f1U" // replace your pachube api key here
#define FEEDID         548281878 // replace your feed ID
#define USERAGENT      "magweg" // user agent is the project name


10. Upload de sketch en zie via de seriele monitor dat er steeds even contact wordt gemaakt met internet en weer verbroken.
11: zie de waarde van je analoge pin 0 op internet!
Afbeelding
12. Stel eventueel een tweet in als (bv de Temperatuur) te hoog wordt.

Veder kun je deze twee tutorials ook eens bekijken
Server http://bildr.org/2011/06/arduino-ethernet-pin-control/
Client http://bildr.org/2011/06/arduino-ethernet-client/

Voor wat het waard is...
Doe! Paul ;)

Berichten: 139
Geregistreerd: 28 Jul 2013, 13:30

Re: hoe beginnen met ethernet shield

Berichtdoor ercmrj » 29 Aug 2013, 20:15

Super bedankt Paul voor de duidelijke uitleg. Ik kon alles zonder problemen volgen en uitvoeren en het werkt prima.
Ik heb wel het nummer wat op het ethernet-shield stond voor de zekerheid nog ingevuld in het programma wat ik in de arduino geladen heb.

Ben benieuwd of de rest me ook lukt.

Volgende

Terug naar Shields

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten