基于树莓派的智能家居项目的设想与实现 Hestia

综合技术 2017-11-23

注:本文内容的准确性仅限于笔者写该篇文章时的情况,不保证后续与实际项目代码一致。实时内容还请关注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协议的

总结

未完待续...

博客园精华区

责编内容by:博客园精华区 (源链)。感谢您的支持!

您可能感兴趣的

Raspberry Pi aboard Pino, the smart sailboat As they sail aboard their floating game design studio Pino , Rekka Bellum and Devine Lu Linvega are starting to explore the use of Raspberry Pis. As ...
如何实现 AppStore App 的自动下载 这次的分享是关于如何在 AppStore 实现 App 的自动下载,理想中的目标是只需要一部手机,不需要人来干预,就可以模拟用户的真实下载,并在下载完成以后,可以自动更改手机参数,使之变为另外一部苹果手机,进行周而复始的下载工作。但是呢,本文的内容只包含如何去模拟用户的操作来完成下载,并不涉及...
Hide push-based iOS notifications based on type I am trying to figure out how to hide specific notifications from a user. For example: The user wants to receive notifications of type A, but doesn't ...
Cocos 2d-X Lua 游戏添加苹果内购(二) OC和Lua交互代码详解... 这是第二篇 Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程 这是前面的第一篇,详细的说明了怎样添加内购项目以及填写银行信息提交以及沙盒测试员的添加使用以及需要我们注意的东西,结果,被移除首页了!前面第一篇的内容是这篇的基础,前面那些不弄好,下面的商品信息你是请求不...
iOS学习——自动定位 最近在项目中需要做自动定位功能,就是你在参加会议通过扫描二维码签到的时候自动定位并将你的定位信息在签到中上传,这样可以避免我们进行假签到。在这个功能中,主要用到的是系统自带的定位模块,首先我们是需要配置定位功能的参数,然后当我们定位成功时调用特定的方法进行相应操作就可以了,当然,在定位失败时我们也可...