如何使用NodeMCU和继电器板控制电磁阀

电子说

1.2w人已加入

描述

步骤1:组件

NodeMCU

面包板。 (我们使用过Adafruit Perma-Proto面包板)

5V 2通道继电器模块

DC-DC电源模块

12或24VDC电磁阀

10K欧姆电阻

LED

220欧姆电阻

螺丝端子

外壳和电缆接头

2.1mm枪管DC插孔

12或24 VDC直流电源,具体取决于您的阀门

步骤2:将其接线

NODEMCU

这是继电器单元的基本接线图。您可以在说明的末尾看到它的外观。

D5和D6连接到两个端子块,您可以将它们连接到外部传感器或按钮。这些是可选的,我们没有在本项目中使用它们(尽管已经包含了它们的代码)

第3步:源代码

对于中继单元-我们不会发布任何数据-而是从我们的频道中读取特定主题,然后决定要做什么。

因此,在我们的配置文件中,我们有一个可以写入的主题,还有一个我们正在听的监听主题,以更改阀门的位置。

除了继电器,我们还有两个输入。这些可以是外部按钮(可用于打开和关闭阀门)或诸如液位开关或霍尔效应传感器之类的开关。包含这些代码的代码-但在本示例中已被禁用。

在我们的循环中-我们每5秒钟检查一次LISTEN-TOPIC,并返回该主题的最新读数。如果读数为0,则打开阀门。如果还有其他问题,我们将其关闭。

您可以在此处下载完整的源代码

《图id =“ rich-embed-files” class =“ ible-files”》

config.h

const 字符串CHANNEL_ID = “ XXXXXXXXX ” ; // Readiness.io频道ID

const 字符串SENSOR_ID = ” XXXXXXXXX “ ; //您的AgriWebb或组成的传感器ID

const 字符串主题= ” solenoid-valve “ ; //传感器的类型或您发送的数据的名称

const 字符串VERSION = ” 1 “ ;

const 字符串格式= “ ” ;

const char * WIFI_SSID = ” XXXXXXXXX “ ; //您的WiFi SSID/名称

const char * WIFI_PASS = ” XXXXXXXXX “ 跨度》 ; //您的WiFi密码

const uint16_t UPDATE_RATE = 5 ; //发送数据之间的等待时间(以秒为单位)

const uint8_t TIMEZONE_OFFSET = 10 ; //传感器所在的时区(例如GMT为10)

const 字符串LISTEN_TOPIC = ” 水位“ ; //您正在收听的传感器的名称

//更改电磁阀。

查看GitHub托管于❤的rawconfig.h

relayUnit .ino

# include 《 readiness_io.h 》

#包括 《 Ticker.h 》

# include “ config.h ”

const int LED_PIN = 5 ; //连接LED的引脚(D3)

const int INTERRUPT1_PIN = 14 ; //该引脚连接测试按钮(D5)

const int INTERRUPT2_PIN = 12 ; //该引脚连接第二个测试按钮(D6)

const int SOLENOID_PIN = 13 ; //引脚连接到继电器(D7)

易失性字节中断= 0 ;

readiness_io 客户端(CHANNEL_ID,TOPIC,SENSOR_ID,VERSION,FORMAT);

股票计时器;

digitalWrite (LED_PIN,LOW) ;

}

interrupt = 0 ;

}

}

查看GitHub托管的❤的rawrelayUnit.ino

步骤4:成品

这是成品单元的外壳(不包括阀门)。它具有一根电缆密封套,用于阀线进入。由于它还具有用于电源的桶形插孔,因此建议将该版本用于裸露区域-但您可以轻松地用另一个电缆密封套替换它,并直接将其布线到板上以确保其防水性。
        责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分