当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]ZimaBoard 2 是一款基于 Intel N150 处理器的单板服务器/迷你电脑,配备 4 个主频为 3.60 GHz 的 CPU 核心、8GB 或 16GB 内存以及 32GB 或 64GB 内置 eMMC 存储。在连接性方面,它拥有两个 2.5G 以太网端口、两个 USB 3.1 端口、一个支持 4K 的 Mini-DisplayPort 端口、两个 SATA 端口以及一个 PCIe 3.0 扩展插槽。

在本项目中,我将基于ZimaBoard 2单板计算机,介绍一款低功耗的边缘AI/物联网开发服务器。

服务器具备以下功能:

•容器化应用的 Docker 配置

•用于机器学习/人工智能/IoT开发的Jupyter Lab安装

•基于 UFW 的安全防火墙设置

•专为物联网设备设计的以太网,具备流量监控和过滤功能

•专用于物联网设备的WiFi网络,支持客户端隔离

ZimaBoard 2 是一款基于 Intel N150 处理器的单板服务器/迷你电脑,配备 4 个主频为 3.60 GHz 的 CPU 核心、8GB 或 16GB 内存以及 32GB 或 64GB 内置 eMMC 存储。在连接性方面,它拥有两个 2.5G 以太网端口、两个 USB 3.1 端口、一个支持 4K 的 Mini-DisplayPort 端口、两个 SATA 端口以及一个 PCIe 3.0 扩展插槽。

与树莓派5及其他基于ARM的单板计算机相比,ZimaBoard 2在性能和应用程序兼容性方面表现更优(得益于x86架构),同时在10W TDP功耗下仍能保持较低的能耗。

机箱采用铝制外壳,配备电源、SATA数据线和电源线组合接口,以及可选配的小型散热风扇。

ZimaBoard包装的一个优点是,如果使用双固态硬盘配置,其中一部分可以作为支架使用:

ZimaBoard 2 还可选购多种套装。IceWhale Technology 发送给我 ZimaBoard 2 Mini Nas 套装,内含双盘位硬盘架以及 PCIe 至双 NVMe M.2 SSD 转接器。该套件可用于构建配备两个硬盘、NVMe SSD 或其他 M.2 设备的迷你服务器:

本次构建中,我使用了一块NVMe固态硬盘和两个较旧的机械硬盘作为数据存储。

注意:IceWhale Technology 为本项目免费提供了 ZimaBoard 2 NAS 套件。您可使用折扣码 tokes_atti15 在订购 ZimaBoard 2 时享受 15 美元优惠。

基本设置

ZimaBoard 2 预装了 ZimaOS,这是一款专为网络附加存储(NAS)设计的操作系统。ZimaOS 提供网页界面,并专注于 NAS 特有的功能,例如磁盘管理、云备份以及一系列容器化应用程序。

ZimaOS 提供了不错的整体体验,似乎是用于 NAS 和基础家庭服务器的优质解决方案。不过需要指出的是,ZimaOS 不是开源的,且部分功能需要付费许可。

为了获得更大的灵活性,我决定在该设备上安装 Ubuntu Server 26.04(LTS)。由于 ZimaBoard 2 是基于 x86 架构的系统,安装 Ubuntu 的过程相当简单:从官方网站下载 ISO 镜像,将其写入 USB 闪存盘,然后从该 USB 启动,将操作系统安装到内置的 eMMC、专用的 NVMe 或 SATA 硬盘上。

安装过程中我们需要显示器、键盘和鼠标,但安装完成后,我们可以设置SSH远程控制机器。

启用防火墙

Ubuntu Server 的默认安装未启用防火墙。从安全角度来看,这并不理想,因为运行的任何应用程序都会自动暴露在互联网上。为了避免这种情况,我们需要使用防火墙来限制网络流量,只允许我们所需的访问。

作为我们的防火墙,我们将使用 Ubuntu 标准的 UFW(Uncomplicated Firewall)。安装时请运行:

这将启用防火墙,仅允许SSH通过22端口的流量。

稍后我们将调整防火墙规则,以控制对各种应用程序和设备的访问。

Docker 容器化

直接在主机上安装编译器、开发框架等各类组件,很容易导致系统混乱。因此,我们将大部分配置工作使用容器来完成。这样可以确保配置的可重复性,并保持主机操作系统相对干净。

我们使用 Docker Engine 进行容器化。可以通过官方安装脚本在 Ubuntu 上安装:

要检查 Docker 是否正常运行,我们可以运行官方的 Hello World 应用程序:

Docker 安装的一个问题是,默认情况下容器会绕过我们设置在 UFW 中的防火墙规则。为了解决这个问题,我们可以使用 ufw-docker,这是一个小型工具,可解决 UFW 与 Docker 的兼容性问题。以下是安装方法:

这将使容器暴露的端口默认处于隔离状态。要允许外部流量访问容器,我们可以使用 ufw-docker 命令:

我们还可以将配置与容器管理界面(如 Portainer)进行连接。我们可以按照官方文档中的说明,将 Portainer 本身作为容器运行;或者,如果已经安装了 Portainer(就像我所使用的那样),则可以使用 Portainer Edge Agent 将我们的新主机与它连接起来。一旦连接成功,我们就可以通过一个直观的用户界面来管理我们的容器化应用程序:

Nginx 作为应用代理

我们可以通过多种方式让应用程序在服务器上运行时可被访问。最简单但安全性较低的方法是直接使用 sudo ufw allow 命令打开防火墙端口。

为了安全地暴露我们的应用程序,我们将使用 Nginx 作为 HTTPS 代理,并配置自定义域名(例如 app.com)。为此,我们需要先获取域名,可以是免费的子域名(如 DuckDNS)或从网上购买的域名。获得域名后,我们应将服务器的本地 IP 地址指向该 DNS 名称,然后通过通配符 SSL 证书,在 HTTPS 子域名下安全地公开我们的应用程序。在生成 SSL 证书方面,我倾向于使用 Let's Encrypt,因为它免费且可以通过 CertBot 自动化续期。

我们将使用 apt 直接在主机操作系统上安装 nginx:

默认安装将在 HTTP 端口 80 上启动一个 Web 服务器。我们将将其更改为安全的 HTTPS 端口 443,并按以下方式配置应用代理:

重启后,我们应能看到 nginx 在 443 端口启动,并可通过防火墙将其暴露给本地网络:sudo ufw allow in on enp1s0 to any port 443 proto tcp

之后,我们就可以通过类似 .com 的域名访问我们的应用程序了。

安装 Jupyter Lab

Jupyter Lab 是一个非常适合 AI、机器学习和数据科学项目的基于网页的集成开发环境。它可以通过官方的 Docker 镜像在容器中运行。我选择了 datascience-notebook 镜像,其中已预装了 Conda 以及若干 Python、R 和 Julia 库。

它的Docker compose配置大致如下:

为了查看我们的Jupyter Lab安装是否正常,我们可以创建(或下载)并尝试运行一个示例。我使用了来自GitHub的sealion库中的一个示例:

另一个值得设置的是某种隔离机制,以确保我们的项目、框架或应用程序能够在一个稳定的环境中运行:

?对于Python项目,Jupyter Lab镜像已预装Conda,可用于高效创建各种项目的独立环境。

•对于嵌入式框架、编译器等其他项目,使用专用的Docker容器可能更为合适。

物联网设备的网络隔离

ZimaBoard 2 配备两个 2.5G 以太网端口,可用于多种用途。此外,还可通过 USB 调制解调器添加 WiFi 连接。

对于本次构建,我决定按以下方式设置网络:

•以太网端口1 - 用作主网络端口,提供互联网连接和网络访问

•以太网端口2 - 为物联网设备提供隔离网络

•Wi-Fi适配器——为无线物联网设备提供专用接入点,实现独立网络运行

设置基本的网络/互联网连接非常简单。我们只需在Netplan配置中将端口2设为可选,这样即使不连接网线,板子也能通过端口1启动:

在Port 2上,我们将设置一个隔离的网络,以便监控和调试物联网设备。这有助于了解各种物联网设备之间的连接情况、它们产生的流量类型,以及它们在受限网络环境中的行为表现。

相同的监控设置也可以在专用WiFi网络上复制,同时支持无线物联网设备。

孤立的物联网设备的网络架构工作方式如下:

•使用以太网端口2和专用Wi-Fi适配器,为不可信设备提供隔离的有线和无线网络。

•PiHole 将用作网络的 DHCP 和 DNS 服务器

•UFW防火墙规则将用于为物联网设备提供互联网访问,同时阻止对本地网络的访问。

•将使用 ipset 与 PiHole 的 DNS 服务器结合,以阻断或控制流量

ntopng 用于网络监控

作为此配置的基本构建模块,我们需要在主机上准备一些基础设施:

•在 NetPlan 配置中,应为有线网络(ens2s0)和无线网络(br-iot-wifi)配置两个接口。

•对于无线接入点,我们需要创建一个包含SSID、密码和其他设置的hostapd配置文件。

•在UFW配置文件中,我们为隔离网络配置路由规则。

作为隔离网络的DHCP和DNS服务器,我使用了运行在容器中的PiHole安装。PiHole提供以下功能:

•它充当DHCP服务器,为有线网络(192.168.10.x)和无线网络(192.168.11.x)提供IP地址。

•它充当DNS服务器,为网络中的主机名提供IP解析服务。在此过程中,我们还可以使用它来允许或阻止访问特定网站或服务器的流量。

为了进一步增强安全性,我们还可以设置:

•避免使用非PiHole的DNS服务器进行DNS捕获

•基于IP的访问控制,结合PiHole(dnsmasq)集成,仅允许连接到预先配置的网站/服务器

•在WiFi和以太网网络上隔离客户端(需要使用管理型交换机)

注意:示例配置文件和详细指南可在项目的 GitHub 仓库中找到。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

INA228在三次运行中报告了多种数值。与其它厂商的电源大多保持稳定的情况不同,MX3的电源读数持续上升。第一次运行时达到约11.0 W,第二次约为11.4 W,第三次约为12.1 W。这种上升很可能是因为每次运行期间芯...

关键字: 边缘AI 电源 INA228

边缘AI设备通常受限于其内置的计算能力。Seeed Studio reComputer RK3576搭载了Rockchip的RK3576处理器,配备了一颗性能不错的6 TOPS NPU。然而,在运行YOLOv11n进行视...

关键字: 边缘AI 处理器 RK3576

W55MH32L-EVB 是一款高性能评估板,搭载 W55MH32L 微控制器,专为工业和物联网应用而设计。其核心采用 32 位 Arm® Cortex®-M3 处理器,最高运行频率可达 216MHz,配备 1024KB...

关键字: 评估板 物联网 处理器 W55MH32L-EVB

BACnet 是一种国际标准的楼宇自动化通信协议,可使来自不同制造商的设备(如供暖、通风、空调、照明和安防系统)能够相互通信。目前的 BACnet 系统通常使用以太网作为传输介质(BACnet/IP),而较早的系统则通常...

关键字: 服务器 开发板 楼宇自动化 ESP32

物联网正进入下一个增长阶段。行业预测显示,到2034年,联网的物联网设备数量将从2024年的177亿台增至超过400亿台,这主要得益于工业自动化、农业、公用事业、环境监测、物流和智能基础设施等领域快速普及。随着这些部署扩...

关键字: 物联网 太阳能 BQ24650

【2026年7月4日, 中国上海讯】7月1日至3日,全球功率系统和物联网领域的半导体领导者英飞凌科技携微控制器、功率半导体、传感器等系列创新产品亮相2026慕尼黑上海电子展,呈现了其在AI数据中心基础设施、机器人、软件定...

关键字: AI数据中心 机器人 边缘AI

在低功耗物联网场景中,Wi-Fi与蓝牙双模设计兼顾了高速数据传输与近距离便捷交互,广泛应用于智能家居、工业传感、便携监测设备等领域。但双模射频共存、高频唤醒、无效通信等问题,极易造成功耗冗余,大幅缩短电池续航。物联网设备...

关键字: 物联网 数据传输 电池

Beetle ESP32C6 是一款小巧的高性能处理器,将 WiFi 6、BLE、Thread、ZigBee 和 Matter 支持集成于紧凑的外形之中。在这个项目中,我将其与 DHT11 温湿度传感器和 0.9 英寸...

关键字: 物联网 WiFi 6 温湿度传感器 Beetle ESP32C6

我想创建一种无需亲自坐在电脑前即可远程监控电脑性能的方法。无论我正在运行资源密集型任务、玩游戏,还是仅仅想查看系统状态,这款设备都能让我通过任何有网络连接的地方,实时获取CPU、GPU、RAM和SSD的性能数据。

关键字: 智能家居 CPU GPU 物联网

Heat Guard 是一款紧凑型实时热指数监测设备,通过实时追踪温度和湿度,帮助您防范潜在的隐形热危害。HeatGuard 是一款基于物联网的先进温湿度监测系统,采用 WEMOS D1 Mini、DHT22 传感器以及...

关键字: 物联网 DHT22 传感器 WEMOS D1 Mini
关闭