ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Linux+树莓派DIY智能家居:从GPIO到MQTT的实战指南

Linux+树莓派DIY智能家居:从GPIO到MQTT的实战指南 智能家居这个词现在几乎被玩烂了打开任何一个电商平台从几十块的Wi-Fi插座到上万块的全屋方案都敢叫自己智能家居。但如果你是一个喜欢动手、想真正搞清楚智能背后到底发生了什么的人买成品套装其实是最没意思的路子——你永远不知道那个App背后到底跑了什么逻辑也永远被厂商的云服务绑架。用Linux加树莓派自己搭一套才是真正能学到东西、也真正能掌控在自己手里的方案。这篇内容围绕《Linux树莓派玩转智能家居》第2版这本书展开结合我自己这几年用树莓派折腾家居自动化的实际经验把从系统选型、硬件搭配、通信协议到代码落地的完整链路拆开讲一遍。不管你是刚拿到树莓派4B不知道怎么下手的新手还是已经跑过几个传感器想进一步系统化学习的老玩家下面这些内容应该都能帮你少走一些弯路。1. 为什么Linux树莓派是智能家居DIY的最优解1.1 成品方案和自建方案的本质区别先聊一个很多人没想明白的问题为什么不用现成的智能家居套装非要自己折腾Linux和树莓派成品方案的核心逻辑是厂商替你决定一切。你买一个智能灯泡它支持什么协议、能接入哪个生态、数据传到哪台服务器全部由厂商说了算。今天厂商心情好给你开放一个API明天云服务一停你家里几十个设备全部变成砖头。这不是危言耸听过去几年里已经有多个智能家居平台关停或者变更服务条款用户的设备直接失去远程控制能力。自建方案的核心逻辑是你拥有全部控制权。树莓派跑的是完整的Linux系统所有代码在你自己的SD卡上所有数据在你自己的局域网里。你想让灯什么时候亮就什么时候亮想加一个自定义的传感器就加一个不需要等任何厂商的固件更新。这种掌控感是成品方案永远给不了的。当然自建方案也有代价你需要花时间学Linux基础、了解GPIO引脚、搞懂通信协议。但这些东西一旦学会就是可以迁移的能力不是只会用某一个品牌App的那种伪技能。1.2 树莓派在智能家居中的角色定位很多人对树莓派的定位有误解觉得它就是一个便宜的小电脑。这个理解不算错但不够准确。在智能家居场景里树莓派扮演的角色更像是一个中枢网关本地计算节点。作为中枢网关树莓派可以同时运行MQTT Broker、Home Assistant、Node-RED等多个服务把不同协议的设备统一管理起来。比如你家里既有Zigbee的温湿度传感器又有Wi-Fi的智能插座还有自己用ESP32做的红外遥控模块树莓派可以把它们全部接入同一个控制面板。作为本地计算节点树莓派4B的四核Cortex-A72处理器和最高8GB内存足够跑一些轻量级的边缘计算任务。比如用摄像头做本地的人形检测或者用YOLOv5的轻量模型做物体识别这些都不需要把视频流传到云端隐私性和响应速度都好得多。树莓派5更是把PCIe接口开放出来了你可以接M.2 HAT扩展板挂载NVMe固态硬盘系统响应速度和数据库读写性能比SD卡方案提升非常明显。如果你打算跑Home Assistant并且记录大量传感器历史数据树莓派5加NVMe的组合是目前最舒服的方案。1.3 第2版相比第1版多了什么《Linux树莓派玩转智能家居》第2版相比第1版最大的变化是紧跟了树莓派硬件和软件生态的更新。第1版写作时树莓派4B还是最新款而现在树莓派5已经上市系统也从Raspberry Pi OS的旧版本迭代到了基于Debian 12的Bookworm版本。第2版在内容上增加了几个很重要的部分一是容器化部署用Docker来管理Home Assistant、Mosquitto、Node-RED这些服务比第1版的直接安装方式更干净、更容易维护二是对树莓派5的PCIe和NVMe支持做了专门说明三是增加了更多关于本地语音控制和边缘AI的内容顺应了现在数据不出户的趋势。如果你手里是树莓派4B第2版的内容完全适用如果你已经升级到树莓派5书里关于新硬件的章节会帮你省下大量查资料的时间。2. 动手之前的硬件选型和系统准备2.1 树莓派型号怎么选才不浪费钱目前市面上能买到的树莓派主要有这几个型号我按智能家居场景的适用度排个序型号推荐度适用场景注意事项树莓派5 8GB首选跑Home Assistant边缘AI多服务需要官方27W电源发热较大需加散热树莓派4B 4GB/8GB推荐标准智能家居中枢性价比高社区资料最丰富树莓派4B 2GB可用轻量级网关跑多个容器会吃力树莓派Zero 2 W特定场景分布式传感器节点性能有限不适合做中枢树莓派Pico特定场景控制舵机、读传感器微控制器不跑Linux如果你刚开始入门手里还没有任何树莓派我的建议是直接上树莓派5 8GB。不是因为4B不够用而是5的PCIe接口和更强的CPU会让你在后续扩展时少很多限制。但如果你预算有限二手树莓派4B 4GB也是非常好的选择社区里绝大多数教程都是基于4B写的遇到问题最容易找到答案。树莓派Pico和Pico W是另一条路线它们跑不了Linux但作为低功耗的传感器节点或者舵机控制器非常合适。比如你想做一个自动开关窗帘的装置用Pico控制舵机通过MQTT和树莓派中枢通信比直接用树莓派的GPIO更灵活布线也更方便。2.2 系统安装中最容易翻车的几个环节系统安装看起来简单但实际上新手最容易在这里卡住。我见过太多人因为一个细节没注意折腾一整晚都没把系统跑起来。第一个坑是镜像选择。树莓派官方提供了Raspberry Pi OS的多个版本带桌面环境的、Lite版无桌面、以及64位和32位版本。做智能家居中枢我强烈建议用Raspberry Pi OS Lite 64位版本。原因很简单你不需要桌面环境所有操作都可以通过SSH完成桌面环境只会白白占用内存和CPU资源。64位版本则能让你充分利用树莓派4B和5的64位处理器跑Docker容器时兼容性也更好。第二个坑是烧录工具和配置。用Raspberry Pi Imager烧录时一定要点开高级设置提前配置好Wi-Fi、SSH、用户名和密码。很多人烧完系统插上树莓派发现连不上网也没有显示器就是因为没有提前配置。如果你用的是无屏幕安装headless setup这一步是必须的。第三个坑是换源。默认的软件源在国外更新速度可能很慢。安装完系统后第一件事就是换源。树莓派5上如果跑的是Bookworm系统源配置文件和旧版本不一样要注意路径是/etc/apt/sources.list.d/raspi.list和/etc/apt/sources.list两个文件都要改。换源之后执行sudo apt update sudo apt upgrade把系统更新到最新。第四个坑是SSH连接。如果你提前配置了SSH直接用ssh 用户名树莓派IP就能连上。但有时候路由器分配的IP会变建议在路由器里给树莓派设置静态IP绑定或者在树莓派上配置静态IP。找不到IP的话可以用ping raspberrypi.local试试或者登录路由器后台查看设备列表。2.3 必备配件和容易忽略的小东西除了树莓派本体下面这些配件是必须的电源树莓派5必须用官方27W USB-C电源普通充电器可能供电不足导致系统不稳定。树莓派4B用5V 3A的USB-C电源即可。存储卡至少32GB的Class 10 microSD卡。如果预算允许直接上NVMe方案树莓派5加M.2 HAT系统流畅度提升非常明显。散热树莓派5发热量不小官方主动散热器或者第三方金属外壳带风扇的都可以。树莓派4B加个散热片基本够用。网线虽然Wi-Fi能用但做中枢建议走有线网络稳定性好很多。传感器套件DHT11/DHT22温湿度传感器、HC-SR501人体红外传感器、光敏电阻模块、继电器模块这些是入门最常用的。有一个小东西很多人会忽略杜邦线。买传感器的时候通常会送几根但质量参差不齐建议单独买一包质量好一点的母对母和公对母杜邦线。接触不良是调试传感器时最常见的玄学问题很多时候换根线就好了。3. 从GPIO到MQTT智能家居的通信骨架3.1 GPIO直接控制最简单也最受限的方式树莓派最直接的硬件控制方式就是通过GPIO引脚。40个引脚里有26个是可编程的GPIO可以配置为输入或输出模式。用Python控制GPIO最简单的库是RPi.GPIO但现在已经推荐用gpiozero或者libgpiod。gpiozero的API更友好适合快速原型开发。比如控制一个LED灯from gpiozero import LED from time import sleep led LED(17) # GPIO17 while True: led.on() sleep(1) led.off() sleep(1)读一个按钮状态from gpiozero import Button button Button(2) # GPIO2 button.wait_for_press() print(按钮被按下了)GPIO直接控制的优点是简单、延迟低、不依赖任何外部服务。但缺点也很明显只能控制直接连在树莓派上的设备而且一旦树莓派重启所有状态都会丢失。所以GPIO适合做底层的传感器读取和执行器控制但不适合作为整个智能家居系统的通信架构。3.2 MQTT为什么成了智能家居的事实标准如果你只能学一个智能家居通信协议那一定是MQTT。它的设计哲学非常契合智能家居场景轻量、发布/订阅模式、支持一对多通信、断线重连机制完善。MQTT的核心概念就三个Broker代理、Publisher发布者、Subscriber订阅者。所有设备都连接到Broker发布者往某个主题Topic发消息订阅了该主题的客户端就会收到消息。设备之间不需要知道对方的存在完全解耦。举个例子温度传感器往home/livingroom/temperature这个主题发布当前温度Home Assistant订阅了这个主题就能实时显示温度。同时你还可以写一个Node-RED流程也订阅这个主题当温度超过30度时自动打开空调。传感器不需要知道谁在用它它只管发数据。在树莓派上安装Mosquitto Brokersudo apt install mosquitto mosquitto-clients sudo systemctl enable mosquitto sudo systemctl start mosquitto默认配置只允许本地连接如果要让局域网内其他设备连接需要修改配置文件sudo nano /etc/mosquitto/conf.d/default.conf加入listener 1883 allow_anonymous true注意allow_anonymous true只适合在完全可信的局域网内使用。如果你的网络里有不信任的设备一定要配置用户名密码认证。测试MQTT是否正常工作开两个终端窗口。第一个窗口订阅主题mosquitto_sub -h localhost -t home/test第二个窗口发布消息mosquitto_pub -h localhost -t home/test -m hello第一个窗口应该会显示hello。这就说明Broker跑起来了。3.3 用Python把传感器数据接入MQTT光有Broker还不够你需要把传感器数据发布上去。下面是一个DHT22温湿度传感器通过MQTT发布数据的完整示例import time import json import Adafruit_DHT import paho.mqtt.client as mqtt DHT_SENSOR Adafruit_DHT.DHT22 DHT_PIN 4 client mqtt.Client() client.connect(localhost, 1883, 60) while True: humidity, temperature Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN) if humidity is not None and temperature is not None: payload { temperature: round(temperature, 1), humidity: round(humidity, 1) } client.publish(home/livingroom/dht22, json.dumps(payload)) print(f已发布: {payload}) else: print(传感器读取失败) time.sleep(30)这段代码每30秒读一次传感器把温湿度打包成JSON发布到MQTT。用JSON格式的好处是扩展性强以后想加电池电量、信号强度等字段直接往字典里加就行不需要改主题结构。实际使用中有一个坑要注意DHT22的读取间隔不能太短官方建议至少2秒一次实际使用中30秒到60秒比较合适。读得太频繁会导致传感器发热湿度读数偏高。3.4 通信协议选型对比MQTT、HTTP、WebSocket怎么选协议适用场景优点缺点MQTT设备间实时通信轻量、省电、支持断线重连需要Broker不适合大文件传输HTTP设备主动上报、API调用简单、通用、调试方便轮询浪费资源实时性差WebSocket网页实时控制面板全双工、低延迟实现复杂度较高Zigbee低功耗传感器网络极省电、自组网需要网关开发门槛高BLE近距离配置和控制手机原生支持距离短不适合长期连接我的建议是MQTT作为主干HTTP作为补充。设备间的实时数据流走MQTT需要请求-响应模式的场景比如查询设备列表、触发固件更新走HTTP。这样既保证了实时性又保留了灵活性。4. 用Home Assistant把碎片拼成完整系统4.1 为什么选Home Assistant而不是自己写控制面板你完全可以自己用Flask或者FastAPI写一个Web控制面板但Home Assistant已经帮你解决了90%的重复工作设备接入、状态管理、自动化引擎、历史记录、用户界面、移动端App全部现成。Home Assistant最大的价值在于它的集成生态。官方和社区维护了上千个集成覆盖了几乎所有主流智能家居品牌和协议。你不需要为每个设备写驱动只要在配置文件里加几行设备就能出现在控制面板上。在树莓派上安装Home Assistant现在最推荐的方式是用Dockerdocker run -d \ --name homeassistant \ --privileged \ --restartunless-stopped \ -e TZAsia/Shanghai \ -v /home/pi/homeassistant:/config \ --networkhost \ ghcr.io/home-assistant/home-assistant:stable--networkhost让容器直接使用宿主机的网络这样Home Assistant可以自动发现局域网内的设备不需要额外配置端口映射。--privileged是为了让Home Assistant能访问树莓派的GPIO和USB设备。启动后访问http://树莓派IP:8123就能看到Home Assistant的初始化界面。第一次启动会引导你创建管理员账号、设置位置和时区。4.2 把MQTT设备接入Home AssistantHome Assistant内置了MQTT集成配置非常简单。在configuration.yaml里加入mqtt: broker: localhost port: 1883 discovery: true sensor: - platform: mqtt name: 客厅温度 state_topic: home/livingroom/dht22 value_template: {{ value_json.temperature }} unit_of_measurement: °C - platform: mqtt name: 客厅湿度 state_topic: home/livingroom/dht22 value_template: {{ value_json.humidity }} unit_of_measurement: %重启Home Assistant后控制面板上就会出现客厅温度和客厅湿度两个实体。value_template用了Jinja2模板语法从JSON payload里提取字段非常灵活。如果你有多个传感器手动写YAML会很繁琐。这时候可以用MQTT Discovery功能让传感器自己发布一条配置消息到homeassistant/sensor/xxx/config主题Home Assistant会自动创建对应的实体。这样新增传感器时完全不需要改Home Assistant的配置文件。4.3 自动化规则让系统自己动起来Home Assistant的自动化引擎是它最强大的部分。你可以用YAML写自动化规则也可以用图形化编辑器。下面是一个温度过高自动开风扇的自动化示例automation: - alias: 温度过高开风扇 trigger: - platform: numeric_state entity_id: sensor.ke_ting_wen_du above: 30 for: minutes: 5 action: - service: switch.turn_on target: entity_id: switch.fan mode: single这段配置的意思是当客厅温度连续5分钟超过30度时打开风扇。for: minutes: 5这个条件很重要它避免了温度瞬间波动导致的误触发。如果没有这个延迟温度在30度上下抖动时风扇会反复开关。更复杂的场景可以用Node-RED来做。Node-RED是一个可视化编程工具用拖拽节点的方式编排逻辑适合处理多条件、多分支的自动化。比如如果有人在客厅且光线暗且是晚上就开灯这种规则用Node-RED画出来比写YAML直观得多。4.4 远程访问的正确姿势很多人想让Home Assistant支持外网访问但直接端口映射到公网是非常危险的做法。Home Assistant的登录页面暴露在公网会面临大量的暴力破解尝试。安全的远程访问方案有几种第一种是虚拟局域网方案。在树莓派和你的手机/电脑之间建立一个加密隧道让远程设备看起来像是在同一个局域网里。这种方案不需要暴露任何端口到公网安全性最高。第二种是反向代理加HTTPS。用Nginx或者Caddy做反向代理配置SSL证书只暴露HTTPS端口。同时开启Home Assistant的登录失败锁定和双因素认证。第三种是使用Home Assistant Cloud。这是官方提供的付费服务按月订阅自动配置加密远程访问不需要自己折腾网络配置。对于不想折腾的用户来说是最省心的选择。不管用哪种方案都强烈建议开启双因素认证并且定期检查登录日志。智能家居系统一旦被入侵攻击者可以知道你什么时候在家、什么时候不在这是很严重的安全问题。5. 实战中那些文档不会告诉你的坑5.1 传感器读数的玄学问题DHT系列传感器是入门最常用的温湿度传感器但它的稳定性确实一般。我遇到过的情况包括读数偶尔跳到极端值温度显示80度、湿度长期偏高、读取失败率随使用时间上升。解决这些问题的经验加滤波不要直接用单次读数连续读3次取中间值或者用滑动平均。在MQTT发布之前做一次数据清洗。加电容在传感器的VCC和GND之间并联一个100nF的电容能明显改善读数稳定性。换传感器如果对精度要求高直接上SHT30或者BME280。SHT30是I2C接口比DHT22的單总线协议稳定得多价格也就贵几块钱。注意位置不要放在树莓派主板附近CPU的热量会影响温度读数。用杜邦线把传感器引出至少20厘米。5.2 树莓派SD卡损坏的预防和恢复SD卡损坏是树莓派用户最常见的灾难。智能家居系统需要7x24小时运行SD卡的写入频率很高尤其是Home Assistant的历史记录数据库频繁写入会加速SD卡老化。预防措施减少写入把Home Assistant的数据库改成MariaDB或者PostgreSQL跑在NVMe或者外接USB硬盘上。如果只能用SD卡把recorder的提交间隔调大比如改成每30秒提交一次。关闭不必要的日志在configuration.yaml里配置logger把不需要的组件日志级别调到warning。定期备份用Home Assistant的备份功能定期把配置和数据库备份到外部存储或者另一台机器。用A2级别的SD卡A2级别的卡针对应用性能做了优化随机读写性能比普通卡好很多。如果SD卡已经损坏不要急着格式化。先把卡插到电脑上用ddrescue或者TestDisk尝试恢复数据。很多时候只是文件系统损坏数据还在。恢复出来之后把系统重新烧录到新卡上再把配置恢复回去。5.3 网络稳定性对智能家居的影响智能家居系统对网络的依赖程度很高网络不稳定会导致设备离线、自动化失效、远程控制无响应。我踩过的网络相关的坑包括Wi-Fi信号弱树莓派放在弱电箱里Wi-Fi信号很差MQTT消息经常超时。后来拉了网线问题彻底解决。IP地址冲突路由器DHCP分配的IP和静态IP冲突导致树莓派间歇性断网。解决方法是在路由器里给树莓派绑定MAC地址和固定IP。DNS解析慢树莓派默认的DNS服务器响应慢导致Docker拉取镜像和系统更新很慢。改成223.5.5.5或者119.29.29.29之后速度明显提升。MQTT心跳超时默认的keepalive是60秒如果网络延迟高Broker会误判客户端离线。把keepalive调到120秒并且开启MQTT的遗嘱消息功能客户端异常断开时能及时通知。5.4 电源问题导致的诡异故障树莓派对电源质量很敏感。供电不足会导致各种奇怪的问题系统随机重启、USB设备识别不稳定、Wi-Fi断流、SD卡写入错误。树莓派5必须用官方27W电源这一点没有商量余地。树莓派4B虽然可以用普通5V 3A电源但要注意电压必须稳定在5.1V左右低于4.8V就可能出问题。如果你在树莓派上接了多个USB设备或者传感器总电流可能超过电源的承载能力。这时候需要用一个带外部供电的USB Hub或者用独立的电源给传感器供电。判断电源是否足够的一个简单方法在树莓派上跑vcgencmd measure_volts看核心电压是否稳定。如果电压波动超过5%说明电源有问题。6. 从能跑到好用系统优化和扩展思路6.1 用Docker Compose管理多个服务当你的智能家居系统跑起来之后树莓派上会同时运行好几个服务Home Assistant、Mosquitto、Node-RED、MariaDB可能还有Zigbee2MQTT。用docker run一个个启动太麻烦用Docker Compose可以把所有服务写在一个文件里统一管理。version: 3 services: homeassistant: container_name: homeassistant image: ghcr.io/home-assistant/home-assistant:stable volumes: - ./homeassistant:/config - /etc/localtime:/etc/localtime:ro restart: unless-stopped privileged: true network_mode: host mosquitto: container_name: mosquitto image: eclipse-mosquitto:2 volumes: - ./mosquitto/config:/mosquitto/config - ./mosquitto/data:/mosquitto/data restart: unless-stopped ports: - 1883:1883 nodered: container_name: nodered image: nodered/node-red:latest volumes: - ./nodered:/data restart: unless-stopped ports: - 1880:1880用docker compose up -d一条命令启动所有服务docker compose logs -f查看所有日志docker compose pull docker compose up -d更新所有镜像。比手动管理容器方便太多。6.2 本地语音控制的实现路径现在很多人想用语音控制智能家居但又不信任云端语音助手。本地语音控制的方案已经比较成熟了核心组件是Wake Word检测加语音转文字加意图识别。在树莓派上可以用openWakeWord做唤醒词检测用whisper.cpp做本地语音转文字然后通过Home Assistant的Conversation API执行命令。树莓派5的性能跑whisper的tiny或者base模型是够用的响应延迟在1到2秒左右。具体流程是麦克风持续采集音频openWakeWord检测到唤醒词比如嘿树莓后开始录音录音结束后送给whisper.cpp转成文字文字通过Home Assistant的API解析成设备控制指令。这个方案的好处是所有语音数据都在本地处理不需要上传到任何服务器。缺点是识别准确率受麦克风质量和环境噪音影响较大需要花时间调试。6.3 边缘AI在树莓派上跑YOLOv5做本地检测树莓派5的算力已经可以在本地跑轻量级的物体检测模型了。用YOLOv5的nano版本配合树莓派的摄像头模块比如OV5647或者更新的Camera Module 3可以实现本地的人形检测、宠物检测、包裹检测等功能。部署流程大致是把YOLOv5模型转成ONNX格式用ONNX Runtime在树莓派上推理。树莓派5上跑YOLOv5n输入分辨率640x640推理速度大概在每秒5到8帧做实时的人形检测够用了。检测到目标后通过MQTT发布事件到Home Assistant触发相应的自动化。比如检测到有人出现在门口自动打开门廊灯并发送通知到手机。这个方案最大的优势是隐私性视频流完全在本地处理不需要上传到任何云端。对于关心隐私的用户来说这是云端摄像头方案无法比拟的。6.4 系统监控和告警智能家居系统跑起来之后你需要知道它是否健康。CPU温度、内存占用、磁盘空间、服务状态这些都需要监控。一个简单的方案是用glances或者netdata做系统监控通过Web界面查看实时状态。更完善的方案是用Prometheus加Grafana把树莓派的系统指标和Home Assistant的传感器数据统一展示。告警方面可以写一个简单的Python脚本定期检查关键指标超过阈值时通过MQTT发布告警消息Home Assistant收到后发送通知到手机。比如CPU温度超过75度、磁盘使用率超过85%、某个传感器超过30分钟没有上报数据这些都应该触发告警。我自己的做法是在Node-RED里写了一个监控流程每5分钟检查一次所有传感器的最后上报时间如果有传感器超过预期时间没有上报就通过Telegram Bot发一条消息给我。这个简单的监控帮我发现了好几次传感器电池耗尽和Wi-Fi断连的问题。7. 关于学习路径和资源选择的一些个人建议回到《Linux树莓派玩转智能家居》这本书本身我觉得它最大的价值是提供了一个系统化的学习路径。网上关于树莓派和智能家居的教程很多但大多是碎片化的这篇讲怎么装系统那篇讲怎么接传感器另一篇讲怎么配Home Assistant。新手很容易陷入每个步骤都跟着做了但不知道整体是怎么回事的状态。这本书的好处是把Linux基础、树莓派硬件、传感器操作、通信协议、Home Assistant配置、自动化规则、系统优化串成了一条线。你可以按顺序读也可以根据自己的基础跳着读。第2版增加的Docker和边缘AI内容让这本书的时效性好了很多。如果你是完全的新手我的建议是先花一周时间熟悉Linux基本操作。不需要学得很深掌握这些就够了文件操作ls、cd、cp、mv、rm、权限管理chmod、chown、包管理apt、文本编辑nano或者vim基础操作、进程管理ps、top、systemctl、网络工具ping、ssh、scp。这些命令在书里都有涉及提前熟悉一下会让后续的实操顺畅很多。如果你已经有Linux基础可以直接从第3章开始边读边动手。智能家居这个东西看十遍不如做一遍。哪怕只是让一个LED灯通过MQTT被控制这个过程中你会学到的比看视频多得多。最后说一个我自己的体会智能家居DIY最大的乐趣不在于最后那个能用的结果而在于过程中你真正理解了每个设备是怎么工作的、数据是怎么流动的、系统是怎么协作的。这种理解带来的掌控感是买任何成品套装都给不了的。树莓派加Linux的组合恰好提供了一个成本可控、资料丰富、上限很高的平台让你可以按照自己的节奏去探索。
返回列表