步驟1:組件
NodeMCU
面包板。 (我們使用過Adafruit Perma-Proto面包板)
5V 2通道繼電器模塊
12或24VDC電磁閥
10K歐姆電阻
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
-
繼電器
+關注
關注
132文章
5333瀏覽量
148829 -
電磁閥
+關注
關注
14文章
509瀏覽量
31388 -
NODEMCU
+關注
關注
13文章
289瀏覽量
21389
發布評論請先 登錄
相關推薦
評論