define BLINKER_WIFI
include <Blinker.h>
char auth[] = "26a50cc516a6";
char ssid[] = "cool"; //wifi名
char pswd[] = "qwerdf1234";//WiFi密码
// 新建组件对象
BlinkerText Text1("TextKey" ); //新建一个文本对象
BlinkerText BODY("body" );//新建一个文本对象
//定义各个接口
const int TrigPin = D5; //超声波测距控制器
const int EchoPin = D4; //超声波测距接收口
int Buzzer=D2; //蜂鸣器
int Pir=D3; //人体红外热释电
int led=D8; //led灯
float cm;
float distance_read = 0;
float distance(){
//发一个10us的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
cm = pulseIn(EchoPin, HIGH) / 58.0; //t340/210^-6(秒)=t*0.17=t/58 (换算成厘米)
cm = (int(cm * 100.0)) / 100.0; //保留两位小数
return cm;
}
void heartbeat() /
{
Text1.print(distance_read); //传送距离给app上的组件
if(digitalRead(Pir)&&distance_read<=50)//判断是否有人进入了报警距离,设置为50厘米
{
BODY.print("有人进入");//传输文本给组件实现报警
}else{
BODY.print("无人进入");
}
}
void setup()
{
//初始化串口,调用blinker
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
Blinker.begin(auth, ssid, pswd);
Blinker.attachHeartbeat(heartbeat); //将传感器获取的数据传给blinker app上
pinMode(TrigPin, OUTPUT); //初始化设置该引脚口为输出
pinMode(EchoPin, INPUT); //初始化设置该引脚为输入
pinMode(led,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(Pir,INPUT);
digitalWrite(Buzzer,LOW);//初始化为低电平
digitalWrite(led,LOW);//初始化为低电平led初始为不亮状态
Serial.begin(9600);
}
void loop()
{
Blinker.run(); //运行blinker
distance_read = distance();
if(digitalRead(Pir)) //感应到人体运动
{
//led灯闪烁
digitalWrite(led,HIGH); //led灯亮
delay(100); //延时1秒
digitalWrite(led,LOW);
delay(100);
if(distance_read<=50) //判断距离是否小于50厘米
{
digitalWrite(Buzzer,HIGH); //小于50厘米蜂鸣器报警
}
else
{
digitalWrite(Buzzer,LOW); //不小于50厘米蜂鸣器关闭
}
}
else
{
digitalWrite(led,LOW); //led灯灭
digitalWrite(Buzzer,LOW); //未感应到人蜂鸣器关闭
}
}
采用blinker外置软件上云