If you are using Arduino (or any other TTL device) to control 4 channel relays or more, I would suggest to use ULN2803 Line Driver instead of Transistors or FETs. You can use ULN2003 which is much more cheaper if you plan to use not more than 7 channel relays.
The ULN2803 Integrated Circuit (IC) is a "Eight-way Line Driver". It allows you to interface TTL signals (5v) with higher voltage/current (50V/500ma) loads.
As shown in figure 1 and figure 2, an Arduino is control 8 relays, one using ULN2803 line driver and the other one using transistors, both circuit are equivalent.
If you are considering to test OpenWRT without a router or you don’t want to flash the router firmware over and over again. Here is the right place for you.
OpenWRT in VirtualBox is an image file run in VirtualBox. By the time I write this article, the VirtualBox & OpenWRT image version are Ver 4.1.20 and 10.03.1 respectively.
Dynamic DNS allows that your router can be reached with a fixed hostname while having a dynamically changing IP address.
Dynamic DNS is a must if you want to control your devices/network over the internet with dynamic IP address in your Local Area Network. Read this article for more about Dynamic DNS and Port Forward.
OpenWRT come with a package called luci-app-ddns but is not install by default. We must install the luci-app-ddns package in order to enable the Dynamic DNS service.
Samba is a free software re-implementation of the SMB/CIFS networking protocol, Samba provides file and print services for various Microsoft Windows clients.
First, this assumes that you already have OpenWRT installed. Read this article if you haven't upgrade firmware to OpenWRT.
Second, you must have a working USB flash drive attach to router. Read here for installing USB flash drive.
FTP is a method of transmitting or recieving files across the Internet and stands for File Transfer Protocol. This article guide you on how to enable FTP function on the OpenWRT router.
It is assumed that the router is flashed with OpenWRT. See this article if you haven't upgrade firmware to Openwrt.
WinSCP is an open source free SFTP client, SCP client, FTPS client and FTP client for Windows.
Most people use vi as the text editor during configuration of embedded device. I hate to use vi, in which I have to memorize all the commands. Whereas WinSCP is a GUI (Graphical User Interface) program where you can edit your file like notepad. Additionally you can use WinSCP to download and upload files including settings of permission.
TP_LINK TL-WRT1043ND router and OpenWRT is use in this tutorial.