注:本人内容的准确性仅限于笔者写该篇文章时的情况,不保证后续与实际项目代码一致。实时内容还请关注Github项目托管页面:https://github.com/GenialX/hestia-server
树莓派,一个五脏俱全,集几乎所有功能于一身的微型计算器。大约一两月之前,屈屈300百大洋收入囊中。
入手之后,出于对自动化的兴趣,慢慢地研究如何实现室内家电的智能自动化控制。在断断续续地,不断地摸索之后,有了若干想实现的点子,迄今为止也有所实践。
点子
利用红外线传感器智能控制空调、电视等基于红外遥控的家电设备;
智能控制家中的灯泡设备(部分基于网络协议);
(待更新...)
方案
硬件
首先,除了树莓派之外,还需要如下硬件:
- 移动端设备 iPhone一台(安卓手机当然也没问题,但是本案例中只基于iPhone做了实现)
- 外网可直接访问的服务器一台(本案例使用阿里云服务器)
- 基于树莓派的传感器若干
- 基于光敏电阻的光线传感器一个
软件
此外,本案例同样需要如下软件环境的支持(注:如果您完全不懂软件,且不愿意为实现本案例的结果而学习软件知识,那么下面的需要软件知识的相关内容可以不用深究):
- 主要涉及的编程语言:Java、Python、Swift(iOS)
- 基于Linux系统的公网服务器
- 基于较新版本的iOS系统设备iPhone(之所以标注“较新”是因为笔者对iOS 软件研发理解尚浅,未能进行多种版本的兼容测试,所以只提供一个版本参考:iOS系统版本11.1.2亲测有效)
- 基于raspberry系统的树莓派
架构
系统大致分为三部分
- 服务端
- Hestia Server 部署在公网服务器中的项目
- 客服端
- Hestia RPi 部署在树莓派中的项目
- Hestia iOS 部署在iPhone移动设备中的项目
各部分的主要用途
- Hestia Server 用于连接、监控其他客服端,传输命令信息
- Hestia RPi 用于接受服务端信息、控制传感器等设备
- Hestia iOS 用于发送当前地理位置信息
整体系统架构
Hestia Server 系统架构
项目
Hestia Server https://github.com/GenialX/hestia-server
Hestia RPi https://github.com/GenialX/hestia-rpi
Hestia iOS https://github.com/GenialX/hestia-ios
实现功能
-
实时监控主人的地理位置,并推送给主人的手机中移动端设备iPhone
- 通过GPS实时将当前的经纬度信息发送给服务器,服务器将当前位置信息推送给iPhone
Hestia iOS发送经纬度到服务器,并接收当前位置信息的推送
Instapush 接收推送信息的截图
-
基于室内光线明亮程度,在主人离家与回家时会智能控制灯泡的开关
- 基于移动设备iPhone的位置信息与室内光线传感器的信息来智能控制室内宜家灯泡的开关,对室内灯泡的控制是基于tcp协议的
总结
未完待续...