//SMART PAKET
//Fachzi Adib Muhamad
#include "HX711.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define relay1 17
#define relay2 5
#define relay3 18
#define relay4 19
const int trigpin = 25;
const int echopin = 26;
long durasi;
int jarak;
float calibration_factor = 420;
// float GRAM;
float KG;
const int LOADCELL_DOUT_PIN = 16;
const int LOADCELL_SCK_PIN = 4;
HX711 scale;
// #define LED 2
// void Blink(int x){
// digitalWrite(x, HIGH);
// delay(500);
// digitalWrite(x, LOW);
// }
void setup() {
lcd.backlight();
lcd.init();
// lcd.backlight();
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
// pinMode(LED, OUTPUT);
lcd.setCursor(0, 0);
lcd.print(" SMART PAKET ");
lcd.setCursor(0, 1);
lcd.print(" DHT E ");
delay(4000);
lcd.clear();
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale();
scale.tare();
Serial.begin(115200);
}
void loop() {
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);
durasi = pulseIn(echopin, HIGH);
jarak = durasi * 0.03408/2;
Serial.print(jarak);
Serial.println(" cm");
if(jarak<=30){
lcd.setCursor(0, 0);
lcd.print("Paket Terdeteksi");
// Blink(LED);
delay(2000);
lcd.clear();
}
scale.set_scale(calibration_factor);
KG = scale.get_units(), 4;
lcd.setCursor(0, 0);
lcd.print(" SMART PAKET ");
lcd.setCursor(0, 1);
lcd.print("berat = ");
lcd.print(KG);
lcd.print(" Kg");
if(KG>=1 && KG<2){
digitalWrite(relay1, HIGH);
}
else{
digitalWrite(relay1, LOW);
}
if(KG>=2 && KG<3){
digitalWrite(relay2, HIGH);
}
else{
digitalWrite(relay2, LOW);
}
if(KG>=3 && KG<4){
digitalWrite(relay3, HIGH);
}
else{
digitalWrite(relay3, LOW);
}
if(KG>=4){
digitalWrite(relay4, HIGH);
}
else{
digitalWrite(relay4, LOW);
}
}