Netwerken met een Arduino

 Gepubliceerd door om 20:28  Arduino, Internet
Sep 012013
 

Arduino Netwerk Het was een gevalletje “jeetje, dit is echt back to basics”. Vorig jaar had ik de Arduino al eens via de Raspberry Pi aan het netwerk gehangen. Deel van de reden daarvoor was de belachelijke prijs die je voor Wifi-shields voor de Arduino betaald en zelfs de bekabelde netwerkshield is vaak belachelijk duur (Conrad vraagt er op het moment €37,50 voor). In het kader van “wat je ver haalt is soms goedkoper” bleek bij AliExpress een shield te koop voor €6,32 inclusief gratis verzenden naar Nederland. Voor dat bedrag (en daardoor geen risico van inklaringskosten of extra BTW) wilde ik er wel eens mee aan de slag.

Je prikt de shield bovenop de Arduino, die daardoor een stuk hoger wordt (en niet meer in mijn case past). Maar bij het gebruik nemen van de shield bleek al meteen een heel belangrijk verschil met de Raspberry Pi.

Bij de Raspberry Pi installeer je onder Linux (Debian of welke distributie je dan ook gebruikt) eenmalig de juiste drivers voor je netwerk (voor bekabeld netwerk zijn ze gewoon al aanwezig, voor Wifi moet je ze soms nog toevoegen) en dan ben je klaar.
Bij de Arduino is er weliswaar een library beschikbaar voor bekabeld internet, maar je zult bij elke schets (het ‘programma’) waarvan je wil dat er toegang tot het netwerk is, het netwerk opnieuw moeten instellen.
En dat instellen is dan heel basaal:

byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
// fill in an available IP address on your network here,
// for manual configuration:
IPAddress ip(192,0,1,5);
// initialize the library instance:
EthernetClient client;

Je stelt dus het MAC-adres is, kent een IP-adres toe en start dan de internetverbinding.

En omdat de Arduino niet aan multitasking doet, kun je niet ‘even’ een webserver installeren. Nee, ook die zul je moeten integreren in je schets. Je moet dus ‘luisteren’ naar data die binnen komt, kijken wanneer de HTTP-request compleet is, kijken wat er doorgegeven wordt en naar aanleiding daarvan een HTTP-reply samenstellen die je weer naar de browser (of wat/wie de request stuurde) retour stuurt.
PHP installeren? Vergeet het maar.

Arduino Netwerk Arduino Netwerk
Stap 1 was het aansluiten van een lichtsensor en het produceren van een webpagina die de waarde van die sensor weergeeft. Dat lukte op zich nog prima. Maar toen ik iets ‘ingewikkelds’ wilde doen, zoals het combineren van het weergeven van een HTML-pagina zodra iemand de server aanroept, en tegelijkertijd elke 10 seconden die data wilde doorsturen naar een andere server, werd het een uitdaging (lees: ik heb het nog niet voor elkaar).

Ik ben nog niet helemaal klaar met de netwerkshield, maar het is wel duidelijk dat ook op dit gebied de Arduino het als ‘leermiddel’ het toch eigenlijk wel aflegt tegen de Raspberry Pi.

Deel dit bericht:

  2 reacties aan “Netwerken met een Arduino”

Sorry, het reactieformulier is momenteel gesloten.