0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用树莓派和IFTTT构建光感应智能开关

454398 来源:网络整理 作者:网络整理 2019-12-02 10:28 次阅读

黄昏至黎明开关和计时器开关都是使灯光自动化的便捷方法。如果您可以将两者结合起来,甚至将它们连接到互联网上,以获得真正的智能照明系统,那不是很好吗?

Raspberry Pi,一个继电器,一个光传感器和一些仅需代码即可实现此自动照明必杀技。

所需条件

用于光感应智能开关的组件易于采购。您将需要:

任何运行Raspbian的模型Raspberry Pi。

亚马逊上很容易找到的中继板。

Adafruit TSL2561发光度传感器

跳线。

一些灯可以自动运行!

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

使用继电器的方式与我们自动车库门开启器项目的方式相同,您可以对Raspberry Pi进行编程,以在固定时间打开和关闭照明电路。在混合物中添加一个亮度传感器,意味着Pi可以检测环境光水平,并选择仅在真正需要时才打开灯光。

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

已编程的时间表。

环境光水平。

超驰信号

第1步:将Raspberry Pi连接到中继

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

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

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

将Pi针2(5v)连接到继电器板上的JD-VCC。

Pi针6(GND)到继电器板上的GND。

Pi针15(GPIO) 22)到中继板上的IN1

Pi引脚17(3.3v)到中继板上的VCC。

第2步:连接光度传感器

TSL2561是一种光传感器,可以检测红外光,全光谱和人类可见光。它可以向Raspberry Pi发送非常精确的数字读数。传感器报告的光线水平范围为0.1(无光照)至40,000(明亮的太阳)。

TSL2561板使用i2c协议与Raspberry Pi通讯。 I2C仅需要两个连接,一个用于时钟,以使两个设备保持同步,另一个用于传输数据。当然,勒克斯传感器也需要一定的功率,因此总共需要进行四个连接:

将Pi引脚1(3.3v)连接到勒克斯传感器上的Vin(或VCC)li》

将Pi针3(SDA)连接到流明传感器上的SDA

将Pi针5(SCL)连接到勒克斯传感器上的SCL

将Pi针9( GND)到lux传感器上的GND

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

在进行进一步操作之前,则需要检查Raspberry Pi上是否已启用I2C(默认情况下已禁用)。在终端中输入以下内容:

sudo raspi-config

选择 Interface Options》 P5 I2C,,然后选择 Yes 。。 》

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

sudo reboot

Pi能够与传感器板通信需要一些依赖项。键入以下命令:

sudo apt-get update

sudo apt-get install -y python-smbus

sudo apt-get install -y i2c-tools

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

sudo i2cdetect -y 1

如果您的依赖项是已安装并且您的勒克斯传感器正确连接,您将看到类似以下的响应:

在此处,该实用程序正在报告已找到I2C设备(勒克斯传感器)位于I2C地址39。

您还没有完全解决依赖关系。您还将需要一些库。首先,创建一个文件夹,以将与此项目相关的所有内容保存在:

mkdir ~/lighting

cd ~/lighting

下一步,下载bottle,这是一个轻量级的框架,可以在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.git

git 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_literals

from tsl2561 import TSL2561

if __name__ == “__main__”:

tsl = TSL2561(debug=True)

print(tsl.lux())

按屏幕上的说明按 Ctrl + X 保存。

完成后,运行测试脚本:

python test.py

如果一切都已安装并且可以正常工作,您将获得一个电话号码。该数字是传感器的照度读数。尝试阻挡或移动传感器,使其获得更多或更少的光线。然后再次运行测试脚本,并查看数字的变化。

步骤4:创建自动化脚本

Raspberry Pi在天黑时会打开灯光,但也会切换他们在某些时候离开。例如,您可能希望在晚上天黑时打开灯,然后在午夜关闭以节省电。他们可以在清晨再次亮起,然后在天亮时自行关闭。

要管理具有多个计时区域的日程表,有两种不同的脚本。如果您想在黑暗中打开灯,则每分钟就会运行一个( onzone.py )。另一个( offzone.py )会在您希望熄灭的时间内每分钟运行一次,而不管照明强度如何。

脚本将计划使用cron作业运行。通过选择每个脚本在白天和晚上的哪个小时运行,可以轻松设置灯光自动点亮的时间。您可以根据需要设置任意的打开和关闭时间段。

以及用于自动控制灯光的脚本,还有第三个脚本可以管理覆盖情况。这样一来,无论环境光线如何,您都可以远程打开灯光。

脚本1:ON区域

此Python脚本将在您需要的每一分钟运行如果天黑了,灯会亮。通过将此命令复制并粘贴到终端中来下载脚本:

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

每次运行onzone.py时,它将从传感器获取一个勒克斯值,以查看是否是黑暗的。如果是,它将检查灯光是否亮起或熄灭。如果它们关闭,它将打开它们。如果不是很暗,脚本将查看指示灯是否亮着。如果是的话,除非它们被覆盖,否则它将关闭它们。

脚本使用名为 lowlux 的变量来确定在什么地方足够暗以打开灯。您可以通过更改onzone.py顶部附近的以下行中的值来将其更改为适合您自己的安装的方式:

lowlux = 50 脚本2:OFF区域

该脚本将在每天要关闭的灯光下运行,除非它们已被覆盖。下载脚本:

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

此脚本不在乎它的亮或暗。它的工作只是简单地将灯关掉(除非已被覆盖)。

脚本3:覆盖服务器

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

无论环境光线水平如何,都将灯打开几分钟。

将灯关闭。

找出当前灯是开还是关。

找出当灯被覆盖时应保持多长时间。

下载脚本:

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

在继续下一步之前,请运行offzone.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浏览器中键入以下内容,用您自己的Raspberry Pi的地址替换IP地址:

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

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

第7步:连接灯光

在将灯光连接到继电器之前,请先关闭并拔下Raspberry Pi。使用继电器板上的常开(NO)连接器代替常规开关,如下所示:

最后,您可以安装勒克斯传感器在可以捕获环境光水平的地方。请注意,如果TSL2561在直射的阳光下会报告为饱和,因此,如果可能的话,最好将其保持在阴暗处。

更多Raspberry Pi项目供您尝试

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

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

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

责任编辑:wv

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

    关注

    3

    文章

    195

    浏览量

    20382
  • 树莓派
    +关注

    关注

    116

    文章

    1699

    浏览量

    105525
  • IFTTT
    +关注

    关注

    0

    文章

    47

    浏览量

    3134
收藏 人收藏

    评论

    相关推荐

    ARM开发板与树莓的比较

    处理器 ARM开发板通常采用不同的ARM处理器,如Cortex-A系列、Cortex-M系列等,而树莓则主要使用博通的ARM处理器。树莓的处理器性能相对较高,尤其是在最新的
    的头像 发表于 11-05 11:11 243次阅读

    树莓gpio有什么用,树莓gpio接口及编程方法

    一、树莓GPIO的用途 树莓(Raspberry Pi)是一款小巧、功能强大的单板计算机,广泛应用于编程教育、物联网项目、家庭媒体中心等领域。GPIO(General Purpos
    的头像 发表于 10-22 18:09 495次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 535次阅读

    树莓网关:物联网应用的新标杆

    什么是树莓树莓(Raspberry Pi)是一种基于Linux的小型单板计算机,由英国的树莓
    的头像 发表于 10-09 16:44 242次阅读
    类<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网关:物联网应用的新标杆

    树莓和单片机的优缺点是什么

    树莓(Raspberry Pi)和单片机(Microcontroller)是两种广泛应用于电子项目和嵌入式系统的硬件平台。它们各自具有独特的优缺点,适用于不同的应用场景。 树莓
    的头像 发表于 08-30 18:21 1463次阅读

    树莓的功能用途是什么

    树莓(Raspberry Pi)是一款由英国树莓基金会研发的信用卡大小的单板计算机,自2012年推出以来,已经发展出多个型号和版本。树莓
    的头像 发表于 08-30 18:01 2251次阅读

    树莓是x86还是arm

    树莓(Raspberry Pi)是一款由英国树莓基金会(Raspberry Pi Foundation)开发的微型计算机。它基于ARM架构,而非x86架构。 一、
    的头像 发表于 08-30 15:42 795次阅读

    树莓装ubuntu和raspbian哪个更好

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的单板计算机,广泛应用于教育、科研、物联网等领域。树莓
    的头像 发表于 08-30 15:41 1055次阅读

    Hailo联手树莓,开创人工智能新纪元

    近日,人工智能处理器领导品牌Hailo正式宣布与树莓展开深度合作。Hailo将为树莓推出专用AI套件,支持
    的头像 发表于 06-06 16:08 691次阅读

    树莓携手Hailo为其新品注入人工智能功能

    摘要:Hailo近期推出虚拟社区论坛,旨在促进合作、共享知识,同样对树莓用户开放。 边缘人工智能(AI)处理器的领先芯片制造商Hailo近日宣布与树莓
    的头像 发表于 06-06 10:18 377次阅读

    Waveshare推出树莓红外热像仪,可智能检测报警和过热问题

    Waveshare近日推出针对树莓的红外线热像仪。此设备能借助GPIO接口与树莓派对接,拓展其功能领域。除正常的树莓外,该设备亦兼容
    的头像 发表于 05-20 14:45 614次阅读

    佰维存储microSD卡通过树莓AVL认证

    树莓为英国树莓基金会开发的微型单板计算机,其以小尺寸、高性能、低成本和易开发等特点,广泛应用于物联网、工业自动化、智慧农业、人工智能、新
    的头像 发表于 01-23 17:19 400次阅读
    佰维存储microSD卡通过<b class='flag-5'>树莓</b><b class='flag-5'>派</b>AVL认证

    zigbee智能开关设置方法

    随着科技的飞速发展,智能家居已经逐渐走进了我们的生活。Zigbee智能开关作为智能家居的重要组成部分,具备无线传输、低功耗等优势,受到越来越多消费者的青睐。本文将介绍Zigbee智能开关
    的头像 发表于 01-16 13:51 2180次阅读

    树莓主板如何连接电脑

    连接树莓派到电脑是一个非常有用的功能,它可以让我们在电脑上进行树莓的操作和管理。本文将详细介绍如何连接树莓主板到电脑。我会从准备工作开始
    的头像 发表于 01-07 15:40 1828次阅读

    基于树莓的环境监测系统

    树莓(Raspberry Pi)是一种小型而功能强大的计算机,其性能和功能足以支持许多应用领域。在环境监测系统中,树莓也被广泛应用。本文将详细介绍基于
    的头像 发表于 01-04 15:15 1924次阅读