TranslateProject/translated/tech/20170414 5 projects for Raspberry Pi at home.md
2019-05-31 10:36:08 +08:00

12 KiB
Raw Blame History

5 个可在家中使用的与 Raspberry Pi 相关的项目

5 projects for Raspberry Pi at home

Raspberry Pi 电脑可被用来进行多种设置用于不同的目的。明显它在教育市场帮助学生在教室中学习编程与创客技巧和创客空间方面占有一席之地,它在工作场所和工厂中有大量应用。我打算介绍五个你可能想要在你的家中构建的项目。

媒体中心

在人们家中人们常用 Raspberry Pi 作为媒体中心来服务多媒体文件。它很容易建立Raspberry Pi 提供了大量的 GPU图形处理单元运算能力来渲染你的大屏电视上的高清电视节目和电影。将 Kodi(从前的 XBMC运行在 Raspberry Pi 上是一个很棒的方式来播放你的硬盘或网络存储上的任何媒体。你同样可以安装一个包来播放 YouTube 视频。

也有一些少量不同的选项,显然是 OSMC(开源媒体中心)和 LibreELEC,都是基于 Kodi 的。它们在放映媒体内容方面表现的都非常好,但是 OSMC 有一个更酷炫的用户界面,而 LibreElec 更轻量级。你要做的只是选择一个发行版,下载镜像并安装到一个 SD 卡中(或者仅仅使用 NOOBS),启动,然后你就准备好了。

LibreElec

LibreElec; Raspberry Pi 基金会, CC BY-SA

OSMC

OSMC.tv, Copyright, 凭权限使用

在往下走之前,你需要决定使用哪种 Raspberry Pi 开发板。这些发行版在任何 Pi1, 2, 3, or Zero上都能运行视频播放在这些开发板中的任何一个上都能胜任。除了 Pi 3和 Zero W有内置 Wi-Fi可察觉的不同是用户界面的反应速度在 Pi 3 上更快。一个 Pi 2 不会慢太多,所以如果你不需要 Wi-Fi 是可以的,但是当切换菜单时,你会注意到 Pi 3 比 Pi 1 和 Zero 表现的更好。

SSH 网关

如果你想从广域网访问你的家庭局域网的电脑和设备,你必须打开这些设备的端口来允许外部访问。在互联网中开放这些端口有安全风险,意味着你总是你总是处于被攻击、滥用或者其他各种未授权访问的风险中。然而,如果你在你的网络中安装一个 Raspberry Pi并且设置端口映射到仅通过 SSH 访问 Pi 的端口,你可以这么用来作为一个安全的网关来跳到网络中的其他 Pi 和 PC。

大多数路由允许你配置端口映射规则。你需要给你的 Pi 一个固定的内网 IP 地址来设置你的路由器端口 22 映射到你的 Raspberry Pi 端口 22。如果你的网络服务提供商给你提供了一个静态 IP 地址,你能够通过 SSH 和主机的 IP 地址访问(例如,ssh pi@123.45.56.78 )。如果你有一个域名,你可以配置一个子域名指向这个 IP 地址,所以你没必要记住它(例如,sshpi@home.mydomain.com)。

然而,如果你不想将 Raspberry Pi 暴露在互联网上,你应该非常小心,不要让你的网络处于危险之中。如果你遵循一些简单的步骤来使它更安全:

1. 大多数人建议你更换你的登录密码(有道理,默认密码 “raspberry” 是众所周知的但是这不能阻挡暴力攻击。你可以改变你的密码并添加一个双重验证所以你需要你的密码_和_一个手机生成的与时间无关的密码这么做更安全。但是我相信最好的方法阻止入侵者访问你的 Raspberry Pi 是在你的 SSH 配置中禁止密码认证,这样只能通过 SSH 密匙进入。这意味着任何试图猜测你的密码尝试登录的人都不会成功。只有你的私有密匙可以访问。简单来说,很多人建议将 SSH 端口从默认的 22 换成其他的,但是通过简单的 Nmap 扫描你的 IP 地址,你信任的 SSH 端口就会暴露。

2. 最好,不要在这个 Pi 上运行其他的软件,这样你不会意外暴露其他东西。如果你想要运行其他软件,你最好在网络中的其他 Pi 上运行,它们没有暴露在互联网上。确保你经常升级来保证你的包是最新的,尤其是 openssh-server 包,这样你的安全缺陷就被打补丁了。

3. 安装 sshblackfail2ban 来将任何表露出恶意的用户加入黑名单,例如试图暴力破解你的 SSH 密码。

一旦你是 Raspberry Pi 安全后,让它在线,你将在世界的任何地方登录你的网络。一旦你登录到你的树莓派,你可以用 SSH 访问本地网络上的局域网地址例如192.168.1.31)访问其他设备。如果你在这些设备上有密码,用密码就好了。如果它们同样只允许 SSH 密匙,你需要确保你的密匙通过 SSH 传播,使用 -A 参数:ssh -A pi@123.45.67.89

CCTV / 宠物相机

另一个很棒的家庭项目是建立一个相机模块来拍照和录视频,录制并保存文件,在内网或者外网中进行流式传输。你想这么做有很多原因,但两个常见的情况是一个家庭安防相机或监控你的宠物。

Raspberry Pi 相机模块 是一个优秀的配件。它提供全高清的相片和视频,包括很多高级配置,很容易编程红外线相机用于这种目的是非常理想的,通过一个红外线 LEDPi 可以控制的),你就能够在黑暗中看见东西。

如果你想通过一定频率拍摄静态图片来留意某件事,你可以仅仅写一个短的 Python 脚本或者使用命令行工具 raspistill, 在 Cron 中规划它多次运行。你可能想将它们保存到 Dropbox 或另一个网络服务,上传到一个网络服务器,你甚至可以创建一个网络应用来显示他们。

如果你想要在内网或外网中流式传输视频,那也相当简单。在 picamera 文档中(在 “web streaming” 章节)有一个简单的 MJPEG运动的 JPEG例子。简单下载或者拷贝代码到文件中运行并访问 Pi 的 IP 地址的 8000 端口,你会看见你的相机的直播输出。

有一个更高级的流式传输项目 pistreaming 可获得,它通过在网络服务器中用 JSMpeg (一个 JavaScript 视频播放器)和一个用于相机流的单独运行的 websocket。这种方法性能更好并且和之前的例子一样简单但是如果要在互联网中流式传输则需要包含更多代码并且需要你开放两个端口。

一旦你的网络流建立起来,你可以将你的相机放在你想要的地方。我用一个来观察我的宠物龟:

Tortoise

Ben Nuttall, CC BY-SA

如果你想控制相机位置,你可以用一个舵机。一个优雅的方案是用 Pimoroni 的 Pan-Tilt HAT,它可以让你简单的在二维方向上移动相机。为了与 pistreaming 集成,看项目的 pantilthat 分支.

Pan-tilt

Pimoroni.com, Copyright, Used with permission

如果你想将你的 Pi 放到户外,你将需要一个防水的外围附件,并且需要一种给 Pi 供电的方式。POE通过以太网提供电力电缆是一个不错的实现方式。

家庭自动化或物联网

现在是 2017 年,到处都有很多物联网设备,尤其是家中。我们的电灯有 Wi-Fi我们的面包烤箱比过去更智能我们的茶壶处于俄国攻击的风险中除非你确保你的设备安全不然别将没有必要的设备连接到互联网之后你可以在家中充分的利用物联网设备来完成自动化任务。

市场上有大量你可以购买或订阅的服务,像 Nest Thermostat 或 Philips Hue 电灯泡,允许你通过你的手机控制你的温度或者你的亮度,无论你是否在家。你可以用一个树莓派来催动这些设备的电源,通过一系列规则包括时间甚至是传感器来完成自动交互。用 Philips Hue ,有一件事你不能做的是当你进房间是打开灯光,但是有一个树莓派和一个运动传感器,你可以用 Python API 来打开灯光。类似,当你在家的时候你可以通过配置你的 Nest 打开加热系统,但是如果你想在房间里至少有两个人时才打开呢?写一些 Python 代码来检查网络中有哪些手机,如果至少有两个,告诉 Nest 来打开加热器。

不选择集成已存在的物联网设备,你可以用简单的组件来做的更多。一个自制的窃贼警报器,一个自动化的鸡笼门开关,一个夜灯,一个音乐盒,一个定时的加热灯,一个自动化的备份服务器,一个打印服务器,或者任何你能想到的。

Tor 协议和屏蔽广告

Adafruit 的 Onion Pi 是一个 Tor 协议来使你的网络交通匿名,允许你使用互联网,而不用担心窥探者和各种形式的监视。跟随 Adafruit 的指南来设置 Onion Pi你会找到一个舒服的匿名的浏览体验。

Onion-Pi

Onion-pi from Adafruit, Copyright, Used with permission

Pi-hole 你可以在你的网络中安装一个树莓派来拦截所有的网络交通并过滤所有广告。简单下载 Pi-hole 软件到 Pi 中,你的网络中的所有设备都将没有广告(甚至屏蔽你的移动设备应用内的广告)。

Raspberry Pi 在家中有很多用法。你在家里用树莓派来干什么?你想用它干什么?

在下方评论让我们知道。


via: https://opensource.com/article/17/4/5-projects-raspberry-pi-home

作者:Ben Nuttall 选题:lujun9972 译者:warmfrog 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出