π节谈Raspberry Pi:树莓派的9个有趣的应用

嵌入式ARM 2019-03-14 17:27


今天,世界各地的技术团队一些人将会过这个极其特殊的节日——π节(圆周率日)。3月14日(在美国写成3/14)被称为Pi Day,这是一个人们在馅饼吃比赛,披萨派对和数学双关语中度过的假期。3月14日也恰好是阿尔伯特爱因斯坦的生日,同时也是Linux内核1.0.0的发布纪念日,另外还是Eli Whitney为棉花申请专利的那一天杜松子酒。

今天是π节的第30个周年纪念日。第一次是1988年在旧金山的物理学家Larry Shaw在Exploratorium举行的。“在第一次π节,工作人员带来了水果馅饼和茶壶庆祝活动,直至时间在1:59 - 跟随3.14的pi数字 - 肖在博物馆周围进行了一次圆形游行,他的音箱将pi的数字咆哮成“Pomp and Circumstance”的音乐。“直到21年后,2009年3月,Pi日成为美国的官方国定假日。


尽管它始于旧金山,但在普林斯顿大学可以找到最大的π节庆祝活动之一。该镇在为期五天的活动中举办了许多活动,包括爱因斯坦相似的比赛,一场投掷馅饼的活动以及一场pi背诵比赛。有些活动甚至为获胜者提供314.15美元的现金奖励。



据了解,麻省理工学院斯隆管理学院(Twitter@MITSloan)正在庆祝π节。嵌入式工程师其实也有着π中法宝——树莓派,下面让我们来看一些树莓派的有趣妙用。


媒体中心


Raspberry Pi在人们家中最常见的用途之一是支持多媒体文件的电视运行媒体中心软件。设置它很容易,Raspberry Pi提供了大量的GPU(图形处理器)功能,可以将高清电视节目和电影呈现给大屏幕电视。Raspberry Pi上的Kodi(以前称为XBMC)是播放硬盘或网络附加存储上的任何媒体的绝佳方式。您还可以安装插件来播放YouTube视频。


有几种不同的选择,最突出的是OSMC(开源媒体中心)和LibreELEC,两者都基于Kodi。它们在播放媒体内容方面表现良好,但OSMC具有更具视觉冲击力的用户界面,而LibreElec则更轻巧。您所要做的就是选择一个发行版,下载图像并安装在SD卡上(或者只使用NOOBS),启动它,然后就可以开始了。



SSH网关


如果您希望能够通过Internet从外部访问家庭网络上的计算机和设备,则必须在这些设备上打开端口以允许外部流量。打开互联网端口存在安全风险,这意味着您始终面临攻击,滥用或任何未经授权的访问风险。但是,如果您在网络上安装Raspberry Pi并设置端口转发以仅允许SSH访问该Pi,则可以将其用作安全网关以跳转到网络上的其他Pis和PC。


大多数路由器允许您配置端口转发规则。您需要为您的Pi提供固定的内部IP地址,并在路由器上设置端口22以映射到Raspberry Pi上的端口22。如果您的ISP为您提供静态IP地址,您将能够使用此作为主机地址进行SSH连接(例如,ssh pi@123.45.56.78)。如果您有域名,则可以将子域配置为指向此IP地址,因此您不必记住它(例如,ssh pi@home.mydomain.com)。



但是,如果您要将Raspberry Pi暴露给互联网,您应该非常小心,不要让您的网络面临风险。您可以遵循一些简单的程序来确保其足够安全:


1.建议更改你的登录密码(这是有道理的,因为默认密码“raspberry”是众所周知的),但这并不能防止暴力攻击。您可以更改密码并添加双因素身份验证(因此您需要密码和手机生成的时间相关密码),这样更安全。但是,我认为保护Raspberry Pi免受入侵者攻击的最佳方法是禁用“密码验证”在SSH配置中,因此您只允许SSH密钥访问。这意味着任何试图通过猜测密码进入SSH的人都不会成功。只有您的私人SSH密钥才能获得访问权限。同样,大多数人建议将SSH端口从默认的22更改为意外的,但是IP地址的简单Nmap将显示您真正的SSH端口。


2.理想情况下,不会对这个Pi上的其他软件造成太大影响,所以你最终不会意外地暴露任何其他东西。如果您想运行其他软件,您可能最好在未暴露于互联网的网络上的另一个Pi上运行它。确保通过定期升级(特别是openssh-server软件包)使软件包保持最新,以便修补任何安全漏洞。


3.安装sshblack或fail2ban以将任何似乎恶意行为的用户列入黑名单,例如尝试暴力破解您的SSH密码。


一旦您保护了Raspberry Pi并将其置于在线状态,您就可以从世界上任何地方登录您的网络。在使用Raspberry Pi后,您可以使用其本地IP地址(例如,192.168.1.31)通过网络连接到网络上的其他设备。如果您在这些设备上有密码,只需使用密码即可。如果它们也只是SSH密钥,则需要确保使用-A标志通过SSH转发密钥:ssh -A pi@123.45.67.89。


宠物相机


另一个有趣的项目是设置相机模块来拍摄照片或流式传输视频,捕获和保存文件,或在内部流式传输或上传到互联网。您可能希望这样做有很多原因,但两个常见的用例是自制安全摄像头或监视宠物。


这个树莓派相机模块是非常棒的配件。它提供全高清照片和视频,许多高级配置,并且编程简单。该红外相机是适合这种用途,并用红外LED,另外还具有夜视功能。


如果你想定期拍摄静态图像来关注事物,你可以写一个简短的Python脚本或使用命令行工具raspistill,并安排它在Cron中重现。您可能希望将它们保存到Dropbox或其他Web服务,将它们上载到Web服务器,或者甚至可以创建Web应用程序来显示它们。


如果你想在内部或外部流式传输视频,那也很容易。picamera文档中提供了一个简单的MJPEG(Motion JPEG)示例(在“web streaming”下)。只需将该代码下载或复制到文件中,运行它并访问端口8000的Pi的IP地址,您就会看到相机的输出正常显示。


更先进的流媒体项目,pistreaming,是可用的,它使用JSMpeg与Web服务器和独立运转相机流的WebSocket(一个JavaScript视频播放器)。此方法性能更高,并且与上一个示例一样容易运行,但涉及的代码更多,如果设置为在Internet上流式传输,则需要打开两个端口。


设置好网络流媒体后,您可以将相机放置在您想要的位置。我有一个设置来关注我的宠物乌龟:



如果希望能够控制相机实际指向的位置,可以使用伺服器进行控制。一个简洁的解决方案是使用Pimoroni的Pan-Tilt HAT,它允许您在两个维度上轻松移动相机。



如果你想把你的树莓派放在外面,你需要一个防水外壳和一些方法来获得派的电源。PoE(以太网供电)电缆是实现这一目标的好方法。


家庭自动化和物联网


它是2017年,到处都有互联网设备,特别是在家里。我们的灯泡有Wi-Fi,我们的烤面包比以前更聪明,我们的茶壶有遭受俄罗斯攻击的危险。只要您保持设备安全,或者如果不需要将它们连接到互联网,那么您就可以充分利用物联网设备来自动完成家中的任务。


您可以购买或订购许多服务,例如Nest Thermostat或Philips Hue灯泡,无论您是在家还是在外,您都可以分别通过手机控制加热或照明。您可以使用Raspberry Pi通过根据一组涉及计时或甚至传感器的规则自动与它们进行交互来提高这些类型设备的功能。飞利浦Hue无法做到的一件事就是当你进入房间时灯亮了,但是使用Raspberry Pi和运动传感器,你可以使用Python API打开灯。同样地,你可以配置你的Nest在家里打开暖气,但如果只有至少两个人在家的话你只想打开它怎么办?编写一些Python代码来检查网络上的哪些手机以及是否至少有两部手机,如果不与现有的物联网设备集成并且只使用简单的组件,您可以做更多的事情。自制的防盗报警器,自动鸡舍开门机,夜灯,音乐盒,定时加热灯,自动备份服务器,打印服务器或任何你能想象到的东西。


Tor代理和广告屏蔽器


Adafruit的Onion Pi是一个Tor代理,它使您的网络流量匿名,允许您使用互联网免费窥探和任何类型的监控。关注Adafruit关于设置Onion Pi的教程,您就可以获得宁静的匿名浏览体验。


可以在网络上安装Raspberry Pi,拦截所有网络流量并过滤掉任何广告。只需将Pi-hole软件下载到Pi上,您网络上的所有设备都将没有广告(甚至可以阻止移动设备上的应用内广告)。


用Linux,Python和树莓派酿造啤酒


十多年前,我开始酿造自己的啤酒。像大多数家庭酿酒师一样,我开始在我的厨房里制作基于提取物的啤酒。这需要最少的设备,仍然产生非常美味的啤酒。最终,我使用一个大型冷却器为我的捣碎桶加强了全谷物酿造。几年来,我一次酿造5加仑,但酿造10加仑需要相同的时间和精力(并且只需要稍微大一点的设备),所以几年前我加强了它。移动到10加仑之后,我偶然发现了StrangeBrew Elsinore,并意识到我真正需要做的是将整个系统转换为全电动,然后用Raspberry Pi运行它。


有很多很好的信息可用于构建您自己的全电动自制系统,大多数酿酒商从TheElectricBrewery.com开始。将控制面板放在一起可能会变得相当复杂,尽管最简单的方法在那里得到了很好的概述。当然,你也可以采取更便宜的方法,最终得到相同的结果 - 煮沸水壶和热水箱由加热元件供电,并由PID控制器管理。我认为这有点太无聊了(这也意味着你没有得到你的酿造过程的整洁图表)。


五金用品


在我谈到自己的项目之前,我决定开始购买零件。我的基本设计是热水箱(HLT)和煮沸的水壶,其中加有5500w的加热元件,还有一个带有假底的捣碎桶。我将使用泵通过HLT中的50'不锈钢盘管(“热交换器再循环捣碎系统”,称为HERMS)再循环醪液。我需要第二台泵来循环HLT中的水,并帮助将水转移到混合桶中。所有电气元件都将由Raspberry Pi控制。


建立我的电动酿造系统并尽可能多地自动化意味着我将需要以下内容:


  • HLT配有5500w电加热元件

  • HERMS线圈(50英尺1/2英寸不锈钢)在HLT中

  • 煮沸的水壶配有5500w的电加热元件

  • 多个固态继电器可以打开和关闭加热器

  • 2个高温食品级泵

  • 用于打开和关闭泵的继电器

  • 配件和高温硅管

  • 不锈钢球阀

  • 1线温度探头

  • 很多电线

  • 电气箱可容纳一切



构建电气系统的细节实际上已经被The Electric Brewery所涵盖,所以我不会重复他们的详细信息。在计划用Raspberry Pi替换PID控制器时,您可以通读并遵循他们的建议。


需要注意的一件重要事情是固态继电器(SSR)信号电压。许多教程建议使用需要12伏信号的SSR来关闭电路。但是,Raspberry Pi GPIO引脚仅输出3v。请务必购买将在3伏电压下触发的继电器。



要运行您的酿造系统,您的Pi必须做两件事:从几个不同的位置感知温度,打开和关闭继电器以控制加热元件。Raspberry Pi很容易处理这些任务。


将温度传感器连接到Pi有几种不同的方法,但我发现最方便的方法是使用1-Wire总线。这允许多个传感器共享相同的线(实际上是三根线),这使其成为检测brew系统中多个组件的便捷方式。如果您在线寻找防水DS18B20温度传感器,您会发现很多选择。我在项目中使用了Hilitchi DS18B20防水温度传感器。


为了控制加热元件,Raspberry Pi包括几个可通过软件寻址的通用IO(GPIO)引脚。这允许您通过简单地在文件中放入1或0来将3.3v发送到中继。当我第一次学习所有这些工作时,使用GPIO教程的Raspberry Pi-Driving a Relay对我来说是最有帮助的。GPIO控制多个固态继电器,按照酿造软件的指示打开和关闭加热元件。


我首先开始在盒子上工作以容纳所有组件。因为这将全部放在滚动车上,我希望它相对便携而不是永久安装。如果我有一个地方(例如,在车库,杂物间或地下室内),我会在墙上安装一个更大的电箱。相反,我找到了一个体面的防水项目盒,我预计我可以把所有东西都塞进去。最后,事实证明它有点紧张,但它确实很有效。在左下角是带有分线板的Pi,用于将GPIO连接到1-Wire温度探头和固态继电器。


为了保持240v SSR的冷却,我在外壳上切孔,并在它们之间堆叠铜垫片,CPU冷却油脂和安装在盒子外面的散热片。它工作得很好,盒子里面没有任何冷却问题。在盖子上,我为120v插座放了两个开关,加上两个240v LED,以显示哪个加热元件通电。我使用干燥器插头和插座进行所有连接,因此可以轻松地将水壶与所有连接件断开连接。第一次尝试时,一切都正常。(首先勾勒出接线图肯定会得到回报。)


这些图片来自“概念验证”版本 - 最终的生产系统应该有两个以上的SSR,以便切换240v电路的两条腿。我想通过软件切换的另一件事是泵。现在,它们通过盒子前面的物理开关进行控制,但它们可以通过继电器轻松控制。



我需要的另一件事是有点棘手的找到温度探头的压缩配件。探头安装在T型接头中,位于HLT和醪槽中最低舱壁上的阀门之前。只要液体流过温度传感器,它就会准确。我想在水壶中添加一个热电偶套管,但我意识到根据我的酿造工艺对我来说不会有用。无论如何,我购买了1/4“压缩配件,他们完美地完成了。


软件


一旦硬件整理好,我就有时间玩这个软件了。我在Pi上运行了最新的Raspbian发行版 ; 操作系统方面没有什么特别之处。


我开始使用Strangebrew Elsinore酿造软件,当朋友问我是否听说过Hosehead(一种基于Raspberry Pi的酿造控制器)时,我发现了这种软件。我认为Hosehead看起来很棒,但我不想购买酿酒控制器,而是想要建立自己的挑战。


设置Strangebrew Elsinore很简单 - 文档很彻底,我没有遇到任何问题。即使Strangebrew Elsinore工作得很好,但Java有时似乎会对我的第一代Pi造成负担,而且它不止一次地撞到了我身上。我也很遗憾看到发展失速,并且似乎没有一个大型社区的额外贡献者(虽然有 - 并且仍然有很多人使用它)。


CraftBeerPi


然后我偶然发现了CraftBeerPI,它是用Python编写的,并得到了活跃贡献者的开发社区的支持。原作者(和现任维护者)Manuel Fritsch非常善于处理贡献并就人们开放的问题提供反馈。克隆回购并开始只花了我几分钟。README还有一个很好的连接DS1820温度传感器的例子,以及与Pi或CHIP计算机连接硬件的注意事项。


在启动时,CraftBeerPi会引导用户完成一个配置过程,该过程会发现可用的温度探测器,并允许您指定哪些GPIO引脚管理哪些设备。



使用此系统运行brew很容易。我可以指望它可靠地保持温度,我可以为多温步骤混合输入步骤。使用CraftBeerPi让我的酿造时间变得有点无聊,但我很乐意用传统的手动管理丙烷燃烧器的“兴奋”来换取这个系统的效率和一致性。


CraftBeerPI的用户友好性激励我设置另一个控制器来运行“发酵室”。在我的情况下,这是一个二手冰箱,我找到了50美元加25美元的加热器)在里面。CraftBeerPI可轻松控制冷却和加热元件,并可设置多个温度步骤。例如,该图显示了我最近制作的IPA会议的发酵温度。发酵室将发酵麦芽汁在67°F保持4天,然后每12小时升高一度直至其在72°F。这个温度是为了两天的双乙酰休息。之后它被设定为下降到65F五天,在此期间我“干”跳啤酒。最后,啤酒被冷落到38F。CraftBeerPI添加了每个步骤,让软件管理发酵变得容易。



我也一直在试验TILT比重计,通过蓝牙连接的浮动传感器监测发酵啤酒的重力。有一些集成计划可以让它与CraftBeerPI一起使用,但是现在它将重力记录到Google电子表格中。一旦这个比重计可以与发酵控制器交谈,设置直接根据酵母活动采取行动的自动发酵配置文件将很容易 - 而不是在四天内完成初级发酵,您可以设置温度斜坡在重力后启动稳定24小时。

与此类任何项目一样,成像和计划改进以及其他组件也很容易。尽管如此,我对今天的情况感到满意。我用这种设置酿造了很多啤酒,每次都达到了预期的醪液效率,啤酒一直都很美味。我最重要的客户 - 我很满意我在厨房里放的东西。



在树莓派上部署Kubernetes



当我对ARM设备,特别是Raspberry Pi 感兴趣时,我的第一个项目是OpenVPN服务器。


通过将Raspberry Pi作为家庭网络的安全网关,我可以使用手机控制桌面并远程播放Spotify,打开文档以及其他一些有趣的东西。我使用了第一个项目的现有教程,因为我害怕在我自己的命令行中输入任何东西。


几个月后,这种恐惧消退了。我扩展了我的原始项目,并使用Samba服务器从文件服务器中隔离了OpenVPN 服务器。这是我的第一个项目,我没有按照教程逐字逐句。不幸的是,在我的Samba项目结束时,我意识到我没有记录任何东西,所以我无法复制它。为了重新创建它,我不得不重新阅读我用于参考的所有单独的指南,并将项目重新组合在一起。


我学到了关于开发人员工作流程的宝贵经验 - 跟踪所有更改。我在本地制作了一个小git repo并记录了我在命令行中输入的所有命令。


发现Kubernetes


2015年5月,我发现了Linux容器和Kubernetes。对于Kubernetes,我认为我可以参与一个技术上仍处于开发阶段的概念,这真是令人着迷 - 我实际上可以访问它。平台本身及其呈现的可能性令人兴奋。直到那时,我刚刚在一个Raspberry Pi设备上运行了一个程序。使用Kubernetes,我可以制作比以前更高级的配置。


那时,ARM上的Docker(v1.6,如果我没记错的话)有一个bug,这意味着在Raspberry Pi设备上运行Kubernetes几乎是不可能的。在早期的0.x版本中,Kubernetes发生了很快的变化。每当我找到如何在AMD64上设置Kubernetes的指南时,它就是旧版本,它与我当时的版本完全不兼容。

无论如何,我都试图在Raspberry Pi上创建一个Kubernetes节点,并且通过v1.0.1 Kubernetes发布,我使用Docker v1.7.1 进行了工作。这是将Kubernetes部署到ARM的第一个全功能方式。


在Raspberry Pi上运行Kubernetes的优势在于,因为ARM设备非常小,所以不会消耗大量功率。如果以正确的方式构建程序,则可以对AMD64上的相同程序使用相同的命令。拥有小型物联网板可以为教育创造良好机会。这对于设置您需要旅行的演示也很有用,例如会议。使用Raspberry Pi比拖拽(通常)大型Intel机器容易得多。


ARM二进制文件随Kubernetes自动发布。虽然我们还没有为ARM提供自动CI(持续集成)系统,但是在PR合并之前它自动确保它在ARM上运行,但它目前运行良好。


Raspberry Pi上的分布式网络


我通过kubeadm发现了Weave Net 。Weave Mesh是一个有趣的分布式网络解决方案,所以我开始阅读更多关于它的信息。2016年12月,我收到了Weaveworks的第一份承包工作。我是Weave Net支持ARM的内部团队的一员。


我很高兴在Raspberry Pi上运行Weave Net的工业用例,例如需要设备更具移动性的工厂。目前,可能无法将Weave Scope或Weave Cloud部署到Raspberry Pi(尽管可以想象其他ARM设备),因为我猜这个软件需要更多可用内存才能运行良好。理想情况下,随着Raspberry Pi的2GB升级,我想我能够成功地启动Weave Cloud。


随着Weave Net 1.9的发布,Weave Net如何支持ARM。Kubeadm(和Kubernetes一般)在多个平台上工作。您可以像在任何AMD64设备上一样将Kubernetes部署到ARM,就像在所有机器上一样安装Docker,kubeadm,kubectl和kubelet。然后,使用以下命令初始化将运行控制平面组件的主机:


kubeadm init


接下来,使用以下命令安装pod网络:


kubectl apply -f https://git.io/weave-kube


以前,在ARM上运行时,你只能用Flannel安装一个pod网络,但自Weave Net 1.9发布以来,这个版本已经发生了变化,现在它也正式支持ARM。


最后,加入你的节点:


kubeadm join --token <token> <master-ip>


就是这样!Kubernetes已部署到您的Raspberry Pi设备中。与在Intel / AMD64上运行相比,您不需要做任何特别的事情; ARM上的Weave Net工作正常。


利用谷歌配件搭建的树莓派语音控制助理



如果想要与Raspberry Pi交谈,谷歌的一个套件将为你实现这个梦想。去年谷歌推出了这么一款配件专门让树莓派可以使用Google智能助理SDK和Google的云语音API将Raspberry Pi 3转换为语音驱动的数字助理,从而为您的项目添加语音交互。

像Google Home(和亚马逊的Echo)这样的语音助手是最热门的技术趋势,科技公司正试图尽可能广泛地采用他们自己的特定技术。考虑到已经销售了超过一千万台设备,鼓励Raspberry Pi修补工采用谷歌的技术将是一个巨大的胜利,并且它们被用作许多小工具背后的计算能力。

另外,树莓派的基金会曾暗示谷歌正在为树莓派计划一些事情,称搜索和广告巨头的AI和机器学习技术可以使制造商能够构建更强大的项目。据了解,现在这款配件已经出货了250,000个了,并为增加了多个新的分销商,“所以未来这款配件将会唾手可得”。


谷歌全新配件:为树莓派量身打造的AI视觉配件,可以发现猫、人甚至情感



谷歌除了推出了AI语音的配件,也推出了可让树莓派拥有机器视觉的配件。这个套件由谷歌的TensorFlow机器学习型号提供支持,很快将获得一个附带的Android应用程序来控制该设备。

根据Google的说法,Vision Kit具有“设备上的神经网络加速”功能,允许基于Raspberry Pi的盒子在没有云处理的情况下进行计算机视觉。AIY Voice Kit依靠云进行自然语言处理。

制造商需要提供自己的Raspberry Pi Zero W,Raspberry Pi相机,4GB SD卡和电源。Vision Kit本身包括VisionBonnet附件板,电缆,纸板盒和框架,镜头设备以及隐私LED,以便在相机打开时告诉其他人。

VisionBonnet板由Google开发,采用英特尔Movidius MA2450视觉处理芯片。这款芯片是Vision Kit的秘诀。

项目团队成员表示该芯片在执行计算机视觉方面的速度比Raspberry Pi 3快60倍。视觉套件制造商可以使用几种神经网络程序,第一种可以检测人,猫和狗的程序。另一个神经网络将检测幸福,悲伤和其他情绪。还有另一个基于MobileNets的程序可以检测1,000个不同的对象,例如椅子,橙色或杯子。

谷歌希望开发人员能够建立在这些神经网络的基础上并将其应用于新的任务,例如让猫/狗/人检测器识别兔子。为了帮助实现这一目标,它提供了一个工具,用于使用TensorFlow编译再训练模型的模型。

谷歌建议使用Vision Kit盒来识别各种植物和动物物种,看看狗何时在后门,或者当汽车离开车道,分析客人的情绪,甚至建立一个定制的家庭安全系统。


总结


看完这么多树莓派的有趣应用,你是不是迸发出奇思妙想?随着机器视觉、语音识别技术的越来越纯属,树莓派也可以玩出“花”了。此前,嵌入式ARM也曾推送过树莓派3A+(Raspberry Pi 3 Model A+): 崛起or终结?一文。对于树莓派,你有何见解?


参考资料:


1.Pi Day: 12 fun facts and ways to celebrate

https://enterprisersproject.com/article/2018/3/pi-day-12-fun-facts-and-ways-celebrate

2.Brewing beer with Linux, Python, and Raspberry Pi

https://opensource.com/article/17/7/brewing-beer-python-and-raspberry-pi

3.How to deploy Kubernetes on the Raspberry Pi

https://opensource.com/article/17/3/kubernetes-raspberry-pi

4.Raspberry Pi: This Google kit will turn your Pi into a voice-controlled digital assistant

https://www.zdnet.com/article/raspberry-pi-this-google-kit-will-turn-your-pi-into-a-voice-controlled-digital-assistant/

5.Google offers Raspberry Pi owners this new AI vision kit to spot cats, people, emotions

https://www.zdnet.com/article/google-offers-raspberry-pi-owners-this-new-ai-vision-kit-to-spot-cats-people-emotions/

6.Brewing beer with Linux, Python, and Raspberry Pi

https://opensource.com/article/17/7/brewing-beer-python-and-raspberry-pi


π节快乐!

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
热门推荐
相关推荐
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦