You are on page 1of 6

UJIAN TENGAH SEMESTER

MATA KULIAH MEKATRONIKA


Dosen Pengampu : Dr. Ir. Augustinus Sujono M.T

Disusun Oleh :

Ramadhan Prihantono
(I0718030)

UNIVERSITAS SEBELAS MARET


SURAKARTA
2020
2

AGV For Monitoring GreenHouse

1. Sensor yang Dipakai


- LDR Sensor (Sensor Cahaya)
- DHT Sensor (Suhu dan Kelembapan)
- Soil moisture sensor
- MQ2 sensor,

2. Signal Conditioner
- motor-driver module
- ADC
- AMPLIFIER

3. Prosesor
- Arduino
- Nodemcu

4. Actuator
- Motor DC

5. Cara Kerja

1. Sensor cahaya dan sensor suhu akan mendeteksi keadaan sebagai masukkan.
2. Dimana jika sensor cahaya medeteksi cahaya kurang dan sensor suhu mendeteksi suhu
yang telah ditentukan maka sensor akan mengirimkan sinyal ke microcontroler
3. Lalu microcontroller akan memberi perintah pada motor sehingga AGV dapat bergerak.

6. Flowchart

Soil moisture
sensor

MQ2 sensor

Sensor Cahaya
Suhu dan
Kelembapan
3

7. Circuit Diagram

8. Program

// ARDUINO PROGRAM
// smart greenhouse monitoring and controlling using iot--------by
VIJAY S
//PHN NO: 9791224530
//vijayvjecs@gmail.com
#include<LiquidCrystal.h>
#include <DHT.h>
#include <SoftwareSerial.h>
#define DHTPIN A0
#define DHTTYPE DHT11
#define motor 12
SoftwareSerial nodemcu(2, 3);
LiquidCrystal lcd(12,11,7,8,9,10);
DHT dht(DHTPIN, DHTTYPE);

String sensor1;
String sensor2;
String sensor3;
String sensor4;
String cdata = "";

int soil;
int ldr;
int mq2;
int ldrStatus =0;
int ledPin = 13;
int buz = 4;

void setup()
4

pinMode(ledPin, OUTPUT);
pinMode(buz, OUTPUT);
lcd.begin(16, 2);
dht.begin();
nodemcu.begin(9600);

lcd.setCursor(0, 0);
lcd.print("SMART");
lcd.setCursor(0, 1);
lcd.print(" GREENHOUSE ");
delay(1000);
lcd.clear();
}
void loop()
{
int h = dht.readHumidity();
int t = dht.readTemperature();
int soil=0;
int mq2=0;

ldrStatus = analogRead(A2);
soil = analogRead(A1);
mq2 = analogRead(A3);

cdata = cdata + h + "," + t + "," + soil + "," + ldrStatus + "," +


mq2 + "," + sensor1 +"," + sensor2 + ","+ sensor3 + ","+ sensor4 +
",";
Serial.println(cdata);
nodemcu.println(cdata);
delay(600);
cdata = "";
(h, HIGH);
(t, HIGH);
(soil, HIGH);
(ldrStatus, HIGH);
(mq2, HIGH);
(sensor1, HIGH);
(sensor2, HIGH);
(sensor3, HIGH);
(sensor4, HIGH);

if (ldrStatus >= 200) {


digitalWrite(ledPin, HIGH);
sensor2 = "1023";
delay(200);
lcd.setCursor(4,1);
lcd.print("ON ");
5

} else {
digitalWrite(ledPin, LOW);
sensor2 = "0";
delay(200);
lcd.setCursor(4,1);
lcd.print("OFF");
}

if (soil > 300) {


digitalWrite(motor, HIGH);
sensor1 = "1023";
delay(200);
lcd.setCursor(12,1);
lcd.print("ON ");
}
if (soil < 300) {
digitalWrite(motor, LOW);
sensor1 = "0";
delay(200);
lcd.setCursor(12,1);
lcd.print("OFF");
}

if(t>35){
digitalWrite(motor, HIGH);
sensor3 = "1023";
}
if(t<35){
digitalWrite(motor, LOW);
sensor3 = "0";
}

if(mq2>250){
digitalWrite(buz, HIGH);
sensor4 = "1023";
}
if(mq2<250){
digitalWrite(buz, LOW);
sensor4 = "0";
}

lcd.setCursor(0,0);
lcd.print("H:");
lcd.setCursor(2,0);
lcd.print(h);
lcd.setCursor(5,0);
lcd.print("T:");
lcd.setCursor(7,0);
lcd.print(t);
6

lcd.setCursor(10,0);
lcd.print("SM:");
lcd.setCursor(13,0);
lcd.println(mq2);
lcd.setCursor(0,1);
lcd.print("LED:");
lcd.setCursor(8,1);
lcd.print("MTR:");
}

You might also like