树莓派折腾指南之将你树莓派变成智能家居中枢

2023-10-17 09:20

本文主要是介绍树莓派折腾指南之将你树莓派变成智能家居中枢,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章首发于个人博客

将你树莓派变成智能家居中枢

树莓派由于本身足够的小巧且扩展性极高,所以它智能家居方面的应用具有天然的优势。对于喜欢折腾和 Geek 的人的而言,其扩展性具有无比的吸引力。

这次我们就来尝试将树莓派变身为智能家居的管理中枢,将其桥接到苹果家的 Home 应用当中,使用 Siri 来控制所有的智能家居。

由于 Apple 家认证的智能家居暂时承担不起,而刚好又可以使用树莓派加上 HomeBridge 相关的框架来将小米的智能家居产品加入 HomeKit

我使用的是小米智能家居全家桶套装,极客学院送的2017年元旦讲师礼物,在此表示感谢!其包含内容产品主要有:多功能网关,人体传感器,智能插座,无线开关,门窗传感器。效果图如下:
15158306050366-w629

15158306313468

用习惯之后,不得不说确实很方便,特别是寒冷的冬天不用起床就能开关灯。

下面就进入正题,如何将你的树莓派变身智能家居桥接中枢。

准备工作

材料准备

硬件:

  • Raspberry Pi
  • 小米智能家居产品

软件:

  • HomeBridge
  • homebridge-mi-aqara

基本步骤

  1. 硬件准备和连接
  2. 软件环境和依赖安装
  3. 安装运行 Homebridge
  4. 安装及配置 homebridge-mi-aqara
  5. 测试及后台运行
  6. 其他

步骤一:硬件准备和连接

首先将你的树莓派安装好系统并配置好,最好可以使用 SSR 全局代理可以科学上网,这样可以改善你的树莓派网络环境,一定程度加快安装过程。具体的方法参考之前的文章。

使用 SSH 远程连接你的树莓派:

ssh pi@raspberrypi.local

更新树莓派相关依赖环境

sudo apt-get update
sudo apt-get upgrade

完成之后进入下一步。

步骤二:软件环境和依赖安装

首先安装这两个库使用的都是 Node 环境的 npm 工具,因此要先安装 Node,命令如下:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

其次需要安装 avahi

sudo apt-get install libavahi-compat-libdnssd-dev

如果上述包安装出现错误,可以参考这里的解决方法

尝试使用

sudo aptitude install libavahi-compat-libdnssd-dev 

命令安装依赖,可能需要将相关软件包降级就可以顺利安装了。

步骤三:安装运行 Homebridge

这里具体的安装步骤可以直接去参考其 github 主页的 wiki 内容。简单的来说,步骤如下:
首先可以试一下使用如下命令安装:

npm install -g homebridge

如果上述命令安装过程出现了错误,那么可以尝试使用如下的命令:

cd ~
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/lib/node_modules/homebridge/
sudo npm install --unsafe-perm bignum
cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns
sudo node-gyp BUILDTYPE=Release rebuild

上面的 /usr/lib/ 目录,如果你不是使用的 apt-get 命令安装的 Node,需要换成 /usr/local/lib/
一定要严格安装上述命令的步骤来安装,该切换目录就切换目录。

此时安装应该不会有什么问题了。

步骤四:安装及配置 homebridge-mi-aqara

其项目主页是 homebridge-mi-aqara,可以在他的项目主页看到其支持的小米硬件,基本是非常全面的。

安装命令如下:

sudo npm install -g homebridge-mi-aqara

安装完成之后,需要对其进行基本的配置,从而能够将你的小米全家桶硬件加入到 HomeBridge 中。

首先要获取的是 局域网通信协议密码 以及 网关的 MAC 地址。

下载米家 APP,连接上你的智能网关以及其他小米智能家居硬件,打开米家 APP,选择你的多功能网关,点击 APP 右上角 ··· 符号,进入 关于 选项:

15158331055340

15158331906989

如上图所示,要不断的点击空白处,片刻后界面就会多了局域网通信协议还有网关信息等选项。
这时候,分别点选他们,记录你的网关的局域网通信协议密码以及网关的MAC地址,记得要开启局域网通信协议,记录下密码后,点击确定。网关的 MAC 地址位置如下:
15158337428781

上面的 MAC 地址去除冒号,全变成小写后记录下来,是一串12位的字符。局域网通信协议密码要保留大小写的记录下来。

记录下上述两个地址之后,就可以开始在终端中配置 HomeBridge 的配置文件了。执行的命令如下:

sudo mkdir ~/.homebridge 
cd ~/.homebridge      
sudo nano config.json         

执行了上述 nano 命令之后,会创建一个配置的 json 文件,将以下内粘贴到终端编辑环境中

{"bridge": {"name":"Homebridge","username":"CC:22:3D:E3:CE:23","port":51826,"pin":"723-92-124"},"platforms": [{"platform": "MiAqaraPlatform","gateways": {"网关 mac 地址": "局域网通信协议密码"}}]
}

将上述的两个参数替换成刚刚你记录下来的即可。其他参数说明:
name iOS 的 Homekit 在添加配件的时候看到的名字
username 如果只是用 Homebridge,这里可以是任意一个类似 MAC 地址的字符串
port 随意,只要不被占用的端口
pin iOS 的 Homekit 在添加配件时需要的验证码

使用 Ctrl + o 保存, Ctrl + x 退出。

步骤五:测试及后台运行

在终端输入

homebridge -D

这时候,界面也会出现刚刚你自己填写的 PIN 码
15158339825667

进入你 iPhone 或者 iPad 的家庭APP,添加配件,扫码几乎不可能加入成功,直接选择输入 PIN 码,即是输入下方的
15158342592263

添加完成之后,你就会看到所有网关所附带的配件了,如我刚开始所配图的一般,不过此时按钮的名字可能是一串英文符号,你需要自己确定各个按钮的作用,给他们一个你想好的名字即可。

但是上面这个只是在测试环境运行,如果断了 SSH,你手机或者 iPad 里面的所有设备都会处于无响应的状态,所以,我们还需要能够在后台运行的 Homebridge

借助 screen 工具即可实现这一需求,具体安装命令如下:

sudo apt-get install screen

安装完成之后,首先开一一个名字叫做 home 的窗口,具体的名字你可以随意选取,命令如下:

screen -S home

然后所打开的 screen 进程中开启一个 homebridge 进程

homebridge -D

screen 里开启的 homebridge 不会随着 SSH 关闭而被关闭。使用 Ctrl+A 然后按 d 就可以跳出来了。

具体关于 screen 命令的用法你可以查看这里的文章: linux 技巧:使用 screen 管理你的远程会话 及 Linux screen命令。

其他

完成上面的步骤,此时你只能在你的路由器所在的局域网内完成智能家居的控制,如果要在外网实现操作,及 home 的自动化操作,你需要一台 iPad 作为家居中枢,具体的参考 自动化和远程访问 HomeKit 配件

上面就是一个利用树莓派实现让 Siri 帮你开关灯的过程,下一步可以使用 HomeAssistant 来实现更加智能化和扩展化的家居管理。

更下一步的尝试可能会比较底层一些了:

  • 尝试一下扩展温湿度感应器模块
  • 尝试使用 GPIO 控制 RGB 彩色 LED 灯
  • 扩展摄像头模块,尝试一下人脸识别等基本的人工智能
  • 扩展私有云存储及远程下载

这篇关于树莓派折腾指南之将你树莓派变成智能家居中枢的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/224435

相关文章

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log