基于树莓派的智能家居项目的设想与实现 Hestia
注:本人内容的准确性仅限于笔者写该篇文章时的情况,不保证后续与实际项目代码一致。实时内容还请关注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协议的
总结
未完待续...
基于树莓派的智能家居项目的设想与实现 Hestia的更多相关文章
- 基于ESP32的智能家居管理系统的设计与实现
基于ESP32的智能家居管理系统的设计与实现 ESP32的智能家居管理系统访问链接: https://www.cnblogs.com/easyidea/p/13101165.html 一.需求分析 1 ...
- 基于Linux的智能家居的设计(3)
2 硬件设计 本课题的硬件设计包含主控制器.传输数据设计.数据採集设计.控制驱动设计.显示设计.门禁设计. 2.1 主控制器 依据方案三选择S3C6410主控芯片,S3C6410是由Samsung ...
- 基于Linux的智能家居的设计(4)
3 开发环境的搭建 本次课题使用的开发环境比較特殊.没有一个现成的集成开发环境,需要自己一步一步的搭建开发环境,开发环境的搭建的过程十分复杂,并且假设没有这个开发环境本次课题就无法进行. 因此.在进 ...
- 基于Linux的智能家居的设计(2)
1 系统整体设计方案 智能家居系统的是一个实时查询家庭的温湿度.照明控制.自己主动控制的设定.集家庭娱乐.智能安防为一体,大量数据快处理.可靠的系统,因此在硬件和软件上都有非常大的要求,因此在这里进 ...
- 基于ZigBee模块与51单片机之间的简化智能家居项目简介(学生版本)
5月份学校举行比赛,我们团队报名<智能家居>的项目,设计的总体思路用:QT写的上位机与ZigBee无线通信加51作为终端的简易版智能家居 电路连接:PC机->cc2530(协调器)- ...
- 基于Linux的智能家居的设计(5)
4 软件设计 软件设计部分主要包含uboot移植.内核编译.系统移植.设备驱动编程.应用程序编程(QT编程.mysql数据库编程.控制系统编程).各个模块的功能函数(部分是在windows以下的IA ...
- 智能家居项目(2):项目project框架的搭建
项目管理器: Linux中的项目管理器"make"有些类似于windows中的Visual C++里的"project",它是一种控制编译或者反复编译软件的工具 ...
- 智能家居项目(3):编译工具makefile
board文件夹中,基本的代码结构分为了src,include两个子文件夹.分别存放源码文件. #CC=arm-linux-gcc CC=gcc CFLAGS=-lpthread INCPATH=-I ...
- MQTT+esp32+nodered+springboot 智能家居项目 -- 项目准备
1.后台系环境:idea jdk8.0以上 maven tomcat spring boot 2.前端环境 nodejs nodered 3.硬件环境: audrion esp32 ...
随机推荐
- SAP 参照sto订单创建外向交货BAPI
DATA: SHIP_POINT TYPE TVST-VSTEL, "装运点/接收点 NUM_DELIVERIES TYPE VBNUM, STOCK_TRANS_ITEMS WITH HE ...
- 【计算机网络基础】数据交换技术和多路复用技术的正(nao)确(can)打开方式
交换的作用 数据交换是计算机网络中两个终端进行数据传输的方式,它又可以分成两种类型:电路交换和分组交换.很显然,问题的核心在于“交换”,那么我们首先要思考的是:交换的作用是什么? “交换”的作 ...
- C#委托
关于什么是委托,委托如何使用,我在这里就不说了. 需要说的: 委托是函数指针链 委托的 BeginInvoke 委托如果出现异常,会如何 如果不知道函数指针,可以继续往下看,我来告诉大家,为何需要委托 ...
- MySQL索引语法+使用场景
MySQL索引语法 建表时添加索引 建表同时建立单索引 CREATE TABLE t_user1(id INT , userName VARCHAR(20), PASSWORD VARCHAR(20) ...
- JDBC基本开发
JDBC基本开发步骤 一:注册驱动 方式一:DriverManager.registerDriver(new Driver()); //存在注册两次问题,性能较低,消耗资源 方式二:Class.for ...
- iOS之 LLDB调试常用命令
LLDB是LLVM下的调试器.Xcode从4.0开始编译器开始改用LLVM,相应的调试器也从gdb改为LLDB. 1. p 用于输出基本类型 2. po 用于输出Objective-C对象 3. ex ...
- 使用canvas实现环形进度条
html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- Android 开发笔记___RelativeLayout
xml文件实现 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andr ...
- 小米Java程序员第二轮面试10个问题,你是否会被刷掉?
近日,开发者头条上分享了一篇"小米java第二轮面经",有很多的java程序员表示非常有兴趣. 下面l就和各位分享小米java第二轮面经(华为java工程师笔试面试题可以看文章某尾 ...
- 【WEB API项目实战干货系列】- WEB API入门(一)
这篇做为这个系列的第一篇,做基本的介绍,有经验的人可以直接跳到第二部分创建 ProductController. 创建 Web API 项目 在这里我们使用VS2013, .NET 4.5.1创建 ...