我的兄弟是一个热情的游戏玩家。有时,事情变得有点激烈。为了让我兄弟在玩游戏时更加冷静(一点也不认真),我认为检测他何时发怒可能会很有用。介绍愤怒手套。
这个项目的电路很简单。我添加了一个 LED 和电阻器作为传感器激活的视觉指示器(并且因为它很有趣),但您可以跳过此步骤并专门选择您的串行监视器。
这是电子产品的样子……
...这是你的示意图。
接下来,让我们将传感器放在手套上。我用针和线完成了这个。
我把它缝在一个角落里,这样以后就不会下车了。
首先,让我们设置我们的项目。我们将以 9600 bps 的速度打开串行端口,以便检查我们的电子设备是否正常。
void setup()
{
Serial.begin(9600);
}
我已经为项目创建了必要的变量。myLED 是输出,knock 是输入。
const int myLED = 1; // defines the digital pin for the LED
const int knock = 2; // defines the digital pin for the knock sensor
int state; // defines the state of the knock sensor
int flag = 0; // we'll change this when we detect a knock, that way we won't send multiple requests to IFTTT.
void setup()
{
pinMode(myLED, OUTPUT);
pinMode(knock, INPUT);
Serial.begin(9600);
}
接下来,让我们研究一下逻辑。当检测到爆震状态为 HIGH 时,条件语句将向串行监视器打印“DETECT”并发布请求“ragedetected”。
const int myLED = 1;
const int knock = 2;
int state;
int flag = 0;
void setup()
{
pinMode(myLED, OUTPUT);
pinMode(knock, INPUT);
Serial.begin(9600);
}
void loop()
{
state = digitalRead(knock);
if (state == HIGH) {
digitalWrite(myLED, LOW);
}
else {
digitalWrite(myLED, HIGH);
Serial.printlnf("DETECT");
Particle.publish("ragedetected", "now");
}
}
可是等等!使用此设置,爆震传感器将四处振动,我们会看到它多次激活。为了解决这个问题,我们将创建一个标志来防止在检测到一个敲击实例后发布 ragedetected。IFTTT 不会在相当长的时间内发送多封电子邮件——对于一个游戏会话,一封电子邮件绰绰有余。
const int myLED = 1;
const int knock = 2;
int state;
int flag = 0;
void setup()
{
pinMode(myLED, OUTPUT);
pinMode(knock, INPUT);
Serial.begin(9600);
}
void loop()
{
state = digitalRead(knock);
if (state == HIGH) {
digitalWrite(myLED, LOW);
}
else {
digitalWrite(myLED, HIGH);
if (flag == 0){
Serial.printlnf("DETECT");
Particle.publish("ragedetected", "now");
flag = 1;
}
}
}
完成的!
接下来,我们将创建一个 IFTTT 小程序。IFTTT 是一种连接 API 以做有趣事情的简单方法。在这种情况下,我们会将 ragedetected 发布连接到电子邮件。
如果一切顺利,在你用拳头猛击桌子后,你应该会收到这封邮件。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !