树莓派开机自动采集并传输数据

树莓派自带无线网卡MAC地址:b8:27:eb:a2:f6:52

1、先安装好驱动(一般是.ko格式文件)8821au.ko、编译生成数据采集程序:getData

2、开机加载驱动

在文件/etc/rc.local中添加下列行:sudo insmod /home/pi/8821au.ko

3、开机自启动采集程序

在文件/etc/rc.local中添加下列行:

cd /home/pi/UAV/get_data/

./getData

4、设置wlan1(自己安装的无线网卡,树莓派自动的网卡是wlan0)连接到网络,在/etc/network//interfaces中添加如下内容:

auto wlan1  #网卡wlan1随系统自启动

iface wlan1 inet dhcp  #设置wlan1无线网卡采用dhcp方式分配IP地址

wpa-ssid “<wifiID>”

wpa-psk "<wifi密码>"

或者如下方式配置静态IP地址:

auto wlan1 #网卡wlan1随系统自启动

iface wlan1 inet static  #设置wlan1无线网卡采用dhcp方式分配IP地址

address 192.168.1.55 #可以是合理的IP地址

netmask 255.255.255.0

gateway 192.168.1.1

wpa-ssid “<wifiID>”

wpa-psk "<wifi密码>"


参考:https://i.cmgine.net/archives/11053.html

http://blog.csdn.net/c80486/article/details/8545307




补充:

1、/etc/rc.local与/etc/init.d/的区别:

参考:http://www.cnblogs.com/gzggyy/archive/2012/08/07/2626574.html

/etc/rc.local是用户自己设置的开机自动执行的shell指令

/etc/init.d/是脚本目录,是一些服务的启动脚本,执行这里面的脚本可以启动、停止和重启这些服务,如:

/etc/init.d/networking restart可以重启网卡让新配置生效


2、iwconfig和ifconfig的区别:

iwconfig:对无线网络的配置工具

ifconfig:用来显示或者设置网络设备


3、/etc/network/interfaces和/etc/wpa_supplicant/wpa_supplicant_conf的区别:

参考:https://i.cmgine.net/archives/11053.html


4、socket缓冲区大小设置:

发送缓冲区和接收缓冲区的相关文件:

参考:http://blog.csdn.net/ziliangxiao/article/details/24260949

设置方法:http://blog.csdn.net/yunuobuyoi/article/details/8815685

  ip层的处理情况可以这样理解: 

  1 将上层数据封装成一个ip数据报文,如果数据报文的数据部分大于【2^16-1-20】,返回错误

  2 如果ip数据报文段大于MTU(这是由数据链路层限制的,比如以太网的MTU=1500),则将该ip数据报文段进行分片处理,分成多个ip数据报文段

UDP socket编程:

 因为udp包头有2个byte用于记录包体长度. 2个byte可表示最大值为: 2^16-1=64K-1=65535
 udp包头占8字节, ip包头占20字节, 65535-28 = 65507
如果要发送的udp报文大于65507,需要在应用层由开发者自己分片发送。 分片的粒度最大65507字节,系统的sendto函数是不支持大于65507字节的单包发送的.


TCP socket编程:

TCP包的长度为2^16-1-20-20(TCP包头占20个字节)=65495,但是TCP协议会自动分片发送。关键用setsockopt函数设置缓冲区的大小

缓冲区大小受3个因素影响:

(1)/proc/sys/net/core/rmem_max

/proc/sys/net/core/wmem_max

/proc/sys/net/core/rmem_default

/proc/sys/net/core/wmem_default

(2)

/proc/sys/net/ipv4/tcp_rmem

/proc/sys/net/ipv4/tcp_wmem

(3)setsockopt函数

i.若不调用setsockopt函数,则默认按照 /proc/sys/net/ipv4/tcp_rmem/proc/sys/net/ipv4/tcp_wmem中的配置来设置缓冲区大小

ii.若调用setsockopt函数,则/proc/sys/net/ipv4/中的配置文件失效。也不会无限增大缓冲区,缓冲区最大可以设置为 /proc/sys/net/core/wmem_max 和 rmem_max中的值。

因此在改变缓冲区大小的时候需要同时用setsockopt函数并改变/proc/sys/net/core/wmem_max 和 rmem_max中的值。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值