使用Pi-mote插件控制Energenie电源插座

3

Energenie创建了一系列远程控制电源插座产品。其中包括用于控制灯,泵和任何其他由电源供电的设备的插口式适配器。为了增加一些智能,他们出售了一个集线器,但我更感兴趣的是Pi-mote。

Energenie PiMote这是Raspberry Pi的10英镑附加板,可让您使用GPIO引脚控制插座。设置完成后,很容易获得自己的代码来打开和关闭套接字。它’与Pi的所有型号兼容,我在房子周围使用一些控制灯,在花园中使用一个作为我的一部分 戏水池泵控制系统.

您可以单独购买插座,但您可以’如果购买一套捆绑有Pi-mote的插座,则将获得最佳价值。我设法以20英镑的价格买到了两个插座和一个Pi-mote套件,但在Energenie官方商店中仅售22英镑。

购买Energenie设备

Energenie产品可从多种来源获得,因此您可能需要货比三家以获得最佳价格。您可以通过同时购买一组插座和Pi-mote来获得更高的性价比。

将插座与Pi-mote配对

Pi上的Energenie Pi-mote为了使用插座,必须将每个插座与Pi-mote配对,并为其分配ID号,范围为1-4。 官方用户手册 包含更多技术信息,但以下是我用来将插座与Pi-mote配对的过程。

  • 创建一个新的Raspbian SD卡
  • 将Pi-mote插入GPIO接头
  • 给Pi加电
  • 下载 我的配对脚本 使用:
wget //bitbucket.org/MattHawkinsUK/rpispy-pool-monitor/raw/master/utils/energenie_pair.py
  • 将第一个插座插入电源插座
  • 如果LED指示灯亮,请按按钮以关闭插座
  • 按住按钮5秒钟,然后在LED开始闪烁时松开。插座上的指示灯应每秒闪烁一次
  • 使用适当的套接字号(1、2、3或4)运行pair脚本
 蟒蛇 3 energenie_pair.py 1

您提供给套接字的ID将用于在Python脚本中控制此套接字。您只能具有ID 1,2,3和4,但是您可以在多个套接字上使用这些ID。

如果您输入脚本“5” :

 蟒蛇 3 energenie_pair.py 5

它将运行测试并依次激活四个ID。这使您可以检查套接字是否已使用期望的ID激活。

提示:如果您打算使用许多套接字,则可能需要标记它们,以便以后参考。

擦除套接字设置

如果要删除套接字中的配对信息,可以执行以下操作:

  • 确保插座关闭并且红色指示灯熄灭
  • 按住按钮直到LED开始闪烁
  • 继续按住按钮,直到LED开始闪烁更快
  • 释放按钮

套接字将返回学习模式,您可以运行配对脚本,关闭套接字或将其完全拔出。

Energenie Socket和Pi-mote

Energenie套接字代码

作为参考,这里是用于控制四个潜在插座的代码。使用下面详述的Energenie或gpioZero方法时,您不会’真的需要担心这个细节水平,但是’供参考。

有三种简单的方法可以控制套接字。

方法1– RPi.GPIO

使用RPi.GPIO比其他两种方法需要更多的Python,因为在将代码发送到Pi-mote之前必须手动配置GPIO引脚。可以在脚本开始时使用以下命令配置GPIO引脚:

import time
import RPi.GPIO as  通用输入输出 

# Set the  通用输入输出  numbering scheme
GPIO.setmode(GPIO.BCM)

# Select the  通用输入输出  pins used for
# the encoder D0-D3 data inputs
GPIO.setup(17,GPIO.OUT,initial=0)
GPIO.setup(22,GPIO.OUT,initial=0)
GPIO.setup(23,GPIO.OUT,initial=0)
GPIO.setup(27,GPIO.OUT,initial=0)

# Select the  通用输入输出  pin to enable/disable the modulator
# Default to disabled
GPIO.setup(25,  通用输入输出 .OUT,initial=0)

# Select the signal used to select ASK/FSK
# Default to ASK
GPIO.setup(24,  通用输入输出 .OUT,initial=0)

可以使用以下代码将代码发送到Pi-mote:

# Socket 1 ON
D3=True
D2=True
D1=True
D0=True

# Set D0-D3
GPIO.output (27, D3)
GPIO.output (23, D2)
GPIO.output (22, D1)
GPIO.output (17, D0)

# Let it settle, encoder requires this
time.sleep(0.1)

# Enable the modulator
GPIO.output (25, True)

# Keep enabled for a period
time.sleep(0.25)

# Disable the modulator
GPIO.output (25, False)

在上面的示例中,通过将所有四个Pi-mote输入设置为True,将Socket 1设置为ON。如果您想关闭ID 3,则可以设置

  • D3 =真
  • D2 =假
  • D1 =真
  • D0 =假

该参考表可用于确定控制其他套接字ID所需的D0-3值。

方法二– Energenie Library

为了简化事物,本·纳塔尔·艾米·马瑟(Ben Nuttal Amy Mather)和戈登·霍林沃思(Gordon Hollingworth)创造了 蟒蛇 库 处理方法1中显示的细节。需要安装:

sudo apt-get install  蟒蛇 -pip  蟒蛇 3-pip
sudo pip install energenie
sudo pip3 install energenie

这将为Python 2和Python 3安装该库。

打开和关闭插座的操作变得简单:

import energenie as e
import time

# Turn all sockets  上  and off
e.switch_on()
time.sleep(2)
e.switch_off()
time.sleep(2)

# Turn socket ID 1  上  and off
e.switch_on(1)
time.sleep(2)
e.switch_off(1)

该库有助于保持您自己的脚本的美观和简单,因为您只需要一行代码即可更改套接字的状态,而无需配置GPIO引脚或担心Pi-mote控件。

方法3– 通用输入输出 Zero

您可以使用的下一种方法是GPIO零封装。这包括用于控制各种Pi插件和配件(包括Energenie Pi-mote)的内置方法。它’默认安装在最新版本的Raspbian上,但是如果您需要手动安装,则可以找到 在这里安装说明.

import time
from gpiozero import Energenie

# Turn socket ID 1  上  and off
skt1 = Energenie(1)
skt1.on()
time.sleep(2)
skt1.off()

这在复杂度上与在方法2中使用Energenie库相似,但是如果可以将GPIO零用于项目中的其他硬件位(例如LED或蜂鸣器),则可能是更好的选择。在官方上阅读更多关于它的信息 通用输入输出 零文档页面.

Pi-mote Range

通过将135mm的铜线焊接到PCB上标记为ANT1的点,可以增加Pi-mote的范围。我没有’尚未测试范围,但如果将来会做,我将更新此段。

最后的想法

I’我们已经使用了这三种方法,因此哪种方法最适合您将是个人喜好。如果您有任何疑问,请尝试使用GPIO零,因为它也可以用于快速控制许多其他硬件,如“API–板及配件” list.

一旦您可以使用Python控制套接字,就可以添加各种功能。可能的应用包括:

  • 控制圣诞灯
  • 控制万圣节灯
  • 泳池泵排程
  • 外出时控制房屋照明

光线,运动和温度传感器可用于创建“smart”可以与您从商店购买的任何商品相抗衡的项目。

分享。

3条留言

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.