转载请注明:@小五义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. win10系统彻底卸载Mysql

    本文介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL服务 开始->所有应用->Windows管理工具->服务,将MySQL服务停止. 2& ...

  2. csharp:SMO run sql script

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. 【20181031】arcgis10.6破解不成功的问题

    首先需要下好正确版本的crack文件,license10.6文件夹里应该有ARCGIS.exe和service.txt两个文件,我的问题就是因为crack文件不完整,没有ARCGIS.exe文件,所以 ...

  4. php获取数据库中数据

    <?php header("Content-type:text/html;charset=utf-8");//字符编码设置 $servername = "local ...

  5. 使用CSS兄弟选择器完成复杂垂直边距(vertical margins)的设计

    -------------------sibling选择器如何在完成复杂设计要求的同时,保持CSS可读 这是web前端开发过程中开始简单逐步变的复杂的例子之一:将一篇文章中的所有元素应用垂直边距(ve ...

  6. Django ModelForm 校验数据格式

    发现ModelForm很好用,用来做form表单验证效果很好.但是也要注意几点. forms的用法: 使用默认方式:继承forms.Form类,类里面的字段名称一定要和前端HTML里面的form表单里 ...

  7. 配置Synwrite作为Python的IDE

    先建立批处理 建立SynPython.bat ::Synwrite call Python to compile file ::Set Path @ set PATH=H:\XPprogram\Cod ...

  8. NoHttp封装--03 cookie

    NoHttp请求自动维持Cookie:   1.支持Session.Cookie.临时Cookie的位置.   2.支持App重启.关机开机后继续持久化维持.   3.提供了接口,允许开发者监听Coo ...

  9. Python使用map,reduce高阶函数模拟实现Spark的reduceByKey算子功能

    # 使用默认的高阶函数map和reduce import randomdef map_function(arg):  # 生成测试数据 return (arg,1) list_map = list(m ...

  10. python+mongodb+flask的基本使用

    最近在做一个设备管理系统的后端,需要用python结合mongodb来实现,查了一下flask框架是比较合适的,自己摸索了好久一步步慢慢实现基本功能. 在程序开始之前请确保mongodb服务是开启的, ...