步驟1:組件
NodeMCU
面包板。 (我們使用過Adafruit Perma-Proto面包板)
5V 2通道繼電器模塊
12或24VDC電磁閥
10K歐姆電阻
220歐姆電阻
螺絲端子
外殼和電纜接頭
2.1mm槍管DC插孔
12或24 VDC直流電源,具體取決于您的閥門
步驟2:將其接線
這是繼電器單元的基本接線圖。您可以在說明的末尾看到它的外觀。
D5和D6連接到兩個(gè)端子塊,您可以將它們連接到外部傳感器或按鈕。這些是可選的,我們沒有在本項(xiàng)目中使用它們(盡管已經(jīng)包含了它們的代碼)
第3步:源代碼
對于中繼單元-我們不會(huì)發(fā)布任何數(shù)據(jù)-而是從我們的頻道中讀取特定主題,然后決定要做什么。
因此,在我們的配置文件中,我們有一個(gè)可以寫入的主題,還有一個(gè)我們正在聽的監(jiān)聽主題,以更改閥門的位置。
除了繼電器,我們還有兩個(gè)輸入。這些可以是外部按鈕(可用于打開和關(guān)閉閥門)或諸如液位開關(guān)或霍爾效應(yīng)傳感器之類的開關(guān)。包含這些代碼的代碼-但在本示例中已被禁用。
在我們的循環(huán)中-我們每5秒鐘檢查一次LISTEN-TOPIC,并返回該主題的最新讀數(shù)。如果讀數(shù)為0,則打開閥門。如果還有其他問題,我們將其關(guān)閉。
您可以在此處下載完整的源代碼
《圖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 “ ; //傳感器的類型或您發(fā)送的數(shù)據(jù)的名稱
const 字符串VERSION = ” 1 “ ;
const 字符串格式= “ ” ;
const char * WIFI_SSID = ” XXXXXXXXX “ ; //您的WiFi SSID/名稱
const char * WIFI_PASS = ” XXXXXXXXX “ 跨度》 ; //您的WiFi密碼
const uint16_t UPDATE_RATE = 5 ; //發(fā)送數(shù)據(jù)之間的等待時(shí)間(以秒為單位)
const uint8_t TIMEZONE_OFFSET = 10 ; //傳感器所在的時(shí)區(qū)(例如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 ; //該引腳連接第二個(gè)測試按鈕(D6)
const int SOLENOID_PIN = 13 ; //引腳連接到繼電器(D7)
易失性字節(jié)中斷= 0 ;
readiness_io 客戶端(CHANNEL_ID,TOPIC,SENSOR_ID,VERSION,F(xiàn)ORMAT);
股票計(jì)時(shí)器;
digitalWrite (LED_PIN,LOW) ;
}
interrupt = 0 ;
}
}
查看GitHub托管的?的rawrelayUnit.ino
步驟4:成品
這是成品單元的外殼(不包括閥門)。它具有一根電纜密封套,用于閥線進(jìn)入。由于它還具有用于電源的桶形插孔,因此建議將該版本用于裸露區(qū)域-但您可以輕松地用另一個(gè)電纜密封套替換它,并直接將其布線到板上以確保其防水性。
責(zé)任編輯:wv
-
繼電器
+關(guān)注
關(guān)注
132文章
5314瀏覽量
148359 -
電磁閥
+關(guān)注
關(guān)注
14文章
508瀏覽量
31288 -
NODEMCU
+關(guān)注
關(guān)注
13文章
289瀏覽量
21267
發(fā)布評論請先 登錄
相關(guān)推薦
評論