Mendeteksi Kekeruhan Air Menggunakan Mikrokontroler Arduino Nano Dengan Sensor Light Dependent Resistor (LDR) Dan Light Emittin Gdioda (LED) Super Bright Berbasis Komunikasi Data Online
A-1
LAMPIRAN
#include
#define TIMEOUT
#define LED
5000
6
//NO TELPON 082167527652
//NO AXIS 083199013494
//085206012927
int pertama,kedua,ketiga;
float num,NTU;
char cstr[222];
String str,gabung;
//Variable to hold last line of serial output from
SIM800
char currentLine[500] = "";
int currentLineIndex = 0;
//Boolean to be set to true if message notificaion was
found and next
//line of serial output is the actual SMS message content
bool nextLineIsMessage = false;
GPRS gprs;//Untuk Sim800l
Universitas Sumatera Utara
A-2
void urut(){//Fungsi Sorting pembacaan nilai sensor
if(analogRead(A5)>analogRead(A6)){
if(analogRead(A6)>analogRead(A7)){
pertama=analogRead(A5);kedua=analogRead(A6);ketiga=analog
Read(A7);
}
else{
if(analogRead(A5)>analogRead(A7)){
pertama=analogRead(A5);kedua=analogRead(A7);ketiga=analog
Read(A6);
}
else{
pertama=analogRead(A7);kedua=analogRead(A5);ketiga=analog
Read(A6);
}
}
}
else{
if(analogRead(A6)>analogRead(A7)){
if(analogRead(A5)>analogRead(A7)){
pertama=analogRead(A6);kedua=analogRead(A5);ketiga=analog
Read(A7);
}else{
pertama=analogRead(A6);kedua=analogRead(A7);ketiga=analog
Read(A5);
Universitas Sumatera Utara
A-3
}
}
else{
if(analogRead(A7)>analogRead(A5)){
if(analogRead(A5)>analogRead(A6)){
pertama=analogRead(A7);kedua=analogRead(A5);ketiga=analog
Read(A6);
}else{
pertama=analogRead(A7);kedua=analogRead(A6);ketiga=analog
Read(A5);
}
}
}
}
NTU=(13.746*kedua) - 6034.4;
}
void setup() {
pinMode (LED , OUTPUT);
Serial.begin(9600);
digitalWrite (LED, HIGH);
while(!Serial);
Serial.println("Starting SIM800 Auto Read SMS");
gprs.preInit();
delay(1000);
while(0 != gprs.init()) {
Universitas Sumatera Utara
A-4
delay(1000);
Serial.print("init error\r\n");
}
//Set SMS mode to ASCII
if(0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1\r\n",
"OK", TIMEOUT)) {
ERROR("ERROR:CNMI");
return;
}
//Start listening to New SMS Message Indications
if(0 !=
gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0\r\n", "OK",
TIMEOUT)) {
ERROR("ERROR:CNMI");
return;
}
Serial.println("Inisialisasi Sim800l berhasil");
//gprs.sendSMS ("083199013494","Inisialisasi selesai");
gprs.sendSMS ("082299929228","Inisialisasi selesai");
//Untuk indikator Led inisialisasi sim800l
digitalWrite(LED,0);
delay(500);
digitalWrite(LED,1);
delay(1000);
digitalWrite(LED,0);
delay(1);
}
void loop() {
Universitas Sumatera Utara
A-5
int waktu=millis() / 1000;//millis per 1000 berarti
perdetik
if (waktu%30==1){//setiap 30 detik mengirim sms
notifikasi
urut();
num = NTU;
str = String(num);
String a="Nilai Baca Kekeruhan airnya: ";
gabung=a + num;
str = String(gabung);
Serial.print(str);
str.toCharArray(cstr,333);
Serial.println(cstr);
gprs.sendSMS ("082299929228",cstr);
digitalWrite(LED,0);
delay(500);
digitalWrite(LED,1);
delay(1000);
digitalWrite(LED,0);
delay(1);
}
urut();
Serial.print(waktu);Serial.print("
");Serial.println(NTU);
||
delay(1000);
//If there is serial output from SIM800// Pesan masuk
if(gprs.serialSIM800.available()){
Universitas Sumatera Utara
A-6
char lastCharRead =
gprs.serialSIM800.read();
//Read each character from serial output
until \r or \n is reached (which denotes end of line)
if(lastCharRead == '\r' || lastCharRead
== '\n'){
String lastLine =
String(currentLine);
//If last line read +CMT, New SMS
Message Indications was received.
//Hence, next line is the message
content.
if(lastLine.startsWith("+CMT:")){
Serial.println(lastLine);
nextLineIsMessage = true;
} else if (lastLine.length() > 0) {
if(nextLineIsMessage) {
Serial.println(lastLine);
// ########## MEMBACA KONTEN SMS DAN MENCARI+MENGARTIKAN
KONTEN SMS KE PROGRAM #########
//Tampilkan rata" jika menerima pesan Data
if(lastLine.indexOf("Data") >= 0){
urut();
num = NTU;
str = String(num);
String a="Nilai Baca Kekeruhan airnya: ";
gabung=a + num;
str = String(gabung);
Serial.print(str);
Universitas Sumatera Utara
A-7
str.toCharArray(cstr,333);
Serial.println(cstr);
gprs.sendSMS
("082299929228",cstr);
digitalWrite(LED,1);
delay(1000);
digitalWrite(LED,0);
delay(500);
digitalWrite(LED,1);
delay(500);
digitalWrite(LED,0);
delay(1);
}
nextLineIsMessage = false;
}
}
//Clear char array for next line of read
sizeof(currentLine);
for( int i = 0; i <
++i ) {
currentLine[i] = (char)0;
}
currentLineIndex = 0;
} else {
currentLine[currentLineIndex++] =
astCharRead;
}
}
}
Universitas Sumatera Utara
Universitas Sumatera Utara
A-8
LAMPIRAN
HASIL UJI COBA SENSOR MENGGUNAKAN SAMPEL AIR
JENIS AIR
NO WAKTU
AIR AQUA BIDES
SENSOR SENSOR SENSOR
1
2
3
AIR PDAM
SENSOR SENSOR SENSOR
1
2
3
AIR MINUM AQUA
SENSOR SENSOR SENSOR
1
2
3
AIR SANGAT KERUH
SENSOR SENSOR SENSOR
1
2
3
1
1
440
636
453
468
647
464
458
643
457
1020
1022
1022
2
2
439
636
453
451
647
465
457
642
456
1021
1022
1022
3
3
421
633
453
451
646
465
457
642
456
1021
1023
1022
4
4
446
635
453
455
646
465
456
642
455
1021
1022
1022
5
5
439
636
453
454
645
464
458
643
457
1020
1022
1021
6
6
438
635
452
451
646
465
457
643
457
1021
1022
1022
7
7
440
636
454
455
646
465
431
647
458
1021
1022
1021
8
8
439
636
453
452
646
465
468
643
458
1021
1022
1021
9
9
441
636
452
452
646
465
461
645
458
1021
1022
1022
10
10
440
636
453
452
646
466
461
644
458
1021
1023
1022
11
11
439
636
453
452
646
466
455
646
458
1021
1022
1021
12
12
439
635
453
453
645
465
460
644
458
1021
1022
1021
13
13
439
637
452
450
646
465
459
644
458
1021
1023
1022
14
14
440
636
453
452
646
465
462
643
458
1021
1022
1022
15
15
440
635
453
452
646
465
460
644
456
1021
1022
1022
16
16
437
636
453
453
646
466
464
644
458
1020
1022
1021
17
17
440
635
453
451
645
465
459
644
458
1020
1022
1021
18
18
439
638
453
451
645
465
459
644
458
1019
1022
1021
Universitas Sumatera Utara
19
19
440
636
453
451
645
465
459
643
457
1019
1022
1021
20
20
440
636
454
449
646
466
459
643
457
1018
1022
1021
21
21
442
635
453
450
646
466
458
643
457
1017
1023
1021
22
22
441
636
453
454
646
466
458
643
457
1016
1022
1021
23
23
440
635
453
452
646
465
459
644
458
1015
1022
1020
24
24
442
636
453
452
645
465
457
644
458
1014
1022
1018
25
25
437
636
453
453
646
466
461
643
458
1013
1021
1016
26
26
437
636
453
453
646
466
461
643
457
1012
1021
1013
27
27
442
635
453
451
646
466
459
643
457
1012
1022
1016
28
28
439
636
453
452
646
466
458
643
457
1013
1021
1021
29
29
437
635
453
452
646
465
459
644
458
1021
1022
1021
30
30
439
636
453
453
645
465
459
644
458
1022
1023
1022
Universitas Sumatera Utara
LAMPIRAN
#include
#define TIMEOUT
#define LED
5000
6
//NO TELPON 082167527652
//NO AXIS 083199013494
//085206012927
int pertama,kedua,ketiga;
float num,NTU;
char cstr[222];
String str,gabung;
//Variable to hold last line of serial output from
SIM800
char currentLine[500] = "";
int currentLineIndex = 0;
//Boolean to be set to true if message notificaion was
found and next
//line of serial output is the actual SMS message content
bool nextLineIsMessage = false;
GPRS gprs;//Untuk Sim800l
Universitas Sumatera Utara
A-2
void urut(){//Fungsi Sorting pembacaan nilai sensor
if(analogRead(A5)>analogRead(A6)){
if(analogRead(A6)>analogRead(A7)){
pertama=analogRead(A5);kedua=analogRead(A6);ketiga=analog
Read(A7);
}
else{
if(analogRead(A5)>analogRead(A7)){
pertama=analogRead(A5);kedua=analogRead(A7);ketiga=analog
Read(A6);
}
else{
pertama=analogRead(A7);kedua=analogRead(A5);ketiga=analog
Read(A6);
}
}
}
else{
if(analogRead(A6)>analogRead(A7)){
if(analogRead(A5)>analogRead(A7)){
pertama=analogRead(A6);kedua=analogRead(A5);ketiga=analog
Read(A7);
}else{
pertama=analogRead(A6);kedua=analogRead(A7);ketiga=analog
Read(A5);
Universitas Sumatera Utara
A-3
}
}
else{
if(analogRead(A7)>analogRead(A5)){
if(analogRead(A5)>analogRead(A6)){
pertama=analogRead(A7);kedua=analogRead(A5);ketiga=analog
Read(A6);
}else{
pertama=analogRead(A7);kedua=analogRead(A6);ketiga=analog
Read(A5);
}
}
}
}
NTU=(13.746*kedua) - 6034.4;
}
void setup() {
pinMode (LED , OUTPUT);
Serial.begin(9600);
digitalWrite (LED, HIGH);
while(!Serial);
Serial.println("Starting SIM800 Auto Read SMS");
gprs.preInit();
delay(1000);
while(0 != gprs.init()) {
Universitas Sumatera Utara
A-4
delay(1000);
Serial.print("init error\r\n");
}
//Set SMS mode to ASCII
if(0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1\r\n",
"OK", TIMEOUT)) {
ERROR("ERROR:CNMI");
return;
}
//Start listening to New SMS Message Indications
if(0 !=
gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0\r\n", "OK",
TIMEOUT)) {
ERROR("ERROR:CNMI");
return;
}
Serial.println("Inisialisasi Sim800l berhasil");
//gprs.sendSMS ("083199013494","Inisialisasi selesai");
gprs.sendSMS ("082299929228","Inisialisasi selesai");
//Untuk indikator Led inisialisasi sim800l
digitalWrite(LED,0);
delay(500);
digitalWrite(LED,1);
delay(1000);
digitalWrite(LED,0);
delay(1);
}
void loop() {
Universitas Sumatera Utara
A-5
int waktu=millis() / 1000;//millis per 1000 berarti
perdetik
if (waktu%30==1){//setiap 30 detik mengirim sms
notifikasi
urut();
num = NTU;
str = String(num);
String a="Nilai Baca Kekeruhan airnya: ";
gabung=a + num;
str = String(gabung);
Serial.print(str);
str.toCharArray(cstr,333);
Serial.println(cstr);
gprs.sendSMS ("082299929228",cstr);
digitalWrite(LED,0);
delay(500);
digitalWrite(LED,1);
delay(1000);
digitalWrite(LED,0);
delay(1);
}
urut();
Serial.print(waktu);Serial.print("
");Serial.println(NTU);
||
delay(1000);
//If there is serial output from SIM800// Pesan masuk
if(gprs.serialSIM800.available()){
Universitas Sumatera Utara
A-6
char lastCharRead =
gprs.serialSIM800.read();
//Read each character from serial output
until \r or \n is reached (which denotes end of line)
if(lastCharRead == '\r' || lastCharRead
== '\n'){
String lastLine =
String(currentLine);
//If last line read +CMT, New SMS
Message Indications was received.
//Hence, next line is the message
content.
if(lastLine.startsWith("+CMT:")){
Serial.println(lastLine);
nextLineIsMessage = true;
} else if (lastLine.length() > 0) {
if(nextLineIsMessage) {
Serial.println(lastLine);
// ########## MEMBACA KONTEN SMS DAN MENCARI+MENGARTIKAN
KONTEN SMS KE PROGRAM #########
//Tampilkan rata" jika menerima pesan Data
if(lastLine.indexOf("Data") >= 0){
urut();
num = NTU;
str = String(num);
String a="Nilai Baca Kekeruhan airnya: ";
gabung=a + num;
str = String(gabung);
Serial.print(str);
Universitas Sumatera Utara
A-7
str.toCharArray(cstr,333);
Serial.println(cstr);
gprs.sendSMS
("082299929228",cstr);
digitalWrite(LED,1);
delay(1000);
digitalWrite(LED,0);
delay(500);
digitalWrite(LED,1);
delay(500);
digitalWrite(LED,0);
delay(1);
}
nextLineIsMessage = false;
}
}
//Clear char array for next line of read
sizeof(currentLine);
for( int i = 0; i <
++i ) {
currentLine[i] = (char)0;
}
currentLineIndex = 0;
} else {
currentLine[currentLineIndex++] =
astCharRead;
}
}
}
Universitas Sumatera Utara
Universitas Sumatera Utara
A-8
LAMPIRAN
HASIL UJI COBA SENSOR MENGGUNAKAN SAMPEL AIR
JENIS AIR
NO WAKTU
AIR AQUA BIDES
SENSOR SENSOR SENSOR
1
2
3
AIR PDAM
SENSOR SENSOR SENSOR
1
2
3
AIR MINUM AQUA
SENSOR SENSOR SENSOR
1
2
3
AIR SANGAT KERUH
SENSOR SENSOR SENSOR
1
2
3
1
1
440
636
453
468
647
464
458
643
457
1020
1022
1022
2
2
439
636
453
451
647
465
457
642
456
1021
1022
1022
3
3
421
633
453
451
646
465
457
642
456
1021
1023
1022
4
4
446
635
453
455
646
465
456
642
455
1021
1022
1022
5
5
439
636
453
454
645
464
458
643
457
1020
1022
1021
6
6
438
635
452
451
646
465
457
643
457
1021
1022
1022
7
7
440
636
454
455
646
465
431
647
458
1021
1022
1021
8
8
439
636
453
452
646
465
468
643
458
1021
1022
1021
9
9
441
636
452
452
646
465
461
645
458
1021
1022
1022
10
10
440
636
453
452
646
466
461
644
458
1021
1023
1022
11
11
439
636
453
452
646
466
455
646
458
1021
1022
1021
12
12
439
635
453
453
645
465
460
644
458
1021
1022
1021
13
13
439
637
452
450
646
465
459
644
458
1021
1023
1022
14
14
440
636
453
452
646
465
462
643
458
1021
1022
1022
15
15
440
635
453
452
646
465
460
644
456
1021
1022
1022
16
16
437
636
453
453
646
466
464
644
458
1020
1022
1021
17
17
440
635
453
451
645
465
459
644
458
1020
1022
1021
18
18
439
638
453
451
645
465
459
644
458
1019
1022
1021
Universitas Sumatera Utara
19
19
440
636
453
451
645
465
459
643
457
1019
1022
1021
20
20
440
636
454
449
646
466
459
643
457
1018
1022
1021
21
21
442
635
453
450
646
466
458
643
457
1017
1023
1021
22
22
441
636
453
454
646
466
458
643
457
1016
1022
1021
23
23
440
635
453
452
646
465
459
644
458
1015
1022
1020
24
24
442
636
453
452
645
465
457
644
458
1014
1022
1018
25
25
437
636
453
453
646
466
461
643
458
1013
1021
1016
26
26
437
636
453
453
646
466
461
643
457
1012
1021
1013
27
27
442
635
453
451
646
466
459
643
457
1012
1022
1016
28
28
439
636
453
452
646
466
458
643
457
1013
1021
1021
29
29
437
635
453
452
646
465
459
644
458
1021
1022
1021
30
30
439
636
453
453
645
465
459
644
458
1022
1023
1022
Universitas Sumatera Utara