×

一种完全自主的方式来监控您家中的房间

消耗积分:0 | 格式:zip | 大小:0.26 MB | 2022-12-01

479809

分享资料个

描述

想要一种完全自主的方式来监控您家中的房间(甚至是您的门廊之类的地方)?想查看您房间的即时状态以及过去一个月的情况吗?如果您的孩子在您工作时不在房间里却一直开着灯怎么办?如果您只需要一个互联网连接来检查您的家或办公室怎么办?

幸运的是,监控您的家不仅容易,而且很便宜!

在本分步教程中,您将:

  • 连接一个光传感器来检测房间里的灯是否亮着
  • 连接温度/湿度传感器以捕获温度和湿度水平并计算房间内的热指数
  • 连接运动传感器以告知房间内有人的时间
  • 使用 Arduino Yun将捕获的信息流式传输到云服务
  • 将该信息转换为您可以在笔记本电脑或移动设备上访问的个人家庭仪表板

设置云

该项目的主要要求是自动建立 WiFi 连接,以便将传感器数据发送到远程可访问的可视化设备。收集和发送传感器数据的脚本也应该在断电时自动启动。

Arduino 非常适合这一点,因为它会在通电时运行上次上传到它的任何草图。您可以将 WiFi 模块添加到较小的 Arduino 上,但 Yun 有一个板载 WiFi 模块,可以轻松建立互联网连接。Yun 甚至可以运行 Linux,尽管我们没有在这个项目中利用它。Arduino 板还为我们提供了一种无需焊接的方式来连接模拟和数字传感器。

如果没有大面包板,许多传感器可能很难连接,其中许多传感器需要额外的电阻器或电容器。Grove 传感器没有这些问题,因为它们有一个简单的分线连接器,并且任何需要的电阻器和电容器都已经连接到传感器板上。

话虽这么说,您可以通过多种不同的方式实施该项目,但我将介绍如何使用 Yun 和 Grove 传感器设置我的传感器盒。

SD 卡设置

Yun 与许多其他 Arduino 开发板不同,因为它使用 SD 卡启动。Yun 使用OpenWRT来运行它的 Linux 端并管理 WiFi  

将您的微型 SD 卡插入 SD 卡适配器并将其插入您的计算机。确保您的卡已格式化为 FAT(而非 FAT 32)文件系统。这可以通过Mac OSX 中的“磁盘工具”Windows 中的“计算机”窗口来完成。   

当您的卡正在重新格式化时,您可以在 Arduino 软件页面上为 Yun 下载最新的 OpenWRT 映像。在页面底部的“其他软件”下,您将看到最新的 OpenWRT 映像。单击它并按照提示进行下载。  

pYYBAGOIGX2ACgIgAAHV9Uw2jQ8403.png
 

一旦你的 SD 卡完成格式化并且 OpenWRT 已经下载,将 OpenWRT zip 文件复制到你的 SD 卡并弹出卡。现在将卡放入 Yun 的微型 SD 插槽,并使用微型 USB 转 USB 线将 Yun 插入计算机的 USB 端口。

 

等待 Yun 启动 - 大约需要一分钟。当板上的白色 LED 亮起时,您就会知道它已完成。现在检查您可用的 WiFi 网络(Yun 在没有 WiFi 配置的情况下启动时创建它自己的网络)并连接到显示“Arduino Yun-90 **********”的网络。

 

连接到 Yun 的 Wifi 后,在浏览器地址栏中转到 192.168.240.1。您应该会看到如下所示的页面:

pYYBAGOIGYOAaEtFAAEniEElUyc230.png
 

密码是“arduino”。在下一页上,寻找一个橙色的 RESET 按钮 - 单击它并等待 Yun 重新启动。

连接到无线网络

一旦你的 Yun 使用更新的 OpenWRT 重新启动,你就可以配置它的 WiFi 设置。确保您仍然连接到 Yun 的 WiFi,然后再次访问 192.168.240.1。在右上角,您会看到一个“配置”按钮:

poYBAGOIGYaAT_yhAAGUJP2OSLs289.png
 

以下页面允许您更改 Arduino 的名称(这也会更改其默认 WiFi 网络的名称)、更改密码以及更改 Yun 的时区。

pYYBAGOIGYuAVb-LAAHewaIXtGY726.png
 

无线参数是我们最关心的部分。在这里您可以找到您希望 Yun 在启动时自动连接的无线网络。仔细输入网络密码,然后单击“配置并重新启动”。

注意:Yun 连接到无线网络后,您可以通过在浏览器地址栏中输入 192.168.240.1输入 arduino.local 来获取其 IP 地址,但您必须连接到相同的无线网络。这将允许您通过 SSH 进入 Yun 的 Linux 部分。我们不会在本教程中这样做,

如果您需要更改 Yun 的 WiFi 设置但无法访问它自动连接的无线网络,您可以按 WiFi 重置按钮。您需要按住按钮 5 到 30 秒之间的某处,然后不再按住按钮,否则它将重置为出厂设置。  

poYBAGOIGZCATerAAAQthh0yz6c895.png
WiFi 重置按钮
 

安装 Arduino IDE 和库

与 Arduino 的通信主要通过 Arduino IDE 完成。这就是我们如何将草图上传到每次板子开机时执行的板子。访问Arduino 软件页面,在当前可用 IDE 版本右侧的列表中找到您的计算机类型。下载 zip 文件并解压缩以进行安装。  

 

在你的 Yun 开机的情况下打开 IDE。单击工具并转到从列表中选择“Arduino Yun”。仍然在Tools下,转到Port并选择“Arduino at (IP address)”或后面写着“Arduino Yun”的“/dev/tty.usbmodem****”。      

 

现在您已经有了与 Yun 交互的 IDE 设置,我们需要安装一个库来配合 Grove Temperature/Humidity Pro 传感器。

 

这个特定的项目只需要你安装一个库,但是有各种各样的库可以让你的生活更轻松,你的代码更短。它们也很容易安装。

这个库叫做“DHT-Sensor-Library”。  转到此处并通过单击右栏底部的按钮下载 zip 。然后返回到 IDE 并选择 Sketch  ->  Include Library  -> Add .ZIP Library...

pYYBAGOIGZOAc7R6AABrEw7YFAY233.png
标题(可选)
 

选择您刚刚下载的 zip 文件,然后单击“选择”。全部完成!

添加传感器

pYYBAGOIGXWAbLYxAANVLKM6K0s835.jpg
 

 

终于到了开始为我们的 Yun 添加一些传感器的时候了。幸运的是,这就像将跳线从 Yun 连接到传感器一样简单。小面包板让我们共享 Yun 的 3.3V 电源和接地连接。我们会将所有东西连接起来,然后测试我们的传感器以确保它们正常工作。

连接电路

pYYBAGOIGZuABNOBAAFeD0nm04c564.png
 

在连接任何电路之前,请拔下 Yun 的电源!!

 

我们添加了三个传感器并试图让所有东西都紧凑,所以电线会变得有点乱——我将按传感器分解电路。

我们需要做的第一件事是确保为传感器提供 3.3V 电源和接地。由于 Yun 只有一个 3.3V 端口,我们需要将其移动到面包板上,以便打开更多连接。将一根公对公连接线从 3.3V 电源连接到面包板上的一行,将一根从 GND 连接到面包板上。

poYBAGOIGZ6AHfRsAAHQHcXLeOE522.jpg
 

 

注意:在图片和图表中,我有另一条公-公连接线连接面包板上的两行用于接地和电源。这实际上不是必需的,因为我们只使用 3 个传感器,但如果您决定添加超过 4 个,您将需要更多点来获取电源。

 

 

光传感器是我们唯一的模拟传感器,因此使用公母连接线将 SIG 连接到 A0。温度/湿度传感器连接到数字引脚 2,运动传感器连接到数字引脚 3。将每个传感器上的 VCC 和 GND 连接到面包板上的 3.3V 电源和 GND 行。传感器上的 NC 引脚表示“无连接”,不需要插入任何东西。

电路连接好后,启动你的 Yun。

温湿度传感器

pYYBAGOIGaGAP9T4AAMwjhdeYNA218.jpg
 

我们已经安装了温度/湿度传感器库。它实际上包含一个名为 DHTtester 的测试脚本,您可以  在 IDE 的“文件”  ->  “示例”下找到它。或者你可以从这里复制它:  https ://github.com/InitialState/arduinosensorbox/blob/master/DHTtester.ino

 

只需创建一个新草图并将其上传到您的 Yun。完成后单击串行监视器以查看温度、湿度和热量指数打印到屏幕上。

poYBAGOIGaSALzEgAADvzFStwGY850.png
 

一旦您知道传感器正在工作,您就可以继续测试下一个!

PIR 运动传感器

poYBAGOIGamAPjusAAHi5RToWc4577.jpg
 

现在让我们测试运动传感器。如果检测到运动,它会变高。

 

你会在这里找到测试脚本:  https ://github.com/InitialState/arduinosensorbox/blob/master/motiontester.ino

 

打开串行监视器并开始在传感器前挥手以测试它是否正常工作。它声称具有 120 度的检测 - 看看这是不是真的!

光传感器

poYBAGOIGayANIdBAAHEtG0LxDI236.jpg
 

光传感器再简单不过了。它给我们的数字是以 Lux 为单位的环境光级别。您可以使用此处的草图对其进行测试:  https ://github.com/InitialState/arduinosensorbox/blob/master/lighttest.ino

 

运行此脚本会将光照级别打印到串行监视器。尝试覆盖和揭开传感器以查看光值如何变化。可以在此处找到针对不同环境的典型光照水平的良好列表:http ://www.engineeringtoolbox.com/light-level-rooms-d_708.html 

 

现在我们知道所有三个传感器都在工作,我们可以继续一次读取它们!

把它们放在一起

pYYBAGOIGa-AOn-sAAGg1Z1KrEo071.jpg
 

我们将项目的三个组成部分放在一起工作 - 温度和湿度传感器、运动传感器和光传感器。请记住,如果您需要解决问题,您可以使用 DHTtester.ino、motiontester.ino 和 lighttest.ino 草图测试每个组件。是时候把所有东西放在一起了。下一步是为我们所有的传感器数据找到一个家,并将这些数据变成一个易于访问的仪表板。

初始状态

我们希望将所有传感器数据流式传输到云服务,并让该服务将我们的数据转换为一个漂亮的仪表板,我们可以从笔记本电脑或移动设备访问它。我们的数据需要一个目的地。我们将使用初始状态作为该目的地。

第一步:注册初始状态账户

转到https://www.initialstate.com/app#/register/并创建一个新帐户。  

第 2 步:访问密钥

我们需要一种方法将我们要发送的数据与您的帐户相关联。Initial State 使用访问密钥执行此操作。

在网络浏览器中转到您的 Initial State 帐户,单击右上角的用户名,然后转到“我的帐户”,您将在页面底部的“流媒体访问密钥”下找到您的访问密钥。

pYYBAGOIGbGAJB1tAABoyhTagDw191.png
 

每次您创建数据流时,该访问密钥都会将该数据流定向到您的帐户(因此不要与任何人共享您的密钥)。

复制此密钥,因为我们的测试和最终脚本需要它。

第 3 步:运行示例

运行测试草图以确保我们可以为您的 Initial State 帐户创建数据流。 将第 14 行的 Your_Access_Key 替换为您的访问密钥并运行以下命令:  https ://github.com/InitialState/arduino_streamers/blob/master/arduinoyunstream.ino 

第 4 步:利润

在您的网络浏览器中返回您的 Initial State 帐户。一个名为“Arduino Stream”的新数据桶应该出现在您的日志架的左侧(您可能需要刷新页面)。单击此存储桶,然后单击 Waves 图标以查看测试数据。

poYBAGOIGbaADfssAABg7LzcbE8040.png
 

 

您将需要逐步完成 Waves 教程,以熟悉如何使用此数据可视化工具。接下来,查看 Tiles 中的数据以查看仪表板形式的相同数据。

pYYBAGOIGbiAS5_bAABjkAnbvpU519.png
 

您现在已准备好开始从您的传感器盒流式传输真实数据。

最终草图

将所有内容组合在一起的最终草图称为 yunsensorbox.ino,可在此处找到:  https ://github.com/InitialState/arduinosensorbox/blob/master/yunsensorbox.ino

 

确保将第 26 行的 Your_Access_Key 替换为您的特定访问密钥。

您可能需要更改的所有内容都可以在第 7-36 行中找到。

 

在每个相应的传感器部分下,您可以指定您正在使用的 Yun 上的哪个引脚。对于温度传感器,您还需要说出您使用的是哪种传感器(Pro 是 DHT22)。

 

在 Initial State Streamer 部分,您唯一需要立即更改的是 accessKey。如果您想传输更多或更少的信息或更改信号名称/表情符号,您也可以在此处进行设置。

 

在我们运行草图之前,让我们先了解一下它将要做什么。

 

 

  • 在草图的开始,我们将为我们的事件流创建一个数据桶。我们将看到“Posting Bucket!” 打印到串行监视器。

 

 

  • 草图将等待 2 秒并开始获取传感器数据。在继续发布数据之前,它将从所有三个传感器获取数据。

 

 

  • 每个事件流将一次发布一个(由于 WiFi 的长度上限问题)。您将看到“发送事件流#”,后跟事件流编号和打印到串行监视器的数据。

 

 

  • 每分钟将向您的 Initial State 帐户发送一批新的 6 个事件

 

注意:出于初始测试目的,您可能希望在第 72 行将延迟间隔从 41000 减少到更接近 2-3000 

上传草图以开始您的传感器流!

注意:如果您的草图只在您打开串行监视器后才开始,您可以通过从草图中删除任何带有“串行”一词的行来修复它。当然,这也剥夺了调试草图的能力。Yun's Bridge 允许我们访问另一个调试库,但是,称为 Console 要使用控制台,请将 #include 与其他#include 语句放在草图的顶部,其中脚本 显示 Serial.begin(9600); 你会说 Bridge.begin();  然后 是 Console.begin();  就在它下面。然后只需在其他任何地方将“Serial”更改为“Console”。 您必须连接到端口“Arduino at [IPADDRESS]”才能查看串行监视器的输出。

您的个人仪表板

pYYBAGOIGbuAM3vJAAKJvad-JDw611.png
 

转到您的 Initial State 帐户并单击名称与 BUCKET_NAME 参数对应的新数据桶(即 Yun Sensor Box)。单击 Tiles 以查看您的传感器盒仪表板。一旦让草图至少进行一次测量,您应该会看到六个图块 - 湿度、温度、热指数、光线、运动和我感觉如何。在运动探测器前挥手,遮住光传感器,实时观看仪表盘更新。此仪表板使您能够一目了然地查看房间内发生的情况,当您不在家或外出时非常方便。

 

如果您想查看房间中是否有运动,请在“运动”磁贴中寻找一个行走的人。根据 Light 磁贴中的亮度级别,您可以判断灯是否亮起。您还可以查看温度和湿度如何随时间变化。

poYBAGOIGb6AGQWjAABwXfzt-S4357.png
 

切换到 Waves 可视化以更好地查看传感器数据的历史记录。使用 Waves,您可以进行测量并挖掘数据以查看事情发生的时间。我可以看到 7 月 16 日中午 12 点 09 分到 12 点 18 分,即使房间里没有人,灯仍然亮着。

 

该传感器盒也可用于放置在您可以养宠物的车库或房间内。有了它,您可以跟踪热度指数,以确保它们不处于危险状态,尤其是在夏季。

最后一部分将向您展示我是如何将 Yun、面包板和传感器塞进一个方便的小盒子里的。

把它放在一个盒子里

 
 
 
poYBAGOIGcOAT3xIAAFHUF2tRyI047.jpg
 
1 / 3
 

 

我有来自不同项目的各种纸板箱,所以我决定将其中一个变成我的 Yun 和传感器的家。除了盒子,我的主要用品是一把剪刀和电工胶带。

我将面包板直接放在 Yun 的顶部——它非常适合插脚和以太网端口之间。

然后,我将我的传感器粘在底部,并从盒子顶部为它们切孔。一旦我为连接线切开槽,我就可以把盒子关上。我的盒子还有一个方便的孔,我可以在那里接入 Yun 的电源端口。

 

 

 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !