查看: 1370|回复: 15

[分享] 懒得下床关灯?吸顶灯接入物联网(二)

[复制链接]
回帖奖励 8 金币 回复本帖可获得 2 金币奖励! 每人限 1 次
  • TA的每日心情
    开心
    2019-3-17 15:01
  • 签到天数: 62 天

    [LV.6]常住居民II

    发表于 2019-1-30 22:25 | 显示全部楼层 |阅读模式
    本帖最后由 Creeper666 于 2019-2-3 13:58 编辑

    吸顶灯接入物联网(二)
    冬天又来鸟~
    天气太冷,睡觉时不想下床关灯?
    你可以参考憨豆的做法!

    123

    123


    是不是简单粗暴!
    其实你也可以看我的帖子~

    前言

    上一篇帖子:

    上一篇帖子使用esp-12s+继电器+电源适配器的组合,结果安装好几个月后家里频繁跳闸,偶尔出现只要一开灯就会触发漏电保护的情况。装置拆除后,发现是电源转接板稍微有点短路了,所以我换用了以下更精简的模块:

    esp8266继电器模块


    esp-01s模块


    5v700mA电源



    开始制作!

    本来应该把8266插到插座上的,如下图,但是模块插上之后却无法正常启动。参考了模块的电路图,继电器的信号是由GPIO0输出,怀疑是因为插座上GPIO0插槽有稍微的下拉导致。只好引出电源线和信号线使用。经过测试、考虑以后,因为8266日常使用不需串口,所以信号输出我选择了RX,也就是8266的GPIO3。



    注意查看板子背面版本信息,由于这里使用Version1.0的模块,稍有缺陷,不能直接插上插座使用;假如你使用的是Version4.0的该模块,可以忽略这一部分,因为Version4.0可以插在插座上正常使用。此时信号输出要把GPIO3改为GPIO0


    实际效果如下

    123

    123

    123

    123

    左边为esp8266继电器模块,右边为5v电源


    (你可能会留意到模块上有一根线,那是ch_pd拉高的引线;插槽上一些断线是为了固定其他接线)

    在日常使用中,作为学生党,手机不可能随时拿在手里。所以这里还制作了一个遥控器,原理就是通过bridge桥接吸顶灯的esp8266,遥控器发送一个与按钮组件数据相同的json数据,以控制吸顶灯开关。
    成品如下图:

    (18650供电,esp12s模块,已自带稳压,也可以使用WIFI开发板,只需接好相应按钮)

    接线!

    123

    123

    esp8266-01s引脚图

    (警告:强电接线请在断电情况下操作!)

    市电        电源模块
    火线 ------------  L
    零线 ------------  N

    市电        继电器模块
    火线 ------------  COM

    市电        灯光模组
    零线 -----------  N

    电源模块        继电器模块
    out+  -----------------    5v
    out-  ------------------  GND

    继电器模块         灯光模组
    NO     ------------------     L

    esp8266     继电器模块插槽
    VCC --------------- VCC

    GND---------------GND

    RX(GPIO3)---------GPIO0

    RESET--------------RESET(可以忽略不接)

    CH_PD-------------CH_PD

    遥控器接线
    电池+ ---- 开关 ----  模块+

    电池 —  ------  模块 —

    (使用WIFI开发板可以忽略以上两行)

    模块GPIO14 ---- 开灯按钮 ---- GND

    模块GPIO12 ---- 关灯按钮 ---- GND


    烧写程序!
    esp8266-01s烧写下方程序:

    kittenblock中小学创客名师推荐的图形化编程软件

    #define BLINKER_WIFI
    #include <Blinker.h>
    
    char auth[] = "MQTT密钥";
    char ssid[] = "WIFI SSID";
    char pswd[] = "WIFI密码";
    
    #define BT_1 "lb"//后期可自行修改数据键名
    BlinkerButton BT1(BT_1);
    
    void BT1_callback(const String & state) {
      if (state == BLINKER_CMD_ON){
        digitalWrite(3, HIGH);
        BT1.text("", "已开启");
        BT1.print("on");
        }
      else if (state == BLINKER_CMD_OFF) {
        digitalWrite(3, LOW);
        BT1.text("", "已关闭");
        BT1.print("off");
      }
    }
    void setup() {
      pinMode(3, OUTPUT);
      digitalWrite(3, HIGH);
      Blinker.begin(auth, ssid, pswd);
      BT1.attach(BT1_callback);
      Blinker.delay(10000);
      Blinker.notify("!卧室的吸顶灯已上线!");
    }
    
    void loop() {
      Blinker.run();
    }




















    烧写方法这里不多阐述,请自行搜索。
    遥控器程序:

    kittenblock中小学创客名师推荐的图形化编程软件

    #define BLINKER_WIFI
    #include <Blinker.h>
    char auth[] = "MQTT密钥";
    char ssid[] = "WIFI SSID";
    char pswd[] = "WIFI密码";
    #define BRIDGE_1 "桥接设备MQTT密钥"
    BlinkerBridge BridgeDevice1(BRIDGE_1);
     
    void setup() {
      pinMode(LED_BUILTIN,OUTPUT);
      digitalWrite(LED_BUILTIN,LOW);
      pinMode(14, INPUT_PULLUP);
      pinMode(12, INPUT_PULLUP);
      Blinker.begin(auth, ssid, pswd);
      BridgeDevice1.attach(bridge1Read);
    }
    void loop()
    {
      Blinker.run();
      if (digitalRead(14) == LOW)
      {
        BridgeDevice1.print("{\"lb\":\"on\"}");
        delay(100);
      }
      if (digitalRead(12) == LOW)
      {
        BridgeDevice1.print("{\"lb\":\"off\"}");
        delay(100);
      }
    }











    完成!

    安装完成后是介样的:


    IMG_20190126_182826.png
    注意事项
    1、务必更新Blinker库!直至完成本帖前一小时库又更新了一次。下载地址:
    2、LED_BULITIN输出LOW是灯亮

    3、程序中“lb”为按键的数据键名,可自行修改,若修改,请两个程序都统一修改
    4、遥控器实体按钮接线:已知GPIO4,GPIO5不可以内部上拉,不推荐使用;推荐使用本文提及的GPIO口
    5、遥控器联网初始化需要时间,一般为15秒左右,期间所有按钮操作是无效的。
    6、由于Blinker的限制,使用遥控器时每发送一次数据需等待10秒才可发送第二次数据
    7、Blinker客户端控制按键格式参考如下:

    123

    123

    8、若还有疑问,欢迎回帖提问!

    最后祝大家猪年快乐~






    你今天的打赏,是我明天学习Arduino的动力!
  • TA的每日心情
    郁闷
    2019-2-1 19:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-2-1 19:26 | 显示全部楼层

    回帖奖励 +2 金币

    猪年了 快乐哈哈哈
  • TA的每日心情
    开心
    2019-3-29 09:02
  • 签到天数: 43 天

    [LV.5]常住居民I

    发表于 2019-2-2 10:05 | 显示全部楼层

    回帖奖励 +2 金币

    本帖最后由 ecstart 于 2019-2-2 10:31 编辑

    以前在淘宝买过这个esp8266 01S继电器模块,貌似有人反馈说直插不行,要买带光耦的 QQ截图20190202103021.png QQ截图20190202103042.png
  • TA的每日心情
    开心
    2019-3-17 15:01
  • 签到天数: 62 天

    [LV.6]常住居民II

     楼主| 发表于 2019-2-2 23:40 | 显示全部楼层
    ecstart 发表于 2019-2-2 10:05
    以前在淘宝买过这个esp8266 01S继电器模块,貌似有人反馈说直插不行,要买带光耦的
    ...

    这个问题其实我也意识到了,带光耦隔离的是左图version4.0版本,我买的是右图的version1.0,不细看也不知道有这个区别。version1.0应该是淘汰的次品了。
    download.jpg TB2eRKOuMmTBuNjy1XbXXaMrVXa_!!1804731589.jpg
    你今天的打赏,是我明天学习Arduino的动力!

    1人打赏

  • TA的每日心情
    开心
    2019-3-29 09:02
  • 签到天数: 43 天

    [LV.5]常住居民I

    发表于 2019-2-3 00:05 来自手机 | 显示全部楼层
    那请问 如果是用了光耦的 继电器 那个端口应该改为多少啊,我是从电子论坛跑过来的 只会玩电路 Arduino 还在学习仿造阶段.
  • TA的每日心情
    开心
    2019-3-17 15:01
  • 签到天数: 62 天

    [LV.6]常住居民II

     楼主| 发表于 2019-2-3 13:14 | 显示全部楼层
    本帖最后由 Creeper666 于 2019-2-3 13:26 编辑
    ecstart 发表于 2019-2-3 00:05
    那请问 如果是用了光耦的 继电器 那个端口应该改为多少啊,我是从电子论坛跑过来的 只会玩电路 Arduino 还 ...

    应该选择GPIO0。version4.0上esp8266的插座GPIO0应该没有下拉的干扰。我这里是因为用了versino1.0才导致不能直插esp8266,只能引线出来使用。这是店家附带的电路图,可以参考一下
    ESP-01S Relay v1.0.pdf (14 KB, 下载次数: 2)
    你今天的打赏,是我明天学习Arduino的动力!
  • TA的每日心情
    开心
    2019-3-29 09:02
  • 签到天数: 43 天

    [LV.5]常住居民I

    发表于 2019-2-7 23:09 来自手机 | 显示全部楼层
    Creeper666 发表于 2019-2-3 13:14
    应该选择GPIO0。version4.0上esp8266的插座GPIO0应该没有下拉的干扰。我这里是因为用了versino1.0才导致不 ...

    谢谢 已经把你的程序和我的温控结合了,下一步想弄一个空气传感器 通过APp带的滑条控制阈值 联动继电器!
  • TA的每日心情
    开心
    2019-4-24 05:50
  • 签到天数: 190 天

    [LV.7]常住居民III

    发表于 2019-2-8 06:59 | 显示全部楼层

    回帖奖励 +2 金币

    请问楼主不用blinker可以吗两个模块直接通过wifi进行控制吗.
  • TA的每日心情
    开心
    2019-3-17 15:01
  • 签到天数: 62 天

    [LV.6]常住居民II

     楼主| 发表于 2019-2-8 11:53 来自手机 | 显示全部楼层
    ecstart 发表于 2019-2-7 23:09
    谢谢 已经把你的程序和我的温控结合了,下一步想弄一个空气传感器 通过APp带的滑条控制阈值 联动继电器! ...

    那祝你早日成功!
    你今天的打赏,是我明天学习Arduino的动力!
  • TA的每日心情
    开心
    2019-3-17 15:01
  • 签到天数: 62 天

    [LV.6]常住居民II

     楼主| 发表于 2019-2-8 11:58 来自手机 | 显示全部楼层
    lwq1947 发表于 2019-2-8 06:59
    请问楼主不用blinker可以吗两个模块直接通过wifi进行控制吗.

    我不太懂你的意思...是模块之间互相通讯还是使用WIFI串口之类的软件控制?若是模块互相通讯,文中有写;WIFI串口软件控制应该不可以
    你今天的打赏,是我明天学习Arduino的动力!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    利用MICRO:BIT制作的飞机小游戏
    利用MICRO:BIT制作的飞机
    一.项目名称: 利用MICRO:BIT制作的飞机小游戏二.制作目的: 带孩子多了解micro:bit
    全过程展示:PWM自定义、测速、PID调速、PID自整定
    全过程展示:PWM自定义、
    有一天,电控小白在某宝上买来了一块Arduino Mega2560、一款直流电机。小白想:“这款
    OneNET之星再度闪耀 物联网创客马拉松大赛正式启动
    OneNET之星再度闪耀 物联
    4月9日,2019中国移动OneNET之星2.0物联网创客马拉松正式上线。大赛由中国移动集
    求助!!!!
    求助!!!!
    想借助数据上传工具将串口数据传到乐联网,结果一直上传失败,实在不知道怎么修
    BLE胸带+GPS墨水屏运动心率表(0421更新代码及原理图)
    BLE胸带+GPS墨水屏运动心
    0421了更新代码原理状语从句:打图产品板的PCB已经到达本市。 项目简介: 我喜欢
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表