好耶!是树莓派🍓!

树莓派的到来实在太令我惊喜。之前和某人聊天时提起过我有想买一个树莓派搭 NAS 的事,说过也就过了,哪曾想她真的记下来,并且背着我火速下单了一套直接寄到刚搬进去的新住处。她以前玩过 Arduino,对树莓派也知道一些,准备和我一起折腾些有趣的东西。

好,你们可以开始羡慕了😉。

我知道淘宝上的卖家总爱搭配一些良莠不齐的配件一同出售,但是某人深得我心,给我买了主机和全套官方配件,包含已经烧写了官方 Raspbian 系统的 SD 卡。我并不需要图形界面,所以打算使用 Ubuntu Server 作为操作系统,因而只是把 SD 卡插上去开机草草看了一眼 Raspbian 系统长啥样,就直接上 Ubuntu 20.04 了~ 然后一顿操作按照自己的习惯配置好终端环境后,情况大概这样:

拿到手的是一台树莓派 4B。树莓派本身应该很多人都熟悉了,其实就是一个麻雀虽小五脏俱全的微型电脑。体积非常小巧,也很轻,在这样的身躯下其性能却足够进行一些小型折腾和实验。接口方面,包含 2×Mini-HDMI 接口,2×USB 2.0 接口,2×USB 3.0 接口,音频接口,RJ45 端口,应该说能满足日常的外设需求。此外,这款树莓派主板上提供了 40 个可用于自主扩展的端口,称为 GPIO(general-purpose input/output) 接口,这是树莓派超级强大的一个重要原因。套件中包含一个小风扇,用于散热,就依靠 GPIO 端口工作。

树莓派 GPIO 接口图

我按照说明将风扇的三根线分别接到了板子上编号 4(5V power)、6(Ground)、8(GPIO 14) 的三个端口上,风扇顺利启动。然而,这风扇贼吵……而且是常开的,搜了一圈,经过了若干次失败和尝试后终于实现了用 Python 根据 SoC 温度控制风扇启停。代码如下(需要先安装 RPi.GPIO 库)。

#!/usr/bin/python3

import time

try:
    import RPi.GPIO as GPIO
except RuntimeError:
    print("Error importing RPi.GPIO!")

def cpu_temp():
    with open("/sys/class/thermal/thermal_zone0/temp", 'r') as f:
        return float(f.read())/1000

def main():
    channel = 14
    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)

    # close air fan first
    GPIO.setup(channel, GPIO.OUT, initial=GPIO.LOW)
    is_close = True

    while True:
        temp = cpu_temp()
        output = ' '.join([str(time.ctime()), str(temp)])

        if is_close:
            if temp >= 65:
                GPIO.output(channel, GPIO.HIGH)
                is_close = False
        else:
            if temp < 55:
                GPIO.output(channel, GPIO.LOW)
                is_close = True

        if is_close:
            output += ' fan off'
        else:
            output += ' fan on'

        with open('/var/log/autofan.log', 'a+') as f:
            print(output, file=f)

        time.sleep(2.0)

if __name__ == '__main__':
    main()

以上代码可以使用 systemd 作为开启自启的服务,然后就不用再管树莓派的温度问题了(发热真的很厉害)。


我宣布,如今我的个人主页、当前这个博客、个人Wiki 都由这台树莓派提供服务!

这是交给它的第一个重大任务。我连夜给它布置好了 LNMP 环境,然后使用 acme.sh 在上面申请好了 SSL 证书。得益于采用 Maverick 生成我的网站,站点的迁移简单到难以置信:大概就是改动部署脚本中的三个字母。

这也就是说,以后如果我搬家或者家里断网,这个网站也会跟着挂掉🤣。但是想想吧,这就是早期互联网的样子啊!颇有些文艺复兴的感觉,我很喜欢。

另外,我在树莓派上插了一块 4T 的硬盘,里面保存了我的多年原始积累,终于实现了我在世界任何角落进行艺术鉴赏的梦想。接下来的打算是让树莓派成为家庭智能中枢,大概包括和智能家居联动、作为 AirPlay 投屏服务器、作为 TimeMachine 备份服务器等等。

好久没有这种兴奋的感觉了!真好,感觉有无穷的可能性等待探索。我充满了期待。