- You must get a 8MB or 16MB router such as… Written by admin on Friday, 27 May 2016 22:33 How to increase storage on TP-Link TL-MR3020 with ExtRoot
- Good details. For what it's worth, I have been trying… Written by WJCarpenter on Thursday, 26 May 2016 01:39 How to increase storage on TP-Link TL-MR3020 with ExtRoot
- Transmission Torrent should work with the same router provided transmission-daemon… Written by admin on Saturday, 14 May 2016 09:52 How to increase storage on TP-Link TL-MR3020 with ExtRoot
- Hi, I have ordered a new neje dk-8 (300mW) laser… Written by Michael on Thursday, 12 May 2016 23:46 NEJE DK-5 Pro-5 500mW Laser Engraver/Cutter
- Nice tuto. I want to know if in future I… Written by Max vat on Thursday, 12 May 2016 11:44 How to increase storage on TP-Link TL-MR3020 with ExtRoot
Wireless Router Home Automation
Wireless router flashed with OpenWRT. This project based on TP-LINK TL-WR1043ND wireless router, you can use TL-WR703N or TL-MR3420 if budget is concerned, any other router that support OpenWRT should work as well.
Arduino code, sketch using Ocean Controls KTA223, or any serial device that use the following protocol.
Syntax for receiving message: @aaccpp
Syntax for replying message: #aapp
Installing Serial Driver
Select the correct serial driver for your serial device. I'm using Arduino duemilanove, so SSH to router and enter code below:
opkg install kmod-usb-serial-ftdi
|opkg install kmod-usb-acm|
If you are using PL2303 based USB/serial adapters
|opkg install kmod-usb-serial-pl2303|
If you are using CP201x based USB/serial adapters
|opkg install kmod-usb-serial-cp210x|
|opkg install kmod-usb-serial-ch341|
Plug in Arduino to the USB port of router, make sure the serial device is working with router, and know the port name assigned to the serial device.
|dmesg | grep -i usb|
Arduino sketch from Ocean Controls: KTA223 RelayDuino
Web interface: wireless router home automation v1.zip
- Download the web interface and extract to any folder of computer
- You should see three files and two folders on your computer
- Using WinSCP copy all the files and folders to /www folder of router
- Now your router should have
- You must have enough permission to run the file in /www/cgi-bin folder. So change the luaSerial file permission to 0755.
|chmod 0755 /www/cgi-bin/luaSerial|
Running the program
- Open up a browser and navigate to http://192.168.1.1/main.html (192.168.1.1 is the router IP, you should use your own router IP)
- Click on each images to toggle ON and OFF, images will change accordingly.
- The Tools image & navigator images is not use at the moment.
- The status bar is use to display serial message which reply from Arduino
- The main program split into 3 files for easy understanding (main.html, main.css, main.js)
- When main.html started, it load two external files (main.css & main.js)
- onload (line 9) triggered and execute autoRun() function from main.js
- Update image caption on screen
- Issue runCmd(0) to get status from Arduino then start Timer to query status every 10 seconds
- Update images based on results from Arduino
- Startup process completed. Waiting for user input......
- User click on imageButton, say first image
- Clear old Timer and start a new Timer
- Ajax deal with serialLua
- serialLua reply status (I name it Arduino message) to Ajax
- Display Arduino message on status bar
- Update first imageButton according to Arduino message
I don't have a good solution to clear the serial buffer, I have to use the most stupid way (very shy) to clear the buffer. Refer to code below, I have to issue readSerial() function instead of just using serial:read and serial:flush.
if string.len(serialData)>0 then
if string.len(serialData) == 0 then
|echo '/cgi-bin:root:$p$root' > /etc/httpd.conf; /etc/init.d/uhttpd restart|
- Rewrite web interface
- More control, for example analog control
- Web cam integrated
This is a very preliminary release, please report any bugs you may find to the project.
Tuesday, 19 March 2013 11:26
Very interesting. I'll be testing this out with my TL-WR703N