上一篇完成了服务端,这次是拼图的最后一块,插座。

插座一个,准备废掉它其中一个插头 预想电路草图

物料清单:

  • 两路插座一个
  • 继电器一个,3.3V 能驱动即可;
  • 交流转直流 3.3V,我买了现成的模块;
  • WiFi 模块,我用 ESP8266 芯片的 ESP-01,AI-Thinker 出品
  • 一个下拉电阻,10K
  • 母杜邦线四条,接ESP-01用
  • 溶胶一支
  • 电线几十CM,注意电流值
  • 草图中最下面的 LED 灯是插座本身有的。

插座原来样子的遗照,各种裸露和神焊接(LED 负极的线居然没有焊好,松的,汗):

 

首先其中一个插座位移除:

 

题外话,在家里居然有这个东西,现在都是 HDMI,它放着也不会再有用,拆了它用线中间那网来做吸锡线,废物利用而且效果不错:

 

再用塑料材料做个盖子:

 

淘宝货测试一下交流直流转换那东西,实测到输出电压为 3.4V,OK 了,据说它能供 1A 电流,我用不着那么多:

 

继电器后面线路比较单薄,补点锡加粗:

 

然后接线,万用表测试通电后,上电测试,正常工作:

 

再加溶胶封住焊接位置。模块安装我直接用溶胶固定。线路和溶胶,都要避开交流直流模块会发热的位置,它会升温的而且我这个没有外壳保护的。连接 ESP-01 的线我用母杜邦线做的。下图未加上下拉电阻:

 

取出 ESP-01,用 BBB 写入 lua 代码,代码于上几篇博文中,唯一改动是加上 PIN 4 (GPIO 2)控制。继电器我是接常开,控制端 IN 用低电平触发。代码很简单,UDP 服务端,端口 4000,收到 JSON 里面 cmd 值为 1 时候,切换高低电平:

udp.lua

onOffState = 1
gpio.mode(4,gpio.OUTPUT)
sv=net.createServer(net.UDP,0)
sv:on('receive', function(c,pl)
print(pl)
r=cjson.decode(pl)
if r.cmd == '0' then
print('I got a ZERO cmd.')
c:send('{\"cmd\":\"2\",\"guid\":\"24F92\",\"dType\":\"powerPlug\"}')
end
if r.cmd == '1' then
if onOffState == 1 then
gpio.write(4,gpio.LOW)
print("Power Off")
onOffState = 0
else
gpio.write(4,gpio.HIGH)
print("Power On")
onOffState = 1
end
end
end)
sv:listen(4000)
print('Server started')

NodeJS 那边加多一个发送 UDP Payload 为 {“cmd”:”1”} 即可,不写出来了。

 

用电脑发 UDP 包测试一下:

 

最后封好盖子,完成:

 

由于这对 BBB 的 nodejs 服务器依赖,我的 BBB 还有别的用途,所以我另外做了个 APP 给媳妇用,冬天关灯不用下床了。

 

后续改良空间: 加上按钮, 触发切换至 AP 模式,收到 Payload 最前面几个字符是 「GET /  」时候(/ 后有空格),发送一个 HTML 给对方(send 方法),里面是 SSID 和密码的输入界面,含 AJAX POST 代码。收到 Payload 是 POST / 时候,取出 Payload 的 JSON,设置回 STATION 模式并且更改登入的 SSID 和密码,然后 node.restart() 重启。

整个项目到此为止。

我在这群里,欢迎加入交流:
开发板玩家群 578649319
硬件创客 (10105555)

Beaglebone Black – 智能家居控制系统 LAS - 插座组装的更多相关文章

  1. Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送

    上一篇,纯粹玩 ESP8266,写入了 init.lua 能收发 UDP.这次拿 BBB 开刀,用 BBB host 一个 web server ,用于与用户交互,数据来自 ESP8266 的 UDP ...

  2. BeagleBone Black– 智能家居控制系统 LAS - ESP8266 UDP 服务

    NodeMCU 的文档里面终于发现,ESP8266 的GPIO 2 确实是 PIN 4,GPIO 0 是 PIN 3. https://github.com/nodemcu/nodemcu-firmw ...

  3. Beaglebone Black– 智能家居控制系统 LAS - 刷 WiFi 模块 ESP8266 Firmware 和 ESP8266 直接收发 GPIO 信号

    用 Windows 来刷 ESP8266 固件有很多中文教程,来试试直接用 BBB 刷吧.目标是 NodeMCU,ESP-01 可用,就是我买的那个. 接线方式在上一篇.当 echo ‘BB-UART ...

  4. Beaglebone Black–智能家居控制系统 LAS - 用 UART 连接 ESP8266 (ESP-01 版)

    这是一块便宜 (¥12.5)的 WiFi 模块,3.3V ,芯片是乐鑫科技(Espressif)出品.它本身是很多玩法,比如这个 NodeMCU (淘宝有套件焊接好一整套的带 USB 接口的,搜 es ...

  5. 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)

    基于ZigBee和STM32的智能家居控制系统的设计与实现(三) 自从前两篇博客介绍了智能家居系统的基本实现机理后,收到了好多朋友的来信,和我讨论了好多的这方面的知识,在此很高兴,虽然自己做的这个所谓 ...

  6. 基于能量收集的智能家居-2013国家级大学生创业实践项目申报_商业计划书_V0.2

    SmartHome项目商业计划 基于能量收集的 免电池无线智能家居系统    IA-SmartHome团队    2012.12     l  基于无线的智能家居解决方案,节省施工成本: l  基于能 ...

  7. 基于ZigBee的家居控制系统的设计与应用

    基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘  要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...

  8. Home Assistant + 树莓派:强大的智能家居系统 · 安装篇

    Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 转载:Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 目录 1. 初始安装 3. Homebridg ...

  9. Diy智能家居-1.基于esp8266的语音控制系统(开篇)

    目录Diy智能家居-1.基于esp8266的语音控制系统(开篇) https://blog.csdn.net/arno1988/article/details/82628589 Diy智能家居-2.基 ...

随机推荐

  1. PHP第三方登录 -- 微博登录

    进化史 博客园 首页 新随笔 联系 管理 订阅 随笔- 9  文章- 0  评论- 0  php 实现qq第三方登录 学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 ht ...

  2. php课程---数组建立表单

    <?php $nation = array( array('n001','汉族'), array('n002','汉族'), array('n003','满族'), array('n004',' ...

  3. windows 快捷键

    Windows 系统 f6  在同一个应用的不同窗口进行切换 ctrl-shift 拖动,创建文件快捷方式 shift 右键点击文件 可以出现复制路径的菜单 WIN键组合键 Windows Key + ...

  4. mysql组合索引顺序参考

    问题背景 : 当我们需要创建一个组合索引, 索引的顺序对于效率影响很大, 怎么确定索引的顺序; 解决方法 : 我们应该依据字段的全局基数和选择性, 而不是字段的某个具体的值来确定; 表结构 :  dc ...

  5. Java简单类——一对多映射(省、市)

    class Province { private int pid ; private String name ; private City cities [] ; public Province (i ...

  6. 关于Action快捷键和小键盘的问题

    在使用全尺寸键盘的时候 键盘右边都有一排小键盘 但是这个小键盘的数字键值和普通键盘的数字键值是不一样的 在ANSI码里 标准数字键值是$30..$39, 而小键盘的键值是$60..$69 这样问题就来 ...

  7. PHP 判断客户端是IOS还是Android

    <?php if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad ...

  8. JSON 数组的遍历解析

    刚遇到一个接接口任务,发现其中返回数据中,是个字符串数组,数组中就是单个json形式的内容,其实应该也可以称这种数据叫做json数组吧,只不过是字符串形式.而我需要的是将这种内容解析出来,取到对于ke ...

  9. prototype

  10. angularJ表单验证

    常用的表单验证指令 1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" requir ...