<前言>
本文接續前面的自動澆花系統,繼續完成後續的部分,目前進度已可定點澆灌,馬達和窗簾軌道還要再進行改造,預計這幾天會完成
<新增材料>
1. ABS防水盒2個(開兩個開孔),約14x16x6cm
2. PVC絕緣膠帶一綑
3. 強力布雙面膠一綑
4. 4x4x5cm 12V風扇1~2個
5. 虎口鉗一隻
6. M3螺絲釘數隻
7. 大型螺絲釘(規格未知)數隻
<目前進度實照>
1. 將STM32主控板,繼電器模組,土壤感測器的YL-38放進主控板ABS盒子,並將導線拉出孔外,並用M3螺絲釘固定,實作如圖
左方兩個是土壤感測器的YL-38
下方是繼電器
右上方是主控板
YL-38感測器連接電極的導線和電源導線拉出孔外
分別用M3螺絲固定在防水盒子
繼電器模組(5VDC<->125VAC)原理圖如下,其中diode(D1)是為了防止繼電器內部線圈激磁後產生反饋電流燒壞電路,而NPN(Q1)當作開關,B端輸入訊號產生電流時,CE兩端導通,本實作使用高電位觸發,SW=1時,繼電器切換到NO腳位形成迴路導通電源,SW=0時切換到NC腳位形成開路,光耦合可將大電壓端和小電壓端兩邊隔離,避免突波產生
2. 將抽水馬達,水管繞圈後拉出一個開孔,和一個4x4x5cm固定在另一個開孔,散熱用,實作如圖
中間是545抽水馬達,用大型螺絲固定
右下方是4x4x5cm風扇,用雙面布膠帶固定在盒子上,留一點空隙不需要蓋住開孔
水管上面的孔拉出
導線由下面的孔,風扇上面拉出
風扇和抽水馬達電源都是12V
3. 蓋上蓋子的抽水馬達防水盒,懸掛在窗戶陽台外,主控板防水盒目前放在室內
4. 目前的原始碼如下
#include "mbed.h"
AnalogIn analog_value_front(A0);
AnalogIn analog_value_back(A1);
DigitalOut led(LED1);
DigitalOut SW(D6);
Serial output(USBTX, USBRX);
int main() {
float meas_front,meas_back;
output.baud(115200);
printf("nAnalogIn examplenr");
while(1) {
meas_front = analog_value_front.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
meas_back = analog_value_back.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
meas_front = meas_front * 1000; // Change the value to be in the 0 to 1000 range
meas_back = meas_back * 1000; // Change the value to be in the 0 to 1000 range
output.printf("measure_front = %.0f and measure_back = %.0fnr", meas_front,meas_back);
if (meas_front <= 700 && meas_back <= 700) {
SW = 0;
led = 0;
}
else {
led = 1;
SW = 1;
}
counterclockwise();
wait(0.2); // 200 ms
}
}
meas_front和mesa_back分別代表兩個土壤感測器,其中只要任何一個感測器感測到濕度不足(>700)的話,就會給繼電器輸入高電位打開開關(SW),讓馬達可以啟動來吸取水桶的水澆灌
供電採用E5V短路跳帽設定來供電,因此整個系統供電可由12V來供電,將STM32主控板分別接上VIN和GND即可
<小結>
之後會陸續補上比較多的圖,目前將主要的裝置做個介紹,感謝支持!
作者:MOP 發布於:ICKEY社區
|