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!
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
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
Thanks Michel!
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 🙂
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.
Interessante
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
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. 🙂
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().
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();
yes it should work…
is your client a web browser?
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!!
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!
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?
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
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.
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.
Hi Liber,
I can confirm you that it works with WPA2 security: I’m using it with that security protocol.
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
Thanks!
Thank you too!
Welcome to KSduino: http://ksduino.org
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?
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?
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
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
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
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.
a raspberry pi model A + dongle is cheaper than wifi router + ethernet card + arduino . . . . . also have more processing power etc.
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.
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?
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.
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é
Ciao Andrè
It should work, moving the switch in the “client” (= middle) position… no changes are required to the arduino sketch.
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é
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.
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!!!
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).
grazie della risposta immediata!!!
… quindi cosa mi conviene usare? una qualsiasi e poi aggiungere un modulo ehternet esterno??
esatto, se vuoi seguire i miei tutorial ti serve un arduino qualsiasi (consigliato l’arduino uno) e uno shield basato su chip enc28j60
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.
How could ENC28J60 and Arduino wirelessly connect to the TL-VR702N then TL-VR702N ethernet cable to the internet modem?
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.
Yes, but when I changed enc ENC28J60 chip AN1284 wifi chip, how many is it feasible?
Are you trying to use the Microchip WiFi chip? You need a totally different library for that…
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
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.
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.
How to use client mode with ethernet shield, arduino mega 2560 and wr-702n router..?
please give steps to configure
Hi Hamza,
the client mode is independent from the device you connect: use the instructions in this blog post.
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?
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.
thanks for the quick response. i already tried this one. but it didn’t work for me.
[…]
Hi Jean
sorry but I’ve no experience with that library so I can’t help you…
Ok Luca, thanks. i’ll try it again using the sample you gave me. thankyou
I have another question. How about using PIC16F877A and an Ethernet shield. is that also possible?
Yes I think but you need to find/write compatible libraries…
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. 🙂
Hi Jean, the ATMega328 is the microcontroller Arduino uses so you can follow the instructions in this tutorial: http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Atmega328 that I’ll be using:
https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-frc3/1466177_10201751143553133_1519523900_n.jpg
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?
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.
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 😀
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.
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?
ciao Ezio, purtroppo non ho lo shield con il W5100: posso dirti che con quello che ho io non riscontro problemi di blackout…
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!!
Hi Shorda, hope I understood what you asked: yes the WR702 may act as an access point between your laptop and arduino.
I use prolink WNR1004 it’s works – the backsoon examples works without modification, same procedure.
Just wanted to thank you for your Arduino tutorials, they are awesome and helpfull 🙂 Please keep making them.
Hi Fernando and thanks a lot for your feedback!
I managed to get OpenWrt installed on WR710N, which is similar to WR703N, but with 2 Ethernet and 1 USB. My goal is to use the USB to connect to Uno. However, I am not sure how to achieve that. can anyone help?
Ciao Luca, Sto utilizzando un TP-Link TL-WR802N configurato come client (seguendo la tua guida) ma non riesco a connettermi a internet. Mi potresti aiutare?
Ciao Vicenzo… con così poche informazioni è difficile riuscire ad aiutarti: il TP-Link risulta connesso alla tua rete? Da Arduino non riesci a raggiungere Internet o anche altri dispositivi in rete? Se usi DHCP è stato assegnato correttamente un indirizzo IP?
Ciao Luca, di seguito i dettagli:
CONFIGURAZIONE:
1. configuro il TP-LINK come client.
2. seleziono, dalla lista che viene fuori dalla scansioine delle reti, la rete wifi di casa a cui voglio connettere il mio TP-LINK.
3. seleziono “SmartIP(DHCP)” al posto di “StaticIP”
4. procedo con il reboot del TP-LINK
A questo punto mi aspetto che il mio TP-LINK mi fornisca la connessione ad internet poichè si appoggia alla wifi di casa, se lo attacco via ethernet al PC, ciò è vero…..se attacco via ethernet il TP-Link ad Arduino, la shield non risponde al ping.
Rispondo alle tue domande:
1. Il T-LINK risulta essere connesso alla rete poichè se lo attacco al PC mi consente di navigare
2. Da Arduino, solo tramite il TP-Link, non riesco a reggiungere internet
3. Ho assegnato ad Arduino un indirizzo IP del tipo 192.168.2.2
ciao, prova a configurare arduino con IP dinamico (DHCP) perché è così che hai configurato il tp-link: in modalità client infatti lui “passa” l’IP che ottiene dal tuo router al dispositivo che hai collegato.