如何用raspberry-pi和ifttt构建光感应智能开关

智能家居小玩意太贵?建立你自己的!下面介绍如何使用Raspberry Pi和IFTTT制作光感智能开关。...

黄昏到黎明开关和定时器开关都是方便的方式来自动控制您的灯光。如果你能将两者结合起来,甚至把它们连接到互联网上,形成一个真正的智能照明系统,那不是很好吗?

light-sensing-switch

一个树莓圆周率,一个继电器,一个光传感器,和一个破折号的代码是所有你需要实现这一自动照明涅磐在一个小钱。

你需要什么

光感应智能开关的组件很容易找到。您需要:

  • 任何型号的树莓皮运行树莓。
  • 亚马逊上很容易找到的中继板。
  • Adafruit TSL2561光度传感器。
  • 跨接导线。
  • 一些自动控制的灯!

SunFounder 2 Channel DC 5V Relay Module with Optocoupler Low Level Trigger Expansion Board for Arduino R3 MEGA 2560 1280 DSP ARM PIC AVR STM32 Raspberry Pi BUY NOW ON AMAZON

光感应智能开关的工作原理

通过使用继电器在我们的自动**开门器项目相同的方式,你可以编程一个树莓Pi开关照明电路在固定的时间和关闭。在混合中添加一个亮度传感器意味着Pi可以检测周围的光照水平,并且只有在真正需要的时候才选择打开灯光。

因为Pi是一台可以连接到网络的微型计算机,所以你也可以将它设置为通过互联网进行控制。您的智能灯将有三个输入来确定何时亮起:

  1. 计划好的时间表。
  2. 环境光照水平。
  3. 通过网络发送的超控信号。

步骤1:将树莓pi连接到继电器

如果您对使用GPIO还不熟悉,请先阅读关于Raspberry Pi GPIO引脚的所有需要了解的内容。

首先,检查您的中继板是否有跳线将VCC和JD-VCC引脚连接在一起。如果有,请将其拆下。

JD-VCC to VCC relay board jumper

关闭所有电源后,将中继板连接到Pi,如下所示:

  • Pi引脚2(5v)至继电器板上的JD-VCC。
  • Pi引脚6(GND)至继电器板上的GND。
  • Pi引脚15(GPIO 22)至继电器板上的IN1
  • Pi引脚17(3.3v)至继电器板上的VCC。

Raspberry Pi Zero W connected to a relay board

步骤2:连接亮度传感器

TSL2561是一种光传感器,可以探测红外线、全光谱和人体可见光。它可以发送一个非常精确的数字读数到树莓皮。传感器以0.1(无光)到40000(明亮的太阳)的比例报告光照级别。

TSL2561板使用i2c协议与Raspberry Pi通信。I2C只需要两个连接,一个用于时钟以保持两个设备的同步,另一个用于传输的数据。当然,lux传感器也需要一些电源,因此总共有四个连接:

  • 将Pi针脚1(3.3v)连接到照度传感器上的Vin(或VCC)上
  • 将Pi针脚3(SDA)连接到照度传感器上的SDA
  • 将Pi针脚5(SCL)连接到照度传感器上的SCL
  • 将Pi针脚9(GND)连接到照度传感器的GND

Raspberry Pi Zero W connected to TSL2561 lux sensor

步骤3:配置和安装依赖项

在进一步讨论之前,您需要检查Raspberry Pi上是否启用了I2C(默认情况下已禁用)。在终端中键入以下内容:

sudo raspi-config

选择“接口选项”>P5 I2C,然后选择“是”。

Interfacing opti*** in raspi-config utility

点击Enter键,然后选择Finish退出配置屏幕。重新启动Pi以使更改生效:

sudo reboot

一些依赖关系是Pi能够与传感器板通信所必需的。键入以下命令:

sudo apt-get updatesudo apt-get install -y python-**bussudo apt-get install -y i2c-tools

您可以通过键入以下内容检查一切是否正常:

sudo i2cdetect -y 1

如果安装了依赖项并且正确连接了lux传感器,您将看到如下响应:

IC-Detect utility reporting lux sensor address

在这里,该实用程序报告它在I2C地址39处找到了I2C设备(lux传感器)。

您还没有完全处理依赖项。你也需要一些图书馆。首先,创建一个文件夹,将与此项目相关的所有内容保存在:

mkdir ~/lightingcd ~/lighting

下一步,下载瓶子,一个轻量级的框架,它将在你的Pi上创建一个简单的web服务器。你可以用它来控制网络上的灯光。

wget https://bottlepy.org/bottle.py

您需要的其他库都在Github上,因此如果您的Raspberry Pi尚未安装Git,请立即添加它:

sudo apt-get install git

现在克隆两个库,如下所示:

git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitgit clone https://github.com/adafruit/Adafruit_Python_PureIO.git

最后,通过创建一个新文件来创建一个测试脚本:

nano test.py

粘贴此代码(由Adafruit提供):

#!/usr/bin/env python# -*- coding: utf-8 -*-from __future__ import absolute_import, division, print_function, unicode_literalsfrom tsl2561 import TSL2561if __name__ == "__main__": tsl = TSL2561(debug=True) print(tsl.lux())

按Ctrl+X保存,按照屏幕上的说明退出。

完成后,运行测试脚本:

python test.py

如果所有的东西都安装好并正常工作,你会得到一个号码。这个数字是传感器的勒克斯读数。试着堵住传感器,或者移动它,使它得到更多或更少的光。然后再次运行测试脚本,看看数字是如何变化的。

步骤4:创建自动化脚本

树莓皮将开关灯时,它变得黑暗,但也关闭他们在某些时候。例如,你可能希望你的灯在晚上天黑的时候亮起来,然后在午夜左右熄灭以节省电力。他们可以一大早再来,等天亮了再关掉。

要管理这样具有多个时区的计划,有两种不同的脚本。一个(onzone.py文件)如果天黑的话,你希望你的灯亮着的时候每分钟都会跑。另一个(离区.py)在您希望关灯的时间内,无论灯光级别如何,都将每分钟运行一次。

Smart lighting script schedule

脚本将被安排使用cron作业运行。通过选择每个脚本在白天和晚上运行的时间,可以很容易地设置灯光可以自动打开的时间。您可以根据需要设置任意多的打开和关闭时段。

除了用于自动控制灯光的脚本之外,还有第三个用于管理覆盖情况的脚本。这将允许您远程打开灯光,而不考虑环境光照级别。

脚本1:on区域

这个Python脚本将在一天中的每一分钟都运行,如果是黑暗的话,您希望灯光亮起。通过将此命令复制并粘贴到终端中来下载脚本:

wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py

每一次onzone.py文件运行时,它将从传感器获取勒克斯值,以查看是否黑暗。如果是的话,它会检查灯是开着还是关着。如果它们关闭了,它就会打开它们。如果天不黑,脚本就会看到灯是否亮了。如果它们是,它将关闭它们,除非它们已被覆盖。

这个脚本使用一个名为lowlux的变量来决定在哪个点足够暗来打开灯。您可以通过更改靠近顶部的这一行中的值,将其更改为适合您自己安装的内容onzone.py文件:

lowlux = 50

剧本二:禁区

此脚本将在一天中的每一分钟运行,您希望灯光保持关闭,除非它们已被覆盖。下载脚本:

wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py

这个剧本不在乎它有多亮有多暗。它的工作就是在灯亮时关闭(除非它们被覆盖)。

脚本3:重写服务器

此脚本创建一个简单的web服务,可以接受执行以下操作的命令:

  1. 不管周围的光线如何,都要打开灯几分钟。
  2. 把灯关掉。
  3. 找出灯当前是开着还是关着。
  4. 找出灯在被覆盖时应该保持亮多久。

下载脚本:

wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py

在继续下一步之前,请运行离区.py脚本如下:

python offzone.py

这将创建脚本用来跟踪所有内容的控制文件。

第5步:安排脚本

你的Raspberry Pi可以用cron运行自动化脚本。按如下方式设置时间表:

sudo crontab -e

将这两行粘贴到文本编辑器中:

* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py > NULL* 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py > NULL

注意:如果您登录到Raspberry Pi的用户名不是默认Pi,请相应地更改路径。

在第一行列出你想在天黑的时候开灯的所有时间。所有你想关灯的时间都在第二行。

现在,将覆盖脚本设置为在Pi启动时自动运行:

sudo nano /etc/rc.local

将此行粘贴到文件底部,然后保存并退出:

nohup python /home/pi/lighting/lightserver.py &

最后,重新启动Raspberry Pi,这样就可以检查服务器脚本是否正常加载

sudo reboot

步骤6:测试继电器

在连接灯之前,使用覆盖功能测试所有东西是否正常工作。在与您的Pi位于同一网络的web浏览器中键入以下内容,将IP地址替换为您自己的Raspberry Pi地址:

11.22.33.44:1234/overrideon/3

如果一切正常,您将听到继电器的咔嗒声,浏览器将响应灯已打开三分钟。

当继电器闭合时,可以测试其他超控功能。这将告诉您由于超控,指示灯将再亮几分钟:

11.22.33.44:1234/getoverrideremaining

这应该告诉你灯亮了:

11.22.33.44:1234/lightstatus

最后,您可以通过以下方式再次关闭它们:

11.22.33.44:1234/overrideoff

继电器打开时会发出咔嗒声。

第七步:连接你的灯

在把灯连接到继电器之前,关掉并拔下你的树莓皮。使用继电器板上的常开(NO)连接器代替常规开关,如下所示:

Inserting the relay into the lighting circuit

最后,你可以安装你的勒克斯传感器在一个地方,它将捕捉环境光线水平。请注意,TSL2561将报告为饱和,如果它遇到直接明亮的阳光,所以最好保持在阴凉处,如果可能的话。

更多树莓pi项目供您尝试

通过在web浏览器中键入命令来远程覆盖新的智能照明设置相当麻烦。更好的方法是连接类似Amazon Echo的东西,使事情变得更简单。在IFTTT上结合Alexa服务和Webhooks服务是添加语音控制的简单方法。

请参阅我们的IFTTT使用指南,以帮助您入门。

IFTTT Applet to connect **art lights to Alexa

另一个选择是使用Siri快捷方式。带有菜单的单个快捷方式可以查询灯光的状态,并使用覆盖功能打开和关闭灯光。

如果你喜欢这个项目,一定要看看这些奇怪的树莓Pi项目的更多想法。

  • 发表于 2021-03-22 21:01
  • 阅读 ( 268 )
  • 分类:IT

你可能感兴趣的文章

5个智能家庭办公室创意,简化您的日常生活

有一个家庭办公室很方便,但也有很多烦恼。以下智能家庭办公室的想法将有助于减少分心和自动化您的一天。最重要的是,您需要的智能家居设备完成这些过程是非常经济的。 ...

  • 发布于 2021-03-11 16:17
  • 阅读 ( 279 )

如何设置和使用三星smartthings系统

当谈到驯服智能家居设备的疯狂世界时,很少有尝试能比三星SmartThings系统更成功。SmartThings Hub广泛支持多种智能家居设备,将您所有的东西连接在一起,主要是以无缝和用户友好的方式。 ...

  • 发布于 2021-03-13 07:19
  • 阅读 ( 414 )

如何用arduino遥控你的家,5个diy项目

随着经济实惠的智能家居技术的出现,改造您的家变得前所未有的容易。有很多有用的小玩意可以现货供应来做这件事,而且随着越来越多的竞争者加入市场,其中许多产品的价格已经下降。 ...

  • 发布于 2021-03-13 11:21
  • 阅读 ( 286 )

如何用老式智能手机构建安全摄像网络

如今,建立一个无线家庭安全摄像头系统其实并不是什么大事,尤其是如果你有合适的设备。无线IP网络摄像头非常理想,因为它们可以放在家里的任何地方,而且不需要连接到计算机,在那里可能会有黑客之类的额外危险。但...

  • 发布于 2021-03-14 03:25
  • 阅读 ( 291 )

用这些arduino项目像个怪人一样控制你的灯光

...灯。用户JestinèCubetech已经建立了一个项目,使用Arduino和Raspberry-Pi通过脉宽调制(PWM)来控制灯泡的亮度。 ...

  • 发布于 2021-03-15 06:56
  • 阅读 ( 369 )

如何用高清电视买到便宜的智能电视

... 如果Windows操作系统不是那么重要,那么对于HTPC来说,Raspberry-Pi是一个更便宜的选择。在Linux操作系统上运行时,它提供了同样的低能耗、小尺寸的好处。 ...

  • 发布于 2021-03-16 22:50
  • 阅读 ( 243 )

安装wemo交换机:分步指南

你屈服于同龄人的压力,最终买了一个智能电灯开关,这样你也可以成为精英“智能家居”人群的一员。哪个开关?最简单的安装和设置当然:贝尔金韦莫灯开关(加州,英国)。 ...

  • 发布于 2021-03-17 09:15
  • 阅读 ( 204 )

3个你可能没有使用的很棒的nest恒温器功能

巢式恒温器已经成为智能家居的主要产品已有一段时间了。然而,即使是购买过一个的人也可能不完全意识到这个小玩意儿到底有多强大。 ...

  • 发布于 2021-03-17 11:15
  • 阅读 ( 237 )

如何用树莓皮打造自己的android平板电脑

... 虽然Raspberry-Pi上可以安装多个版本的Android,但您需要一个与触摸屏兼容的版本。两个关键的Android版本值得考虑。 ...

  • 发布于 2021-03-18 17:31
  • 阅读 ( 316 )

如何使用googletensorflow和raspberry-pi构建diy人工智能项目

机器学习是每个人都在谈论的话题。很容易看出原因。它是数据操作的未来,几乎已在所有现代业务环境中使用。但它能和树莓皮一起吃吗?Pi是否能够维持一个工作的神经网络?有了谷歌TensorFlow,它可以! ...

  • 发布于 2021-03-23 18:25
  • 阅读 ( 211 )
雁过江水寒
雁过江水寒

0 篇文章

相关推荐