实战!如何搭建一个完整的智能家居系统
本文承接《一份写给极客的智能家居指南》,从基础知识到实战,看如何搭建起一个完整的智能家居系统。
实战设备篇
ESP8266 仿真设备
- Wemo:可以被 Amazon Echo 识别
- Philips Hue:可以被 HomeKit 识别 ?
ESP8266 仿真 Wemo
要求:下载 Ardunio IDE,地址: http://www.arduino.cc/en/main/software
一、安装 Arduino ESP8266
Arduino ESP8266 GitHub 地址: https://github.com/esp8266/Arduino
安装方法:
- 启动 Arduino IDE,并进入
Preferences
窗口 - 在 Additional Board Manager URLs 中输入:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 从 Tools > Board 菜单中打开 Boards Manager,并输入安装 esp8266 平台
二、测试仿真
下载安装包:https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch
Setup 步骤:
- 下载代码
- 在编辑器中打开 wemos.ino
- 修改 WiFi 设置
- 定义开关及其回调,在
officeLightsOn
、officeLightsOff
、kitchenLightsOn
、kitchenLightsOff
中 - 烧录
相似项目:Arduino Esp8266 Alexa Wemo switch emulator
ESP8266 仿真 Philips Hue
ESP8266 Hue Emulator 项目地址:ESP8266HueEmulator
这个 Demo 需要这么几个库NeoPixelBus
、aJson
、Time
、NtpClient
,同时还需要修改一些相关的配置。
因此直接使用这个脚本安装,比较简单:
注意:如果是 Mac OS,需要将下面脚本中的 $HOME/Arduino/libraries/
改为 $HOME/Documents/Arduino/libraries/
mkdir -p $HOME/Arduino/libraries/
cd $HOME/Arduino/libraries/
git clone --branch 2.1.4 https://github.com/Makuna/NeoPixelBus.git
git clone https://github.com/interactive-matter/aJson.git
git clone https://github.com/PaulStoffregen/Time.git
git clone https://github.com/gmag11/NtpClient.git
sed -i -e 's|#define PRINT_BUFFER_LEN 256|#define PRINT_BUFFER_LEN 4096|g' aJson/aJSON.h
cd -
git clone https://github.com/probonopd/ESP8266HueEmulator.git
sed -i -e 's|#include "/secrets.h"|//#include "/secrets.h"|g' ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.ino
sed -i -e 's|//const char|const char|g' ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.ino
再将代码烧录到 ESP8266 上,就可以在 Homekit 看到相应的配置。
小米智能插座
寻找设备
npm install -g miio
miio --discover
npm install --save miio
集成网关篇
Raspberry Pi Home Assistant
Images: https://home-assistant.io/docs/hassbian/installation/
Images Downloader: https://etcher.io/
发现文档好像有点问题,便手动地尝试安装:
pip3 install --upgrade homeassistant
运行
sudo -u homeassistant -H /srv/homeassistant/bin/hass
并不没工作,于是执行官方的安装脚本:
curl -O https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh
又在我的 MBP 上安装尝试
pip3 install homeassistant
hass --open-ui
然后发现安装完就可以了。
Home Assistant Broadlink PM PRO
在 configuration.yaml
文件中添加下面的配置:
# Example configuration.yaml entry
switch:- platform: broadlinkhost: IP_ADDRESSmac: 'MAC_ADDRESS'switches:reciever:command_on: 'switch_packet on'command_off: 'switch_packet off'
获取 Broadlink 配置
- 从 https://github.com/NightRang3r/Broadlink-e-control-db-dump 获取数据导出脚本
- 打开 易控(英语:E-Control) 应用,点击
菜单
->共享
->云分享
就会生成相应的配置文件 - 浏览手机上的
/broadlink/newremote/SharedData/
目录,复制出jsonSubIr
、jsonButton
、jsonIrCode
三个文件 - 安装好 python 环境, 并安装
pip install simplejson
- 执行第一步代码中的脚本,
python getBroadlinkSharedData.py
- 安装
python-broadlink
,地址https://github.com/mjg59/python-broadlink.git
不知道是不是我的空调问题,获取到的配置是空的。
Homebridge
相关的插件:
- Yeelight:homebridge-yeelight
- 小米设备:homebridge-aqara
- Broadlink RM 红外:homebridge-broadlink-rm
- Broadlink SP 开关: homebridge-broadlink-sp
- Home Assistant: homebridge-homeassistant
安装 Homebridge
编辑软件源:
sudo vim /etc/apt/sources.list
修改为阿里云,速度会更快一些:
deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
安装 Node.js ARM 版 :
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
安装 avahi:
sudo apt-get install libavahi-compat-libdnssd-dev
安装 homebridge:
npm install -g homebridge
安装相应的插件:
sudo npm install -g homebridge-yeelight
sudo npm install -g homebridge-homeassistant
sudo npm install -g homebridge-broadlink-sp
sudo npm install -g homebridge-broadlink-rm
sudo npm install -g homebridge-platform-wemo
sudo npm install -g homebridge-miio
对应的配置在 home-assistant
目录下的 configuration.yaml
文件。
开机启动
在 /etc/default 目录下创建 homebridge 文件,内容如下:
#Defaults / Configuration options for homebridge
#The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/lib/homebridge# If you uncomment the following line, homebridge will log more
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*
在 /etc/systemd/system 目录下创建 homebridge.service 文件,内容如下:
[Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
# Adapt this to your specific setup (could be /usr/bin/homebridge)
# See comments below for more information
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process[Install]
WantedBy=multi-user.target
启动服务:
systemctl daemon-reload
systemctl enable homebridge
systemctl start homebridge
HomeBridge 集成 Home Assistant
安装插件:
npm install -g homebridge-homeassistant
添加配置:
"platforms": [{"platform": "HomeAssistant","name": "HomeAssistant","host": "http://127.0.0.1:8123","password": "yourapipassword","supported_types": ["binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "scene", "sensor", "switch"],"logging": true}
]
Amazon Echo 设置
我用的是 Amazon Echo Dot 2 就是那个 Mini 版的
- 安装 Yeelight Skill
- 安装 Mijia
两者需要登录小米的账号,才能授权获得控制。
结合 HomeAssistant 和 Amazon Echo
文档:https://home-assistant.io/components/alexa/
如果只是为了打开、关闭设备,可以直接使用 emulated_hue
组件,它可以提供一个虚拟的 Philips Hue 桥。
只开关设备
使用 Home Assistant 的 Emulated Hue 组件就可以了,添加如下的配置:
emulated_hue:host_ip: 192.168.199.242
其中的 192.168.199.242
即是 Home Assistant 的服务器地址
更详细的配置,如:https://github.com/Teagan42/HomeAssistantConfig
定制命令
为了使用更多的功能,则需要使用将 Home Assistant 暴露到公网上——使用诸如花生壳等。(PS:由于当前家里使用的是光纤,需要光纤猫,实施上比较困难;因此,外部访问需要使用一级跌幅,暂时没有进行这方面的尝试)。
随后在 Amazon developer console
创建相应的 Alexa Skill,并添加 Endpoing:https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD
必须使用 HTTPS
定制 Home Assistant
Home Assistant RESTful API 地址:Home Assistant API
Raspberry Pi Cornata
官方文档:Use Cortana Function on IoT Core
下载 Windows 10 IoT Core Dashboard
下载地址:https://developer.microsoft.com/en-us/windows/iot/docs/iotdashboard
安装最新镜像
打开 Windows 10 IoT Core Dashboard,为 RPi 烧录镜像,如下图所示:
官方建议要更新到最新。使用 Web 界面打开设备的 Windows Update,http://:8080/#Windows%20Update,如http://192.168.199.223:8080/#Windows%20Update。
然后到 Devices
中看是否出现相应的 Microphone 设置。
开机启动 Cortana
在首页的 Device Settigns
最下面有一个 Start Cortana on Boot
的选项。
使用 Windows IoT Remote Server 访问:在 http://192.168.199.223:8080/#Remote 在勾上 Enable Windows IoT Remote Server
设置 speechlanguage 成中文:
打开 Processes
-> Run command
,执行:
IoTSettings -set region CN
IoTSettings -set speechlanguage zh-Hans-CN
工具集
Tools:
- Alexa Skill Testing Tool
- Raspberry Pi Burn images Tools
欢迎 star:https://github.com/phodal/smart-home
作者:黄峰达(@Phodal),ThoughtWorks软件开发工程师,CSDN博客专家。长期活跃于GitHub,专注于物联网和前端领域。出版著作《自己动手设计物联网》,以及《Growth:全栈增长工程师指南》等六本电子书,并译有《物联网实战指南》。
2017 年 7 月 1 日(星期六),「一天掌握物联网全栈开发之道」物联网主题线上峰会将在 CSDN 学院召开,Phodal 将与其他六位专家将一起从整体架构、技术栈、应用开发平台到实战经验与安全方案,希望通过一天的时间,帮助开发者快速掌握物联网全栈开发之道,目前峰会正在 7 折优惠中,点击「峰会官网」立即报名。峰会官网:http://edu.csdn.net/huiyiCourse/series_detail/42。
实战!如何搭建一个完整的智能家居系统相关推荐
- Android——一个简单的智能家居系统
一个简单的智能家居系统 效果展示 启动应用界面 登陆界面 导航界面 温度界面 湿度界面 烟雾传感器界面 人体红外传感器界面 效果展示 以下为整个程序的操作流程,因为CSDN不能上传太大文件,所以画质比 ...
- 如何快速搭建一个完整的移动直播系统?
**如何快速搭建一个完整的移动直播系统?** 原文连接:http://toutiao.com/a6301796359717945601/ http://toutiao.com/a62784095597 ...
- 一套开源的可快速搭建自己的物联网/智能家居系统源码
Java物联网智能家居软硬件系统源码 源码免费分享,需要学习可私信我 一套开源系统,快速搭建自己的物联网/智能家居系统.硬件工程师可以把自己的设备集成到系统:软件工程师可以使用项目中的设备熟悉软硬件交 ...
- 如何搭建一个完整的手机直播系统源码?
首先第一步,采集,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前几个新进的直播平台都是这样的. 第二部,前 ...
- 如何基于 Android Things 构建一个智能家居系统?
[CSDN 编者按]Android Things 是 Google 在 2016 年底推出的基于物联网的操作系统,广泛运用于物联网设备.本文作者从其技术原理开始,详解了 Android Things ...
- 一种基于蓝牙和语音控制的智能家居系统【100010378】
2018年大学生电子设计竞赛设计报告 一种基于蓝牙和语音控制的智能家居系统 摘要:本项目使用 STM32F407 作为主控芯片,通过蓝牙和语音控制实现安全.便宜的智能家居系统.实现了手机实现家电控制: ...
- 物联网时代,智能家居系统的具体介绍
一般来说,一个完整的智能家居系统应具有如下功能,包括家庭安全防范.照明系统控制.环境控制.家电控制等多种途径控制. 家居安防系统可以有效地利用技防手段来实现居家安全防范.家居安防系统包括防盗.防火.防 ...
- 树莓派开发笔记(三)搭建智能家居系统(2) — Home Bridge + Home Assistant
搭建智能家居系统 搭建智能家居系统(2) 添加设备 Command Line 传感器组件 Scrape Sensor 组件 小米设备接入 Zigbee 设备(网关类设备) Yeelight 灯具 Wi ...
- 搭建开源智能家居系统Domoticz
官方网站https://www.domoticz.com/ 中文站https://www.domoticz.cn/ 介绍 Domoticz是一个开源的智能家居系统,通过它你可以监测和控制各种设备比如: ...
- 基于 SpringBoot + Vue 实现的物联网/智能家居系统
简介 物美智能是一套开源的软硬件系统,可用于二次开发和学习,快速搭建自己的物联网/智能家居系统.硬件工程师可以把自己的设备集成到系统:软件工程师可以使用项目中的设备熟悉软硬件交互. 项目架构 服务端使 ...
最新文章
- boost::math模块实现对贝塞尔函数的零点求和的测试程序
- 应用宝认领应用签名_应用宝8.0版本即将发布“数字分发”引领应用分发新趋势...
- c#使用HttpClient调用WebApi
- 1777:文件结构“图”
- PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder
- python爬酷狗音乐_良心推荐!一个Python高手必读的库,真香!
- java js webservice_java Web技术探路:js Ajax调用WebService
- oracle groupq by,oracle group by 性能优化
- 超声的pacs系统和dicom服务器,PACS系统和DICOM标准.ppt
- Linux下C++开发系列(一)序——我是如何开始linux下C++开发的
- 用C语言编写链式存储的线性表(含代码实现)
- 守护冬奥安全 从北京网络安全大会开始
- java前后端接口文档_细说API - 文档和前后端协作
- 6.1行为型模式--模板方法模式
- 【转载】GIT教程 猴子都能懂得git入门
- java性能调优寻找瓶颈常用的命令_Java性能调优:利用VisualVM进行性能分析
- 查看kms服务器信息,查看kms服务器地址
- 希捷2t服务器硬盘是什么盘,希捷酷鱼2T 3.5寸硬盘晒单以及小白安装应该避免的坑...
- 数据分析学习之路——(三)从泰坦尼克号撞击冰山后开始说起
- 《我拼图贼6》游戏反馈栏
热门文章
- python%是什么意思_%在Python中是什么意思?
- matlab 变限积分计算,Matlab变限积分计算【方法教程】
- 用python批量修改图片尺寸
- 资本资产定价模型CAPM
- 关于结构光问题的总结
- 洛谷P1308统计单词数Java题解
- Nginx 配置多个SSL域名指向不同端口
- dry的原理_【面板制程刻蚀篇】史上最全Dry Etch 分类、工艺基本原理及良率剖析...
- 《Adaptive Unfolding Total Variation Network for Low-Light Image Enhancement》2021ICCV 弱光增强
- 【Python标准库】用了Secrets,再也不用担心密码泄露