转载请注明:@小五义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)的更多相关文章

  1. 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)

    大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...

  2. 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)

    前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...

  3. 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)

    http://www.matlabsky.com/thread-43937-1-1.html   <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下)     ...

  4. 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

    http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...

  5. [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

    [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...

  6. 10分钟学会Linux

    10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...

  7. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  8. 【公众号系列】两分钟学会SAP F1技巧

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]两分钟学会SAP F1技巧   写 ...

  9. 【小白视频学Java for循环】3分钟学会Java的for循环,让看懂for循环嵌套再不是难事

    目录 一.单个for循环介绍 二.for循环嵌套 听讲时能听懂的for循环为什么一做题就晕菜?一个for循环还勉强能看懂,但为什么一看到双重for循环脑子里就感觉脑子全是浆糊? 如果有上述问题那么就继 ...

随机推荐

  1. pycharm技巧

    常用快捷键 1.Ctrl + Enter:在下方新建行但不移动光标: 2.Shift + Enter:在下方新建行并移到新行行首: 3.Ctrl + /:注释(取消注释)选择的行: 4.Ctrl + ...

  2. MySQl创建用户和授权

    权限的管理: 如何创建用户和密码 给当前的用户授权 移除当前用户的权限 首先进去到mysql数据库下: mysql> use mysql Database changed 其次, 对新用户进行增 ...

  3. 【代码笔记】Web-HTML-简介

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  4. python之变量与常量

    变量:把程序运行过程中产生的值,暂时存储在内存,方便后面的程序调用. 被引号括起来的内容是字符串,原样输出.#单行注释 用来标注代码信息,特点:被注释的内容不会被执行.Ctrl + /'''内容''' ...

  5. CSS盒模型的介绍

    CSS盒模型的概念与分类      CSS盒模型就是一个盒子,封装周围的HTML元素,它包括内容content.边框border.内边距padding.外边距margin. CSS盒模型分为标准模型和 ...

  6. 用Web Services来整合.NET和J2EE

    互用性(Interoperability)问题说起来容易但通常实现起来却比较困难.尽管Web service曾承诺要提供最佳的解决方案来衔接基于.NET和J2EE的应用程序,但其过程却并不简单.我们发 ...

  7. C# 插件式开发

    在网上找了下插件式编程的资料,这里自己先借鉴下别人的,同时发现有自己的看法,不过由于本人水平有限,不一定有参考价值,写出来一方面是为了总结自己,以求提高,另一方面也希望各为朋友看到我的不足,给我提出宝 ...

  8. MVC与单元测试实践之健身网站(完)-备案与部署

    主页-http://www.zhixin9001.cn/Home/Introduce GitHub- https://github.com/zhixin9001/Fitness 这是关于Fit网站的最 ...

  9. (网页)jQuery的时间datetime控件在AngularJs中使用实例

    百度一下,自己也想了一下,有一种简单,无脑的方式分享给你: <input ng-model="start" id="start" placeholder= ...

  10. python网络编程:socket、服务端、客户端

    本文内容: socket介绍 TCP: 服务端 客户端 UDP: 服务端 客户端 首发时间:2018-02-08 01:14 修改: 2018-03-20 :重置了布局,增加了UDP 什么是socke ...