前言

前几天在某淘宝优惠中看到一个 WiFi 智能插座卖 29 块包邮,心想要是里面是 ESP8266 模块说不定可以刷上固件玩玩,就买了俩回来,记下折腾过程。

拆解

WiFi 智能插座的淘宝介绍页

开拆,果然是 ESP8266 模块,具体型号是 ESP-WROOM-02,看起来整个控制包括按键、驱动继电器,LED 等都是由 ESP8266 完成

测出引脚,左右两颗 LED 是蓝灯和红灯

再量出其他用到的引脚

按钮 → GPIO4(D2)
继电器 → GPIO5(D1)
蓝灯 → GPIO0(D3)
红灯 → GPIO14(D5)

刷 ESPEasy 固件和配置

官网下载 release 固件,用串口连接到此板,用镊子将上图中的 GPIO0 短接到地之后上电,然后打开 FlashESP8266.exe,选择固件烧写

烧写成功后重新上电,连接到 ESP_Easy_0 的 WiFi,密码为 configesp,连接成功后浏览器会自动跳转到配置页面,或者手动在浏览器打开 192.168.4.1,在配置页面中重新配置连接到路由器,记下显示的 IP
打开记下的 IP,看到下图

Bingo!接下来是配置一下基础设置,Config 中设置 Unit Name 和 Unit Number,比如设置为 Switch 和 1,然后 Submit
Tools → Advanced 中勾选 Rules,勾选 MQTT usage unit name as ClientId,勾选 Use NTP,NTP Hostname 填 ntp1.aliyun.com,然后下方的 Timezone Offset 填 480,即 60 分钟 * 8,才能对上北京时间

然后让插座连接到树莓派上的MQTT 服务器,Controllers 修改第一项,配置完成后 Submit

EMQ 控制台可看到 Switch_1 已连接

接着让插座原本的功能恢复正常,包括 LED 显示和按键控制继电器
根据上面量出来的 GPIO,在 Hardware 中配置 GPIO 功能

然后在 Devices 中添加按钮触发,Switch Button Type 选 Push Button Active Low,按钮按下时变为低电平才触发,IDX 不能重复,这个是 Domoticz 中区分设备的序号

在 Rules 中添加规则,大概意思是 button 按下时,会修改 Devices 中 Values 的值,0 和 1 为关闭/开启 LED 和继电器

On button#Switch=0 do
  gpio,5,0
  gpio,14,1
endon

On button#Switch=1 do
  gpio,5,1
  gpio,14,0
endon

按动按钮,已经可以控制继电器了,而且开关状态也会同步到 Domoticz

最后

下一篇文章将介绍 Domoticz 中绑定该插座的流程

将优狐智能插座接入 Domoticz的更多相关文章

  1. Opera Browser -- Access Restricted Sites using Free VPN /Free VPN Services List

    Opera Browser  -- Access Restricted Sites using Free VPN: currently the feature is available in Oper ...

  2. IM推送保障及网络优化详解(二):如何做长连接加推送组合方案

    对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...

  3. tracert命令详解_tracert结果详解_tracert命令使用详解

    17:06:40 正在等待客服售后工程师令狐冲接入,您可以先简单描述所要咨询的问题,如果长时间没有响应,您也可以 重新选择客服 . 17:06:42 您好,客服售后工程师令狐冲为您服务.售后工程师令狐 ...

  4. 刚体验完RabbitMQ?一文带你SpringBoot+RabbitMQ方式收发消息

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 这篇是消息队列RabbitMQ的第二弹. 上一篇的结尾我也预告了本篇的内容:利用RabbitTemplate和注解进行收发消息,还有一个我 ...

  5. 上手了RabbitMQ?再来看看它的交换机(Exchange)吧

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 本篇是消息队列RabbitMQ的第三弹. RabbitMQ的入门和RabbitMQ+SpringBoot的整合可以点此链接进去回顾,今天要 ...

  6. RabbitMQ高级之如何保证消息可靠性?

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 本篇是消息队列RabbitMQ的第四弹. RabbitMQ我已经写了三篇了,基础的收发消息和基础的概念我都已经写了,学任何东西都是这样,先 ...

  7. RabbitMQ高级之消息限流与延时队列

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 本篇是消息队列RabbitMQ的第五弹. 上篇本来打算讲述RabbitMQ的一些高级用法: 如何保证消息的可靠性? 消息队列如何进行限流? ...

  8. 出售爱奇艺 tx好莱坞 优酷 乐视 芒果 搜狐 等一个月会员激活码

    出售爱奇艺 tx好莱坞 优酷 乐视 芒果  搜狐 等一个月会员激活码  进群价格有优惠  QQ群:569333649

  9. Domoticz 接入苹果的 HomeKit 实现 Siri 控制

    前言 接上次的折腾,这次尝试将 Domoticz 接入到苹果的 HomeKit,也就是在 iPhone 的 Siri 中可以语音控制.参考官方文档 步骤 安装 nodejs curl -sL http ...

随机推荐

  1. 01-20Asp.net--Linq语法

    Linq语法--语言集成查询 同Sqlserver语句,但顺序颠倒了. 使用方法: 新建Linq类.dbml结尾的文件 在web窗体源代码中设计表,使用Repeater中转存放: <asp:Re ...

  2. 问题:只能在执行 Render() 的过程中调用 RegisterForEventValidation;结果:只能在执行 Render() 的过程中调用 RegisterForEventValidation

    只能在执行 Render() 的过程中调用 RegisterForEventValidation 当在导出Execl或Word的时候,会发生只能在执行 Render() 的过程中调用 Register ...

  3. 关于mybatis和spring复合pom的异常

    java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()L ...

  4. 使用ServerSocket建立聊天服务器(二)

    -------------siwuxie095                         工程名:TestMyServerSocket 包名:com.siwuxie095.socket 类名:M ...

  5. 百度Apollo解析——3.common

    1.略读 该目录下主要提供了各个模块公用的函数和class以及一些数学API还有公共的宏定义. 在Apollo 1.0中,common是整个框架的基础.configs是配置文件加载.adapters是 ...

  6. php学习笔记-php中的比较运算符

    其中比较难懂的是==和=== ==是只比较两个变量的值,不仅仅是用于比较两个数是否相等,还可以比较int和string,不过会先转化string为int类型再比较,值相等则返回true,值不相等则返回 ...

  7. 算法Sedgewick第四版-第1章基础-008一用数组实现栈(泛型、可变大小)

    package algorithms.ADT; /*************************************************************************** ...

  8. 4、Brief primer and lexicon for PacBio SMRT sequencing

    转载:http://pacbiofileformats.readthedocs.io/en/5.1/Primer.html 转载:http://pacbiofileformats.readthedoc ...

  9. vimrc 我的专属vim配置

    set nu set wrap syntax on filetype on "打开vim文件类型自动检测功能 set autoindent set smartindent set ruler ...

  10. 《Head First Servlets & JSP》-5-属性和监听

    Servlet初始化参数 在DD文件(web.xml)中 Servlet参数在/参数下: 在Servlet代码中 在Servlet初始化之前不能使用Servlet初始化参数 一旦有了一个Servlet ...