enc28J60 e Arduino (11)

luca 09/12/2012 69

Il tutorial di oggi è un po’ particolare: spiega come rendere wireless il nostro ethernet shield.

Esistono diversi shield Wi-fi per Arduino: partendo da quello ufficiale, fino a shields basati su integrati Microchip, “cugini” dell’enc28j60 soggetto di questi tutorial.

A volte però può essere più comodo (e forse più economico!) collegare Arduino alla rete Wi-fi sfruttando lo shield ethernet che già abbiamo, abbinandolo ad un router wireless.

In particolare ho scoperto il nano router TL-WR702N di TP-LINK che, ad un costo di circa 20€ su eBay, ha tra le proprie funzionalità anche la modalità client, nella quale il router fa da “ponte” tra un dispositivo connesso alla sua porta ethernet e la rete Wi-fi.

Il router TL-WR702N inoltre ha dimensioni davvero ridotte e può essere alimentato tramite un connettore micro USB:

 

Configurarlo in modalità client è molto semplice:

Per prima cosa diamo al nostro PC un indirizzo fisso, 192.168.0.10, e colleghiamoci al router con il cavo ethernet:

Apriamo il browser e digitiamo http://192.168.0.254, accedendo con utente e password admin.

Selezioniamo Client mode:

Clicchiamo su Survey per cercare la nostra rete Wi-fi, quindi inseriamo i parametri di sicurezza:

Attendiamo il restart del router:

Sarà ora possibile collegare Arduino e raggiungerlo tramite la rete Wi-fi!

69 Comments »

  1. Amario 09/12/2012 at 20:13 - Reply

    Ciao Luca, io mi sono procurato questo:
    Vobets VAP11G
    http://www.vonets.com/products/vonets-vap11g-wifi-bridge.htm

    fa da bridge, lo uso anche per collegare l’ethernet del Blueray
    pagato 27 euro

  2. Squonk42 11/12/2012 at 22:44 - Reply

    Yes, and if you buy a TL-WR703N for about the same price (or its global export RoHS/CE/FCC compliant sister product, the slightly larger TL-MR3020), you get an additional USB host port where you can connect the Arduino directly without needing the Ethernet shield. For this purpose though, you have to replace the original firmware by OpenWrt, but it is pretty easy.

    Actually, you can even use the free Ethernet port to get wired Ethernet access… I recorded a few videos describing the setup:

    http://www.youtube.com/playlist?list=PL4f_8Do1Z2EpyXm_wdCD5YM3V0KUQj4uj&feature=view_all

    • luca 12/12/2012 at 08:52 - Reply

      Thanks Michel!

      • Squonk42 12/12/2012 at 10:10 - Reply

        You are welcome!

        If you have a chance to open your TL-WR702N, I would be very interested if you could take some hi-res pictures of the PCB top and bottom side.

        You just have to open the top blue lid gently with a knife, there is no screw, and the PCB is just positioned within the case without screws.

        You can close it back again without problem, the operation is not destructive :)

    • Reint 11/02/2013 at 16:23 - Reply

      Hi Squonk421,

      Can you tell some more about. What router i need to get, to do the same trick. because the TL-WR703N is hard to get in The Netherlands. The TL-WR702N is much easier but will it work? And the TL-MR3020 is easy to get but will it work with the thing you explain at Youtube. I have seen on the openWRT site that it isen’t supporter jet.

  3. Amario 12/12/2012 at 09:59 - Reply

    Interessante

  4. Mauro 12/12/2012 at 15:51 - Reply

    Interessantissimo tutorial, ho acquistato anche io un nano router wireless della tp-link.

    Proverò il tuo tutorial per rendere wireless alcuni dei miei progetti con arduino.

    Grazie
    Mauro

  5. Daj 21/12/2012 at 07:58 - Reply

    Hello Sir Luca.nice tutorial!! Thats help me a lot!!
    Sir, what is the equivalent code of CLIENT.PRINT of official arduino to the enc28j60 ethernet shield to ethercard library. ? Hoping for your valuable reply sir. :)

    • luca 21/12/2012 at 16:28 - Reply

      Hello! It’s a bit more complex with this library… you have to “prepare” the response with Stash::prepare() and send it with ether.tcpSend().

  6. Daj 22/12/2012 at 15:40 - Reply

    Hello Sir. Thanks for the great idea. I’m planing to send this string data “Hello World”, its code in official arduino ethernet is CLIENT.PRINT(“HELLO WORLD”); . .is this right if i write the version of this code in ethercard like this:

    Stash::prepare(“HELLO WORLD”);
    ether.tcpSend();

    • luca 31/12/2012 at 12:33 - Reply

      yes it should work…
      is your client a web browser?

  7. Daj 01/01/2013 at 16:01 - Reply

    THANK YOU for your response Sir Luca. I really appreciate it.
    My client is the arduino connect to visual basic using winsock. I’d found out that client.write is suitable for my application than client.print. Now, Sir Luca i would like to ask you again if what is client.write in ethercard library?. . I like your your tutorial very well. It helps beginners like us a lot. .!! :) thankyou very much. Happy New Year!!

  8. Renato Aloi 10/01/2013 at 05:15 - Reply

    Great tutorial Luca! Thank you very much for this article! I had it done and woks like a charm. But there is a situation I am facing here… Working as a client, the router has no access to internet. I mean, any form of external links doesn’t work. I have tried loading a external CSS file and the HTML does not load at all. The browser keeps loading the page forever and never get it done… But the same page loads ok on wired connection. Do you know somehow to solve that? Any thoughts about that? Once again, thanks for the tutorial!

    • luca 10/01/2013 at 12:11 - Reply

      Hi Renato,

      if you configure the router as a “wireless client”, it acts as a PC or a smartphone connected to your network… you can forget it and consider it a “part” of your ethernet shield. How is your network configured? Have you got an ADSL router that connects you to Internet and also creates the local wireless network your TP-LINK is connected to?

  9. bert 11/01/2013 at 09:53 - Reply

    Hi Luca,

    Thanks for your post, I tried it but for some reason I just can’t get the TP-link device to work with any of the wifi points I try and get it to connect to. It seems to connect to them but it doesn’t give my device and IP address, as DCHP is turned off I presume it acts as a bridge and should pass through any DCHP settings to the end device?

    I’ve tried testing it using my laptop to see if it will give me a internet connection but for some reason it just won’t work. Any thoughts? Did you have to do any configuration on the wifi network you were connecting to? I’ve tried 3 and none of them seem to want to play ball.

    Any help much appreciated, as it would be a great solution if I could get it working.

    Best wishes

    Bert

    • luca 11/01/2013 at 20:23 - Reply

      Hi Bert!

      if you configure your TP-LINK as a client, it acts like a bridge so you need a different DHCP server on your network. I can assure you that the router doesn’t block DHCP requests or response, so for example my Arduino is able to get its dynamic IP from my ADSL router.

      • Liber 06/03/2013 at 00:37 - Reply

        Hello.
        First of all, nice post!

        But as bert, I must say that I’m unable to make it work in client mode; it doesn’t connect to the wireless network. Does it work in a network with WPA2 security? Or it needs to use WEP security, or nothing at all?

        Thanks in advance for your reply.

        Liber.

        • luca 06/03/2013 at 10:04 - Reply

          Hi Liber,

          I can confirm you that it works with WPA2 security: I’m using it with that security protocol.

  10. Kirill 13/01/2013 at 11:21 - Reply

    Hi!

    I am using the TL-WR702N too. And I have wrote new article with link to you about the TL-WR702N:

    http://ksdu.in/o/2s

  11. Mikael Nyberg 18/01/2013 at 07:54 - Reply

    I ordered one on ebay:http://www.ebay.com/itm/150893487418?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
    Device has Chinese User Interface and there is no information of this. What shall I do?

    • luca 18/01/2013 at 23:18 - Reply

      Hi Mikael,

      it seems the exact model I own… I can change the interface’s language: did you try following the english manual linked in the auction?

      • Mikael Nyberg 19/01/2013 at 11:37 - Reply

        I used Google tranlation to understand what do. From chinese to swedish works very well. Thanks for information how to use an AP in client mode. Mikael

  12. Istrice 13/02/2013 at 18:34 - Reply

    Salve stavo cercando le stesse librerie per la ethercard enc28j da utilizzare però in bascom in quanto l’implementazione del codice asm con questo linguaggio comportava una maggiore facilità di scrittura e una sensibile riduzione di codice macchina da caricare sull’atmega328… qualche giorno fa girando fra i siti e i link vari avevo trovato chi si stava occupando del porting… purtroppo non ho salvato quella pagina e nemmeno il link… qualcuno ha informazioni in merito? grazie

  13. DMV 14/02/2013 at 03:15 - Reply

    Hi,
    This is close to what I am looking for, but was wondering if there is a way to just have the WR702N connected to the ethernet shield of the Arduino and connect to it with an iphone without the use of any other internet or computer. I am trying to make a project where the arduino can be accessed and send messages to an iphone or other device wirelessly.So the WR702N would be a stand alone AP. I cannot seem to figure this out.
    Thanks,
    D

    • luca 14/02/2013 at 08:56 - Reply

      Hi! I think you may connect your iPhone with the router using an “ad hoc” wireless network, i.e. a wireless network between two devices without the need of an AP.

  14. Dauhee 23/02/2013 at 22:08 - Reply

    a raspberry pi model A + dongle is cheaper than wifi router + ethernet card + arduino . . . . . also have more processing power etc.

  15. Darius 06/03/2013 at 22:20 - Reply

    Hi, I am using a similar system to this. I have an Arduino board, ethernet shield and portable router. I give my laptop a fixed IP to access the router. I was wondering if you could suggest a way to connect my laptop to the internet at the same time, so I can control the Arduino remotely over the internet. Any thoughts? Thanks.

  16. Ben 27/03/2013 at 17:04 - Reply

    Hi, One issue i have is how to power it without a device to plug the USB into? The reason i got it was to make it wireless not having to connect to a PC. Any suggestions ? Check micro USB battery pack?

    • luca 28/03/2013 at 09:28 - Reply

      Hi Ben! You can use any power supply with microusb connector (5V 1A minimum) or – for example – the Lipo Rider if you need a battery source.

  17. André 13/04/2013 at 22:41 - Reply

    Dear Luca, please I bought the BL-MP01,

    http://www.lefen.com/index.php/Product/views/id/300

    this dosen’t works with my arduino ethernet shield,only work how a cliente in my PC is it necessary to make somechanges in the Arduino program to work with BL-MP01? In my opinion it is similar to TL-WR702N.

    Ciao

    André

    • luca 14/04/2013 at 13:25 - Reply

      Ciao Andrè

      It should work, moving the switch in the “client” (= middle) position… no changes are required to the arduino sketch.

  18. André 15/04/2013 at 00:24 - Reply

    Dear Luca, so i think that i’m made some mistake, because I can’t acess my arduino shield by the IP adress that I put in my sketch, in your sketch you are using the IP 192.168.0.10 of your example above? In the router configuration are you using DHCP (Auto Config) or Static Mode (fixed IP)?
    Thanks
    André

    • luca 16/04/2013 at 20:26 - Reply

      Andrè,

      when you use the router in “client” mode, you don’t need to configure IP address… it acts like a “transparent” bridge between the Arduino (with the assigned IP) and your wireless network: you have only to configure the wireless parameters (SSID, encryption…) to ensure your router can connect to your wifi.

  19. alb3 23/05/2013 at 10:13 - Reply

    ciao Luca!
    che versione di arduino hai usato?
    Arduino Ethernet Rev3 WITH PoE??

    Posso alimentare il router tplink direttamente da arduino alimentato tramite una presa a muro?? (quindi evitando collegamenti col pc)

    grazie!!!

    • luca 23/05/2013 at 11:06 - Reply

      Ciao Albe,

      attento: se usi Arduino Ethernet non puoi usare la libreria Ethercard, devi usare quella ufficiale e quindi rivedere i vari esempi.
      Per quanto riguarda l’alimentazione, Arduino non è in grado di fornire sufficiente corrente per il TPLink (che comunque viene fornito con il suo alimentatore a muro, non devi per forza collegarlo al PC).

      • alb3 23/05/2013 at 13:29 - Reply

        grazie della risposta immediata!!!
        … quindi cosa mi conviene usare? una qualsiasi e poi aggiungere un modulo ehternet esterno??

        • luca 23/05/2013 at 19:15 - Reply

          esatto, se vuoi seguire i miei tutorial ti serve un arduino qualsiasi (consigliato l’arduino uno) e uno shield basato su chip enc28j60

  20. Mike 01/06/2013 at 21:20 - Reply

    Salve a tutti vi informo che arduino é in grado di alimentare perfettamente il nano router basta solo spillare i fili di un cavo micro USB e collegarsi a Vin e Gnd di arduino ed il gioco é fatto.

  21. Sloba 10/07/2013 at 02:34 - Reply

    How could ENC28J60 and Arduino wirelessly connect to the TL-VR702N then TL-VR702N ethernet cable to the internet modem?

    • luca 10/07/2013 at 15:37 - Reply

      Hello! The usage of TL-VR702N is different: it connects using the wire (ENC28J60 is an ethernet shield) to the shield and then it connects via wireless to a router/cable modem.

  22. Sloba 11/07/2013 at 15:25 - Reply

    Yes, but when I changed enc ENC28J60 chip AN1284 wifi chip, how many is it feasible?

    • luca 12/07/2013 at 13:45 - Reply

      Are you trying to use the Microchip WiFi chip? You need a totally different library for that…

  23. Paolo 24/09/2013 at 11:31 - Reply

    Ciao Luca, il tuo tutorial era proprio quello che cercavo per far funzionare la mia Ethernet Shield con una rete wireless. Ho comprato il TP-LINK WR-702N e ho seguito i tuoi passaggi. Purtroppo però mi sono accorto che dopo aver settato a Client il TP, non riesco più ad entrarci con l’indirizzo 192.168.0.254. Questo sia collegando il cavo direttamente al PC, sia passando attraverso il mio router WiFi. La necessità di ricollegarmi a TP viene dal fatto che mi sono dimenticato di impostare i parametri di sicurezza della rete. Hai qualche consiglio?
    grazie

    • luca 24/09/2013 at 12:44 - Reply

      ciao Paolo

      la cosa più veloce è fare il reset del router: a router acceso premi con una graffetta per 10 secondi il pulsante RESET. Al riavvio il router tornerà alle impostazioni di fabbrica.

  24. Hamza 30/11/2013 at 04:45 - Reply

    Hi Luca,
    I have Arduino Mega + ethernet shield + WR-702N router. I’m able to display the values on Analog input usin Arduino and ethernet shield. I want to do the same using the WR-702N router. Please, help me in this regard.

  25. Hamza 30/11/2013 at 12:16 - Reply

    How to use client mode with ethernet shield, arduino mega 2560 and wr-702n router..?
    please give steps to configure

    • luca 02/12/2013 at 09:41 - Reply

      Hi Hamza,

      the client mode is independent from the device you connect: use the instructions in this blog post.

  26. Jean 02/12/2013 at 08:52 - Reply

    Hi, is it possible to connect my arduino + ethernet shield to mysql database?
    For example: Arduino and ethernet shield connected to wireless router, and my laptop (with mysql database) is also connected to the wireless router. If it’s possible, can you give me the codes on how to do it?

    • luca 02/12/2013 at 09:37 - Reply

      Hi Jean

      there are a couple of MySQL drivers for Arduino, like the following one:
      http://drcharlesbell.blogspot.it/2013/04/introducing-mysql-connectorarduino_6.html

      They are usually designed to work with the official ethernet shield… I found an interesting library for ENC28J60 that should be compatible with that code, give it a try.

      • Jean 02/12/2013 at 13:26 - Reply

        thanks for the quick response. i already tried this one. but it didn’t work for me.
        [...]

        • luca 02/12/2013 at 13:57 - Reply

          Hi Jean

          sorry but I’ve no experience with that library so I can’t help you…

          • Jean 02/12/2013 at 14:23 -

            Ok Luca, thanks. i’ll try it again using the sample you gave me. thankyou

  27. Jean 02/12/2013 at 13:42 - Reply

    I have another question. How about using PIC16F877A and an Ethernet shield. is that also possible?

    • luca 02/12/2013 at 13:52 - Reply

      Yes I think but you need to find/write compatible libraries…

      • Jean 04/12/2013 at 10:10 - Reply

        Hi Luca! what about using Atmega328 and ethernet shield? do you have any schematic diagram that I can use. And the program to save the data coming form my MCU to mysql databse. Sorry for having so many questions. Thanks in advance. :)

  28. Tim 15/12/2013 at 16:06 - Reply

    Ciao Luca, thanks for your great tutorial. I have realized a cabled network based on the WZ5100 breakout (Itead) with fixed IP’s sending and receiving a string over UDP. I want to transfer this to wireless with your wifi router solution. So I connected the modules with the WR702N, but somehow I didn’t manage to run this with fixed IP’s, to keep the units addressable. I even couldn’t ping them. Do you have any suggestions?

    • luca 16/12/2013 at 14:13 - Reply

      Hi Tim,

      if you configure the router in “client mode”, it should be “transparent” in your network… are you sure it is connected to the wifi? You should be able to find the Arduino in the list of connected devices in your router/AP.

  29. jason 27/12/2013 at 15:18 - Reply

    hi luca! can you write a tutorial on how to connect an arduino+ethernetnet shield using the library ethercard and an additional library for mysql connector. thanks in advance :D

    • luca 14/01/2014 at 18:59 - Reply

      Hi Jason

      unfortunately the MySQL library requires a “W5100-compatible” library… but the only one I found doesn’t work for the lack of free RAM.

  30. ezio labruzzo 11/03/2014 at 14:46 - Reply

    Ciao Luca. Io uso una shield W5100 che collegata direttamente al router via cavo funziona come server web utilizzando lo sketch d’esempio nell’ide. Il problema compare quando lo collego al tl-wr702n. Non funziona quasi mai e se dopo diversi reset del mio arduino uno finalmente diviene raggiungibile dal browser, dopo una decina di minuti ritorna il black out. Tieni conto che il tl-wr702n lo uso regolarmente per il decoder mysky sulla stessa rete. Ho cambiato hardware ma il problema permane. Puoi autarmi?

    • luca 15/03/2014 at 10:26 - Reply

      ciao Ezio, purtroppo non ho lo shield con il W5100: posso dirti che con quello che ho io non riscontro problemi di blackout…

  31. shorda 15/04/2014 at 19:00 - Reply

    Hi, I just need to know, if i buy it , can i do this without another wifi router? Can I directly setup bridge between my notebook and arduino with TL-WR702N. Get signal from TL-WR702N by using my notebook. Thanks for answer and sorry for english!!

    • luca 27/04/2014 at 12:39 - Reply

      Hi Shorda, hope I understood what you asked: yes the WR702 may act as an access point between your laptop and arduino.

Leave A Response »