Translate

Monitor Ketinggian Air (Water Level) dan Berat sampah Serta Hujan + SMS GATEWAY

 Monitor Ketinggian Air (Water Level) dan Berat sampah Serta Hujan + SMS GATEWAY 


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang menggunakan beberapa sensor beserta fitur sms. alat ini digunakan untuk monitoring ketinggian air / water level dan juga berat serta air hujan, untuk notifikasi menggunakan sms. untuk lebih jelasnya berikut adalah program dan daftar komponennya. 



a. Arduino Uno




b. Loadcell




c. Sensor Jarak HC-SRF04




d. Sensor Air / Hujan




e. Modul SMS SIM900A






f. Program Arduino IDE

#include <Wire.h>
#include "HX711.h"
#include "SIM900.h"
#include <SoftwareSerial.h>
#include <stdlib.h>
#include "sms.h"
SMSGSM sms;

#define trigPin 10
#define echoPin 11

// HX711.DOUT    - pin #4
// HX711.PD_SCK    - pin #5
HX711 scale(4, 5);       

long duration, distance;
float tera = 0;
int berat;
float fix;
int x;
int dataadc;
char string[160];
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
char strsms[5];
int mark = 0;

//gerbang pintu air
int motor1 = 9;
int motor2 = 8;
//pengangkut sampah
int motor3 = 7;
int motor4 = 6;

void setup(){
  
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);  
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);  
pinMode(motor3, OUTPUT);
pinMode(motor4, OUTPUT);  
   
scale.set_scale(2280.f);       // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare();                  // reset the scale to 0

Serial.println("GSM Shield testing.");

if (gsm.begin(2400)) {
   Serial.println("\nstatus=READY");
   started=true;
  } else Serial.println("\nstatus=IDLE");

if(started) {
    //Enable this two lines if you want to send an SMS.
    if (sms.SendSMS("085123456789", "Alat Ready"))
    Serial.println("\nSMS sent OK");
}
     
}  

void loop(){
  
digitalWrite(trigPin, LOW);  // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
 
berat = scale.get_units(10) * 1;
//fix = ((berat + 1.523) / 0.223) - tera ;

dataadc = analogRead(A0);

Serial.print("Berat= ");
Serial.print(berat);
Serial.print(" ");
Serial.print("Jarak= ");
Serial.print(distance);
Serial.print(" ");
Serial.print("Hujan= ");
Serial.println(dataadc);

if((distance <= 5)&&(mark == 0)){
digitalWrite(motor1,HIGH);
digitalWrite(motor2,LOW);
delay(5000);
digitalWrite(motor1,LOW);
digitalWrite(motor2,LOW);
mark = 1;  
}

if((distance >= 10)&&(mark == 1)){
digitalWrite(motor1,LOW);
digitalWrite(motor2,HIGH);
delay(5000);  
digitalWrite(motor1,LOW);
digitalWrite(motor2,LOW);
mark = 0;
}

//jika berat > 10gr
if(berat > 10){
if (sms.SendSMS("085123456789", "SAMPAH MENUMPUK"))
Serial.println("\nSMS sent OK");
digitalWrite(motor3,HIGH);
digitalWrite(motor4,LOW);
}

//jika berat < 10gr
if(berat < 10){
digitalWrite(motor3,LOW);
digitalWrite(motor4,LOW);
}

scale.power_down();                  
delay(1000);
scale.power_up();

}  




g. VIDEO HASILNYA





No comments:

Post a Comment