要使 ESP8266 和 PIR 模块与定义的 Blynk 应用程序一起使用,它包括Blynk头,Simple定时器,并将 BLYNK_PRINT 定义为串行以进行调试。您需要运行以下代码:
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
转到移动应用程序,然后转到项目设置并邮件发送自己的 app_token :
char app_token[] = "TOKEN_FROM_EMAIL";
SimpleTimer timer;
char ssid[] = "YOUR_WIFI_NETWORK";
char pass[] = "YOUR_PASSWORD";
int state;
int counter=0;
int flag=1;
WidgetLED led1(V1);
WidgetLED pirLED(V2);
这是定时器功能,每秒调用一次,以检查PIR引脚的状态。 ESP8266应用程序的所有逻辑都在此功能中:
void timer_ev()
{
counter = counter+1;
if (counter==5)
{
pirLED.off();
counter=O;
flag = 1;
}
int pirStatus = digitalRead(D7);
if (pirStatus)
{
if (flag == 1)
{
Serial.println(F ("Sensor detected motion!"));
Blynk.email ("bcatalin @ gmail.com" , "Subject: Security alert!" , "Movement detected!");
Blynk.notify ("Security alert! Someone is in the house!");
digitalWrite(D4, LOW);
led1.on();
pirLED.on();
flag=2;
}
}
}
使用移动应用程序令牌设置 Blynk ,并使用路由器的 ssid 和密码 启动 Wi-Fi 连接。您可以使用 WiFiManager 修改Wi-Fi设置,以免硬编码代码中的值。此外,您可以添加MQTT PubSubClient 库并向 Mosquitto 的特定主题发送JSON消息,以便订阅这个主题的其他设备接收消息。例如,您构建一个将订阅警报主题的警报器,模块将在其中发布警报事件。通过接收警报消息,警报器可以启动其喇叭。如果灯光系统在接收到警报消息时订阅警报主题,它可以启动房屋中的所有灯光:
void setup( )
{
Serial.begin(115200);
Blynk.begin(app_token, ssid, pass);
pinMode(D4, OUTPUT);
timer.setInterval(1OO0L, timer_ev);
}
BLYNK_WRITE(VO)
{
state = param.asInt();
if (state == 1) {
digitalWrite(D4, LOW);
led1.on();
}
else {
digitalWrite(D4, HIGH);
led1.off();
}
}
在 loop 函数中,只需运行 计时器 和 Blynk:
void loop()
{
Blynk.run();
timer.run();
}
现在将自己移到传感器前面,您将开始从手机上的 Blynk 应用程序接收消息。还要检查串行监视器的消息:
手机上收到的信息将是:
请注意,在 Blynk 上发送邮件的时间间隔为15秒,并且Gmail的最大电子邮件数量为每天500封。