技术支持

树莓派做物联网网关 BerryNet:如何在树莓派上实现深度学习智能网关

小编 2024-11-24 技术支持 23 0

BerryNet:如何在树莓派上实现深度学习智能网关

选自Github

机器之心编译

参与:蒋思源

该项目在树莓派 3 上使用深度学习使其成为一个智能网关。该设备并不需要联网,所有的训练和调试等都在树莓派 3 本地完成。在 DT42,我们相信将深度学习应用于便捷设备在未来是一个大趋势。因为这样不仅能节省数据传输和储存的成本,而且还能在无需连接云端的情况下使设备根据图像或视频中显示的事件进行响应。

项目地址:https://github.com/DT42/BerryNet

图1

图 1 展示了该项目的软件架构,我们使用 Node.js、MQTT 和 AI 引擎对图像或视频帧进行深度学习。到目前为止,该系统由两个人工智能引擎提供支持,即分类引擎和目标检测引擎。图 2 展示了分类和目标检测之间的差别。

图2

该智能网关的一个应用就是使用相机监测你想关注的地方。如图 3,其显示了 DT42 办公室摄像头的分析结果。这些视频帧由 IP 相机捕捉,并将其发送到人工智能引擎。人工智能引擎的输出结果将显示在主控面板中。我们正在处理邮件和 IM 通知接口,因此当 IP 摄像头捕捉到目标(如狗),系统将采用邮件或其他形式通知用户。

图3

人工智能引擎

目前支持的人工智能引擎利用了以下几个项目的研究:

TensorFlow

Darkflow

Darknet

该系统目前支持的分类模型为 Inception v3,目标检测模型为 TinyYOLO。

安装

$ git clone https://github.com/DT42/BerryNet.git

$ cd BerryNet

$ ./configure

开始和停止 BerryNet

BerryNet 由系统(systemd)控制,你可以通过 berry-manager 控制 BerryNet:

$ berrynet-manager [start | stop | status | log]

配置

所有配置都在 config.js 中:

选择人工智能引擎

目前有两种类型的人工智能引擎:目标分类和目标检测。

配置 IP 相机快照的访问接口

MQTT topics

主控面板

在树莓派 3 上打开主控面板(通过触摸屏)

打开浏览器并输入统一资源定位符:http://localhost:8080/index.html#source=dashboard.json

主控面板默认配置文件将会加载。

在任意电脑的浏览器上打开主控面板

打开浏览器并输入统一资源定位符:http://:8080/index.html#source=dashboard.json

点击数据源,并将 MQTT 代理的 IP 地址更改为网关的 IP 地址。

如要获得更多详细的主控面板配置信息,请参考 freeboard 项目:https://github.com/Freeboard/freeboard

提供图像输入

通过 Pi 相机捕捉图像

$ mosquitto_pub -h localhost -t berrynet/event/camera -m snapshot_picam

通过配置 IP 相机捕捉图像

$ mosquitto_pub -h localhost -t berrynet/event/camera -m snapshot_ipcam

提供本地图像

$ mosquitto_pub -h localhost -t berrynet/event/localImage -m <image_path>

讨论

如果对该项目的疑惑、建议或任何创意,都可以在该项目谷歌论坛讨论:https://groups.google.com/a/dt42.io/d/forum/berrynet。

树莓派可以用作 Wi-Fi 接入点?8个步骤即学会

问:如何在树莓派以及流量测量( NAPT 模式)上构建Wi-Fi 接入点

物联网 ( IoT ) 是一种利用网络上产品的互连性的技术,通过使用传感器和摄像头图像实现数据交换和产品远程控制。随着物联网的采用不断扩大,对网络通信(通常称为流量)有更深入了解的需求日益增长。这些信息对于确定网络的容量和使用情况至关重要,因为一旦知道了流量,以下内容就变得清晰起来:

全面使用所需的通信速度和带宽商业研究中预估的现收现付网络使用量

流量可以根据传感器和产品规格来计算,但在加密和系统集成期间产生的开销可能会导致这些因素的显著变化。彻底的测量是贴近实际的最佳方式,但如果传感器或摄像头侧没有流量测量机制,甚至可能无法实现。

因此,在本项目中,我们将介绍一个系统,其中 树莓派 用作Wi-Fi 接入点,在测量流量的同时中继来自传感器和摄像机的流量。

首先,我们必须在树莓上安装‘hostapd'软件,可以使网络接口卡充当接入点和身份验证服务器,并配置其无线 LAN 接口(wlan0) ,使其被接受为Wi-Fi接入点。确保使用有线 LAN ( eth0 ) 与 Internet 端通信。

通过 Wi-Fi 使用 dnsmasq 进行IP 地址分配 ( DHCP ) 连接到树莓的产品,和使用 nftables 进行地址转换 ( NAPT ) 通过树莓來通信。然后我们将使用 pmacct 来测量通过无线 LAN 接口的流量。

通过使用 NAPT,即使许多物联网产品连接到无线网络侧,它们也可以使用分配给有线网络侧的单个IP地址进行通信,其优点是最大限度地减少对现有环境的影响。

除了 NAPT 模式之外,还有用于构建接入点的桥梁模式,架构几乎相同。

使用树莓派( NAPT模式 )构建 Wi-Fi 接入点的步骤

让我们实际构建它。大概需要30分钟。

我们使用的是树莓派 3 model B+。你可以使用同时具有无线局域网和有线网络的任何型号,但我们推荐model 3或4。

01 树莓派Imager编程时的设置

树莓派 Imager 是一个流行的工具,用于安装树莓派操作系统,包括 Lite 版本(64位)。

编程时的设置如下:

项目

配置示例

注意

主机名

hostapd-napt

可选

SSH

使能

认证方式可选。公钥认证需要SSH密钥。如果你对此没有准备,请选择密码身份验证。

用户名和密码

FooBar -User name= hostapdPassword = FooBar

可选项。特别对于密码,请指定不可预知的字符串。使用密码生成工具也是有效的。

Wi-Fi

无设置

语言环境设置

us – Timezone = Asia/Tokyo Keyboard Layout = us

可选项推荐

02 从树莓的有线网络检查互联网连接

将电缆插入树莓的有线网络端口( eth0 ),并确保它可以连接到Internet。下面的任务也可以通过 SSH 远程访问来工作。

03 第一次启动后更新 OS

启动树莓派 OS 后,请首先更新安装软件和库。重启完成更新。

04 通过 dhcpcd 禁用 wpa_supplicant 激活并为 wlan0 分配固定 IP 地址

wpa_supplicant是连接到 Wi-Fi 接入点时通过身份验证( WPA )的软件。在这种情况下,由于树莓本身将是一个 Wi-Fi 接入点,因此该软件在运行时会引起冲突,因此它将被停止。同时,为无线 LAN 接口( wlan0 )分配固定的IP地址。

我们将地址 10.0.2.254 用于 wlan0。基本上,让它保持原样没有问题,但如果它与 eth0 侧的网络冲突,请更改。

确认使用以下命令确认上述配置已完成

05 hostapd 用于 Wi-Fi接入点

hostapd是一个 Wi-Fi接入点服务器软件。该软件允许树莓派的无线局域网接口充当 Wi-Fi 接入点。这里设置 SSID = TESTWLAN0, password = Aihei2oB。你可以根据自己的需要修改这些设置。

确认使用以下命令确认上述配置已完成。

06 dnsmasq DHCP 服务器

dnsmasq是轻量级的 DNS/DHCP 服务器软件。此时通过DHCP功能为连接到 Wi-Fi 接入点的产品分配 IP 地址。

分配的IP地址范围为 10.0.2.100 ~ 10.0.2.109 之间的10个地址。另外,DNS 服务器分别是 Google 和 Cloudflare 运营的公共 DNS 服务器地址,用于分发。地址和 DNS 服务器的数量都应该保持原样,但是如果你需要更多的 IP 地址或你的组织应该使用的 DNS 服务器地址,请更改它们。

确认使用以下命令确认上述配置已完成。

07 nftables 用于 NAPT 网关

nftables是一个 IP 包过滤中间件,它集成了 iptables等。在本例中,它用于在 wlan0 和 eth0 之间的通信中应用地址转 换( NAPT )。我们还启用了net.ipv4.Ip_forward 允许 wlan0 和 eth0 之间的通信。

确认使用以下命令确认上述配置已完成。

08 尝试连接到树莓派内置的 Wi-Fi 接入点

现在你已经构建了树莓派作为 Wi-Fi 接入点,让我们尝试从智能手机或 PC 连接到使用树莓派构建的 Wi-Fi 接入点。

连接后,检查是否可以查看https://ifconfig.io等工具网站。

使用 pmacct 进行流量测量

pmacct 是一款流量测量软件。例如,下面将允许你测量通过配置为 Wi-Fi 接入点的 wlan0 接口的流量(流量)。

每隔10秒,将向屏幕输出以下内容。

从 10.0.2.100 (=检查使用的智能手机)到 1.1.1.1.1 或8.8.8.8.8 的通信被设置为DNS服务器,此时的通信量以包数和字节数计算。利用这个,就有可能掌握通信量。

这里我们只是在屏幕上显示数据,但pmacct还支持在数据库(如 SQLite )中存储数据。具体操作请参见在 SQLite中保存流量测量工具“ pmacct ”的结果。

未来操作-以稳定的树莓派操作为目标

虽然我们能够将树莓派变成 Wi-Fi 接入点,但我们希望快速运行这种事情,并且只在验证期间运行。因此,请考虑“一个仅通过打开和关闭电源来运行的系统”作为稳定运行树莓派的一种方式。

用于检查蜂窝通信流量的 Soraom Peek

除了 Wi-Fi, LTE 和 5G 等蜂窝通信也用于物联网。在这种情况下,请使用 Soracom Peek,它可以在Soracom 平台上捕获 IP 数据包。

Soracom Peek 可以以 SIM (=通信线)或 VPG (=网络)为单位进行捕获,格式为 pcap 格式,可以通过 Wireshark 等标准包分析工具进行分析。

结束的话

估计通信量对于全面使用物联网至关重要。尤其是现在,摄像头的使用往往会增加通信量。通过至少进行一次测量并确认所需的通信速度和带宽,将有可能构建稳定的物联网系统。

这是可以实现的,同时保持低成本,所以一定要利用它。

最后,如果你喜欢这篇文章,快分享给更多的小伙伴吧! 切记点个赞哦!

相关问答

小米多模智能网关绑不了homekit?

一.获取网关基本信息获取网关的MAC地址作为网关名称,以及获取网关的局域网通讯协议密码。二.配置树莓派环境配置树莓派开发环境,并将第一步获取的网关MAC...

能不能把私人家用电脑配置成一个网络服务器?

已阿里云为例,阿里云好像是65块钱一个月,1核1G内存40G硬盘,有公网IP,1M的带宽,大概是这个价吧(9.9那是学生机,要学生证,配置跟这个差不多)。既然说到一...我们...

单片机会被淘汰吗?

单片机不会被淘汰。就像当年更高性能的单片机出来后,一直都有人说51单片机会被淘汰,可是我们看到,51单片机不但没有被淘汰,反而活的有滋有味。就像提问里说...

电脑如何共享打印机?

以佳能PIXMAMP145多功能一体机(隶属于CanonMP140系列中的一款)为例说明,这是一款不具备网络功能的一体机,但是,通过连接一台电脑后,然后做相应的设置后能...

猜你喜欢