資料介紹
描述
夏季,您的花園或后院需要經(jīng)常澆水,尤其是在澳大利亞。為了確保它定期發(fā)生,我決定設(shè)計(jì)這樣一個(gè)澆水系統(tǒng)。
功能說(shuō)明
該項(xiàng)目最多由四個(gè)閥門組成,最多可以控制 3 個(gè)灑水器或其他類型的澆水裝置。它使用一個(gè)額外的閥門來(lái)更好地抵抗閥門故障,并且如果您決定使用水流量傳感器,它還會(huì)執(zhí)行泄漏檢查。
這三個(gè)澆水裝置最多可以澆灌您花園的 3 個(gè)不同區(qū)域。它們被稱為區(qū)域 1、區(qū)域 2 和區(qū)域 3,您可以分別配置它們的持續(xù)時(shí)間(以分鐘為單位)以及每天開始澆水的時(shí)間。
有兩個(gè)按鈕和一個(gè)彩色 LED 來(lái)控制/顯示設(shè)備的狀態(tài)。紅色按鈕用于顯示和切換模式以及立即關(guān)閉澆水。黑色按鈕開始澆水,如果它已經(jīng)在運(yùn)行,則切換到下一個(gè)區(qū)域。
當(dāng)您在空閑模式下按下紅色按鈕時(shí),它將首先在彩色 LED 上顯示當(dāng)前模式,然后在模式之間切換,如下所示:
- 模式關(guān)閉(顏色 LED 紅色)
- 模式開啟(彩色 LED 綠色)
- 模式關(guān)閉一次(顏色 LED 紫色)
如果您和客人坐在后院卻忘記關(guān)掉它怎么辦?出于這個(gè)原因,我添加了一個(gè)警告激活澆水裝置。
當(dāng)開始澆水時(shí),會(huì)發(fā)生以下情況:
- 泄漏檢查(如果已激活)
- 打開區(qū)域 1 1 秒
- 暫停一分鐘(讓您在有客人時(shí)切換它..)
- 在給定的時(shí)間內(nèi)開始給區(qū)域 1 澆水(以分鐘為單位)
- 打開區(qū)域 2 1 秒
- 暫停一分鐘
- 在給定的時(shí)間內(nèi)開始給區(qū)域 2 澆水(以分鐘為單位)
- 打開區(qū)域 3 1 秒
- 暫停一分鐘
- 在給定的時(shí)間內(nèi)開始給區(qū)域 3 澆水(以分鐘為單位)
在此期間任何時(shí)候按紅色按鈕,澆水將立即停止,直到下一次預(yù)定的澆水才開始。如果按下黑色按鈕,它將切換到下一個(gè)區(qū)域。
軟件先決條件
為了安裝這個(gè)項(xiàng)目的草圖,你顯然需要在你的 PC 上安裝 Arduino IDE。組裝部分中的草圖和一些測(cè)試草圖也需要在 Arduino IDE 中安裝下面列出的庫(kù)。
推薦的安裝方法如下(適用于除 DS3232RTC 之外的所有設(shè)備)。
- 菜單草圖->包含庫(kù)->管理庫(kù)...
- 在“過(guò)濾您的搜索...”的右上角,輸入庫(kù)的名稱
- 單擊它,然后單擊“安裝”
- 有關(guān)更多詳細(xì)信息,請(qǐng)參閱手冊(cè)安裝其他 Arduino 庫(kù)
所需庫(kù):
電氣裝配
電氣部分主要由Arduino Uno、DS3231 RTC、MOSFET4板、彩色LED板和兩個(gè)按鈕組成。
如果您對(duì) Arduino 有經(jīng)驗(yàn),請(qǐng)?zhí)^(guò)以下章節(jié)并根據(jù)上圖進(jìn)行組裝。
連接和測(cè)試 DS3231 RTC
將手表電池放在 DS3231 RTC 板上并按照概覽圖所示進(jìn)行連接。連接如下:
- RTC PIN SCL = Arduino PIN A5 (SCL
- RTC PIN SQW = Arduino PIN 8
- RTC PIN GND = 面包板 GND(也可以是任何用于測(cè)試的 Arduino GND)
- RTC PIN VCC = Breadboard VCC(5V,也可以是Arduino 5V進(jìn)行測(cè)試)
將以下草圖上傳到 Arduino Uno 以檢查 RTC 芯片是否連接正確。
#include // http://github.com/JChristensen/DS3232RTC
#include // https://github.com/GreyGnome/EnableInterrupt
#define SLEEP_MODE SLEEP_MODE_IDLE
#include // https://github.com/PRosenb/DeepSleepScheduler
#define RTC_INT_PIN 8
boolean alarmReceived = false;
void setup() {
Serial.begin(9600);
Serial.println(F("Startup ------------"));
initRtc();
setSyncProvider(RTC.get);
if (timeStatus() != timeSet) {
Serial.println(F("RTC not found"));
} else {
Serial.println(F("RTC found"));
Serial.println(F("Testing interrupt connection.."));
time_t rtcTime = now();
unsigned int hours = hour(rtcTime);
unsigned int minutes = minute(rtcTime);
unsigned int seconds = second(rtcTime);
// trigger alarm in 5 seconds
seconds += 5;
if (seconds >= 60) {
seconds -= 60;
minutes++;
}
if (minutes >= 60) {
minutes -= 60;
hours++;
}
if (hours >= 24) {
hours -= 24;
}
Serial.print(F("Trigger alarm at RTC time "));
Serial.print(hours);
Serial.print(F(":"));
Serial.print(minutes);
Serial.print(F(":"));
Serial.println(seconds);
RTC.setAlarm(ALM1_MATCH_MINUTES, seconds, minutes, hours, 0);
scheduler.scheduleDelayed(checkIfReceived, 10000);
}
}
void loop() {
scheduler.execute();
}
inline void initRtc() {
RTC.alarmInterrupt(ALARM_1, true);
RTC.alarmInterrupt(ALARM_2, false);
// reset alarms if active
RTC.alarm(ALARM_1);
RTC.alarm(ALARM_2);
delay(1000);
pinMode(RTC_INT_PIN, INPUT_PULLUP);
enableInterrupt(RTC_INT_PIN, isrRtc, FALLING);
}
void checkIfReceived() {
if (!alarmReceived) {
Serial.println(F("Alarm not received, interrupt wire seams not okay."));
}
}
void isrRtc() {
scheduler.schedule(rtcScheduled);
}
void rtcScheduled() {
alarmReceived = true;
Serial.println(F("Interrupt received, wire looks fine."));
if (RTC.alarm(ALARM_1)) {
Serial.println(F("Alarm received, connection of RTC looks fine."));
} else {
Serial.println(F("Alarm not received, something looks wrong with the RTC."));
}
}
在 Arduino IDE 中單擊菜單工具->串行監(jiān)視器并檢查輸出。
連接并測(cè)試彩色 LED
該項(xiàng)目中使用的 RGB 彩色 LED 板本身包含限流電阻(見上圖)。請(qǐng)確保您使用的那個(gè)也是這種情況,以防止損壞。如果沒有,則需要放置單獨(dú)的電阻器。
有不同的 RGB 顏色 LED。我在這個(gè)項(xiàng)目中使用的那個(gè)有一個(gè)標(biāo)有“GND”的 PIN。如果您使用一個(gè)帶有標(biāo)記為 + 的 PIN,則需要相應(yīng)地調(diào)整測(cè)試草圖和生產(chǎn)草圖(參見 Constants.h 中的 COLOR_LED_INVERTED)。
如概覽圖所示連接彩色 LED。連接如下:
- 彩色 LED G = Arduino A0
- 彩色 LED R = Arduino A1
- 彩色 LED B = Arduino A2
- 顏色 LED GND = 面包板 GND(也可以是任何 Arduino GND 進(jìn)行測(cè)試)
將以下草圖上傳到 Arduino Uno 以檢查彩色 LED 是否連接正確。
#define MODE_COLOR_GREEN_PIN A0
#define MODE_COLOR_RED_PIN A1
#define MODE_COLOR_BLUE_PIN A2
void setup() {
Serial.begin(9600);
pinMode(MODE_COLOR_GREEN_PIN, OUTPUT);
digitalWrite(MODE_COLOR_GREEN_PIN, LOW);
pinMode(MODE_COLOR_RED_PIN, OUTPUT);
digitalWrite(MODE_COLOR_RED_PIN, LOW);
pinMode(MODE_COLOR_BLUE_PIN, OUTPUT);
digitalWrite(MODE_COLOR_BLUE_PIN, LOW);
}
void loop() {
Serial.println(F("green"));
digitalWrite(MODE_COLOR_GREEN_PIN, HIGH);
delay(1000);
digitalWrite(MODE_COLOR_GREEN_PIN, LOW);
Serial.println(F("red"));
digitalWrite(MODE_COLOR_RED_PIN, HIGH);
delay(1000);
digitalWrite(MODE_COLOR_RED_PIN, LOW);
Serial.println(F("blue"));
digitalWrite(MODE_COLOR_BLUE_PIN, HIGH);
delay(1000);
digitalWrite(MODE_COLOR_BLUE_PIN, LOW);
}
在 Arduino IDE 中單擊菜單工具->串行監(jiān)視器并觀察 LED 的顏色是否與控制臺(tái)上打印的顏色匹配。
連接和測(cè)試 MOSFET4
?
該項(xiàng)目中使用的MOSFET4板包含 4 個(gè) IRF540 MOSFET,包括通過(guò) Arduino PIN 控制它們的所有必要部件。您還可以使用其他帶有單個(gè) IRF540 的 MOSFET 或電路板。
如概覽圖所示連接 MOSFET4 板。引腳 S 是左側(cè)引腳,引腳“-”是輸入連接器中的右側(cè)引腳,如上所示(MOSFET4 輸入)。中間的 PIN 是 + 我們?cè)谶@個(gè)項(xiàng)目中不需要的。連接如下。
- MOSFET4 CH1 S = Arduino 4
- MOSFET4 CH2 S = Arduino 5
- MOSFET4 CH3 S = Arduino 6
- MOSFET4 CH4 S = Arduino 7
- MOSFET4 CH1 - = 面包板 GND(也可以是任何用于測(cè)試的 Arduino GND)
將以下草圖上傳到 Arduino Uno 以檢查 MOSFET4 板是否連接正確。
#define VALVE1_PIN 4
#define VALVE2_PIN 5
#define VALVE3_PIN 6
#define VALVE4_PIN 7
void setup() {
Serial.begin(9600);
pinMode(VALVE1_PIN, OUTPUT);
pinMode(VALVE2_PIN, OUTPUT);
pinMode(VALVE3_PIN, OUTPUT);
pinMode(VALVE4_PIN, OUTPUT);
}
void loop() {
Serial.println(F("Valve 1"));
digitalWrite(VALVE1_PIN, HIGH);
delay(1000);
digitalWrite(VALVE1_PIN, LOW);
Serial.println(F("Valve 2"));
digitalWrite(VALVE2_PIN, HIGH);
delay(1000);
digitalWrite(VALVE2_PIN, LOW);
Serial.println(F("Valve 3"));
digitalWrite(VALVE3_PIN, HIGH);
delay(1000);
digitalWrite(VALVE3_PIN, LOW);
Serial.println(F("Valve 4"));
digitalWrite(VALVE4_PIN, HIGH);
delay(1000);
digitalWrite(VALVE4_PIN, LOW);
}
您應(yīng)該看到 MOSFET4 板上的 4 個(gè) LED 一個(gè)接一個(gè)地亮起。
連接和測(cè)試按鈕
如概覽圖所示連接黑色和紅色按鈕。連接如下:
- 黑色按鈕的任何 PIN = Arduino 10
- 黑色按鈕的其他 PIN = Breadboard GND(也可以是任何用于測(cè)試的 Arduino GND)
- 紅色按鈕的任何 PIN = Arduino 11
- 紅色按鈕的其他 PIN = Breadboard GND(也可以是任何用于測(cè)試的 Arduino GND)
將以下草圖上傳到 Arduino Uno 以檢查按鈕是否正確連接。
#include // https://github.com/GreyGnome/EnableInterrupt
#define START_AUTOMATIC_PIN 10
#define MODE_PIN 11
void setup() {
Serial.begin(9600);
pinMode(START_AUTOMATIC_PIN, INPUT_PULLUP);
enableInterrupt(START_AUTOMATIC_PIN, isrStartAutomatic, FALLING);
pinMode(MODE_PIN, INPUT_PULLUP);
enableInterrupt(MODE_PIN, isrMode, FALLING);
}
void loop() {
// empty
}
void isrStartAutomatic() {
// only done in test, do not println in interrupt in production sketch
Serial.println(F("black button"));
}
void isrMode() {
// only done in test, do not println in interrupt in production sketch
Serial.println(F("red button"));
}
在 Arduino IDE 中,單擊 Menu Tools->Serial Monitor 并觀察在單擊相應(yīng)按鈕時(shí)是否在控制臺(tái)上看到“黑色按鈕”和“紅色按鈕”。
完成電氣裝配
最后連接水流傳感器插頭和 12V 電源,但不要連接橙色線。
機(jī)械裝配
該項(xiàng)目的機(jī)械部分由連接器、水流傳感器、閥門和出口組成。建議將所有部件連接到至少第一個(gè)帶有螺紋而不是快速連接器的閥門。這意味著它的機(jī)械組裝方式如下。
?
?
?
順序如下:
- 帶螺紋的花園水龍頭
- 從花園水龍頭螺紋到 1/2" 閥門的連接器
- 主閥:兩端 1/2" 外螺紋
- 從主閥到水表的連接器:兩端 1/2" 內(nèi)螺紋
- 水表:兩端 1/2" 公頭
- 4 路交叉聯(lián)軸器:所有螺紋 1/2" 內(nèi)螺紋
- 面積 1/2/3 閥門:兩端 1/2" 外螺紋
- 面積 1/2/3 螺紋接頭連接器:1/2" 內(nèi)螺紋到花園房屋的快速接頭
連接閥門/水流量傳感器:
- 主閥 = mosfet4 CH1(極性無(wú)關(guān)緊要)
- 區(qū)域 1 閥門 = mosfet4 CH2
- 區(qū)域 2 閥門 = mosfet4 CH3
- 區(qū)域 3 閥門 = mosfet4 CH4
- 水流傳感器 = 水流傳感器插頭,請(qǐng)參見水流傳感器說(shuō)明關(guān)于 VCC、GND 和信號(hào)線是什么線
將電氣部件安裝在適當(dāng)?shù)暮凶又小?/font>我推薦一個(gè)正面透明的,這樣可以看到內(nèi)部和彩色 LED。
請(qǐng)仔細(xì)檢查盒子是否防水。我使用了一個(gè)以防水形式出售的盒子,但實(shí)際上并非如此。正如你所想象的,系統(tǒng)開始表現(xiàn)得很奇怪,所以我在前面放了一個(gè)塑料箔,以更好地保護(hù)它免受雨淋。
集成測(cè)試
電氣和機(jī)械組裝完成后,您可以對(duì)其進(jìn)行整體測(cè)試。
首先移除概覽圖像上的橙色連接,以便您可以使用 Arduino Uno 的 USB 電纜。使用 USB 時(shí),不要通過(guò)其 Vin 為 Arduino Uno 供電,這很重要,否則 PC 的 USB 端口可能會(huì)出現(xiàn)問題。
配置
- 斷開您在概覽圖中看到的橙色連接
- 使用 USB 電纜將 Arduino Uno 連接到您的 PC
- 上傳主草圖“澆水系統(tǒng)”
- 在 Arduino IDE 中單擊菜單工具->串行監(jiān)視器
- 選擇 9600 波特
- 您會(huì)在控制臺(tái)中看到初始化輸出
- 按 h 和“輸入”鍵
- 控制臺(tái)顯示可用命令
-
使用 d
- - - T
: (一天 24 小時(shí))設(shè)置當(dāng)前時(shí)間,例如 d2017-11-11T20:00 - T
-
使用 a
: (一天 24 小時(shí))設(shè)置澆水時(shí)間,例如 a21:00
- 設(shè)置區(qū)域 1 時(shí)長(zhǎng):wz1:<分鐘,3 位數(shù)字>,例如 wz1:010
- 設(shè)置區(qū)域 2 持續(xù)時(shí)間:wz2:<分鐘,3 位數(shù)字>,例如 wz2:010
- 設(shè)置區(qū)域 3 持續(xù)時(shí)間:wz3:<分鐘,3 位數(shù)字>,例如 wz3:010
- 打印狀態(tài):s
- 檢查值和時(shí)間是否設(shè)置正確
- 數(shù)值和時(shí)間存儲(chǔ)在 EEPROM 和 RTC 芯片中。只要 RTC 手表電池不空,它們就會(huì)在斷電時(shí)保持
第一次測(cè)試
- 配置完成后,多次按下紅色按鈕,通過(guò)點(diǎn)亮紅色、紫色和綠色的彩色 LED 來(lái)查看模式是否切換
- 按下黑色按鈕,查看主閥和區(qū)域1的閥門是否正確釋放
- 再按一下黑色按鈕切換到區(qū)域 2 和區(qū)域 3
- 按下紅色按鈕檢查澆水是否停止
完成設(shè)置
- 斷開電腦
- 用 12V 電源重新連接橙色線為 Arduino Uno 供電
- 使用按鈕檢查它是否仍然按預(yù)期工作
- 從現(xiàn)在開始監(jiān)督所有自動(dòng)和手動(dòng)運(yùn)行,以確保不會(huì)發(fā)生損壞
視頻
下面你可以一些簡(jiǎn)短的視頻來(lái)解釋如何操作澆水系統(tǒng)。
第一個(gè)視頻展示了如何查看澆水系統(tǒng)處于哪種模式。在此視頻中,它以綠色亮起,表示“模式開啟”。
第二個(gè)視頻演示了如何在“模式開啟”、“模式關(guān)閉一次”和“模式關(guān)閉”三種模式之間切換。
以下視頻展示了如何手動(dòng)開始澆水、在三個(gè)區(qū)域之間切換并再次關(guān)閉澆水。請(qǐng)注意,LED 最后以綠色亮起,表示系統(tǒng)當(dāng)前處于“模式開啟”狀態(tài)。
..這就是你的鄰居的樣子;-)。
?
- 智能澆水系統(tǒng)開源分享
- 自動(dòng)澆水系統(tǒng)開源案例
- 自動(dòng)澆水系統(tǒng)開源設(shè)計(jì)
- DIY自動(dòng)澆水系統(tǒng)
- 雨水模擬自動(dòng)澆水系統(tǒng)開源分享
- 自動(dòng)植物澆水系統(tǒng)開源分享
- 智能植物澆水系統(tǒng)開源案例
- 雙植物澆水系統(tǒng)開源分享
- 室內(nèi)植物澆水系統(tǒng)開源分享
- 智能植物澆水系統(tǒng)開源
- 智能植物澆水系統(tǒng)開源分享
- 智能植物澆水系統(tǒng)開源項(xiàng)目
- 自動(dòng)澆水系統(tǒng)開源分享
- Arduino自動(dòng)植物澆水系統(tǒng)
- 使用樹莓派2實(shí)現(xiàn)的植物澆水系統(tǒng)的資料合集 56次下載
- 基于51單片機(jī)的自動(dòng)噴水系統(tǒng)設(shè)計(jì) 1072次閱讀
- 如何制作一個(gè)基于單片機(jī)的自動(dòng)澆花系統(tǒng) 1.4w次閱讀
- 通過(guò)利用虛擬儀器模糊控制技術(shù)來(lái)實(shí)現(xiàn)恒壓供水系統(tǒng)的設(shè)計(jì) 934次閱讀
- 微雪電子土壤濕度傳感器簡(jiǎn)介 4778次閱讀
- 自動(dòng)澆灌噴淋控制系統(tǒng)怎樣來(lái)實(shí)現(xiàn) 4427次閱讀
- 物聯(lián)網(wǎng)十大經(jīng)典開源操作系統(tǒng) 1w次閱讀
- 淺析ABB變頻恒壓供水系統(tǒng)功能和特點(diǎn) 5369次閱讀
- 自動(dòng)澆花系統(tǒng)的設(shè)計(jì)及制作 基于Arduino 2.5w次閱讀
- CO-TRUST系列PLC在自動(dòng)消防供水系統(tǒng)中的應(yīng)用設(shè)計(jì) 2271次閱讀
- arduino測(cè)量土壤濕度自動(dòng)澆水提醒 1.3w次閱讀
- 基于PLC的變頻恒壓供水系統(tǒng)的設(shè)計(jì) 2.8w次閱讀
- 變頻恒壓供水系統(tǒng)簡(jiǎn)述 1.3w次閱讀
- 一種由PLC與變頻器組成的恒壓供水系統(tǒng)設(shè)計(jì) 3171次閱讀
- 工程師DIY智能灌溉器解決植物澆水難題 2364次閱讀
- 一種簡(jiǎn)單的變頻恒壓供水系統(tǒng)的設(shè)計(jì)方案 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多