主题 : 使用USB无线网卡和USB摄像头打造mini2440无线监控系统 复制链接 | 浏览器收藏 | 打印
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
贡献值: 2 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
楼主  发表于: 2011-05-09 22:27

 使用USB无线网卡和USB摄像头打造mini2440无线监控系统

管理提醒: 本帖被 xoom 执行置顶操作(2012-09-03)
 一、  我的mini2440开发板上使用的网卡设备为水星MERCURY54M无线USB网卡 MW54U ver:7.0,其内部芯片型号为ATHEROS的ar9271。mini2440的自带linux系统里面是没有这个驱动程序的,但是在官网上usb-wifi-kits-for-mini2440-linux-2.6.32.2-20100728.tar.gz这个安装包里面是有ar9271这个驱动的。 (我后来又买了一款USB无线网卡称为磊科NW336 V2 ,是在京东上买的http://www.360buy.com/product/202530.html , 它具有Linux的驱动源码NW336v2,可以直接编译移植为ARM的版本,)

       所以首先就得,先把usb-wifi-kits-for-mini2440-linux-2.6.32.2-20100728.tar.gz这个压缩包拷贝到mini2440的linux系统中,然后直接在根系统下面解压缩,使用以下命令:
#tar  -xzvf  usb-wifi-kits-for-mini2440-linux-2.6.32.2-20100728.tar.gz  -C  /

       然后到目录 /lib/firmware/ 下面可以看到这个 ar9271.fw 和 rt73.bin 文件,使用 ls -l 命令可以看到它们不是一个可执行文件, 所以为了使用网卡,必须使用以下命令修改它们的可执行权限:
#chmod  a+x  ar9271.fw
#chmod  a+x  rt73.bin

       之后,可以参考http://www.aiothome.net/read.php?tid-7237.html这个网址下载 《基于mini2440上使用USB无线网卡的使用手册》。(usb-wifi-kits-for-mini2440-linux-2.6.32.2-20100728.tar.gz也可以在这个网址里面下载)。不过,我不知道怎么回事,使用scan-wifi居然没有搜索到我的无线路由器,后来我看到http://www.aiothome.net/read.php?tid-1305.html这篇帖子,就模仿其中的命令连接到了我的无线路由,不过由于我的无线路由的密码使用的是ASCII五位字符加密,所以得把其中的 iwconfig wlan0 key 123456  改为 iwconfig wlan0 key s:xxxxx  最后才得以联通我的无线路由。


 二、 至于我的USB摄像头是淘宝上买的一个国产杂牌,插到mini2440上,显示其驱动编号为1c4f:3002,可以被识别,使用开发板linux自带的USB摄像头软件也可以直接查看到图像,所以我算是省了查找USB摄像头驱动这一个步骤。


      现在两个设备都已成功连接了(这两个设备是连接在一个USB-HUB集线器上面的,我用的也就是那种淘宝上那种10元左右的USB小人一拖四集线器/分线器),到了mini2440开发板自带linux发挥作用的时候了,在其用户光盘中有《通过网络浏览CMOS或USB摄像头-20100405》这样一个PDF文件,其中就说明了通过网页浏览mini2440摄像头的说明,也就是说mini2440自带linux里面有一个Boa服务器,可以提供网页监控摄像头的功能。由于每个人的摄像头都不一样,所以各位就按照那个PDF文档上面的说明自己去试验吧。



三、  最后,还有一点要说明的是要想在无线下面通过网页查看摄像头,直接在PC机上输入当前wlan0的IP地址再加上8080端口(例:http://192.168.0.230:8080),就可以看到一个名叫MJPG-Streamer的网页,点击Stream或是Javascript按钮,就可以观看到无线摄像头里面拍摄到的内容了。
至此,mini2440无线监控系统大功告成已!


 四、 补充说明:以上方法是在PC机的WINDOWS环境下,使用无线路由器搭建的wifi下进行的实验。 下面介绍一下我使用Windows中搭建的wifi无线网络打造的无线监控系统的设计方法:
(搭建方法,请大家自行搜索相关wifi共享软件,我使用的是联想笔记本配送的闪联2.0,也可以不用安装软件,但稍稍麻烦点,可以上网搜索一下《笔记本电脑Ad-Hoc(点对点)模式组网方案》这篇文章,其中一个关键步骤就是:你得在分享wifi的主机的无线网络属性设置中将数据加密设置为禁用,因为经过我多次试验证明,在Ad-hoc网络中,mini2440开发板linux只要是连接了加密的网络后,立刻会出现以Unable to handle kernel NULL pointer dereference at virtual address 00000008 ..............一大堆出错信息,即使电脑显示无线网络已经连接,但是也ping不通开发板,更不用说打开mini2440的摄像头监控网页了,然后还得在“选择无线网络”这个网络列表中,将这个刚刚设置好的网络选中连接。最后才是对开发板一端进行设置,详细的设置命令请看后面的文章)
至此,我的开发板usb无线网卡就可以连接到这个Ad-hoc无线网络了。

五、  后来我又进入我在PC机ubuntu/linux环境下,由Ubuntu构建了一个wifi热点,搭建方法如下:ubuntu的wifi设置
1、点击任务栏的网络连接图标,在弹出菜单中先“创建新的无线网络。。。”
2、然后输入任意的网络名称以及访问密码。
3、在菜单-》选项-》网络连接-》-》无线-》(新创建的网络名称),点击编辑,确认“方法”的下拉框为“与其他计算机共享”。

不过首先还是得先进入mjpg-streamer文件夹(请看友善光盘里面的《基于 Mini2440 通过网络浏览和控制 CMOS 或 USB 摄像头 
》通过网络浏览CMOS或USB摄像头-20100405.PDF 该文件夹内有两个脚本文件start_uvc.sh和start_uvc_yuv.sh)
执行 ./start_uvc.sh & (选择哪种脚本主要看自己的USB摄像头是支持哪种格式的视频流),  再点击使用友善提供的“无线网络设置”软件,最后才能在PC机一端输入开发板无线IP地址加8080,来进行网页视频监控。

--------------------------------------------------------------------------------------------------------------------------

而mini2440开发板一方的设置,命令步骤如下所述:

复制代码
  1. [root@FriendlyARM /]# modprobe ath9k_htc                                                
  2. cfg80211: Calling CRDA to update world regulatory domain                                
  3. usb 1-1.4: ath9k_htc: Transferred FW: ar9271.fw, size: 51280                            
  4. usb 1-1.4: ath9k_htc: HTC initialized with 33 credits                                   
  5. cfg80211: Calling CRDA for country: CN                                                  
  6. Registered led device: ath9k-phy0::radio                                                
  7. Registered led device: ath9k-phy0::assoc                                                
  8. Registered led device: ath9k-phy0::tx                                                   
  9. Registered led device: ath9k-phy0::rx                                                   
  10. usb 1-1.4: ath9k_htc: USB layer initialized                                             
  11. usbcore: registered new interface driver ath9k_hif_usb                                                                             
  12. [root@FriendlyARM /]# ifconfig wlan0 up                 
  13. [root@FriendlyARM /]# iwlist wlan0 scan                                                 
  14. wlan0     Scan completed :                                                              
  15.           Cell 01 - Address: 02:16:6F:46:B5:37                                          
  16.                     Channel:1                                                           
  17.                     Frequency:2.412 GHz (Channel 1)                                     
  18.                     Quality=28/70  Signal level=-82 dBm                                 
  19.                     Encryption key:off                                                  
  20.                     ESSID:"UbuntuWIFI"                                                  
  21.                     Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s                         
  22.                     Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s                 
  23.                               36 Mb/s; 48 Mb/s; 54 Mb/s                                 
  24.                     Mode:Ad-Hoc                                                         
  25.                     Extra:tsf=0000000013353418                                          
  26.                     Extra: Last beacon: 5730ms ago                                      
  27.                     IE: Unknown: 000A5562756E747557494649                               
  28.                     IE: Unknown: 010482840B16                                           
  29.                     IE: Unknown: 030101                                                 
  30.                     IE: Unknown: 06020000                                               
  31.                     IE: Unknown: 2A0100                                                 
  32.                     IE: Unknown: 32080C1218243048606C    
  33. [root@FriendlyARM /]# ifconfig wlan0 down                                               
  34. [root@FriendlyARM /]# iwconfig wlan0 key off                                            
  35. [root@FriendlyARM /]# iwconfig wlan0 mode ad-hoc                                        
  36. [root@FriendlyARM /]# iwconfig wlan0 channel 1                                          
  37. [root@FriendlyARM /]# iwconfig wlan0 essid "UbuntuWIFI"                                 
  38. [root@FriendlyARM /]# ifconfig wlan0 192.168.0.222 netmask 255.255.255.0                   
  39. [root@FriendlyARM /]# ping 10.42.43.1                                                   
  40. PING 10.42.43.1 (10.42.43.1): 56 data bytes                                             
  41. 64 bytes from 10.42.43.1: seq=1 ttl=64 time=3.733 ms                                    
  42. 64 bytes from 10.42.43.1: seq=2 ttl=64 time=3.585 ms                                    
  43. 64 bytes from 10.42.43.1: seq=3 ttl=64 time=3.587 ms                                    
  44. 64 bytes from 10.42.43.1: seq=4 ttl=64 time=4.598 ms                                    
  45. ^C                                                                                      
  46. --- 10.42.43.1 ping statistics ---                                                      
  47. 5 packets transmitted, 4 packets received, 20% packet loss                              
  48. round-trip min/avg/max = 3.585/3.875/4.598 ms                                           
  49. [root@FriendlyARM /]# cd home/plg/mjpg-streamer/                                        
  50. [root@FriendlyARM mjpg-streamer]# ls                                                    
  51. LICENSE               mjpg_streamer         start_uvc.sh                                
  52. input_s3c2410.so      output_file.so        start_uvc_yuv.sh                            
  53. input_testpicture.so  output_http.so        www                                         
  54. input_uvc.so          start_s3c2410.sh                                                  
  55. [root@FriendlyARM mjpg-streamer]# ./start_uvc.sh &                                      
  56. [root@FriendlyARM mjpg-streamer]# MJPG Streamer Version.: 2.0                           
  57.  i: Using V4L2 device.: /dev/video0                                                     
  58.  i: Desired Resolution: 640 x 480                                                       
  59.  i: Frames Per Second.: 5                                                               
  60.  i: Format............: MJPEG                                                           
  61.  o: www-folder-path...: ./www/                                                          
  62.  o: HTTP TCP port.....: 8080                                                            
  63.  o: username:password.: disabled                                                        
  64.  o: commands..........: enabled                                                         
  65. [root@FriendlyARM mjpg-streamer]# 



一切就绪后,在没有无线路由器的情况下,也可观看远程USB摄像头中的无线监控视频了。
新加注:从新版的Mini2440光盘(2011-03-05)网盘分流下载地址 (增加3G拨号、USB WiFi配置功能)http://www.aiothome.net/read.php?tid-11004.html 开始,里面的rootfs_qtopia_qt4-20110304.tar.gz 文件系统之中,友善就已经提供了“无线网络设置”这一个软件,也就是说大家没有必要使用下面的这部分命令来寻找无线信号了,可以直接使用“无线网络设置”这个软件来自动加载USB无线网卡驱动和连接无线热点。简直太方便了,感谢友善啊!(不过很遗憾友善没有提供这个软件的源码)

为了方便大家,也为了方便我自己,我自己制作了一个QTOPIA应用程序webcam,专门用来打开使用USB摄像头加USB无线网卡的MINI2440监控系统的后台服务器(也就是mjpg-streamer的图形化QTOPIA程序界面),里面前面两个按钮是专门用来适用于大家根据各自的USB摄像头的视频流格式来选择使用的,搭配上面提到的友善的“无线网络设置”这个软件,我自己测试后感觉还是挺好用的! 应用为 webcam.tar.bz2 (308 K) 下载次数:384   因为好多小伙伴找我要源代码,我原来以为源码不见了的,现在五年后,我又找到了源代码 webcam.tar.gz (33 K) 下载次数:29



还有可以在PC机端上使用VLC 播放器 播放网络视频流的方式,将监控视频保存下来,方法如下:
第一步:按照上述方法将开发板端的视频WEB服务器打开。
第二步:打开VLC播放器,点击“媒体”菜单中的“打开网络串流”这个选项。
第三步:输入MINI2440开发板端设置的IP地址加上视频流的后缀,如下即可:http://192.168.1.101:8080/?action=stream
第四步:点击“媒体”菜单中的“转换/保存”选项,选择输入一个文件夹地址,即可将监控视频保存于本地文件夹内。
[ 此帖被cyx8648在2016-05-23 22:56重新编辑 ]
星星之火,可以燎原!
级别: 新手上路
UID: 15216
精华: 0
发帖: 6
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2010-03-02
最后登录: 2018-02-08
1楼  发表于: 2011-05-11 14:53
kankan