如何为 Arduino MKR WAN 1310 设计一款专业级别的印刷电路板防护罩
扫描二维码
随时随地手机看文章
该项目是于亚眠大学拉萨莱分校计算机工程专业第四学年期间开发的。我们的主要目标是设计并构建一个可靠、完整的物联网监测解决方案——实现从物理信号采集到高级云端软件处理之间的无缝衔接。
在嵌入式系统领域,硬件的可靠性是任何软件成功的基础。本项目旨在为 Arduino MKR WAN 1310 设计一款专业级别的印刷电路板防护罩,以确保稳定的数据传输、安全的无线通信以及直观的用户交互。
最终成果是一个完全具备功能的 LoRaWAN 连接设备,它能够将实时的课堂活动信息传输至 The Things Network(TTN)平台,并向定制的软件仪表板提供数据。
用例:智能教室管理
该系统的实际应用是“智能课堂管理”。该设备充当了教育环境中的物理控制器,使教师或主持人能够无需触碰电脑即可与数字平台进行交互。
触觉交互:PCB 上的三个物理按钮各自触发特定的课堂操作——例如,启动投票、标记学生的提问、或者切换课程状态。
视觉状态:三颗集成式 LED 灯会即时提供本地反馈,表明操作已被记录并成功传输至网络。这使得用户始终能与软件保持同步。
无线传输:每次按键操作都会被编码为 LoRaWAN 数据包,并通过 OTAA 技术上传至 TTN,从而确保了安全性和可靠性。
双支柱工程方法
为了打造出一个可投入实际使用的系统,我们采用了双领域开发策略,该策略体现了现实世界中嵌入式系统的开发流程:
硬件与嵌入式系统
我们使用 KiCad 软件从零开始设计了一款定制的印刷电路板防护罩,涵盖了元件选择、原理图绘制、电路板布局以及低级的 Arduino 程序开发等环节。每一个设计决策——从电阻值到引脚分配——都是在考虑信号完整性、电源预算以及程序清晰度的情况下做出的。
软件解决方案
我们开发了一个专门的软件平台,用于接收、解码并可视化来自硬件通过 TTN 传输的数据流。该平台提供了一个实时的仪表板,能够实时反映新事件发生时教室的状态。
硬件
设计概览
该印刷电路板屏蔽层完全是在 KiCad 软件中设计完成的,其主要针对三个工程方面的要求:信号完整性、低功耗以及与 Arduino MKR 设备形态相匹配的最小封装尺寸。
该防护罩通过两个 14 针插头与 Arduino MKR WAN 1310 连接,能够提供电源和 GPIO 接口,无需任何额外的布线。
组件选择与设计决策
用户输入 — 3 个触觉开关
三个瞬时按钮作为主要的输入接口。每个开关都与一个专用的数字 GPIO 引脚相连,并共用一个公共地轨——这一精心的布线选择旨在降低 PCB 轨迹的复杂性,并简化固件的输入轮询逻辑。
视觉反馈 — 3 个带有限流电阻的发光二极管
三个发光二极管(每个按钮一个)能够实时显示系统事件的视觉信息。限流电阻 R1、R2 和 R3 的阻值均设定为 1 千欧。
在 Arduino MKR WAN 1310 的 3.3 伏逻辑电平下,每个 LED 所产生的电流为:I = V / R = 3.3 伏 / 1000 欧姆 ≈ 3.3 毫安
此值能为教室环境提供足够的 LED 光亮度,同时又完全符合 MKR 每个引脚 GPIO 的电流限制(典型值为 7 毫安,最大值为 10 毫安)。在完全激活状态下,LED 的总耗电量约为 9.9 毫安——对电源轨而言是一个微不足道的负载。
系统互连性 — 14 针接口卡
该板使用了两个 14 针的接头,它们与 Arduino MKR WAN 1310 的引脚排列完全对应。第 12、13 和 14 号引脚被选作输入和输出功能之用。这种对称的分配方式形成了一个逻辑清晰、易于预测的引脚布局,使得固件更易于阅读、调试和扩展。
引脚映射
3D 模型
该 3D 模型是在 KiCad 软件中直接生成的,用于在制造前验证设计。建模阶段有三个具体目标:
1. 尺寸验证:确认防护罩的顶部间距和尺寸与 Arduino MKR WAN 1310 完全一致。
2. 组件间隙检查:确保引脚孔组件、接插件以及下方的 Arduino 板之间不存在任何机械冲突。
3. 装配说明:为焊接过程中元件的放置提供直观的参考依据。
固件
架构与职责
该固件运行在 Arduino MKR WAN 1310 上,作为连接物理用户与 TTN 云平台之间的首个智能层发挥作用。其四项核心职责为:
1. 按钮状态监测:持续监测三个 GPIO 输入引脚的状态变化。
2. 数据包编码:在检测到按钮被按下时,生成一个紧凑的 LoRaWAN 数据包,用于标识触发的按钮。
3.LoRaWAN 上行链路:通过 EU868 频段使用 MKRWAN 库将数据包发送至 TTN。
4.本地反馈管理:驱动相应的 LED 来确认传输成功或发出故障信号。
LoRaWAN 连接性与 OTAA 安全性
该设备通过“空中激活”(OTAA)的方式接入 LoRaWAN 网络。之所以选择这种认证方式而非 ABP(个性化激活),是因为其具备更高的安全性:
每次加入时,终端设备与网络服务器之间都会进行双向认证。
每次加入过程都会进行会话密钥的更新,以此来防止重放攻击。
采用 AES-128 加密技术对上行链路进行加密,确保空中传输中的数据内容机密性。
这三项必需的凭证(“appEUI”、“devEUI”、“appKey”)被存储在单独的“arduino_secrets.h”文件中,该文件未纳入版本控制范围。
工作周期符合性 — 欧洲标准 868
欧盟868频段的 LoRaWAN 频段对所有传输设定的最大功耗周期为 1%。为了遵守这一规定并防止网关出现数据洪流现象,该固件会在每次上行传输后强制添加 3 秒的保护延迟:
这个防护装置还具有实用的用户体验功能:它能防止因长时间按压按钮而导致的意外重复传输。
用户反馈循环
该固件采用了简单但有效的本地反馈机制:
TX 成功 → 按下按钮对应的 LED 灯会亮起一段设定的时间。
传输错误 → 同一指示灯会以错误的模式闪烁,以此向用户发出消息未送达的警报。
这种反馈循环能让用户实时了解系统网络的可靠性,而且无需访问软件控制面板即可实现。
源代码
完整的固件源代码可在该仓库的“firmware/”目录中获取。它是使用 Arduino IDE 构建的,并依赖于 MKRWAN 库(≥ v1.1.0)
结论
该项目成功展示了完整的物联网开发流程——从定制的印刷电路板设计到云连接的软件平台——这一过程是在学术工程课程的限制条件下完成的。该系统运行可靠、符合规定,并且能够在实际的课堂环境中部署,所需基础设施极少(只要在覆盖范围内有一个 LoRaWAN 网关即可)。
这种双支柱模式证明是有效的:由于有了明确界定的 LoRaWAN 数据包协议作为接口界限,硬件团队和软件团队能够独立开展工作。
本文编译自hackster.io





