资料介绍
描述
我正计划构建一个廉价的家庭自动化系统。我希望这是一个模块化系统,这样我就可以不断地向其中添加传感器和设备,而无需进行太多更改。WARAN(Windows IoT、A zure、R aspberry Pi、A rduino、N RF24L01+)是一个模块化的家庭自动化系统,由一个 Hub 和多个模块组成。该模块将结合微控制器和传感器,从房屋的不同位置收集数据,并通过射频将数据传输到集线器。集线器和模块之间的所有通信都通过 RF 进行。Hub 还将有一个配套的 Windows Phone 应用程序。这是一个解释设置的简单流程图。
为什么选择 Windows 物联网?
我是一名软件开发人员,目前正在涉足 IoT。凭借我之前使用 XAML/C# 和 Visual Studio(我认为这是有史以来最好的 IDE)的经验,这对我快速实现这些非常有帮助。
为什么是 NRF24L01+?
当我研究无线选项时,NRF24L01+ 是一种廉价且低功耗的解决方案。有了一些非常强大的库,它为我提供了最佳解决方案。
为什么选择 Windows Azure
Windows Azure 非常容易学习和适应。由于启动服务所需的配置很少,我们可以更多地关注开发而不是配置和部署。我之前使用 Azure 的经验帮助我快速集成。
枢纽
Hub是WARAN的一个中央控制中心。它由 RPI2、Arduino Uno 和 nRF24L01+ 组成。RPI2 运行 Windows IoT Core。它运行一个通用应用程序作为控制中心。集线器将连接到一个大显示器(通常是电视或监视器),通过它我们可以看到来自模块的数据并控制模块。连接到 RPI2 的键盘和鼠标将有助于从控制中心添加、删除模块。这是它的电路图(参考项目中的 WARAN.Hub.fzz. 文件)
它是如何运作的?
每个模块都有一个唯一的地址,集线器使用该地址与其通信。我们将使用此地址向控制中心添加一个模块,并为该模块命名。添加后,控制中心(通用应用程序)将通过 I2C 向 Arduino Uno 发送数据。Arduino Uno 将通过 nRF24L01+ 向模块发送数据,模块从传感器读取数据或根据接收到的数据启动/停止设备,并将数据发送回 Arduino Uno。Arduino Uno 将通过 I2C 将数据发送到控制中心。这些数据将显示在电视/显示器中,并发送到云端。Arduino Uno 将充当 RPI2 的接口,以从其他模块获取传感器数据。上面的过程会在三种情况下发生
- 在特定的时间间隔取决于模块
- 当用户与控制中心交互时(通过鼠标/键盘)
- 当从云端发送触发器时(针对 PubNub)
这是一个典型的流程
这就是集线器中的组件和模块之间的交互方式。
控制中心
控制中心是在 RPI2 中运行的通用应用程序。控制中心是用户交互的界面。它与模块通信,也与云通信。WARAN 控制中心利用 Azure 移动服务和 PubNub 作为其云后端。我们添加的每个模块信息都将本地存储在 sqlite db 中,并发送到 azure 移动服务。这将依次向移动应用程序发送 PubNub 消息或推送通知。我不想在这里解释编码部分,让这篇文章变得一团糟。项目源代码、文档和部署细节可以在 https://bitbucket.org/arjunganesan/waran中找到 (我正在全面更新文档,很快就会完成)。这就是控制中心的工作方式
移动应用程序
移动应用程序是一个 Windows Phone 应用程序(稍后将针对其他平台开发),它将作为中心的配套应用程序。我们可以在世界任何地方的移动设备中看到所有与传感器相关的数据。如果从模块获得任何重要信息(例如气体泄漏监测模块的气体泄漏警报),我们也会收到推送通知。我们也可以从手机本身触发模块上的一些动作(比如在植物饮水器模块上启动泵)。由于所有这些都是通过云发生的,因此无需在集线器附近的任何地方放置移动设备即可执行所有这些操作。
这是移动应用程序的外观
模块
该模块是协同工作的组件组合,通过 RF 与 Hub 接收和发送数据。它可以是 Arduino Pro Mini 与传感器或 RPI2 与传感器等的组合。它需要做的就是通过 RF 从集线器接收数据/命令并做出适当的响应。这为模块提供了无限的可能性。首先我要添加 2 个模块
- 植物饮水器
- 温度监控器
警告:这里的所有模块都可以配置为使用继电器控制电气设备。但是我没有处理这些的经验,所以我不想介入危险区域,所以我还没有在我的项目中使用它。那些在处理继电器方面有丰富经验的人请随意扩展电路,其他人如果想在其中工作,请采取适当的预防措施。
植物饮水器
植物饮水器将监测植物中的水位以及植物周围环境的温度。如果没有足够的水,则会向移动应用程序发送警报。我们可以从任何地方通过移动应用程序启动泵。我们还可以将其配置为在水位低于阈值时自动启动水泵。它由 Arduino Pro Mini、DHT11、土壤湿度计和 nRF24L01+ 组成。这是电路图(参考项目中的PlantWaterer.fzz)
来自 9V 电池的电源进入 Arduino Pro Mini 的 RAW 引脚。arduino 中的内置稳压器将在 Vcc 中提供 5V 输出。我们将使用它来驱动 DHT11。我们还提供 9V 电源作为 3.3V 稳压器的输入,我们将使用它为 nRF24L01+ 供电。湿度计的水位将在模拟引脚 A3 上读取。DHT11 的温度读数将在数字引脚 6 中读取。在数字引脚 5 中,我们将向晶体管或继电器发送信号,我们使用它们来启动停止泵。出于演示目的,我将使用直流泵并将晶体管用作开关。这是它的工作流程
我不希望电路保留在面包板上,所以我将它转移到穿孔板上。我想保持紧凑,所以我这样做了。您可以参考电路图并提出自己的布局。
。
温度监控器
温度监控器将监控房间(例如卧室)的温度,并随时发布温度和湿度水平。我们还可以从集线器或移动设备打开/关闭或调整设备(恒温器、交流电等)。为了演示,我将关闭/打开连接到 arduino 的 LED。该电路由Arduino Pro Mini、DHT11和nRF24L01+组成。下面是电路图(参考工程中的TemperatureMonitor.fzz文件)
来自 9V 电池的电源进入 Arduino Pro Mini 的 RAW 引脚。arduino 中的内置稳压器将在 Vcc 中提供 5V 输出。我们将使用它来驱动 DHT11。我们还提供 9V 电源作为 3.3V 稳压器的输入,我们将使用它为 nRF24L01+ 供电。DHT11 的温度和湿度读数将在数字引脚 5 中读取。在引脚 6 中,我们将向晶体管或继电器发送信号,我们使用它们开始停止设备(例如恒温器、交流电等)。出于演示目的,我将使用 LED 灯来显示设备的关闭/打开。这是它的工作流程
以下是我将其放置在性能板上的方式。您可以根据电路图提出自己的布局。
这是它的工作原理
已知的问题
- 电源 - 两个模块的电池会在几个小时内耗尽。需要找到一种高效的便携式电源。我计划在任何可能的模块中使用 attiny 处理器代替 pro mini。它的功率效率会更高。我以前关于 attiny 的文章可以在这里找到。
- I2C 并发 - 如果 RPI2 一次向 Arduino uno 发送 2 线请求,则其中一个失败。我正在研究避免这种情况的方法,并尝试实施重试机制。
- 单向通信——现在集线器发起一个请求,模块响应它。尽管这在许多情况下都很有效,但一些新模块可能需要在集线器不发送请求的情况下将数据发送到集线器。
- 范围 - 我将模块放在隔壁房间并能够正确接收数据。但是,如果您想增加范围,请将集线器中的 nRF24L01 替换为具有外部天线的 NRF24L01+PA+LNA。
- 安全性——因为这是在由开发人员拥有的假设下开发的,所以我没有添加任何身份验证机制。如果需要,您可以利用 Azure 移动服务的身份服务将 Microsoft、FB、Twitter、Google 身份验证集成到移动应用程序和中心。
未来的计划
我想把它作为一个开放平台,供人们实现自己的家庭自动化系统。我将稳定 Hub 和移动应用程序。我想向该项目添加更多模块。基于语音的命令和响应也在路线图中。现在我正在研究以下模块
- 气体泄漏传感器
- 入侵探测器
- 设备控制器(例如咖啡机控制器、灯控制器等)
- 车库门开启器
- 一些可穿戴模块
- 没有硬件的互联网服务(天气、Azure 逻辑应用程序、股票报告等)
- 在集线器范围之外工作并通过互联网与其通信的模块(例如汽车追踪器、宠物追踪器、计步器等)
所有这些模块组合在一起并通过集线器作为一个单元工作,将为我提供我一直想要拥有的家庭自动化系统。我将继续在 hackster 中将新模块作为单独的项目添加。欢迎大家添加新模块和扩展。将更新有关如何向项目添加新模块的 wiki 页面。
- 如何构建一个简单的家庭自动化
- 如何构建蓝牙控制的家庭自动化
- 树莓派家庭自动化开源
- Kindbot:家庭花园自动化中心开源
- 自动化系统开源硬件
- 使用Arduino和蓝牙模块构建家庭自动化设备
- 综合家庭自动化系统
- 家庭自动化开源案例
- 家庭自动化系统开源分享
- 家庭自动化能源测量系统
- 多功能自动化系统开源分享
- 使用Arduino构建自己的家庭自动化系统
- 家庭自动化开源分享
- PCB家庭自动化开源分享
- 现代家庭自动化遥控系统电路图
- 自动化设备的伺服电机选型指南 490次阅读
- 工业自动化和自动化区别是什么 1033次阅读
- 自动化仿真系统搭建实践 1334次阅读
- 自动化控制系统的基本知识 3760次阅读
- 过程自动化控制和运动自动化控制的原理详解 1352次阅读
- Selenium在自动化中有何用处 1613次阅读
- 基于PlatformIO IDE的家庭自动化系统设计方案实现 2298次阅读
- 基于Raspberry Pi Pico开发先进的家庭自动化系统 2850次阅读
- CL2000变电站综合自动化系统的设计及通信解决方案 2637次阅读
- ATE自动化测试系统是什么_ATE自动化测试系统介绍 3.2w次阅读
- 自动化领域初涉水 非标自动化和自动化到底有哪些区别? 6091次阅读
- 过程自动化系统介绍 CPAS架构详解 6844次阅读
- 红帽推出Ansible 2.2 :为开源自动化框架奠定牢靠的基础 984次阅读
- 构建以软件为中心的下一代自动化测试系统 1184次阅读
- 基于GPRS的电网调度自动化系统 1238次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多