美文网首页NODEMCU
6.实用实例系列1:nodeMcu远程控制继电器及点亮筒灯

6.实用实例系列1:nodeMcu远程控制继电器及点亮筒灯

作者: yangmouren | 来源:发表于2017-06-14 23:24 被阅读868次

6.实用实例系列1:nodeMcu远程控制继电器及点亮筒灯

前言

之前点灯的小程序都是点亮板载LED灯,简单实用的话应该需要控制点亮实际的灯具,实际灯具一般都是220V电压点亮,这里就需要用nodeMcu控制一个继电器,然后利用继电器分合灯具,这里我选用简单的LED筒灯(2.5寸),继电器用的是5V控制220V,包含一个常开节点和常闭节点。

1.继电器选择

首先简单介绍一下继电器,它实际上是用小电流去控制大电流运作的一种“自动开关”,利用它不仅能起到控制作用,同时也将强弱电进行了有效隔离,当然如果再加光耦隔离就更彻底了。由于一般nodeMcu输出电压是3.3V,如果输入电压是5V,貌似也能输出5V的电压。所以可以选择3-5V触发电源的继电器。

带光耦隔离的继电器.png

图上5VDC是触发直流电压为5V,后面的10A250VAC是继电器能控制的设备电流电压。

继电器一般端口布置.png

2.nodeMcu与继电器连接

简单画一下nodeMcu与继电器连接,以及连接220V交流电和灯的图。

简单接线方式.png

这里重点提一下nodeMcu板上D0与控制电平IN,由D0输出控制用电平,而D0对应的是GPIO16,程序上控制的还是原来板上的LED小灯对应的端口,控制程序还是原来的

gpio.mode(0,gpio.OUTPUT) 
--开启gpio16端口--
gpio.write(0,gpio.LOW)
--置端口输出低电位,灯亮--
gpio.write(0,gpio.HIGH) 
--置端口输出高电位,灯灭--

如果选择其它点,程序对应的端口需要修改,这里给出对应表,大家可以试试其它端口实现对继电器的控制。比如D1,成功请在留言区留言。

IO index ESP8266 pin IO index ESP8266 pin
0 [*] GPIO16 7 GPIO13
1 GPIO5 8 GPIO15
2 GPIO4 9 GPIO3
3 GPIO0 10 GPIO1
4 GPIO2 11 GPIO9
5 GPIO14 12 GPIO10
6 GPIO12

这里接线,我们可以先只连接低压侧,高压侧的电灯,先不要接,接着下一步。
** 还要说一下nodeMcu上的5V电压还可以继续用电脑的USB供电,但为了安全起见,建议用独立USB电源,由于后面还要接强电,所以安全为上。**

3.程序写入及控制

这里的程序还是用我们熟悉的控制板载LED的程序,因为对应的是同一个GPIO端口。
这里再附一下:

SSID="路由器名称"
password="路由器密码"
print(wifi.sta.getip())
wifi.setmode(wifi.STATION)
wifi.sta.config(SSID,password)
print(wifi.sta.getip())
--连接路由器
pin=0
gpio.mode(pin,gpio.OUTPUT)
gpio.write(pin,gpio.HIGH)
--开启gpio16端口
srv=net.createServer(net.TCP) 
--创建一个server
srv:listen(80,function(conn) 
    conn:on("receive",function(conn,payload) 
    print(payload) 
 --打印从浏览器客户端收到的payload信息
    local _, _, method, vars = string.find(payload, "([A-Z]+) /(.+) HTTP")
           if(vars == "off")then
                 gpio.write(pin, gpio.HIGH)
                 --灭灯
                 conn:send("<h1> Light OFF.</h1>")
                 --传送给客户端 Light OFF.的页面
           elseif(vars == "on")then
                 gpio.write(pin, gpio.LOW)
                 --开灯
                 conn:send("<h1> Light ON.</h1>")
                 --传送给客户端 Light ON.的页面
           end

    end) 
end)

记住烧入板子时,去掉注释。
烧入程序运行后,就可以试验了。记得将这程序设置为开机自启动,可采用init.lua的方式。当在同一局域网的电脑或手机浏览器输入http://192.168.8.145/onhttp://192.168.8.145/off,就可以看到nodeMcu上LED和继电器上LED灯的变化和清脆滴答声音。

继电器控制演示

进一步,接上强电部分,用继电器控制电灯点亮吧。

等灯等灯点灯

结尾

本次成功让nodeMcu控制了灯的点亮,大家可以发挥想象,其实还可以控制更多的电器,当然这还要考虑继电器本身的功率,请选择在继电器控制功率范围内的电器设备,或者选择更大功率的继电器。至此我们已经基本实现了网上常见的智能插座的功能。当然如果完全独立作为智能插座或开关使用,还需要为nodeMcu配一个降压电源模块(220VAC转5VDC),这样用220V就能同时给nodeMcu供电又能给控制的负载(比如灯)供电。

参考

官方文档:https://nodemcu.readthedocs.io/en/master/en/modules/gpio/

相关文章

网友评论

    本文标题:6.实用实例系列1:nodeMcu远程控制继电器及点亮筒灯

    本文链接:https://www.haomeiwen.com/subject/uevrqxtx.html