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