电子说
步骤1:组件
NodeMCU
面包板。 (我们使用过Adafruit Perma-Proto面包板)
5V 2通道继电器模块
DC-DC电源模块
12或24VDC电磁阀
10K欧姆电阻
LED
220欧姆电阻
螺丝端子
外壳和电缆接头
2.1mm枪管DC插孔
12或24 VDC直流电源,具体取决于您的阀门
步骤2:将其接线
这是继电器单元的基本接线图。您可以在说明的末尾看到它的外观。
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
全部0条评论
快来发表一下你的评论吧 !