×

带Arduino IoT捆绑包的书呆子

消耗积分:0 | 格式:zip | 大小:0.09 MB | 2023-01-31

李勇俊

分享资料个

描述

在 Arduino IoT Cloud 的帮助下创建桌面宠物!

Nerd 是一种桌面电子宠物,靠进食和阳光生存。为了让它茁壮成长,您必须定期给它喂食并将其暴露在阳光下。如果它的食物用完了,它会使用内置的压电扬声器以摩尔斯电码发出求救信号。

简而言之

Nerd 需要食物,您可以按下按钮给它食物。否则它会通过蜂鸣器发出噪音来抱怨,直到您喂它或把它放在阳光下。Nerd 将连接到 Arduino Cloud,我们可以在其中可视化 Nerd 的食物量和它所处的光照水平。云还将处理代码中所需的计时元素。如果 Nerd 没有食物,它会急剧死亡,并发出很大的噪音。

组件

  • 红绿灯
  • 光电晶体管
  • 蜂鸣器
  • 按钮
  • 220欧姆电阻
  • 10K欧姆电阻

学习目标

  • 介绍 Arduino 物联网云
  • 介绍 Arduino IoT Remote 应用程序
  • 使用 Arduino IoT Cloud 管理传感器
  • 创建 Arduino 物联网云仪表板

想知道更多?

本教程是让您熟悉 Arduino MKR IoT Bundle 的一系列实验的一部分。所有实验都可以使用 Arduino MKR IoT Bundle 中包含的组件构建。

电路

在这个项目中,我们将使用以下电路。在其中,我们有一个 220 欧姆的电阻连接在接地和用于光电晶体管的 A2 引脚之间。在接地和按钮之间连接一个 10k 欧姆电阻。

pYYBAGPXLvKANWJtAAGnIcl9kIE909.png
 

设置 Arduino 物联网云

如果您是 Arduino IoT Cloud 的新手,请查看我们的入门指南

创建新事物和仪表板非常容易。首先在此处访问 Arduino Cloud 站点。设置云包括以下部分:

  • 创建一个东西
  • 连接设备
  • 添加变量
  • 添加网络凭据
 

变量

我们将从添加三个变量开始:

poYBAGPXLvSAHUFyAADgh6Rz5JE099.png
 

仪表板

部署项目的下一步是使用 Arduino IoT 仪表板添加控制面板。我们可以导航到Dashboards -> Build Dashboard -> ADD ,然后我们可以添加两个小部件并将它们链接到变量,如下所示:

  • 仪表小部件 -> nerdsFood(最多 12 个)
  • 仪表小部件 -> nerdsLight(最多 500)
 

设置硬件和草图

跟踪书呆子的食物

为了跟踪书呆子的食物,我们将使用一个int变量。当 Nerd 处于足够的阳光下并按下按钮时,它将被喂食。发出声音,让您知道它收到了食物。RGB LED 会根据书呆子的饥饿状态改变颜色。

/* Set color status feedback */
if(nerdsFood < 4){        /* if starving show red */
    setColor(255, 0, 0);  /* Red */
}
else if(nerdsFood >= 4 && nerdsFood < 8){
    setColor(255, 255, 0); /* yellow */
}
else{
    setColor(0, 255, 0); /* green */
}

我们可以使用 Arduino Cloud 仪表板以数字方式跟踪食物。我们还将使用 Arduino Cloud 中的时间变量来轻松管理食物计数何时下降。在这里,我们将在食物供应减少 1 之前等待 10 分钟。最大食物存储设置为 12,这可以通过更改“ if”运算符中的阈值来扩展,并且不要忘记更新仪表板上的跟踪器,以便您可以准确地跟踪 Nerd 拥有的食物。

void onNerdsFoodChange(){
    if(nerdsFood == 0 && justWokeUp==false){
        /* DIE :( */
        SOS();
    }
}

Nerd 第一次醒来时会从 2 个食物开始,然后这个值会被 Cloud 跟踪。如果它死了,它也会以 2 份食物重新开始。

检查光照水平

为了确保我们的 Nerd 获得足够的阳光,我们将使用光电晶体管。使用nerdsLight云变量跟踪光照水平。

int SensorPin = A2;
nerdsLight = analogRead(SensorPin);

当 Nerd 第一次醒来时,这是设备启动并且 Nerd 第一次接收到阳光的时候。它会发出声音并闪烁灯光。然后,每次您尝试给书呆子一些食物时,都会检查该变量。如果您无法喂养书呆子,可以更改光照水平的阈值。您可以使用 Cloud 检查当 Nerd 在灯光下时您获得的值,然后在代码中更改此处的阈值:

if(nerdsFood < 12 && nerdsLight>150)

使用 Arduino Cloud 的时间跟踪器

书呆子每 10 分钟就会感到饥饿,并吃掉给它的食物。为了跟踪 Nerd 何时饿了,我们将使用 Arduino Cloud 中的时间变量。我们将使用从 Arduino 云中获取的自动生成函数来更改 Nerds 进食时的食物。该函数将在一段时间后执行。时间在 nerdsTime 变量配置中确定。在本例中,我们将时间设置为 10 分钟,必须以秒为单位。

想知道更多?

本教程是让您熟悉 Arduino IoT Bundle 的一系列实验的一部分。所有实验都可以使用 IoT Bundle 中包含的组件来构建。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !