使用物联网的基于安卓应用的家庭自动化系统
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 2 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 5 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 1 |
必要的工具和机器
![]() |
|
应用和在线服务
![]() |
| |||
![]() |
| |||
![]() |
| |||
| ||||
|
关于这个项目
视频
在继续之前,我会要求我的观众观看该项目的视频,以便他们了解事情是如何发生的,以及这个项目中有哪些很酷的东西。
这是该项目的视频:
总结
在过去的几年里,智能家居已经成为非常流行和流行的词。许多人试图提出自己版本的智能家居架构,但大多数都缺乏智能家居设备的集成。此外,安全性也是智能家居架构中的一个主要问题。这些智能家居架构使用的一些通信技术包括蓝牙、GSM、Zigbee 等。所有这些架构都有其优缺点。在我工程的最后一年,我尝试实现一个集成的智能家居架构,它可以通过简单的用户友好的移动应用程序进行监控和控制。此外,所有系统都将互连,并添加语音命令以控制特定范围内的设备。以下是我的家庭自动化架构的静默功能:
- 使用数字键盘和 RFID 的两级安全系统可防止入侵者进入家中。
- 在线上传照片以防盗窃,远程视频监控,视频上传到本地服务器,用户可以使用任何网络浏览器查看。
- 通过 Android 应用程序使用各种传感器(例如 DHT11、火焰传感器、MQ3 和 MQ135 传感器)的读数来监控家庭环境。
- 通过安卓应用控制LED、伺服电机等设备。
- 根据用户通过 Android 应用设置的首选项自动调度设备。
- 当用户接近家时,根据用户设置的偏好准备设备(间歇泉、咖啡机)。
- 使用人声控制设备。
先决条件
- 您应该熟悉 C 编程
- 您应该熟悉使用 Arduino IDE 并将代码部署到 Arduino 板
说明 - 请按照以下步骤操作
在继续之前,请查看我为该项目制作的视频,以便您了解事情的运作方式以及如何建立联系。
第 1 步 - 连接整个系统
根据下面的电路图进行连接。有很多连接要进行,因此请耐心等待并仔细进行所有连接。我会建议使用纸板制作一些家庭式建筑,以便您能够真正感受到家庭自动化。小心 PIR 运动传感器,因为它容易发生敏感变化。将其固定好,以免误报,否则您的门会意外打开。
RFID连接如下:
- MOSI ---> PIN 51
- 味噌 ---> PIN 50
- SCK ---> PIN 52
- SS/SDA ---> PIN 9
- RST ---> PIN 8
同时将mega的20脚连接到arduino yun的2脚,将arduino mega的21脚连接到arduino yun的3脚进行I2C通信。
第 2 步 - 创建 Temboo 帐户并设置 Dropbox API
此项目的下一步是在 Web 服务 Temboo 上创建和设置帐户,以便您可以使用 Temboo 提供的广泛服务。为此,第一步是访问 Temboo 网站 http://temboo.com/。在主页上,只需输入您的电子邮件地址进行注册,然后单击注册。然后,系统会要求您输入有关您帐户的一些基本信息,例如您的帐户名称。然后,系统会提示您创建第一个应用程序。确保您保存帐户的详细信息,例如您的第一个应用程序的名称和将提供给您的密钥。如果您需要再次获取这些值或创建新应用程序,您可以随时访问这些数据单击应用程序下方的管理按钮,进入 Temboo 网站的“我的帐户”部分。
现在,在软件方面,您需要的不仅仅是 Arduino IDE。当我们通过 SSH 连接到 Yún 板上时,我们将直接在 Yún 板上安装相机所需的软件,但您需要 Temboo Python SDK 将图片上传到 Dropbox。您可以在 https://temboo.com/python 上找到 SDK。是时候打开它并将它放在 SD 卡的根部了。只要确保它出现在SD卡根目录中的名称为temboo,这样我们刚刚创建的Python文件就可以正确访问它然后,您还需要有一个Dropbox帐户,以便您可以将图片上传到其中。您只需访问 https://www.dropbox.com/home 即可创建一个帐户。创建帐户后,您需要创建一个将由您的项目使用的应用程序。这基本上意味着您必须授权您将在本章中构建的项目自动将图片发送到您的 Dropbox 帐户,而无需每次都输入您的登录名和密码。您还将获得我们稍后将在 Yún 上的 Python 脚本中输入的所有必需信息(例如 API 密钥)。
1. 要创建应用程序,请首先访问 https://www.dropbox.com/developers/apps。
2. 然后,单击窗口右上角的创建应用程序。您现在可以选择要创建的应用程序类型。在我们的例子中,我们想直接使用 Dropbox API。
3. 然后会提示您选择应用程序需要存储的数据类型。我们要上传图片,所以选择文件和数据存储。
4. 然后您就可以完成创建 Dropbox 应用的过程。
5. 在描述应用程序的确认页面上,您需要记下应用程序密钥和应用程序密钥,我们将在项目的其余部分使用这些信息。
6. 另外,请确保权限类型字段设置为应用程序文件夹。这将确保图片上传到专用于应用程序的文件夹中,并且 Yún 将无法访问您 Dropbox 文件夹的其余部分。
7.您现在需要获取的是与您的Dropbox应用程序相关的Token密钥和Token密钥,以便您稍后在我们项目的软件中输入它们。要获取它们,第一步是访问 Temboo 网站上的 InitialiseOAuth Choreo,网址为 https://temboo.com/library/Library/Dropbox/OAuth/InitializeOAuth/。在这里,您需要输入 App 密钥和 App 密钥。这将生成一些附加信息,例如回调 ID 和临时令牌机密。您还会被要求访问 Dropbox 的链接以确认身份验证。
8. 最后,进入FinalizeOAuth页面完成该过程。系统会要求您在 https://temboo.com/library/Library/Dropbox/OAuth/FinalizeOAuth/ 输入您的应用程序密钥、应用程序密码、回调 ID 和临时令牌密码。在此步骤之后,您将获得最终的令牌密钥和令牌秘密。把它们写下来,因为你以后会需要它们。
第三步:在Arduino Yun中安装驱动
安装 Putty 软件并打开它。输入你的arduino yun的ip地址,选择ssh,点击打开。输入 root 作为您的用户名,然后系统会提示您输入您为 Yún 选择的密码(默认密码为 arduino)。如果成功,您应该会在终端上看到以下屏幕截图,这表明您现在正在直接在 Yún 上工作。
您可以从您的 Yún Linux 机器访问所有功能。我们现在要安装相机所需的软件。这需要将 Arduino Yún 连接到 Internet,以便它可以获取所需的包,如以下步骤所述:
1.该过程从更新包管理器opkg开始,如下: opkg update
2.安装UVC驱动,如下: opkg install kmod-video-uvc
3、安装我们后面项目中会用到的python-openssl包,如下命令所示: opkg install python-openssl
4、最后就可以安装我们要用来拍照的fswebcam软件了,如下命令所示: opkg install fswebcam
第 4 步:实时视频监控
为了使应用程序工作,我们首先需要在Yún上安装一些额外的软件包,如下步骤所示:
1. 使用您的 Arduino Yún 名称和密码再次使用 SSH 连接到 Yún,然后键入以下命令以获取正确的直播包: wget http://www.custommobileapps.com.au/downloads/mjpgstreamer.ipk
2. 注意,如果链接失效,找不到文件,本章代码中也可以使用这个包。您现在可以使用以下命令安装它:opkg install mjpg-streamer.ipk
3. 您现在可以使用以下命令在您的 Arduino Yún 上启动直播软件:
mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 25" -o "output_http.so -p 8080 -w /www/webcam" &
这里,-h 后面的参数是分辨率,-i 后面的参数是流可用的端口。我们还使用 –I 命令指定了每秒的帧数。其他选项不太重要,您不必担心它们。然后,您可以通过在 Web 浏览器中转到 Arduino Yún 的地址,然后输入 8080 以指定正确的端口来访问您的流。例如,链接将是这样的 http://yourarduinoyunipaddress.local:8080/stream.html。将上面链接中的yourarduinoyunipaddress替换为你的arduino yun的ip地址。
第 5 步:为短信设置 Twilio 帐户
在 https://www.twilio.com/ 上注册。记下帐户 sid 和身份验证令牌。在 twilio 上购买一个免费号码,并在已验证的来电显示部分验证您要向其发送短信的号码。验证您的号码后,您就可以向该号码发送消息了。现在登录 temboo.com。转到此链接 https://temboo.com/library/Library/Twilio/SMSMessages/SendSMS/ 并提供您从 twilio 获得的凭据。在单击立即运行之前,请记下其他信息。单击立即运行并提供所需的其他信息并使用某个名称保存配置文件。此配置文件名称将用于 arduino yun 代码。转到 arduino yun 代码中的第 208 行,并将 your_profile_name 替换为您的个人资料名称。确保当您单击 temboo 中的立即运行按钮时,它不应该在那里出现任何错误,否则您的凭据有问题,您需要自己进行故障排除。
第六步:设置blynk账号并配置blynk应用
使用此链接 https://play.google.com/store/apps/details?id=cc.blynk 从 Playstore 下载 blynk 应用程序。
下载 Blynk 应用程序后,您需要创建一个新的 Blynk 帐户。成功登录帐户后,开始创建一个新项目。硬件型号选择Arduino yun。身份验证令牌是将硬件连接到智能手机所需的唯一标识符。您创建的每个新项目都将拥有自己的身份验证令牌。创建项目后,您将在电子邮件中自动获得 Auth Token。您也可以手动复制它。单击设备部分。现在按 “ 创建” 按钮。按照以下说明添加小部件:
制作家、暖通、监控、控制四个标签
首页
在主页选项卡下选择四个小部件:LCD、值显示、H 级和通知。
配置LCD的输入为V1。
将数值显示命名为火灾传感器,将火灾传感器的输入配置为V11,映射范围为0到1023,读取速率为1秒。
将等级h命名为火力等级,配置输入为V12,映射范围为0~1023,读取速率为push。
正常配置通知优先级。
暖通空调
在 HVAC 选项卡下选择 LCD、滑块、数值显示(2)、历史图表。
配置lcd的输入为V3。
将滑块重命名为风扇并将输出配置为 D9 并将其从 0 映射到 255。
将两个值显示重命名为 room1 temp 和 room2 temp。将一个输入配置为V2,另一个输入为V6,并将它们从0到50映射,读取速率为1秒。
将历史图的输入配置为 V9 和 V8。把名称room1 temp对应V9,room2 temp对应V8。
监控
在监控选项卡下选择标记值(2)、图(2)、历史图。
将 2 个标记值小部件重命名为房间 1 湿度和房间 2 湿度,并将输入设置为 V5 和 V7,并将它们从 0 映射到 100,读取速率为 1 秒。
将这两个图重命名为房间 1 湿度和房间 2 湿度,输入引脚为 V10 和 V9,范围为 0 到 100,读取速率为 1 秒。
配置历史图的输入为 V10 和 V7。 V10对应的名称为room1 潮气,V7对应的房间2是潮气。
控制
在控制选项卡下选择 lcd、值显示(2)、标记值、滑块、时间输入、GPS 跟踪。
配置lcd的输入为V4。
设置数值显示输入为V19和V20,范围0~1023,读取速率1秒。
配置标注值的输入为V21,范围从0到1023,读取速率为1秒。
将滑块设置重命名为 Main room light 并从 0 到 255 输出,写入间隔为 100ms。
配置时间输入V31,配置允许开始/停止输入为yes,允许星期选择为yes,允许时区选择为yes。
将 GPS 轨迹输入配置为 v29 并在输入时触发。这将允许系统在用户到达地图内时触发 v29 引脚打开(例如,它可能连接到 Geysar)。您可以根据自己的方便更改地图的半径。
点击运行按钮。
恭喜!现在,您可以通过 Android 智能手机控制和监控家庭环境。
设备的语音控制操作
从此链接下载 AMR_VOICE 应用程序并使用 HC05 配置蓝牙。将下面提到的命名为arduino uno的语音控制的代码部署到arduino uno。单击应用程序中的连接机器人。确保您的智能手机蓝牙与 hc05 配对。按语音图标并说出代码中提到的字符串以打开/关闭您的设备。
如果您在制作此项目时遇到任何问题,请告诉我。考虑到用户可能熟悉 arduino、c 和基本 linux 编程的基础知识,因此某些步骤没有详细显示。如果您在任何地方或任何步骤中遇到问题,请随时在评论部分提出任何问题。
注意:我已将所有文档和代码迁移到我的公共 git 存储库。请访问链接 https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT 下载源代码、原理图文件和架构参考。此外,如果您想为此项目贡献或添加新功能,请在我的 github 存储库中创建拉取请求。如果代码或设置环境有任何问题,请在 github 存储库中提出问题。
干杯!
代码
此项目的代码库
从我的 git 存储库下载此项目的代码。如果你想为这个项目添加更多功能,请在我的存储库中发出拉取请求。 https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT示意图
项目示意图
从我的 github 存储库下载原理图。 https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT制造工艺