覆盆子 PI-实施负担得起的家庭自动化系统 [第一部分]

在本系列前面的文章, 我们看到 GPIO 引脚是什么, 和如何控制 LED 他们从我们 覆盆子 PI 通过 Bash 和 Python, o 一个 web 应用程序.

portadarelele

这次我们将学习控制的力量 电器; 在启动服务器之前我们已经安装了 正如我们看到的 以前交货.

要实现它,打算使用继电器板的 5V 和 8 个频道, 它必须是 optoacoplada 要保护树莓派; 因为我们要检查的设备 220V, 和别针 GPIO 覆盆子工作最多 3,3V.

placarele

继电器 optoacoplados 板.

我们要做的继电器和树莓派之间 下列连接.

模块继电器 optoacoplados
覆盆子 PI 模型, B, A +, B +
VCC
+ 5V
在 8
GPIO 17
吉安达 吉安达
奥林巴斯数码相机

PI 覆盆子和继电器板之间的连接.

现在我们将测试如果连接工作, 与在一个简单的测试 Bash, 设置 pin GPIO 17 作为输出, 并给出一个逻辑的高值.

#Exportamos el PIN deseado
usuario@maquina:~$ sudo echo 17 > /sys/class/gpio/export

#Establecemos la direccion (salida o entrada)
usuario@maquina:~$ sudo echo out > /sys/class/gpio/gpio17/direction

#Activamos la salida del rele dandole un valor de 1 al bit
usuario@maquina:~$ sudo echo 1 > /sys/class/gpio/gpio17/value

一旦已经打开了 led 的继电器控制, 因为我们可以将其关闭和释放别针 GPIO.

#Apagamos la salida del rele
usuario@maquina:~$ sudo echo 0 > /sys/class/gpio/gpio17/value

#Liberamos el PIN asociado
usuario@maquina:~$ sudo echo 17 > /sys/class/gpio/unexport

我们已经测试的运作, 所以,现在我们打算去看我们需要安排 web 页, 它是比与测试相当更简单 LED 我们看到的最后一批.

<html>
 <head>
                 <!--/var/www/rele/index.php-->
 </head>
 <body>
 <!--GPIO17--> 
 <form action="" method="post">
 Enchufe 0 [GPIO 17]&nbsp;<input type="submit" name="encender17" value="Encender">
 <input type="submit" name="apagar17" value="Apagar">
 <input type="submit" name="parpadear17" value="Parpadear">
 </form> 
 <br></br>
 </body>
</html>

<?php
// Funciones PHP del pin GPIO 17
 if ($_POST[encender17]) { 
 $a- exec("sudo sh /var/www/rele/gpio/17/enciende.sh");
 echo $a;
 }

 if ($_POST[apagar17]) { 
 $a- exec("sudo sh /var/www/rele/gpio/17/apaga.sh");
 echo $a;
 }

 if ($_POST[parpadear17]) { 
 $a- exec("sudo sh /var/www/rele/gpio/17/parpadea.sh");
 echo $a;
 }
// Fin de las funciónes del pin GPIO 17
?>

我们需要创建这些 在 bash 中的三个脚本 若要打开, 关闭和闪烁; 这些脚本都被设在 /var www 继电器 gpio 17 /.

#!/bin/bash
#enciende.sh

#Exportamos el PIN deseado
echo 17 > /sys/class/gpio/export

#Establecemos la direccion (salida o entrada)
echo out > /sys/class/gpio/gpio17/direction

#Activamos la salida del rele dandole un valor de 1 al bit
echo 1 > /sys/class/gpio/gpio17/value
#!/bin/bash
#apaga.sh

#Apagamos la salida del rele
echo 0 > /sys/class/gpio/gpio17/value

#Liberamos el PIN asociado
echo 17 > /sys/class/gpio/unexport
#!/bin/bash
#parpadea.sh

#Exportamos el PIN deseado
echo 17 > /sys/class/gpio/export

#Establecemos la direccion (salida o entrada)
echo out > /sys/class/gpio/gpio17/direction

#Activamos la salida del rele dandole un valor de 1 al bit, y lo desactivamos 5 veces
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value

#Liberamos el PIN asociado
echo 17 > /sys/class/gpio/unexport

当我们有 脚本index.php 在他们各自的路线, 我们必须能够查看 以下层次结构 在 web 服务器上的目录.

屏幕截图 2014-11-08 16:27:54这次,我们还必须作出 sudoer 给用户 www 数据; 为此,运行 sudo visudo 在终端中, 并将其添加在用户下的 pi 以便用户 www 数据 您可以控制引脚 GPIO.

#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

现在我们将测试的三个按钮 验证一切正常工作. 一旦工作, 与继电器板指示灯亮起, 我们将会听到 “咔 /” 你发出时打开和闭合的电路.

屏幕截图 2014-11-08 13:30:46

Web 应用程序控制的继电器控制.

我们将看到如何将其连接到一盏灯或任何其他装置来控制它 从任何 web 浏览器的设备.

为架构 连接磁热开关和插座之间中继 我们房子的墙将如下; 单通道继电器肖像也有计划为用, 在这个例子中它是 通道中 8 八通道板.

rele5vmagnetotermico

一座房子的电气面板中的连接图.

概念证明, 将下面的架构使用插头,我不得不改变在一个房间里的房子, 和一盏灯. 下面是在墙上, 和上面的人已经骑在这个测试中,连接在灯; 作为一个开关继电器.

rele5venchufe1

本测试中使用的计划.

有的为每个输出继电器电气连接的三个端口: COM, 常开 常闭. 在 COM 我们必须连接 电气积极 它将饲料设备, 和 在只有一个 其他两个电缆延伸 该装置是正面. 的 负面 连接 直接从到装置的电源插头.

PB080196

继电器连接.

它将取决于如果你连接到 常开, 或 常闭 如果设备上或关闭如果你关掉覆盆子.

在此示例中,继电器连接在 常闭, 所以,如果你关掉覆盆子, 插头工作; 如果 conectásemos 它在 常开, 当断开覆盆子灯不可能点燃因为电路将开放; 我们将了解与视频.

如果你愿意,你可以跟着我 推特, Facebook, 谷歌 +, LinkedIn, 或它分享这份出版物下方的按钮, 如果您有任何疑问或建议,请不要犹豫,置评.

帮助我们达成更多的读者 Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

33 思考"覆盆子 PI-实施负担得起的家庭自动化系统 [第一部分]

  1. 打开和关闭指示灯从互联网

    早上好, 在任何东西之前, 至少我可以说, 谢谢, 超级
    本教程, 再看一眼, 喝彩声和谢谢你.

    一个问题, 我不明白完全一样和在哪里应该安装脚本,
    我的目的是要让 WEB 页, 事实上, 不是因为我去
    使用 PHP 和 WEB, 为例, 通过 pc 机, 连接到互联网
    在任何地方以激活不同的发光二极管或继电器, 不是如何去做,
    提前和当然, 许多感谢任何帮助.

    比利时友好伊格纳西的奥

  2. 您必须将它们复制到 /var/www/rele,在本教程中所示脚本和单一 index.php, 每个人都有它的路线.

    在 /var/www/rele/index.php index.php
    apaga.sh, enciende.sh 和 parpadea.sh /var/www/rele/gpio/17 /

    一次被它顺从于继电器连接到 GPIO 17, 几天后我将结束与第二部分以操作 8 项产出.

    从互联网访问您应该配置路由器,将传入请求通过端口转发 80 到你 PI 覆盆子. 从虚拟服务器的路由器或 NAT 选项您可以配置它.

    最后,要访问更多容易可以报名参加 NoIP 并获得与您的类型 casa.no ip.biz 的公网 ip 免费域名.

    PD: 确保只有您有权访问它,你很好保护那一页.

    非常感谢你的评论.

  3. 下午好,

    一切都完美, 虽然只是通过局域网或通过 Xming ssh, 无法连接到远程, ' 与另一台 PC,通过互联网, 我有 noip 和 dyndns, 和我不能运行, 如果你有任何想法,我感谢它你提前,

    强大的问候和一看更多, 谢谢

    伊格纳西奥

    • 我很高兴,它最后的作品, 但若要从互联网连接哪些协议您使用?

      你必须打开你想要给您访问互联网的路由器上使用的服务的端口 (HTTP 端口 80, HTTPS 端口 443, SSH 端口 22, 等) 做给您访问互联网的私人覆盆子 IP 路由器的端口转发.

      最后现在你只会从另一个网络所面临的公共 IP,你的路由器开始连接, 你可以试着从你的手机 3 G.

      如果是这样的话, 现在你可以继续为从名称容易记住而不是一个公共 ip 地址访问配置 NoIP 或 Dyn; 另外如果在覆盆子上安装 NoIP, 在 NoIP 网站上你的公网 IP 将会自动更改每当此更改您的路由器.

      为增加安全性, 如果您配置的 VPN,使连接到您的家庭网络,它会更好, 和通道通过它你的流量.

  4. 你好, 我有一个问题我在 gpio4 上有 led, sudo 回声 1 > /这我关闭导致系统类 gpio gpio4 值, 与 sudo 回声 0 > /sys 类 gpio gpio4 值, 打开我领导, 应该是 revez, 将作出一些邪恶?.
    将的文件通过网络连接, 当我按下任何按钮 (打开, 关闭, 或闪烁) 只有关闭 led, 但并不取决于, 也不闪烁.
    我很感激你能给我的帮助.

    • 你好, 首先感谢了很多更糟糕的是你的问题 🙂

      您可以按照教程一步一步, 继电器具有 3 类型的针脚:

      – -功率 > VDC (PIN 5V RPI)
      – 吉安达-GND RPI 针 >
      – 在网站-> 条目, 并根据你的状态是高还是低继电器将打开或关闭.

      示例使用 IN8, 你之前后 comenté el 教程 🙂 继电器作为 y IN0 IN1 独奏 debes cambiarlo

      PD: Sean optoacoplados Asegurate, 洛杉矶 de la 照片它儿子.

      此致敬意, 我也希望 ayudado.

  5. 首先, 谢谢你的解释, 非常好.

    我按照你的指示和我可以捉鱼罐距离空气泵.

    我的问题是缺少我可以验证管脚状态 (真或假)

    怎么则能带给我这个数据在同一页面上我?

    是海军按照你的指示, 正确地打开和关闭中继.

    • 嗨特奥多罗,

      此注释是许多读者问的东西, 我正准备在那里,我们将安排的 GPIO 状态指示器本教程的下一部分的针在我的业余时间免费.

      一旦完成在博客上都将发布.

      一会见.

  6. 不过在此之前你太感谢你的博客。. 是壮观. 就我而言我买了你所需要的一切, 我已经按照你的教程, 但是,当你运行的板 8 继电器, 出什么差错.

    问题是,是如果我有板 octoacoplada?? 是,似乎那不是你成为当前不足以激活它. 我的连接:

    5v-> VCC (板)
    吉安达 (P3) -> 吉安达 (板)
    GPIO4-> IN4 (板)

    活动时与脚本 gpio, 领导的红色控制开启 momoento, 但是它不会. 我明白,这是因为 gpio 激活到 3,3 伏特和继电器是 5V. 发誓相同但是有板所以你到 ahber 的方式,使其不工作?

    Apreciaria 任何类型的注释, 继电器板是,如下所示
    (8 继电器模块开关磁阻电动机-05VDC-SL-C)

    谢谢非常感谢

  7. 你好 Loty,

    大多数的销售为微控制器的支持继电器板已经来了光电耦合, 你可以检查它是否是在规格或寻找在板光电耦合器; 这是指多个系列你提到如果那件事是.

    事实上这些板块已经厌倦 5V, 但输出可以由 3 作动器作为覆盆子 IP GPIO 3V 也激活.

    不管怎么说,这个问题似乎是缺乏权力, 所以用 2A 或饲料外部继电器可以帮助替换的覆盆子变压器.

    问候和很快见到你.

    • 你好!
      谢谢你的回复. 我做过测试直接对继电器板 (删除 PI 覆盆子), 来看看它是否板有邪恶. 我得在 2A 5V 外部电源.

      我连接 GND,除非 VDC 饲养者 + 进纸器和 IN4 也到 +. 和那里。. 作品!! 单击中继和 LED 指示灯亮起, 我做过测试 220v 灯与还在工作. 问题出现与树莓派.

      我已经连接板式给料机外部 “+” VDC “-” 吉安达和我已经连接覆盆子 gpio4 IN4, 还有当我激活 GPIO, 什么也没有发生. 我有分寸的 GPIO 和给出了 3,3 v. 在其他网站上看过,据说这是由于连接跳线 VDC JCC 否则. 不是我做错了. 它可能是我把通过 BASH gpio?? 在她廉价卡使用 la libreria de python 的 GPIO 工作所需的 S??

      这次包括格拉西亚斯 por cualquier 贡献

  8. 你好, 我有一个问题来擦除与中继光, 在本教程中使用的代码, 就能亮正常, 但不是删除擦除和继电器武装, 只有解除我拔出从覆盆子中继电缆时. 在几次尝试后,我设法做删除本教程与代码的教程的代码导致删除. 获取此窗体的代码的一部分: 如果 ($_ 邮政[apagar17]) {
    $自- exec(“sudo python/var/www/AcenderWebRele/apaga3.py”);
    $自- exec(“sudo 回声 17 > /sys,类,gpio,贸易”);
    $自- exec(“sudo 回声 0 > /gpio sys 类 gpio17 值”);
    $自- exec(“sudo 回声 17 > /sys/类/gpio/导出”);
    回声 $a;
    }

  9. 来自墨西哥的下午好, 我的名字是恩里克 ·, 我很感兴趣与覆盆子这来自一个学校项目实施自动化的一部分, 在这些教程中提到的必须有 linux 为哪个做不知道的多, 它是可能发展的项目, 网站和覆盆子与 windows 中的必要的编程?, 你提到的 web 服务器必须安装在同一树莓或在哪里?, 如果希望控制的设备的数量超过容量的覆盆子 3 ocuparia 做正常, 其他的覆盆子,还是有一些东西,会提高我的能力?, 如果你处理作为另一个覆盆子都与同一个 web 应用程序?.

    我希望和你能帮我用这.

    此致敬意.

留言