3分钟学会做智能插座(DIY)
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604
感谢博达科技提供的技术支持,博达科技新出了turnip智能插座,通过微信控制,实现了语音控制,具体细节感兴趣的可以访问其网站了解。http://www.turnipsmart.com/
最近太忙,一直没写。今天和大家一起学习做一个智能插座,主要功能是通过手机控制智能插座的开关。这里只做了局域网内的手机摇控,互联网的控制大家可以自己完成,大同小异。
一、准备器材
1、NodeMcu模块一个,利用Esp8266实现的wifi可编程模块,某宝网上很多卖的,便宜的30元左右。
2、AC-DC模块一个,220V转5V。
3、继电器一个,3-5V控制。
4、废旧插座一个。
二、电路图
三、智能插座的制作
NodeMcu模块使用方法,请参考http://bbs.nodemcu.com/,这里不再详述,直接使用。
在【Lua Programs】目录下添加两个文件,分别为low.lua和high.lua。
low.lua:
--转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604
--pin: 0~12, IO 编号 pin = --将IO2设置为输出模式 gpio.mode(pin,gpio.OUTPUT) --将IO2输出电平设置为低电平 gpio.write(pin,gpio.LOW) --读取IO2电平状态并打印 print(gpio.read(pin))
high.lua:
--转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604
pin = gpio.mode(pin,gpio.OUTPUT) --将IO2输出电平设置为高电平 gpio.write(pin,gpio.HIGH) print(gpio.read(pin))
修改init.lua:
--转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604
print("set up wifi mode") --设置wifi工作模式为wifi.STATION wifi.setmode(wifi.STATION) --设置连接的wifi名称和秘钥 wifi.sta.config("AAA","PASSWD") --开始连接wifi,AAA为wifi的ssid,PASSWD为连接密码 wifi.sta.connect() --启动定时器,每1000毫秒执行一次function回调函数 tmr.alarm(, , , function() --判断当前IP地址是否为空,若为空,即未成功连接网络 if wifi.sta.getip()== nil then print("IP unavaiable, Waiting...") --若不为空,则停止定时器,开启TCP Server服务,端口为80 else tmr.stop() print("IP is "..wifi.sta.getip().. " Port is:80".."/nstart listen") sv=net.createServer(net.TCP) sv:listen(,function(c) --端口80 c:on("receive", function(sck, result) --当接收到的数据是”on”时,执行high.lua文件 if result=="on" then dofile("high.lua") c:send("led :on") end --当接收到的数据是”on”时,执行low.lua文件 if result=="off" then dofile("low.lua") c:send("led :off") end --当接收到的数据”close”时,停止TCP Server服务 if result=="close" then c:close() sv:close() print("TCP Close") end end) end) end end)
最后将low.lua、high.lua和init.lua下载至NodeMcu中。
四、使用方法
1、手机端下载安装一个wifi串口调试助手,大家可以从网上搜索下载,安装后,进行配置,主要是配置插座的IP和端口。
2、从手机端发送“on”,插座连接上,“off”,插座关闭。
感谢WFGEEK林静的协助!
3分钟学会做智能插座(DIY)的更多相关文章
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)
前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...
- 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)
http://www.matlabsky.com/thread-43937-1-1.html <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下) ...
- 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)
http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...
- [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)
[分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...
- 10分钟学会Linux
10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...
- PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony
这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...
- 【公众号系列】两分钟学会SAP F1技巧
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]两分钟学会SAP F1技巧 写 ...
- 【小白视频学Java for循环】3分钟学会Java的for循环,让看懂for循环嵌套再不是难事
目录 一.单个for循环介绍 二.for循环嵌套 听讲时能听懂的for循环为什么一做题就晕菜?一个for循环还勉强能看懂,但为什么一看到双重for循环脑子里就感觉脑子全是浆糊? 如果有上述问题那么就继 ...
随机推荐
- 使用svn钩子遇到的坑
1.svn钩子(hooks)自动部署代码到web目录(以前公司用,很好奇怎么做的,折腾了两天,掉进了坑里)共勉!!! web目录:/home/www/xiaokai svn版本库目录:/svn/xia ...
- mysql之Navicat工具、pymysql模块
1. IDE工具介绍(Navicat) 为了方便测试,使用IDE工具,就是Navicat,这个工具本质上就是一个socket客户端,可视化的连接mysql服务端的一个工具,并且是图形界面版的.它和直接 ...
- Jetbrains IDE 中 compass sass 设置
环境 Ubuntu 13.10 1. 安装ruby sudo apt-get install ruby 如果后面安装 compass 时遇到安装失败,提示:“[Ubuntu] ERROR: Faile ...
- 从零开始学习html(八)CSS选择器——上
一.什么是选择器? <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...
- MSys2安装QT5
1. MSYS2 shell # pacman –Syuu 2. Reopen MSYS2 # pacman –Syuu 3.添加国内源 msys64\etc\pacman.d 目录下有三个文件 1. ...
- ThreadLocal终极源码剖析-一篇足矣!
本文较深入的分析了ThreadLocal和InheritableThreadLocal,从4个方向去分析:源码注释.源码剖析.功能测试.应用场景. 一.ThreadLocal 我们使用ThreadLo ...
- Docker 加速器设置
在部署完docker的时候我们需要进行在镜像源下载镜像的时候有时候会出现特别慢的情况(这是因为本地到源的网络出现了问题),这时候就需要使用加速器来对镜像进行下载了,在面咱们就聊一聊docker加速器的 ...
- 洗礼灵魂,修炼python(39)--面向对象编程(9)—魔法方法表
好的,不多说,大招来了,几乎完整的魔法方法: 基本的魔法方法 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Defi ...
- MVC model验证 获取验证错误信息
public static class ModelStateExtensions { /// <summary> /// 获取model验证错误信息 /// </summary> ...
- layer层、modal模拟窗 单独测试页面
layer_test.jsp <%@ page language="java" import="java.util.*" pageEncoding=&qu ...