NodeMCU v2提供三个UART。您可以在TXD0,RXD0,TXD1,TXD2,RXD2上看到它们:
我们可以使用UART库访问UART串口。
在本章中,我使用Arduino板作为UART源。我们从UART读取传入的消息。开始吧!
在串口通信的教程中,我使用Arduino Uno连接到NodeMCU板。我们在连接到Arduino板的NodeMCU上使用UART0。我们应该将RX引脚连接到TX引脚,将TX引脚连接到RX引脚。
以下是我们的连线方式:
我的接线实现如下图所示:
首先,我们使用Arduino IDE为Arduino UNO编写程序。我们使用SoftwareSerial模拟软串口10和11.该程序将等待输入的UART数据,然后在0和1引脚上发送到Arduino UART。接下来开始写这个程序:
Arduino程序:
保存这个程序。然后,将其上传到Arduino板。在上传之前,请确保Arduino UART(数字0,1,10和11引脚)不能连接到任何电路或传感器。下一步是为NodeMCU板编写程序。创建一个名为uartdemo.py的文件。开始编写程序:
Nodemcu程序:
现在您可以通过WebREPL上传和运行MicroPython程序。完成后,将NodeMCU UART连接到Arduino UART(数字引脚:10和11)。要查看UART输出,请从Arduino IDE打开串行监视器工具。设置波特9600.您应该看到UART输出:
以下是WebREPL上的程序输出:
本文采用 ESP8266 NodeMCU 板开发,该开发板板载LED灯,同IO引脚为D0(GPIO16)口相连,LED灯为共阳接法,也就是要想LED灯点亮,D0(GPIO16)口要输出低电平“0”。
打开 Arduino 点击 “工具” - “开发板” ,选择 NodeMCU1.0(ESP12E Module) 。
点击菜单栏 “文件” - “示例”- “01.Basice”- “01.Basice”- “Blink”, 可查看示例LED闪光灯控制程序,该程序控制LED灯亮一秒灭一秒。
程序说明:
1.在使用输入或者输出功能前需通过 pinMode() 函数配置引脚模式。
其调用形式为:
pinMode(pin,mode)
I/O引脚的三种模式分别为: INPUT —— 输入模式; OUTPUT —— 输出模式;INPUT _PULLUP —— 输入上拉模式;
2.配置为输出模式后,需用通过 digitalWrite() 函数输出高电平或低电平;其调用形式为:
digitalWrite(pin,value)
a.点击 “工具” - “端口” ,选择在设备管理中看到的串口。
b.点击 “工具” - “Upload Speed” ,选择 115200 。
c.点击 上传 ,将写的程序烧录到 MCU 中,期间 ESP8266 的指示灯会一直闪烁,在 Arduino 控制台中会显示上传进度,上传到 100% 就可以查看效果了。
在上传完车后,开发板上LED灯将会亮一秒灭一秒的循环进行下去。
之前点灯的小程序都是点亮板载LED灯,简单实用的话应该需要控制点亮实际的灯具,实际灯具一般都是220V电压点亮,这里就需要用nodeMcu控制一个继电器,然后利用继电器分合灯具,这里我选用简单的LED筒灯(2.5寸),继电器用的是5V控制220V,包含一个常开节点和常闭节点。
首先简单介绍一下继电器,它实际上是用小电流去控制大电流运作的一种“自动开关”,利用它不仅能起到控制作用,同时也将强弱电进行了有效隔离,当然如果再加光耦隔离就更彻底了。由于一般nodeMcu输出电压是3.3V,如果输入电压是5V,貌似也能输出5V的电压。所以可以选择3-5V触发电源的继电器。
图上5VDC是触发直流电压为5V,后面的10A250VAC是继电器能控制的设备电流电压。
简单画一下nodeMcu与继电器连接,以及连接220V交流电和灯的图。
这里重点提一下nodeMcu板上D0与控制电平IN,由D0输出控制用电平,而D0对应的是GPIO16,程序上控制的还是原来板上的LED小灯对应的端口,控制程序还是原来的
如果选择其它点,程序对应的端口需要修改,这里给出对应表,大家可以试试其它端口实现对继电器的控制。比如D1,成功请在留言区留言。
这里接线,我们可以先只连接低压侧,高压侧的电灯,先不要接,接着下一步。
** 还要说一下nodeMcu上的5V电压还可以继续用电脑的USB供电,但为了安全起见,建议用独立USB电源,由于后面还要接强电,所以安全为上。**
这里的程序还是用我们熟悉的控制板载LED的程序,因为对应的是同一个GPIO端口。
这里再附一下:
记住烧入板子时,去掉注释。
烧入程序运行后,就可以试验了。记得将这程序设置为开机自启动,可采用 init.lua 的方式。当在同一局域网的电脑或手机浏览器输入 http://192.168.8.145/on 和 http://192.168.8.145/off ,就可以看到nodeMcu上LED和继电器上LED灯的变化和清脆滴答声音。
进一步,接上强电部分,用继电器控制电灯点亮吧。
本次成功让nodeMcu控制了灯的点亮,大家可以发挥想象,其实还可以控制更多的电器,当然这还要考虑继电器本身的功率,请选择在继电器控制功率范围内的电器设备,或者选择更大功率的继电器。至此我们已经基本实现了网上常见的智能插座的功能。当然如果完全独立作为智能插座或开关使用,还需要为nodeMcu配一个降压电源模块(220VAC转5VDC),这样用220V就能同时给nodeMcu供电又能给控制的负载(比如灯)供电。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)