树莓派开发记录


无线计划

因为最近在寝室远程连接电脑进行开发或者文档的编写,需要多台设备连网。但是由于学校"神奇"的网络状况,每个人只能有一个在线设备,且没有有线宽带。

与其找一台pc连接wifi再用软件开热点,效果并不好,且稳定性较差。于是想到的解决方案是将树莓派连接wifi,即树莓派的wifi作为wlan口,再将网络数据转发给树莓派的lan口,最后通过路由器做AP将rj45传来的数据做共享wifi。

步骤:

  1. 配置网桥
sudo apt install bridge-utils #安装网桥管理工具
brctl addbr br-lan
brctl addif br-lan eth0
ifconfig br-lan 192.168.3.1 up #192.168.3.1就是树莓派在整个扩展网络中的地址
ifconfig eth0 0.0.0.0 up
  1. 配置IP转发

    一般的Linux发行版默认都不会开启ip_forward,因为正常的计算机都是作为终端,没有转发数据报的需求,因此需要手动打开。

    vim /etc/sysctl.conf
    + net.ipv4.ip_forward = 1
    #或
    sysctl net.ipv4.ip_forward = 1
  2. 配置iptables

    想让内网的所有设备共享一个IP,需要在wlan0网口启用nat。

    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
  3. 安装DHCP/DNS服务器

    apt install dnsmasq -y
    vim /etc/dnsmasq.conf
    +'dhcp-range=192.168.3.50,192.168.3.150,255.255.255.0,12h' >> /etc/dnsmasq.conf #这里IP的网段跟之前配置的需要一致
  4. 设置开机自启

    新建如下脚本:

    #!/bin/bash
    brctl addbr br-lan
    brctl addif br-lan eth0
    ifconfig br-lan 192.168.3.1 up #这里的地址随便,和Wan侧不在一个网段就行
    ifconfig eth0 0.0.0.0 up
    sysctl net.ipv4.ip_forward=1
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

    使用vim /usr/lib/systemd/system/<自定义>.service命令创建执行计划

    [Unit]
    Description=autostart
    [Service]
    Type=oneshot
    ExecStart=/home/pi/<上一步骤中脚本的名字>.sh
    [Install]
    WantedBy=multi-user.target

    执行systemctl enable autostart.service


顺风耳

列出所有的录音设备:

arecord -l

列出所有的播放设备:

aplay -l

千里眼

针对USB的免驱摄像头,推荐拍照使用fswebcam,摄像使用luvcview


5寸触摸屏

硬件连接

  1. 连接GPIO接口 Raspberry Pi引出了40个GPIO管脚,而屏幕引出了26个管脚,连接时注意对应屏幕管脚和树莓派管脚。
  2. 连接HDMI接口。把HDMI连接器接入屏幕和主板的HDMI接口。 Raspberry Pi Model B与Raspberry Pi Zero需另配HDMI连接线进行连接。
  3. 把LCD背后的Backlight拨到“ON”。

config.txt文件中添加

max_usb_current=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
hdmi_drive=1

下载驱动程序:

git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
sudo ./LCD5-show

Barrier

安装Barrier:sudo apt install barrier

自启动:在~/.config/autostart/下新建文件barrier.desktop,添加如下字段:

[Desktop Entry]

Type=Application

Name=barrier

NoDisplay=false

Exec=/usr/bin/barrier

文章作者: 不二
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 不二 !
  目录