Mini Project
Mini Project
เครื่องรดน้ำต้นไม้อัตโนมัติ
อุปกรณ์
1.Arduino UNO R3
2.Arduino Uno R3 พร้อมสาย USB
3.Module รีเลย์ relay 1 Chanel 250V/10A Active HIGH II
4.Soil Moisture Sensor Module วัดความชื่นในดิน
5.ปั๊มน้ำ DC ขนาดเล็ก
6.สายยางปั้มน้ำ DC ยาว 1 เมตร
7.Adapter 5V 1A หม้อแปลง 5V 1 แอมป์ II
8.Power connector 5.5 mm (ตัวเมีย) PCB
9.สายแพร Jumper Male to Female ยาว 20CM จำนวน 10 เส้น
code
#include <LiquidCrystal_I2C.h> //ดึงคำสั่งจาก library
int sensorPin = A0; //กำหนดตัวแปร
int RELAY1 = 2;
LiquidCrystal_I2C lcd(0x27, 16, 2) ; // ฟังชั่นของ lcd มี16หลัก2แถว
void setup() {
lcd.begin(); //เริ่มต้นการทำงานของ lcd
lcd.backlight(); // แบคไลท์ทำงาน
Serial.begin(9600); //ความเร็วในการส่งข้อมูล
pinMode(RELAY1, OUTPUT); // กำหนดให้ relay เป็น output
}
void loop() { }
int sensorValue; //ประกาศตัวแปร sensor value
sensorValue = analogRead(sensorPin); // อา่นค่าจาก sersorPin เก็ยไว้ที่ sensor value
sensorValue = map(sensorValue, 0, 1023, 100, 0); การปรับค่าให้เหลือ100 - 0
Serial.print("Soil moisture: ");
Serial.print(sensorValue);
Serial.println(" %");
if(sensorValue <=40 ) //ถ้า sensor value น้อยกว่าหรือเท่า40 ให้ทำงานต่อด้านล่าง
{
digitalWrite(RELAY1, HIGH); // ส่งค่าลอจิกให้ทำงานเปน high หรือ1
lcd.setCursor(0, 0); // ไปที่ตัวอักษรที่ 0 แถวที่ 0
lcd.print("Pumb on ");
lcd.setCursor(0, 1); // ไปที่ตัวอักษรที่ 0 แถวที่ 1
lcd.print("Moisture < 40"); //เเสดงข้อความ moisture มากกว่า 40
}
else{ //ถ้าไม่ตรงเงื่อนไข
digitalWrite(RELAY1, LOW); ส่งค่าให้ low หรือ 0
lcd.setCursor(0, 0); // ไปที่ตัวอักษรที่ 0 แถวที่ 0
lcd.print("Pumb off"); // เเสดงข้อความ
lcd.setCursor(0, 1); // ไปที่ตัวอักษรที่ 0 แถวที่ 1
lcd.print("Moisture > 40"); เเสดงข่้อความ moiture น้อยกว่า 40
}
delay(5000); หน่วงเวลา5วิเพื่อให้อ่านค่าใหม่
}
ความคิดเห็น
แสดงความคิดเห็น