使用Raspberry Pi和Particle Cloud进行物联网控制的家庭自动化

2023-06-20  

Raspberry Pi 是最著名的低成本计算机之一,也是用于对不同类型的物联网嵌入式项目进行原型设计的强大工具。随着树莓派在物联网领域的普及,粒子云开始在其平台上支持该板。


Particle Cloud是一个非常流行的物联网平台,它可以帮助您从您想要在物联网设备中执行的所有操作开始。Particle 是一个可靠、可扩展且安全的物联网设备平台。有许多支持物联网的粒子设备,如 Xenon、Photon、Electron 等,它们根据我们的需要具有不同的功能。


有许多物联网平台,如Blynk、ThingSpeak 等,您可以使用它们将 Raspberry Pi 连接到物联网云,但粒子云平台有一些很棒的功能,使其与众不同。就像您可以使用粒子云 IDE 在您的 Raspberry Pi 中运行您的 Arduino 代码一样,并且可以在世界任何地方对您的 Pi 进行编程,现在这很酷!此外,您可以轻松集成 IFTTT、Google Cloud 或 Microsoft Azure。


让我们通过使用 Particle Mobile 应用程序和来自世界任何地方的在线 Particle IDE 制作简单的 Raspberry Pi 应用程序来控制家用 AC 设备,开始探索 Particle 云平台。


所需组件

安装了 Raspbian 的 Raspberry PI

继电器模块

220v 灯泡

跳线

假设您的 Raspberry Pi 已经刷入了操作系统。如果没有,请 在继续之前遵循Raspberry Pi 入门教程。这里我们使用 Rasbian Jessie 安装 Raspberry Pi 3。

电路原理图

这个Raspberry Pi Home Automaton 项目的电路图很简单:

poYBAGMW7uyABkiHAAEB_AickuQ121.png

poYBAGMW7uiABkJ_AAOpGZoQ8pU243.png

我们必须在 Raspberry Pi 中安装Particle 代理才能将其与 Particle Cloud 连接。Particle Agent 是一个在后台运行的软件服务,用于与 Raspberry pi 的 GPIO 引脚进行交互。在安装代理之前,您必须在 Particle.io 上创建一个帐户。

我们将从在粒子云上创建一个帐户并了解粒子平台的界面开始。

设置粒子云帐户和树莓派

1. 前往Particle.io并点击右上角的控制台。现在,单击创建帐户。填写所有信息,然后单击注册。

poYBAGMW7uOARVe7AAIjy-Xjzno420.png

2. 现在,在树莓派终端中运行以下命令来安装粒子代理。

bash 《( curl -sL https://particle.io/install-pi )

输入您在第一步中创建的粒子云电子邮件和密码。

pYYBAGMW7t-ALd1gAAH6q89SpwY202.png

3. 粒子代理成功安装在 Pi 中并在后台运行。它也在听粒子云。您可以使用以下命令获取更多信息代理。

poYBAGMW7tuAbujlAAIAatEAvuE670.png

现在,让我们跳到编码部分并探索粒子平台。

使用 Raspberry Pi 和 Particle Cloud 控制 AC 设备

如果您已在 Pi 上成功安装了 Particle 代理,那么您可以在Particle 控制台上找到您的设备。如下所示

pYYBAGMW7teAdBZnAACcfXkUs-s144.png

如您所见,屏幕左侧有许多选项,包括添加新设备、创建网状网络、与 IFTTT、Microsoft Azure 和 Web IDE 集成。

1.首先,点击Web IDE选项。将使用在线 IDE 打开一个新选项卡,如下所示。

pYYBAGMW7tKAIb7aAAHShGuWnpo534.png

2. 现在,您可以在 Raspberry Pi 中使用您的 Arduino 代码。还给出了一些示例代码。我们将在线控制 AC 灯泡,因此,单击 Web-Connected LED 示例并连接您的继电器模块,如电路图所示。代码中使用的引脚是 D7。引脚映射如下所示。

poYBAGMW7s6ANEJIAANfNqs8AyE836.png

3. 现在,编译代码并点击 Flash。确保您的 Raspberry Pi 已连接到互联网。此外,您可以根据需要更改代码,但您必须分叉要使用的示例代码。

poYBAGMW7sqAWtW2AAGRYQuYE7w491.png

4. 正如您在代码中看到的那样,无论何时发送“on”,灯泡都会发光,而无论何时发送“off”,灯泡都会熄灭。要发出命令,请返回控制台选项卡并单击设备。单击刷新按钮,您将看到一个需要参数来执行函数调用的 led 函数。在这里你必须写“on”和“off”来打开和关闭灯泡。编写参数后单击调用。

poYBAGMW7saAYuQKAAC3Jn55Mtw733.png

5. 现在,使用移动应用程序控制灯泡。

在应用程序中,您将看到您的树莓派已列出,单击它。

poYBAGMW7sGAGXr_AAA07L86m7s637.png

6. 单击数据。您会在这里找到相同的 LED 功能。只需输入参数并单击发送。通过这种方式,您也可以使用智能手机控制您的设备。

pYYBAGMW7r6AT8f1AABKSlTrldI548.png

7. Web IDE 中有一个特殊的代码示例,称为Tinker。在 Raspberry Pi 中上传此代码后,您可以一次控制多个引脚,而无需对其进行硬编码。此外,您无需在代码中指定引脚即可获得传感器读数。

8. 只要您 Flash 修补程序示例代码,您将在应用程序中的设备前面看到修补程序选项。点击它。

poYBAGMW7ruAfs5jAAA0nLTWn1s894.png

9. 现在,选择要在其上获得输出或输入的引脚。单击时,系统会要求您单击digitalWrite、digitalRead、analogRead和analogWrite。在我们的例子中,单击引脚 D7上的digitalWrite 。

poYBAGMW7raAGoQjAABZiea67hk473.png

分配功能后,只需单击引脚 D7。你会看到灯泡在发光。再次按下 D7 时,灯泡将关闭。同样,您可以获取不同引脚上的传感器数据,并可以同时控制电器。

// ------------------------------------

// 通过 Internet 控制 LED

// ---- -------------------------------------------


// 首先,让我们为引脚创建“速记”

// 与闪烁 LED 示例相同:

// led1 是 D0,led2 是 D7


诠释 led2 = D7;


// 上次,我们只需要在 setup 函数中声明引脚。

// 这一次,我们也要注册我们的粒子函数


void setup()

{

// 这是引脚配置,和上次一样

pinMode(led1, OUTPUT);

pinMode(led2,输出);


// 我们还将声明一个 Particle.function,以便我们可以在云端打开和关闭 LED。

Particle.function("led",ledToggle);

// 这就是说,当我们向云请求函数“led”时,它将使用此应用程序中的函数 ledToggle()。


// 为了更好地衡量,我们还要确保在启动时两个 LED 都熄灭:

digitalWrite(led1, LOW);

数字写入(led2,低);

}



// 上次,我们希望 LED 持续闪烁,

// 因为这次我们正在等待通过云输入,

// 我们实际上不需要在循环中放入任何东西


void loop()

{

// 此处无事可做

}


// 现在我们将拥有一个超级酷的函数,当发送匹配的 API 请求时调用它

// 这是我们之前注册到“led”Particle.function 的 ledToggle 函数。


int ledToggle(String command) {

/* Particle.functions 总是将字符串作为参数并返回一个整数。

由于我们可以传递一个字符串,这意味着我们可以给程序命令如何使用该函数。

在这种情况下,告诉函数“on”将打开 LED,告诉它“off”将关闭 LED。

然后,该函数返回一个值给我们,让我们知道发生了什么。

在这种情况下,它将返回 1 表示 LED 亮起,0 表示 LED 关闭,

如果我们收到一个完全虚假的命令,它没有对 LED 做任何事情,则返回 -1。

*/


if (command=="on") {

digitalWrite(led1,HIGH);

数字写入(led2,高);

返回 1;

}

else if (command=="off") {

digitalWrite(led1,LOW);

数字写入(led2,低);

返回0;

}

其他 {

返回 -1;

}

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。