English

The General Purpose Input Output over Internet.*


首页 | iGPIO | 资源

 
 

做一个使用iGPIO的远程温度监测器
在这个例子完成时,您将能够使用iGPIO网站界面远程监测温度。

本例所需材料:

  • Raspberry Pi B型(有互联网接入,有线或无线均可)
  • MCP9808 温度传感器
  • 连接线,电路试验板

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

按照以下步骤设置温度监测器:

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

点击这里访问iGPIO注册页面

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

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

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

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

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

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

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

  • 标签:Rm(C)(室温,摄氏度)
  • 数值:不变(远程设备进行更新)
  • 数值2:19(设定下限为摄氏19度)
  • 数值3:22(设定上限为摄氏22度)
  • 标记:0(允许远程设备更新值数)

勾选启用复选框,然后单击"更新"按钮完成设置。此设置将允许远程设备更新值数,即,室温。如果温度超出预定范围(19 - 22),系统还将电邮通知用户该温度超出预定范围。

(4)制作温度监测器

此链接会告诉您所有的步骤来制作温度监测器(英文):

https://learn.adafruit.com/mcp9808-temperature-sensor-python-library?view=all

为了检测Raspberry Pi的设置是否正确,请把下面的python代码在存放在一个文件中,例如,/home/pi/read_temp.py

import time
import Adafruit_MCP9808.MCP9808 as MCP9808
sensor = MCP9808.MCP9808()
sensor.begin()
temp = sensor.readTempC()
print 'Temp: ' + str(temp) + ' C'

然后运行下面的命令:

sudo python read_temp.py

如果一切正常,所测温度会显示在屏幕上,您可以继续下面的步骤。

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

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

sudo python temp_mon.py

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

crontab -e

在crontab的末尾添加一行:

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

保存并退出crontab。用此设定,该设备将每5分钟(300秒)更新室温,用户可以从世界上任何地方使用连网的PC,平板电脑或智能手机,用浏览器监测。当被监测的温度超出预定范围时,该设备将通过iGPIO发送电邮通知用户。此外,如果设备没有按用户设定更新的温度,iGPIO服务器将发送电邮通知用户。如果不活动的设备恢复工作,iGPIO服务器也将通过电邮通知用户。

请注意:如果您使用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 | 服务条款和隐私政策 | 联系我们