树莓派控制电灯

RaspberryPi Feb 20, 2017

前言

前两天入手了一个树莓派3B、研究了两天,做出来了通过网页控制电灯泡的案例,特此分享经验;

一、准备

1.材料

树莓派;
树莓派继电器(我用的是低电平触发,如果你的是高电平触发请自行修改代码);
家用220v电灯泡、灯头、插头、电线;
螺丝刀等电工工具;

2.技术

Linux基础,想实现网页控制还需拥有建站基础、PHP基础;

二、动手

1.接线

电灯接线,如下图,将电灯的正极和负极分别接到继电器的常开端(NO)和公共端(COM);

继电器的杜邦线按下面电路图里的蓝红黄三色杜邦线位置接上;


树莓派接线,用的是杜邦线;还是以上面电路图里的蓝红黄三色杜邦线为例;
  • 蓝色接树莓派pin6(如下图第6个)

  • 红色接树莓派pin11(如下图第11个)

  • 黄色接树莓派pin2(下图红色5v电压接口)

2.代码

新建python脚本

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

num = 17           #树莓派针脚编号     

GPIO.setup(num, GPIO.OUT)
id = GPIO.input(num)

if (id == 1):
	GPIO.output(num, GPIO.LOW)
	print "已打开设备"
if (id == 0 ):
	GPIO.output(num,GPIO.HIGH)
	print "已关闭设备"

这个脚本会根据树莓派GPIO的状态而执行相反的操作,所以开关电灯只需重复运行此脚本即可;

3.完整网页控制代码

要实现下方第一个优酷视频中的效果需 点我下载 完整的程序;

三、更好的网页控制系统

上面的代码是我最开始写的,不好用,所以就重写了一套网页控制的程序,具体效果可以看下面第二个视频;

要实现网页控制你需要开启PHP的exec函数和《Linux执行sudo命令时免输密码》这篇文章中的功能;

如何开启PHP的 exec函数 :打开 php.ini 文件,找到 disable_functions ,将等号后面的 exec 删掉后保存 php.ini 并重启PHP即可;

接线方法和上面一样,只不过这次我用的是两个灯,程序也是控制两个灯的程序,当然你也可以用这套程序控制一个灯;

1.程序下载

程序我已经放到Github上了,如果觉得不错的话记得Star一下哦;

2.程序使用

本系统主要是由PHP和Python写的,在使用之前你需要简单的修改三个Python程序;

  • state.py

  • led1.py

  • led2.py

你需要修改上面三个Python程序中的变量 num1 和 num2 的值,这两个变量分别是继电器1和继电器2的控制线接口编号,要是不明白可以看上面电路图中的解释;如果你需要一个用电器的话,只需修改一个变量即可;

然后将本程序放到你树莓派的Web目录下,访问index.php文件即可打开网页控制系统

四、一饱眼福

我做完的,不要在意线路上的细节;

第一个案例视频-优酷

第二个案例视频-优酷