Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ============================================
- SMS Sensor Curah Hujan & Ketinggian Air
- Sungguminasa, 1 Desember 2014
- www.facebook.com/nagasakti
- email: emailsinaga@gmail.com
- ----------------------------------------------
- Ketinggian Air
- Normal = <50
- Siaga1 = 51-74
- Siaga2 = 75-100
- Siaga3 = 100-150
- Siaga4 = >150
- Pin Sensor
- --------------------
- Ultrasonic = Digital 4
- Rain = Digital 9
- Pinout Sensor Curah Hujan (Rain Guage : http://www.skyview.co.uk/acatalog/m_CM2016_RG.gif)
- Red --------------------------- GND
- |--------------------- Digital 9
- | R = 10 K ohm
- Green ----/\/\/\/\------------- VCC 5 Volt
- ============================================ */
- //Rain variable
- int pulsePin =9; // Pin Digital 9 (Sensor Curah Hujan)
- unsigned long counter = 0;
- unsigned long duration = 0;
- unsigned long timeout = 1000000; // in microseconds
- // Sensor PING
- const int pingPin = 7;
- const int hmax = 5; //5 cm
- const int tinggisensor = 160; // Ketinggian Sensor dari Permukaan
- int ketinggian;
- #include "SIM900.h"
- #include <SoftwareSerial.h>
- #include "sms.h"
- SMSGSM sms;
- char number[]="+6285242493184"; //Nomor Handphone SMS Center (Server)
- char number2[]="+625255544442"; //Nomor Handphone Petugas (Siaga4)
- int sensor1=0;
- int sensor2=0;
- char value_str[4]; // 4 Digit Integer to Str
- char ket_str[20];
- char message[40];
- String keterangan;
- void setup()
- {
- Serial.begin(9600);
- if (gsm.begin(2400))
- Serial.println("\nstatus=READY");
- else Serial.println("\nstatus=IDLE");
- };
- void loop()
- {
- sensor1 = bacaketinggian();
- sensor2 = bacacurahhujan();
- //Cek Kondisi Ketinggian Air
- //Normal = <50
- //Siaga1 = 51-74
- //Siaga2 = 75-100
- //Siaga3 = 100-150
- //Siaga4 = >150
- if (ketinggian<50) {
- keterangan= "*Tidak Banjir*";
- }
- else
- if (ketinggian>51 && ketinggian<=74) {
- //keterangan = ", Siaga 1";
- keterangan = "*Siaga 1*";
- }
- else
- if (ketinggian>75 && ketinggian<=100) {
- //keterangan = ", Siaga 2";
- keterangan = "*Siaga 2*";
- }
- else
- if (ketinggian>100 && ketinggian<=150) {
- //keterangan = ", Siaga 3";}
- keterangan = "*Siaga 3*";}
- else
- if (ketinggian >150) {
- //keterangan = ", Siaga 4";
- keterangan = "*Siaga 4*";
- }
- else
- {
- //keterangan = ", Tidak Terdefenisikan";
- keterangan = "*Tidak Terdefenisikan*";
- };
- Serial.println(keterangan);
- //Kirim SMS
- kirimsms(keterangan);
- };
- void kirimsms(String keterangan)
- {
- message[0]='\0';
- //strcat(message,"Curah Hujan: ");
- strcat(message,"*D01*");
- itoa(counter*.2794,value_str,10);
- strcat(message,value_str);
- //strcat(message,", Ketinggian Air: ");
- strcat(message,"*");
- itoa(ketinggian,value_str,10);
- strcat(message,value_str);
- keterangan.toCharArray(ket_str, 20);
- strcat(message, ket_str);
- sms.SendSMS(number,message);
- if (keterangan ="Siaga 4*") {
- sms.SendSMS(number2,message);
- }
- delay(120000); //Delay Pengiriman SMS
- }
- int bacaketinggian(){
- //Baca Ketinggian Air Asusmsi ketinggian sensor ke permukaan 160 cm
- int result;
- long duration, cm;
- pinMode(pingPin, OUTPUT);
- digitalWrite(pingPin, LOW);
- delayMicroseconds(2);
- digitalWrite(pingPin, HIGH);
- delayMicroseconds(5);
- digitalWrite(pingPin, LOW);
- pinMode(pingPin, INPUT);
- duration = pulseIn(pingPin, HIGH);
- cm = mmtocm(duration);
- ketinggian = tinggisensor - cm;
- result = ketinggian;
- Serial.print(" Ketinggian: ");
- Serial.println(ketinggian);
- // delay (500);
- //===END Ketinggian Air
- }
- long mmtocm(long microseconds)
- {
- return microseconds / 29 / 2;
- }
- int bacacurahhujan(){
- //Baca Curah Hujan
- duration = pulseIn(pulsePin, HIGH, timeout);
- if (duration == 0) {
- Serial.print("Mulai Menghitung Curah Hujan.");
- Serial.println("");
- } else {
- counter++;
- //Serial.print(counter);
- // Serial.print(", ");
- Serial.print(duration*.000001);
- Serial.println(" s");
- //Serial.println("");
- Serial.print (counter*.2794);
- Serial.println(" mm");
- }
- //== END Rain
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement