智能照明系统雏形(esp8266nodemcu开发板+点灯科技软件+声控模块+光敏模块+人体感应模块)

自己的项目一点点成形,很开心。这次就可以用以上的一些模块,实现点灯app上关闭手动模式时,当天黑时,如果检测到有声音或有人体靠近,则esp8266内置灯亮(身边没有别的led灯),当打开手动模式时,以上功能无法实现,改为用手机app控制点灯

用到的东西 我自己买的是HC-SR501人体感应蓝板,三个引脚的声控模块(便宜),四脚的光敏模块,esp8266nodemcu开发板,电脑端arduinoIDE,手机端点灯blinker app,跳线若干,还要一个可以提供5v电源的模块
在这里插入图片描述
看到这篇文章的小伙伴建议自行配置好arduino的开发环境
—————————————————————————————————
1.
除此之外我们还要下载安装blinker-Arduino的库:
方法一:打开arduino,点击项目,——加载库——管理库下搜索blinker安装最新版本
在这里插入图片描述
方法二:浏览器搜索点灯科技,找到官网,打开官方开发文档,点击快速入门——esp8266WiFi接入
在这里插入图片描述
点击下载,根据要求安装

手机app点灯下载
点灯科技官网 : https://www.diandeng.tech/home

在手机中进入点灯科技官网,点击 APP下载
下载完成后
按照图片上的步骤可以获取到secret Key ,代码上要用到
在这里插入图片描述
3. 打开arduino,新建文件,输入代码

#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "你的密匙";
char ssid[] = "WiFi名称";
char pswd[] = "WiFi密码";
int pattern=0;
// 新建组件对象
BlinkerButton Button1("btn-pattern"); 
BlinkerButton Button2("btn-abc");
BlinkerNumber BRIGHTNESS("brightness");

int brightness_read;

void heartbeat()
{
  BRIGHTNESS.print(brightness_read);     
}
// 按下按键1即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    if (state=="on") {
        pattern=1;
        // 反馈开关状态
        Button1.print("on");
    } else if(state=="off"){
        pattern=0;
        // 反馈开关状态
        Button1.print("off");
    }
}
//当按下按键二执行该函数
void button2_callback(const String & state) {
  if(pattern==1)
    digitalWrite(LED_BUILTIN,!digitalRead(LED_BUILTIN));
}
void setup() {
    // 初始化串口
    Serial.begin(115200);
    // 初始化有LED的IO
    pinMode(D2,INPUT); //将光感DO口接到D2
  pinMode(D5,INPUT);  //将声控的out接到D5 
  pinMode(D6,INPUT);//人体感应的out接到D6
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    Blinker.attachHeartbeat(heartbeat);
}

void loop() {
    Blinker.run();
    brightness_read=analogRead(A0);
  brightness_read=(1023-brightness_read)/10.23-1;
    int d2=digitalRead(D2); //读出D2的高低电平赋值给D2
int d5=digitalRead(D5);//读出D5的高低电平赋值给D5
int d6=digitalRead(D6);
if(pattern==0){     //当关闭手动模式时
if(d2==1&&(d5==1||d6==1))
{
  digitalWrite(LED_BUILTIN,LOW);//当检测到天暗且有声音或者感应到人体时,点亮led
  Blinker.delay(5000);//延时五秒
  }
  else
  digitalWrite(LED_BUILTIN,HIGH);}
  if(brightness_read == 0)
BLINKER_LOG("Failed to read from sensor");
else
BLINKER_LOG("Brightness",brightness_read,"cd/m/m");
Blinker.delay(100);
}

那么把代码烧录进去
4. 硬件连接
首先把光感和声控的vcc和Gnd分别接在esp8266的3v和接地上,然后
将光感DO口接到D2 将声控的out接到D5
其次现在连接人体感应模块,我设置的是可触发模式,将vcc和gnd分别接在5v供电模块上,然后将5v的供电模块的接地和esp8266上的接地用跳线连接,共地,人体感应的out接到D6
最后把光感的AO口接在esp8266的AO口上

  1. 重启开发板,发现点灯app上的设备在线
    在这里插入图片描述
    然后在手机上添加组件
    在这里插入图片描述
    设置两个按键,一个数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    按照这样进行设置
    然后就可以看到效果啦
    打开手动模式时,点击点我开关灯,可以控制灯的亮灭,关闭就没有用,变成一个人体感应声控灯,感兴趣的可以试一试,成本很低
    在这里插入图片描述
  • 4
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值