English

The General Purpose Input Output over Internet.*


首页 | iGPIO | 资源

 
 

使用iGPIO开启/关闭LED
在这个例子的最后,您将可以开启/关闭远程设备上的LED,通过iGPIO网站的浏览器界面。

本例所需材料:

  • Raspberry Pi B型(有互联网接入,有线或无线均可)
  • 一个LED和一个330欧姆的电阻
  • 连接线,电路试验板

还需要的是一台电脑或智能手机用于访问iGPIO网站。

按照以下步骤设置LED控制开关:

(1)在iGPIO网站注册一个免费帐户

点击这里访问iGPIO注册页面

您需有一个电邮地址,并选择一个密码来注册一个帐号。注册后,您有User ID,即您的电邮地址和密码的帐户。

(2)设置iGPIO的设备通用参数

iGPIO网站注册后,点击此链接到登录页。使用您的帐户的电邮地址和密码登录,然后点击"设备管理器"按钮。设置以下参数:

  • 名称:LED开关
  • 更新间隔:不变(默认值是300秒)
  • 邮件间隔:不变(默认值是3600秒(一小时))
  • 设备邮件间隔:不变(默认值是3600秒)
  • 报警延迟:600(如果设备没有按预定间隔访问iGPIO网站,iGPIO系统等待这段时间(600秒)后发送电邮提酲用户)

选中启用复选框,然后单击"更新"按钮。

(3)设置iGPIO的设备详细参数

完成设备通用参数的设置后,单击"打开#1"链接,弹出#1设备的详细参数页面。在这个例子中,我们使用CH1设置参数如下:

  • 标签:LED(该通道是LED开关)
  • 数值:1(数值=1,打开远程LED,或0将其关闭))
  • 数值2:0(未在本实例中使用)
  • 数值3:0(未在本实例中使用)
  • 标记:2(浏览器控制该通道,也就是说,只有浏览器允许修改参数)

勾选启用复选框,然后单击"更新"按钮完成设置。该设置将允许设备读取数值。如果数值=1,该设备打开所述LED;如果数值=0,它关闭LED。

(4)制作LED开关

此链接会告诉您所有的步骤来制作LED控制开关(英文):

http://maxembedded.com/2014/07/using-raspberry-pi-gpio-using-python/

从现在起,我们假定你已经将LED连接到GPIO23上,也就是说,在Raspberry Pi针连接器16。为了检测Raspberry Pi的设置是否正确,把下面的python代码存放在一个文件中,例如/home/pi/led_blink.py:

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
led1 = 23
GPIO.setup(led1, GPIO.OUT)
GPIO.output(led1, 1)
time.sleep(5.0)
GPIO.cleanup()

然后运行下面的命令:

sudo python led_blink.py

如果一切正常,LED会闪烁(在5秒后关闭)您可以继续下面的步骤。

(5)运行Raspberry Pi的python样本代码

将Raspberry Pi连接互联网,无论是用以太网电缆连接到路由器或使用USB无线适配器,http://www.raspberrypi.org/documentation/configuration/wireless/ 用此链接下载示例代码。编辑顶部2行,即使用您的帐户名(电子件址)和密码,并将其保存到/home/pi/。欲了解更多信息,请阅读设备用户界面说明。使用下面的命令来运行示例python程序:

sudo python led_switch.py

请注意,由于更新时间间隔为300秒,运行一次代码后,您需要等待300秒再次运行它。我们建议在crontab(操作系统调度程序)中运行代码。要做到这一点,可以使用下面的命令:

crontab -e

在crontab的末尾添加一行:

*/5 * * * * sudo /usr/bin/python /home/pi/led_switch.py

保存并退出crontab。用此设定,该设备将每5分钟(300秒)读取iGPIO网站的CH1的数值,并根据CH1数值来打开和关闭LED。用户可以使从世界上任何地方用PC,平板电脑或智能手机上的浏览器访问iGPIO网站,设置CH1数值,(1或0)打开和关闭LED。

请注意:如果您使用crontab调度运行程序,请在应用程序中添加一行(在请求iGPIO网站之前)休眠"随机选择"N秒(在python中命令time.sleep(#.#)进入休眠状态#.#秒;你还必须在程序的开始添加一行"import time")。我们建议您这样做的原因是,crontab调度是基于绝对分钟,所以如果1000用户使用crontab每五分钟运行应用程序,那么所有1000用户的程序都在同一时间将访问iGPIO服务器,可能造成服务器过载。然而,如果各用户采取不同的的秒数来延迟其iGPIO的访问,将可避免这个问题。注意,休眠命令不会影响时间间隔;例如4秒延迟将意味着iGPIO网站的初始接入被延迟了4秒;然而访问的时间间隔仍是,例如,5分钟,如同以上crontab的设置。

 

*US Patent No. 9,727,046, ©2018 iGPIO All Rights Reserved | 服务条款和隐私政策 | 联系我们