• Tidak ada hasil yang ditemukan

(1)LAMPIRAN #include <Adafruit_INA219.h&gt

N/A
N/A
Protected

Academic year: 2023

Membagikan "(1)LAMPIRAN #include <Adafruit_INA219.h&gt"

Copied!
5
0
0

Teks penuh

(1)

LAMPIRAN

#include <Adafruit_INA219.h>

#include <LiquidCrystal_I2C.h>

#define BLYNK_TEMPLATE_ID "TMPLBs3Q31P9"

#define BLYNK_DEVICE_NAME "IrigasiOtomatis"

#define BLYNK_AUTH_TOKEN "NIeeY81BVfAm1hjgDaxysIlETIuhBCLj"

#define BLYNK_FIRMWARE_VERSION "0.1.0"

#define BLYNK_PRINT Serial

#define APP_DEBUG

#define USE_NODE_MCU_BOARD

#include "BlynkEdgent.h"

#define flowsensor D0

#define soil A0

#define waterPump D7

#define Buzzer D8

#define ledhijau D4

#define ledmerah D5

LiquidCrystal_I2C lcd(0x27,16,2);

int X;

int Y;

float TIME = 0;

float FREQUENCY = 0;

float WATER = 0;

float TOTAL = 0;

float LS = 0;

float shuntvoltage = 0;

float busvoltage = 0;

float current_mA = 0;

float loadvoltage = 0;

float power_mW = 0;

int soilLevel = 0;

int soilR = 0;

WidgetLCD vLcd(V2);

unsigned long waktuflow = 0;

unsigned long waktusoil = 0;

unsigned long waktubuzzer = 0;

unsigned long waktuarus = 0;

bool statebuzzer = LOW;

bool eventTrigger = false;

BlynkTimer timer;

Adafruit_INA219 ina219;

sendSensor() { readSoil();

readflow();

readarus();

vLcd.print(0,0,"Status Pompa Air");

if(soilLevel>=40) {

digitalWrite(ledhijau, HIGH);

digitalWrite(ledmerah, LOW);

digitalWrite(Buzzer, LOW);

(2)

digitalWrite(waterPump, HIGH);

vLcd.print(6,1,"OFF");

}

if(soilLevel<30) {

Blynk.logEvent("sensor_soil", "Kelembaban Tanah di bawah 30%");

digitalWrite(ledmerah, HIGH);

digitalWrite(ledhijau, LOW);

digitalWrite(waterPump, LOW);

if (millis() - waktubuzzer >= 500) { statebuzzer = !statebuzzer;

digitalWrite (Buzzer, statebuzzer);

waktubuzzer = millis();

}

vLcd.print(6,1, "ON ");

} }

readflow() {

if (millis() - waktuflow >= 500) { X = pulseIn(flowsensor, HIGH);

Y = pulseIn(flowsensor, LOW);

TIME = X + Y;

FREQUENCY = 1000000/TIME;

WATER = FREQUENCY/4.5;

LS = WATER/60;

lcd.setCursor(7,0);

lcd.print(F("F="));

if(FREQUENCY >= 0) { if(isinf(FREQUENCY)) { Serial.print(WATER);

Serial.println(" L/Min");

Blynk.virtualWrite(V1, 0);

lcd.setCursor(10,0);

lcd.print(F("0"));

} else {

Serial.print(WATER);

Serial.println(" L/Min");

Blynk.virtualWrite(V1, WATER);

lcd.setCursor(10,0);

lcd.print(WATER);

} }

lcd.setCursor(11,0);

lcd.print(F("L/Min"));

waktuflow = millis();

} }

readSoil() {

if (millis() - waktusoil >= 2000) { soilR = analogRead(soil);

Serial.println(soilR);

soilLevel = map(soilR, 1023, 0, 0, 100); // adjust soil level here Serial.print(soilLevel);

Serial.println(" %");

Blynk.virtualWrite(V0, soilLevel);

lcd.setCursor(0,0);

lcd.print(F("S="));

if (soilLevel > 100) {

(3)

// digitalWrite(ledhijau, HIGH);

// digitalWrite(ledmerah, LOW);

lcd.setCursor(2,0);

lcd.print(F("100%"));

}

else if (soilLevel < 0) {

// digitalWrite(ledmerah, HIGH);

// digitalWrite(ledhijau, LOW);

lcd.setCursor(2,0);

lcd.print(F(" 0%"));

} else {

// lcd.clear();

lcd.setCursor(2,0);

lcd.print(soilLevel);

lcd.setCursor(4,0);

lcd.print(F(" %"));

}

// lcd.setCursor(2,0);

// lcd.print(soilLevel);

// lcd.setCursor(5,0);

// lcd.print(F("%"));

// lcd.clear();

waktusoil = millis();

} }

readarus() {

if (millis() - waktuarus >= 1500) {

shuntvoltage = ina219.getShuntVoltage_mV();

busvoltage = ina219.getBusVoltage_V();

current_mA = ina219.getCurrent_mA();

power_mW = ina219.getPower_mW();

loadvoltage = busvoltage + (shuntvoltage / 1000);

Serial.println();

Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.println(" V");

// Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");

Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.println(" V");

Serial.print("Current: "); Serial.print(current_mA); Serial.println(" mA");

Serial.print("Power: "); Serial.print(power_mW); Serial.println(" mW");

Serial.println("");

Blynk.virtualWrite(V3, current_mA);

Blynk.virtualWrite(V4, power_mW);

lcd.setCursor(0,1);

lcd.print(F("mA="));

// double ampere = current_mA * 1000;

lcd.setCursor(3,1);

lcd.print(current_mA);

lcd.setCursor(9,1);

lcd.print(F("mW="));

// double watt = power_mW * 1000;

lcd.setCursor(12,1);

lcd.print(power_mW);

waktuarus = millis();

} }

setup() {

lcd.init();

lcd.backlight();

(4)

Serial.begin(9600);

pinMode(flowsensor, INPUT);

pinMode(waterPump, OUTPUT);

pinMode(ledmerah, OUTPUT);

pinMode(ledhijau, OUTPUT);

pinMode(Buzzer, OUTPUT);

digitalWrite(Buzzer, LOW);

digitalWrite(waterPump, HIGH);

digitalWrite(ledhijau, LOW);

digitalWrite(ledmerah, LOW);

delay(1000);

lcd.setCursor (0,0);

lcd.print(F(" Sistem Irigasi "));

lcd.setCursor (0,1);

lcd.print(F(" BY IVO JENI A "));

delay(2000);

if (! ina219.begin()) {

Serial.println("Failed to find INA219 chip");

lcd.setCursor(0,0);

lcd.print(F("Fail Find INA219"));

lcd.setCursor(0,1);

lcd.print(F("Check Wiring NOW"));

while (1) { delay(10);

} }

delay(100);

lcd.clear();

Blynk.logEvent("System Start");

lcd.setCursor(0,0);

lcd.print(F(" System Starting "));

delay(500);

BlynkEdgent.begin();

timer.setInterval(2000L, sendSensor);

lcd.clear();

}

void loop() { timer.run();

BlynkEdgent.run();

sendSensor();

}

(5)

Referensi

Dokumen terkait

Tanaman sela jagung yang ditanam 2 minggu sebelum dan bersama tanam tebu menunjukkan hasil total tanaman penyusun lebih rendah daripada kacang tanah dan

Selain tu, YPKDT Daerah Batu Pahat telah diberikan tanggungjawab untuk mengendalikan program Pengamalan Sakinah bagi setiap DUN dan program-program lain mengikut standard yang

Untuk topup dengan tipe manual seperti “Cash”, maka pihak Airline perlu melakukan Approve/Reject terhadap permintaan topup yang dilakukan oleh Agent. Data topup yang di approve

Jenis gulma yang mempunyai nilai NJD terbesar berarti gulma tersebut merupakan gulma dominan. c) Bobot kering gulma per spesies, pengamatan dilakukan pada saat

Grebeg Kendalisodo dalam perkembangan tahun berikutnya hingga saat ini bertambah dengan diadakanya jamasan pusaka serta diaraknya hasil pertanian dan perkebunan atau

Setiap orang di luar wilayah negara Republik Indonesia yang memberikan bantuan, kemudahan, sarana, atau keterangan untuk terjadinya tindak pidana terorisme, dipidana dengan pidana

Manusia dan tumbuh-tumbuhan sangat erat kaitannya dalam kehidupan. Banyak sekali nilai manfaat yang didapatkan oleh manusia dari tumbuh-tumbuhan namun masih banyak