监测家中的温度和湿度是有帮助的,它使居民能够调节供暖,以创造一个完美的加热气氛。很高兴看到一个屏幕通知您当前的温度和湿度,但是如果您可以在 Google 电子表格上实时可视化它会怎样,这样您就可以通过在任何设备上单击一两次来随时检查您家的状态。
该项目旨在让任何人和每个人都可以轻松访问所有这些内容。利用 Temboo 的 Google 表格编排,您可以轻松地对您的 Arduino Yun 进行编程,以将包含您家的温度和湿度的值附加到 Google 表格中。
TemperatureVisualiser 将从 DHT11 温度和湿度传感器读取读数并将数据发送到 Temboo。然后 Temboo 会将数据重定向到 Google API,然后是 Google Sheets,在电子表格上显示信息。这是说明该过程的图像。
这是项目代码概述的图解图像。
Temboo 和 Google 要求以 json 格式与值一起发送数组数组。格式化的缓冲区将如下所示。
[ [ temp, hum, ] ]
Temp 是从 DHT11 传感器接收到的温度读数。Hum 是从 DHT11 传感器接收到的湿度读数。
运营该项目的用户将受益于:
第 1 步:所需设备
该项目包含的硬件很少,因此很容易构建。对于这个项目,您将需要:
第 2 步:连接电路
只有 3 个组件 = 易于组装。以下是该项目的示意图:我要用 5v 为我的 DHT11 传感器供电,因此请确保您的传感器支持 5v,如果不支持,请使用 3.3v。
第 3 步:确认代码
代码分为三个部分:
这些项目由两个草图组成,主代码和一个包含所有用户在 Google 和 Temboo 上的帐户数据的头文件。这里仔细看一下代码的各个部分,头文件将在下面的“设置变量”中设置。
overview = DHT.read11(11); // Read the sensor output
temp = DHT.temperature,1; // store temperature
hum = DHT.humidity,1; // store humidity
这部分代码使用库从 DHT11 传感器读取数据。当读取结果时,它们存储在温度和湿度的单独变量中(temp
和hum
)。
sprintf(values,"[[%02d,%02d,]]",temp,hum); // insert temp and hum in the json packet required
这是将传感器值附加到缓冲区的代码行,sprintf 会将字符添加到缓冲区。[[%02d,%02d,]]
是 Google 要求能够读取值的布局。
TembooChoreo AppendValuesChoreo; // initialise which choreo to begin
AppendValuesChoreo.begin(); // begin the choreo
// Set Temboo account credentials - Set in Acounts.h
AppendValuesChoreo.setAccountName(TEMBOO_ACCOUNT);
AppendValuesChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
AppendValuesChoreo.setAppKey(TEMBOO_APP_KEY);
// Set Choreo inputs - Set in Accounts.h
AppendValuesChoreo.addInput("RefreshToken", GOOGLE_CLIENT_REFRESH_TOKEN);
AppendValuesChoreo.addInput("ClientSecret", GOOGLE_CLIENT_SECRET);
AppendValuesChoreo.addInput("Values", values);
AppendValuesChoreo.addInput("ClientID", GOOGLE_CLIENT_ID);
AppendValuesChoreo.addInput("SpreadsheetID", GOOGLE_SPREADSHEET_ID);
AppendValuesChoreo.setChoreo("/Library/Google/Sheets/AppendValues");
// identify choreo to run
AppendValuesChoreo.run(); // run the choreo
这部分代码初始化 Temboo,开始编排,设置 Temboo 帐户凭据和 Google 帐户凭据并运行编排。所有帐户的凭据都可以在 Accounts.h 文件中设置。
设置变量
所有变量都在项目主草图附带的 Accounts.h 头文件中设置,您所要做的就是在头文件中定义变量以使 choreo 运行。输入将在下面的“后端程序”中解释,我们将为项目设置 Temboo 和 Google API。
图书馆
Temboo - 版权所有 (c) 2017 Temboo Inc. 在 Apache 2.0 许可证下。查看此许可证
DHT - 作者 Rob Tillaart 这个库在公共领域
Bridge - Arduino LLC 这个库在公共领域
设置
对于这个项目,您需要一个已经设置和初始化的 Arduino Yun。查看有关开始使用 Yun 的指南。这是一个链接,其中包含有关您的 Arduino Yun 上的Temboo和Running Choreos 的信息。准备好后,将您的 Yun 连接到 PC/Mac 并运行下面的草图。
后端程序
要运行这个项目,我们需要配置两个平台:Temboo 和 Google API。我们将一步一步地做到这一点。如果设置不适合您,请再试一次(我花了一段时间才成功)。
第一步是创建一个 Temboo 帐户,为此请访问此页面。在页面中间的框中,写下用户名。单击“试用”并按照休闲页面上的说明设置您的帐户。Temboo 在基本计划中可免费使用,每月可为您提供 250 次舞蹈。
要创建 Google 帐户,请访问此页面。设置帐户后。转到Google 帐户。如果需要,请登录,现在您的窗口应如下所示。
现在,导航到登录和安全标题并选择登录您的 Google 帐户。现在确保在您的帐户中启用“两步验证”。完成后,您的页面应如下所示。
这是最重要和最令人困惑的一步,慢慢来!访问谷歌控制台。该页面可能会要求您登录,请这样做。您将看到一个空白页面,如果您没有创建项目,请单击“创建项目”按钮。现在放松为创建项目而实施的步骤。等待项目加载后,您应该会看到这样的窗口。
现在我们要做的第一件事是单击左侧滑动条上的“凭据”。这应该将您带到这样的窗口。
现在单击“创建凭据”并从下拉菜单中选择 OAuth 客户端 ID。现在将询问您要创建哪种类型的应用程序。选择“网络应用程序”。现在给你的应用起个名字,我叫它 Temboo。在下面,您应该会看到一个标语“授权重定向 URI”,其中写道:
https://ACCOUNT_NAME.temboolive.com/callback/google
输入您的 Temboo 帐户名称而不是 ACCOUNT_NAME,完成后,您的 URL 应包含您的用户名,例如https://myaccount.temboolive.com/callback/google
现在你的窗口应该是这样的,不要填写“Authorized JavaScript origins”。
现在单击“创建”。当您这样做时,您将被重定向到您的仪表板,并会出现一个窗口,为您提供您的客户端 ID 和客户端密码。确保保留这些代码,因为它们在接下来的步骤中是必要的。现在再次单击“仪表板”,然后单击页面顶部的启用 API。现在你的窗口应该是这样的。
在搜索字段中搜索“Google 表格”。现在点击 Google Sheets API。单击它后,您的窗口应如下所示。
单击“启用”按钮。现在您将被重定向到您的仪表板。
现在转到 Temboo 并登录,您的页面应如下所示。
现在在左侧的菜单上,向下滚动直到看到“Google”,然后单击它旁边的箭头。完成后,您将打开一个下拉菜单,打开 OAuth,然后单击 InitialiseAuth。你的窗口应该是这样的。
现在将您的 Google ClientID 放在“ClientID”字段中,然后向下滚动,直到看到标有“notes”的部分,您可以在那里找到项目所需的范围。我们将使用谷歌电子表格,所以复制盒子的所有内容,应该是:
https://spreadsheets.google.com/feeds/
https://docs.google.com/feeds/
https://docs.googleusercontent.com/
现在将它们粘贴到顶部的范围框中。你的窗口应该是这样的。
现在单击“立即运行”以运行您的代码。代码运行完毕后,您将收到两个字段,一个 URL 和一个 callbackID,请确保您还保存了您的 callbackID 以供进一步使用。现在访问上面框中显示的 URL。您应该收到来自 Google 的请求,要求您登录,这样做。现在谷歌可能会通知您该网站不安全,如果是,请点击页面底部的“高级”,然后点击下方的“打开 temboolive.com”。现在您将收到另一个通知,告诉您该应用程序想要访问文档和文件,单击“允许”。现在您应该会看到一个空白页,如果看到,请继续进行下一部分设置,如果您没有看到空白页,请从头开始此步骤。
要完成您的 OAuth,请访问 Temboo。在左侧菜单中选择 Google - OAuth - Finalize OAuth。你的窗口应该是这样的。
使用之前收集的数据填写字段,然后单击“立即运行”,如果代码有效,您应该会收到一个访问令牌和一个 RefreshToken,确保将它们都保存起来,因为下一步将需要它们。干得好,困难的部分结束了。如果成功,您可以继续下一步,如果不成功,请从头再试此步骤,确保 Google 上“授权重定向 URL”字段中的 URL 输入正确,并且您的 clientID 和客户端秘密是正确的。
为了检查您的配置是否正确,我们将尝试测试草图。访问 Temboo 并转到 Google - Sheets - AppendValues,您的页面应该如下所示。
现在填写之前设置中收到的 ClientID、Client Secret 和 Refresh Token。接下来,转到Google 文档。创建一个新文档,在你这样做之后,给它一个名字。电子表格 ID 位于电子表格的 URL 中。例如。如果电子表格的 URL 是
https://docs.google.com/spreadsheets/d/1wn9R5vPJLIulgxKjDflqnN6X84Xe7zu6925mRQO-tVo/edit#gid=0
然后 ID 是 1wn9R5vPJLIulgxKjDflqnN6X84Xe7zu6925mRQO-tVo,现在复制您的电子表格 ID 并将其粘贴到 Temboo 的电子表格 ID 框中。最后,复制此数组并将其放在“值”字段中。
[ [ "100", "200", "300" ] ]
有关如何格式化值的更多数据,请向下滚动到页面上的注释。你的窗口应该是这样的。
现在向下滚动,直到您看到一个标有“代码”的框,复制该框的所有内容并将其粘贴到 Arduino IDE 中。在该框下方是另一个标有“头文件”的框,复制该框的内容,然后在 Arduino IDE 中,创建一个新选项卡并将其命名为“TembooAccount.h”并将内容粘贴到新选项卡中,编译代码。
通过 USB 类型 A 到 C 电缆将您的 Arduino Yun 连接到您的 PC/Mac,并等待您的 Yun 连接到 wifi,这由标有 WLAN 的蓝色 LED 快速闪烁指示。当您的 Yun 连接到 wifi 时,上传代码并打开串行监视器。如果该项目成功,您应该在 Temboo 的监视器中得到响应。现在返回 Google 文档,然后单击您之前创建的电子表格。 您应该在单独的单元格中看到打印的三个值。100 200 300
如果这行得通,那么您离成功仅一步之遥。
现在打开下面的代码,确保根据您的喜好编辑 Header 文件,包括之前收到的值。编排运行之间的默认延迟是一分钟,您可以根据需要更改它。我建议在第一次尝试时打开 proDebug(将其设置为 1)并打开串行监视器以接收进度数据和调试信息。在不连接计算机的情况下使用此项目需要将 proDebug 设置为 0(其初始值)。就是这样,只需将草图上传到 Yun 就可以了。任何地方的温度和湿度。
最后
由于该项目几乎没有硬件,我决定不建造一个外壳,但如果你愿意,可以随意制作一个。这是成品。
我创建了这个项目作为一个教程,以使 IOT 更容易理解,就个人而言,我花了一些时间来解决它,所以我想为你节省一些时间。我认为在电子表格上检查温度和湿度非常好,也很容易,所有数据都在一起并且易于访问。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !