改造TP-link WR703N为Arduino WIFI通信和实时视频传输模块

其实Arduino有自身的wifi模块,但价格不菲,一般都在400+。好在人民的智慧是无穷的,无线路由器成了改造成wifi模块的理想替代品。很多无线路由器都支持被改造,但TP-link WR703N最为流行,它小巧,价格便宜,自带usb口。

动手之前必须对openWRT有稍许的了解。来自百度的解释:OpenWrt的被描述为一个嵌入式设备的Linux发行版,而不是试图建立一个单一的,静态的固件,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序通过使用包。对于开发人员,OpenWrt的是框架来构建应用程序,而无需建立一个完整的固件左右;对于用户来说,这意味着完全定制的能力,从来没有预想的方式使用该设备。

[b]我们改造的目的[/b]:让WR703N成为可以和Arduino沟通的wifi模块,同时也让摄像头能通过wifi模块实时传输到第三方。这个场景常见的是wifi小车。推荐仔细观看DfRobot拍摄的[url=http://v.youku.com/v_show/id_XMzc0NzE1OTAw.html]教学视频[/url]。

[b]改造的核心步骤[/b]
[list]
[*]将openWRT刷入WR703N。
[*]为openWRT安装支撑软件。
[*]正确识别接入路由器的arduino。
[*]正确识别接入路由器的摄像头。
[*]整体调试
[/list]

[b]将openWRT刷入WR703N[/b]
[list]
[*]下载适合的openWRT升级文件:http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin
[*]将电脑接入路由器,在工具-》系统升级里选择刚下载的文件,点击升级。静等升级完自动重启路由器。
[/list]
[b]为openWRT安装支撑软件[/b]
[list]
[*]使用第三方工具putty通过telnet方式接入路由器。也可以使用winscp等工作,直接操作openWRT文件。
[*]修改openWRT配置文件/etc/config/wireless和/etc/config/network,以将路由器接入另一个能上网络的wifi。
[*]安装minicom工具:执行1 opkg update 2 opkg install minicom 。
[/list]
[b]正确识别接入路由器的arduino[/b]
[list]
[*]将路由器通过mini usb口直接由电源供电,将arudino nuo的usb线接入路由器。
[*]安装串口识别库:执行1 opkg install kmod-usb-serial-ftdi 2 opkg install kmod-usb-acm 。
[*]执行ls /dev查看设备情况,如果是arduino UNO,应该有ttyACM0,表示成功识别。
[*]设置minicom,执行minicom -s启动minicom,选择Serial port setup,修改1 Serial Device: /dev/ttyACM0 2 波特率修改为9600 3 Hardware Flow Control改为 NO .
[*]测试,可以写个简单的arduino程序,读取串口数据x,然后串口输出resut:x。 这样在minicom中输入字符,看arduino的返回结果。
[*]退出minicom,按 ctrl+A,然后按Q。
[/list]
[b]正确识别接入路由器的摄像头[/b]
[list]
[*]在路由器上取下arduino,接上摄像头。可以为uvc或是301芯片的摄像头,需要安装不同的驱动程序。这里接入罗技uvc摄像头。
[*]安装支撑库,执行1 opkg udpate 2 opkg install kmod-video-uvc 。
[*]安装视频处理软件,执行 opkg install mjpg-streamer 。具体可参看[url=http://wiki.openwrt.org/doc/howto/webcam]这里[/url]。
这里我遇到问题是无法安装,openWRT的空间上并没有该程序,所以我采用离线安装办法。1 安装依赖的库 opkg install libjpeg 2 执行 opkg install libpthread 3 将下载的mjpg-streamer_r148-3_ar71xx.ipk通过winscp复制到/tmp目录下。 4 执行 opkg install /tmp/mjpg-streamer_r148-3_ar71xx.ipk
[*]配置 mjpg-streamer,修改 /etc/config/mjpg-streamer。修改option enabled为1,其他分辨率和帧率自选。当我选640×480时,10fps无法支持,只能5fps。也可以选择10fps的320×240。
[*]安装摄像头驱动。安装kmod-i2c-core、kmod-usb-video、kmod-video-pwc。执行ls /dev查看是否有video0,有就证明成功识别摄像头了。
[*]让mjpg-streamer随路由器启动,执行/etc/init.d/mjpg-streamer enable
[*]启动mjpg-streamer,执行/etc/init.d/mjpg-streamer start 。此时应该摄像头灯亮起。在浏览器里(chrome)输入http://192.168.2.1:8080/?action=stream ,其中192.168.2.1为你配置的路由器地址。一切顺利的话你就能看到实时视频了!
[/list]
[b]整体调试[/b]
[list]
[*]修改路由器网络配置/etc/config/wireless,以成为独立的AP。执行wifi命令以生效。
[*]改造连线方式,将路由器usb口接一个usb hub,然后摄像头和arduino分别接入hub。
[*]通过手机接入wifi,经由telnet发送指令测试arduino,在手机的浏览器里打开http://192.168.2.1:8080/?action=snapshot查看摄像头截图。
[/list]

过程忽略了一些细节。相关工具和文件请在附件里下载。
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
20120905版4M固件: 1. 720N固件,基于703N修改。TP-Link原厂固件请刷factory,已经是OpenWrt了就刷sysupgrade。 且刷此固件后可直刷OpenWrt 703N、OpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用改固件头。 2. 4M固件,当然8M的flash也可以刷。 3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、 远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。 因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。 4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID, 挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。 重启下,看看剩余空间大了没,呵呵。 (umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: 开启共享手机网络、开启无线 3G: 关闭共享手机网络、开启无线 Router:关闭共享手机网络、关闭无线 10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机, 而智能手机的网络共享给openwrt使用。 目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件 再考虑吧。 Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能, 所以就研究了下,也许在某些情况下这个功能还是有用的吧。 使用方法: a. 路由器模式开关切换至AP位置。 b. 用USB线连接路由器与手机。 c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”; 然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。 回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机 的网络了。 11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。 mwan2的作者新出了mwan3,有兴趣可以去看看:https://forum.openwrt.org/viewtopic.php?id=39052 12.703n可刷本固件,但是刷完后lan口不能用。需先用无线连接,然后编辑/etc/config/network , 删除其中wan口配置,把lan的eth0改成eth1后,lan就可以用了。 如703n原厂固件web界面请刷factory,且需要先把固件标识改成07030101才能刷。 13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。trunk就是不稳定啊, 没办法~~ 14.刷机有风险,变砖本人概不负责。 吐糟一下,如3G有掉线问题,请看日志中是否出现“No response to 5 echo-requests”。 而解决这个问题,除了降低无线功率或者干脆关闭无线外,我是没找到其他更好的办法(可能和3G网卡有关)。 曾经尝试过换电源增强供电、用带外接电源的usb-hub,包括尝试TP-LINK原厂固件也一样掉线。还有修改/etc/ppp/options里 的lcp-echo-interval,把值改大点后是不掉线了,但是3G其实已经断流了,没什么意义。我用MU350网卡试过FW300R、FWR171-3G 还有720N这几个路由都是这样。不知道是TP-Link设计问题,还是td-scdma这种垃圾芯片功率过高的问题,或者Atheros芯片 的设计缺陷? 百撕不得骑姐啊!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值