Rancang Bangun Sistem Absensi yang Terintegrasi Dengan Website Melalui Teknologi General Packet Radio Service
LAMPIRAN A
Sintaks Program Sistem Absensi
#include "SIM900.h"
#include
#include "inetGSM.h"
#include
#include
#include
#include
#include
#include "RTClib.h"
#include "sms.h"
SMSGSM sms;
#if defined(ARDUINO_ARCH_SAMD) // for Zero, output on USB Serial console
#define Serial SerialUSB
#endif
#define RST_PIN A11
#define SS_PIN 53
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
RTC_DS1307 rtc;
File myFile;
InetGSM inet;
class PubnubPublisher {
protected:
InetGSM inet;
char msg[50];
Universitas Sumatera Utara
int numdata;
char inSerial[50];
boolean started;
char publishKey[43];
char subscribeKey[43];
char channelName[20];
public:
PubnubPublisher(char* publishKey, char* subscribeKey, char* channelName)
{
started=false;
strcpy(this->publishKey, publishKey);
strcpy(this->subscribeKey, subscribeKey);
strcpy(this->channelName, channelName);
}
void setup() {
Serial.begin(9600);
Serial.println("Pubnub Publisher.");
if (gsm.begin(4800)){
Serial.println("\nstatus=READY");
started=true;
}
else Serial.println("\nstatus=IDLE");
if(started){
if (inet.attachGPRS("internet.wind", "", ""))
Serial.println("status=ATTACHED");
else Serial.println("status=ERROR");
delay(1000);
gsm.SimpleWriteln("AT+CIFSR");//Read IP address.
delay(5000);
gsm.WhileSimpleRead();//Read until serial buffer is empty.
Universitas Sumatera Utara
}
};
void publish(char* message) {
char publishUri[109+50+1];
sprintf(publishUri, "/publish/%s/%s/0/%s/0/%s", publishKey, subscribeKey,
channelName, message);
numdata=inet.httpGET("pubsub.pubnub.com", 80, publishUri, msg, 50);
Serial.println("\nNumber of data received:");
//Print the results.
Serial.println(numdata);
//Serial.println("\nData received:");
//Serial.println(msg);
};
};
PubnubPublisher* pubnubPublisher = new PubnubPublisher("pub-c-9f184179-43244315-9376-6a6cef5e95ff", "sub-c-4481b53c-0fab-11e6-996b-0619f8945a4f",
"absen");
const int chipSelectSD = 36; int cards, user_id,i;
int detect = 0, stat = 0;
boolean started=false;
char* nims[]={"120402001", "120402002", "120402003",
"120402004", "120402005","120402006","120402007","120402008",
"120402009","120402010","120402011","120402012","120402013",
"120402014","120402015","120402016","120402017","120402018",
"120402019","120402020","120402021","120402022","120402023",
"120402024","120402025"};
int smsStatus[] = {0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0,0, 0, 0, 0, 0,};
void Name(int user) {
switch(user){
case 1:
Universitas Sumatera Utara
Serial.println(F("Antan Wisuga"));
myFile.println("\tAntan Wisuga");
smsStatus[0]=1;i=0; publikasi();break;
case 2:
Serial.println(F("Bambang Dian"));
myFile.println("\tBambang Dian");
smsStatus[1]=1;i=1; publikasi(); break;
case 3:
Serial.println(F("Coko Fahriansyah"));
myFile.println("\tCoko Fahriansyah");
smsStatus[2]=1;i=2; publikasi();break;
case 4:
Serial.println(F("Dodi Purmadani"));
myFile.println("\tDodi Purmadani");
smsStatus[3]=1;i=3; publikasi();break;
case 5:
Serial.println(F("Ezzy Silmi"));
myFile.println("\tEzzy Silmi");
smsStatus[4]=1;i=4;publikasi();break;
case 6:
Serial.println(F("Fadhlan Ariska"));
myFile.println("\tFadhlan Ariska");
smsStatus[5]=1;i=5; publikasi();break;
case 7:
Serial.println(F("Gading Aziddin"));
myFile.println("\tGading Aziddin");
smsStatus[6]=1;i=6;publikasi();break;
case 8:
Serial.println(F("Habib Zakaria"));
myFile.println("\tHabib Zakaria");
Universitas Sumatera Utara
smsStatus[7]=1;i=7; publikasi();break;
case 9:
Serial.println(F("Ifan Paklan"));
myFile.println("\tIfan Paklan");
smsStatus[8]=1;i=8; publikasi();break;
case 10:
Serial.println(F("Junaidy Siregar"));
myFile.println("\tJunaidy Siregar");
smsStatus[9]=1;i=9;publikasi();break;
case 11:
Serial.println(F("Kennedy Ginting"));
myFile.println("\tKennedy Ginting");
smsStatus[10]=1;i=10; publikasi();break;
case 12:
Serial.println(F("Lisa Umar"));
myFile.println("\tLisa Umar");
smsStatus[11]=1;i=11; publikasi();break;
case 13:
Serial.println(F("Mahatir Muhammad"));
myFile.println("\tMahatir Muhammad");
smsStatus[12]=1;i=12; publikasi();break;
case 14:
Serial.println(F("Nur Iqbal"));
myFile.println("\tNur Iqbal");
smsStatus[13]=1;i=13; publikasi();break;
case 15:
Serial.println(F("Oyen Ginting"));
myFile.println("\tOyen Ginting");
smsStatus[14]=1; i=14; publikasi();break;
case 16:
Universitas Sumatera Utara
Serial.println(F("Piliang Arif"));
myFile.println("\tPiliang Arif");
smsStatus[15]=1;i=15; publikasi();break;
case 17:
Serial.println(F("Quaresma"));
myFile.println("\tQuaresma");
smsStatus[16]=1;i=16; publikasi();break;
case 18:
Serial.println(F("Royansyah Ginting"));
myFile.println("\tRoyansyah Ginting");
smsStatus[17]=1;i=17; publikasi();break;
case 19:
Serial.println(F("Sudarmin Pasaribu"));
myFile.println("\tSudarmin Pasaribu");
smsStatus[18]=1;i=18; publikasi();break;
case 20:
Serial.println(F("Taufik Ginting"));
myFile.println("\tTaufik Ginting");
smsStatus[19]=1;i=19; publikasi();break;
case 21:
Serial.println(F("Umar Tarigan"));
myFile.println("\tUmar Tarigan");
smsStatus[20]=1;i=20; publikasi();break;
case 22:
Serial.println(F("Vania Sitepu"));
myFile.println("\tVania Sitepu");
smsStatus[21]=1;i=21; publikasi();break;
case 23:
Serial.println(F("Wahyu Nugraha"));
myFile.println("\tWahyu Nugraha");
Universitas Sumatera Utara
smsStatus[22]=1;i=22; publikasi();break;
case 24:
Serial.println(F("Xenia Peranginangin"));
myFile.println("\tXenia Peranginangin");
smsStatus[23]=1;i=23; publikasi();break;
case 25:
Serial.println(F("Yudha Al-Hakim"));
myFile.println("\tYudha Al-Hakim");
smsStatus[24]=1; i=24;publikasi();break;
}
}
void setup() {a
pubnubPublisher->setup();
SPI.begin();
Wire.begin();
rtc.begin();
// Init SPI bus
// Init I2C communication
// Init RTC Module
mfrc522.PCD_Init(); // Init MFRC522 RFID
Serial.begin(9600); //
if (! rtc.isrunning()) {
Serial.println(F("RTC NOT Run!"));
}
if (!SD.begin(chipSelectSD)) {
Serial.println(F("Card Failed!"));
return;
}
if (gsm.begin(4800)) {
Serial.println(F("\nstatus=READY"));
gsm.forceON();
started=true;
} else Serial.println(F("\nstatus=IDLE"));
Universitas Sumatera Utara
if(started) {
if (inet.attachGPRS("", "", ""))
Serial.println(F("status=ATTACHED"));
else Serial.println(F("status=ERROR"));
delay(1000);
gsm.SimpleWriteln("AT+CIFSR");/** Read IP address. */
delay(5000);
}
Serial.println(F("NON-ACTIVE !"));
};
void loop() {
DateTime now = rtc.now();
if(stat==1)
{
EEPROM.write(300, 30);
baca();
user_id = EEPROM.read(300);
if(user_id==26) {
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile) {
myFile.print(now.hour(), DEC); myFile.print(':');
myFile.print(now.minute(), DEC); myFile.print(':');
myFile.print(now.second(), DEC);
myFile.println("\tNon-Active");
Serial.println(F("Non-ACTIVE !"));
myFile.close();
}
else{
Universitas Sumatera Utara
Serial.print(F("Error File"));// if the file didn't open, print an error:
}
CekSMS(); stat = 0;
}
if(user_id!=30){
cetakID();
}
}
else{
EEPROM.write(300, 30);
baca();
user_id = EEPROM.read(300);
if(user_id==26){
if (stat==0){
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile){
myFile.print(now.hour(), DEC);myFile.print(':');
myFile.print(now.minute(), DEC);myFile.print(':');
myFile.print(now.second(), DEC);
myFile.println("\tActive");
myFile.close();
Serial.println(F("ACTIVE !"));
Serial.println(F("Tag Your Card"));
}
else{
Serial.print(F("Error File"));// if the file didn't open, print an error:
}
stat=1;
}
}
Universitas Sumatera Utara
}
delay(500);
};
void cetakID(){
DateTime now = rtc.now();
if(user_id==0){
Serial.println(F("Unknown UID"));
}
else{
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile)
{
myFile.print(now.hour(), DEC);myFile.print(':');
myFile.print(now.minute(), DEC);myFile.print(':');
myFile.print(now.second(), DEC);
Serial.println(F("Thank You"));
Name(user_id);
myFile.close();
}
else {
Serial.print(F("Error File")); // if the file didn't open, print an error:
}
delay(500);
}
}
void baca(){
if ( ! mfrc522.PICC_IsNewCardPresent()) {return;}
if ( ! mfrc522.PICC_ReadCardSerial()) {return;}
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
Universitas Sumatera Utara
void CekSMS(){
char pesan[100];
for (int i = 0; i < 25; i++){
if (smsStatus[i]==0){
sprintf(pesan, "Anak anda dengan nim %s, hari ini tidak hadir", nims[i]);
if (sms.SendSMS("+628979213454", pesan))
Serial.println("\nSMS sent OK");
delay(2000);
}
}
}
void publikasi(){
char message[30];
sprintf(message, "{\"text\":\"%d hadir\"}", nims[i]);
pubnubPublisher->publish(message);
delay(5000);
}
Universitas Sumatera Utara
LAMPIRAN B
Tabel Hasil Pengujian 30 byte
Echo
Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
16
55
15
55
2
600
255
10
55
9
55
3
600
255
8
55
7
55
4
7
55
8
55
8
55
5
7
55
8
55
7
55
6
7
55
8
55
7
55
7
8
55
8
55
8
55
8
8
55
8
55
7
55
9
7
55
8
55
7
55
10
8
55
8
55
8
55
Tabel Hasil Pengujian 150 byte
Echo
Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
15
55
15
255
2
600
255
15
55
10
255
3
600
255
8
55
8
255
4
8
55
8
55
8
55
5
8
55
8
55
8
55
6
8
55
8
55
8
55
7
8
55
8
55
8
55
8
8
55
8
55
8
55
9
8
55
8
55
8
55
10
8
55
8
55
8
55
Universitas Sumatera Utara
Tabel Hasil Pengujian 300 byte
Echo Reply
Timeout 1 detik
Timeout 5 detik
Timeout 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
15
55
15
55
2
600
255
14
55
14
55
3
600
255
9
55
9
55
4
9
55
9
55
9
55
5
9
55
9
55
9
55
6
9
55
9
55
9
55
7
9
55
9
55
9
55
8
9
55
9
55
9
55
9
9
55
9
55
9
55
10
9
55
9
55
9
55
Tabel Hasil Pengujian 450 byte
Echo Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
16
55
16
55
2
600
255
14
55
14
55
3
600
255
9
55
9
55
4
600
255
9
55
9
55
5
600
255
9
55
9
55
6
600
255
9
55
9
55
Universitas Sumatera Utara
7
9
55
9
55
9
55
8
600
255
9
55
9
55
9
9
55
9
55
9
55
10
9
55
9
55
9
55
Tabel Hasil Pengujian 600 byte
Echo
Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
18
55
17
55
2
600
255
15
55
16
55
3
600
255
15
55
15
55
4
600
255
15
55
15
55
5
600
255
15
55
15
55
6
600
255
15
55
15
55
7
600
255
15
55
15
55
8
600
255
15
55
15
55
9
600
255
15
55
15
55
10
600
255
15
55
15
55
Tabel Hasil Pengujian 750 byte
Echo
Reply
Timeout 1 detik
Timeout 5 detik
Timeout 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
18
55
18
55
2
600
255
15
55
15
55
Universitas Sumatera Utara
3
600
255
15
55
15
55
4
600
255
15
55
15
55
5
600
255
15
55
15
55
6
600
255
15
55
15
55
7
600
255
15
55
15
55
8
600
255
15
55
15
55
9
600
255
15
55
15
55
10
600
255
15
55
15
55
Universitas Sumatera Utara
LAMPIRAN C
Gambar Pengujian 30 byte dengan Timeout 1 detik
Gambar Pengujian 30 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 30 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 150 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 150 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 150 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 300 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 300 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 300 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 450 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 450 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 450 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 600 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 600 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 600 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 750 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 750 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 750 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Universitas Sumatera Utara
LAMPIRAN D
Gambar Penerimaan Data di Website
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara
LAMPIRAN E
Penentuan Nilai BER
Universitas Sumatera Utara
Penentuan Kuat Sinyal
Penentuan timeout
Universitas Sumatera Utara
Sintaks Program Sistem Absensi
#include "SIM900.h"
#include
#include "inetGSM.h"
#include
#include
#include
#include
#include
#include "RTClib.h"
#include "sms.h"
SMSGSM sms;
#if defined(ARDUINO_ARCH_SAMD) // for Zero, output on USB Serial console
#define Serial SerialUSB
#endif
#define RST_PIN A11
#define SS_PIN 53
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
RTC_DS1307 rtc;
File myFile;
InetGSM inet;
class PubnubPublisher {
protected:
InetGSM inet;
char msg[50];
Universitas Sumatera Utara
int numdata;
char inSerial[50];
boolean started;
char publishKey[43];
char subscribeKey[43];
char channelName[20];
public:
PubnubPublisher(char* publishKey, char* subscribeKey, char* channelName)
{
started=false;
strcpy(this->publishKey, publishKey);
strcpy(this->subscribeKey, subscribeKey);
strcpy(this->channelName, channelName);
}
void setup() {
Serial.begin(9600);
Serial.println("Pubnub Publisher.");
if (gsm.begin(4800)){
Serial.println("\nstatus=READY");
started=true;
}
else Serial.println("\nstatus=IDLE");
if(started){
if (inet.attachGPRS("internet.wind", "", ""))
Serial.println("status=ATTACHED");
else Serial.println("status=ERROR");
delay(1000);
gsm.SimpleWriteln("AT+CIFSR");//Read IP address.
delay(5000);
gsm.WhileSimpleRead();//Read until serial buffer is empty.
Universitas Sumatera Utara
}
};
void publish(char* message) {
char publishUri[109+50+1];
sprintf(publishUri, "/publish/%s/%s/0/%s/0/%s", publishKey, subscribeKey,
channelName, message);
numdata=inet.httpGET("pubsub.pubnub.com", 80, publishUri, msg, 50);
Serial.println("\nNumber of data received:");
//Print the results.
Serial.println(numdata);
//Serial.println("\nData received:");
//Serial.println(msg);
};
};
PubnubPublisher* pubnubPublisher = new PubnubPublisher("pub-c-9f184179-43244315-9376-6a6cef5e95ff", "sub-c-4481b53c-0fab-11e6-996b-0619f8945a4f",
"absen");
const int chipSelectSD = 36; int cards, user_id,i;
int detect = 0, stat = 0;
boolean started=false;
char* nims[]={"120402001", "120402002", "120402003",
"120402004", "120402005","120402006","120402007","120402008",
"120402009","120402010","120402011","120402012","120402013",
"120402014","120402015","120402016","120402017","120402018",
"120402019","120402020","120402021","120402022","120402023",
"120402024","120402025"};
int smsStatus[] = {0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0,0, 0, 0, 0, 0,};
void Name(int user) {
switch(user){
case 1:
Universitas Sumatera Utara
Serial.println(F("Antan Wisuga"));
myFile.println("\tAntan Wisuga");
smsStatus[0]=1;i=0; publikasi();break;
case 2:
Serial.println(F("Bambang Dian"));
myFile.println("\tBambang Dian");
smsStatus[1]=1;i=1; publikasi(); break;
case 3:
Serial.println(F("Coko Fahriansyah"));
myFile.println("\tCoko Fahriansyah");
smsStatus[2]=1;i=2; publikasi();break;
case 4:
Serial.println(F("Dodi Purmadani"));
myFile.println("\tDodi Purmadani");
smsStatus[3]=1;i=3; publikasi();break;
case 5:
Serial.println(F("Ezzy Silmi"));
myFile.println("\tEzzy Silmi");
smsStatus[4]=1;i=4;publikasi();break;
case 6:
Serial.println(F("Fadhlan Ariska"));
myFile.println("\tFadhlan Ariska");
smsStatus[5]=1;i=5; publikasi();break;
case 7:
Serial.println(F("Gading Aziddin"));
myFile.println("\tGading Aziddin");
smsStatus[6]=1;i=6;publikasi();break;
case 8:
Serial.println(F("Habib Zakaria"));
myFile.println("\tHabib Zakaria");
Universitas Sumatera Utara
smsStatus[7]=1;i=7; publikasi();break;
case 9:
Serial.println(F("Ifan Paklan"));
myFile.println("\tIfan Paklan");
smsStatus[8]=1;i=8; publikasi();break;
case 10:
Serial.println(F("Junaidy Siregar"));
myFile.println("\tJunaidy Siregar");
smsStatus[9]=1;i=9;publikasi();break;
case 11:
Serial.println(F("Kennedy Ginting"));
myFile.println("\tKennedy Ginting");
smsStatus[10]=1;i=10; publikasi();break;
case 12:
Serial.println(F("Lisa Umar"));
myFile.println("\tLisa Umar");
smsStatus[11]=1;i=11; publikasi();break;
case 13:
Serial.println(F("Mahatir Muhammad"));
myFile.println("\tMahatir Muhammad");
smsStatus[12]=1;i=12; publikasi();break;
case 14:
Serial.println(F("Nur Iqbal"));
myFile.println("\tNur Iqbal");
smsStatus[13]=1;i=13; publikasi();break;
case 15:
Serial.println(F("Oyen Ginting"));
myFile.println("\tOyen Ginting");
smsStatus[14]=1; i=14; publikasi();break;
case 16:
Universitas Sumatera Utara
Serial.println(F("Piliang Arif"));
myFile.println("\tPiliang Arif");
smsStatus[15]=1;i=15; publikasi();break;
case 17:
Serial.println(F("Quaresma"));
myFile.println("\tQuaresma");
smsStatus[16]=1;i=16; publikasi();break;
case 18:
Serial.println(F("Royansyah Ginting"));
myFile.println("\tRoyansyah Ginting");
smsStatus[17]=1;i=17; publikasi();break;
case 19:
Serial.println(F("Sudarmin Pasaribu"));
myFile.println("\tSudarmin Pasaribu");
smsStatus[18]=1;i=18; publikasi();break;
case 20:
Serial.println(F("Taufik Ginting"));
myFile.println("\tTaufik Ginting");
smsStatus[19]=1;i=19; publikasi();break;
case 21:
Serial.println(F("Umar Tarigan"));
myFile.println("\tUmar Tarigan");
smsStatus[20]=1;i=20; publikasi();break;
case 22:
Serial.println(F("Vania Sitepu"));
myFile.println("\tVania Sitepu");
smsStatus[21]=1;i=21; publikasi();break;
case 23:
Serial.println(F("Wahyu Nugraha"));
myFile.println("\tWahyu Nugraha");
Universitas Sumatera Utara
smsStatus[22]=1;i=22; publikasi();break;
case 24:
Serial.println(F("Xenia Peranginangin"));
myFile.println("\tXenia Peranginangin");
smsStatus[23]=1;i=23; publikasi();break;
case 25:
Serial.println(F("Yudha Al-Hakim"));
myFile.println("\tYudha Al-Hakim");
smsStatus[24]=1; i=24;publikasi();break;
}
}
void setup() {a
pubnubPublisher->setup();
SPI.begin();
Wire.begin();
rtc.begin();
// Init SPI bus
// Init I2C communication
// Init RTC Module
mfrc522.PCD_Init(); // Init MFRC522 RFID
Serial.begin(9600); //
if (! rtc.isrunning()) {
Serial.println(F("RTC NOT Run!"));
}
if (!SD.begin(chipSelectSD)) {
Serial.println(F("Card Failed!"));
return;
}
if (gsm.begin(4800)) {
Serial.println(F("\nstatus=READY"));
gsm.forceON();
started=true;
} else Serial.println(F("\nstatus=IDLE"));
Universitas Sumatera Utara
if(started) {
if (inet.attachGPRS("", "", ""))
Serial.println(F("status=ATTACHED"));
else Serial.println(F("status=ERROR"));
delay(1000);
gsm.SimpleWriteln("AT+CIFSR");/** Read IP address. */
delay(5000);
}
Serial.println(F("NON-ACTIVE !"));
};
void loop() {
DateTime now = rtc.now();
if(stat==1)
{
EEPROM.write(300, 30);
baca();
user_id = EEPROM.read(300);
if(user_id==26) {
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile) {
myFile.print(now.hour(), DEC); myFile.print(':');
myFile.print(now.minute(), DEC); myFile.print(':');
myFile.print(now.second(), DEC);
myFile.println("\tNon-Active");
Serial.println(F("Non-ACTIVE !"));
myFile.close();
}
else{
Universitas Sumatera Utara
Serial.print(F("Error File"));// if the file didn't open, print an error:
}
CekSMS(); stat = 0;
}
if(user_id!=30){
cetakID();
}
}
else{
EEPROM.write(300, 30);
baca();
user_id = EEPROM.read(300);
if(user_id==26){
if (stat==0){
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile){
myFile.print(now.hour(), DEC);myFile.print(':');
myFile.print(now.minute(), DEC);myFile.print(':');
myFile.print(now.second(), DEC);
myFile.println("\tActive");
myFile.close();
Serial.println(F("ACTIVE !"));
Serial.println(F("Tag Your Card"));
}
else{
Serial.print(F("Error File"));// if the file didn't open, print an error:
}
stat=1;
}
}
Universitas Sumatera Utara
}
delay(500);
};
void cetakID(){
DateTime now = rtc.now();
if(user_id==0){
Serial.println(F("Unknown UID"));
}
else{
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile)
{
myFile.print(now.hour(), DEC);myFile.print(':');
myFile.print(now.minute(), DEC);myFile.print(':');
myFile.print(now.second(), DEC);
Serial.println(F("Thank You"));
Name(user_id);
myFile.close();
}
else {
Serial.print(F("Error File")); // if the file didn't open, print an error:
}
delay(500);
}
}
void baca(){
if ( ! mfrc522.PICC_IsNewCardPresent()) {return;}
if ( ! mfrc522.PICC_ReadCardSerial()) {return;}
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
Universitas Sumatera Utara
void CekSMS(){
char pesan[100];
for (int i = 0; i < 25; i++){
if (smsStatus[i]==0){
sprintf(pesan, "Anak anda dengan nim %s, hari ini tidak hadir", nims[i]);
if (sms.SendSMS("+628979213454", pesan))
Serial.println("\nSMS sent OK");
delay(2000);
}
}
}
void publikasi(){
char message[30];
sprintf(message, "{\"text\":\"%d hadir\"}", nims[i]);
pubnubPublisher->publish(message);
delay(5000);
}
Universitas Sumatera Utara
LAMPIRAN B
Tabel Hasil Pengujian 30 byte
Echo
Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
16
55
15
55
2
600
255
10
55
9
55
3
600
255
8
55
7
55
4
7
55
8
55
8
55
5
7
55
8
55
7
55
6
7
55
8
55
7
55
7
8
55
8
55
8
55
8
8
55
8
55
7
55
9
7
55
8
55
7
55
10
8
55
8
55
8
55
Tabel Hasil Pengujian 150 byte
Echo
Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
15
55
15
255
2
600
255
15
55
10
255
3
600
255
8
55
8
255
4
8
55
8
55
8
55
5
8
55
8
55
8
55
6
8
55
8
55
8
55
7
8
55
8
55
8
55
8
8
55
8
55
8
55
9
8
55
8
55
8
55
10
8
55
8
55
8
55
Universitas Sumatera Utara
Tabel Hasil Pengujian 300 byte
Echo Reply
Timeout 1 detik
Timeout 5 detik
Timeout 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
15
55
15
55
2
600
255
14
55
14
55
3
600
255
9
55
9
55
4
9
55
9
55
9
55
5
9
55
9
55
9
55
6
9
55
9
55
9
55
7
9
55
9
55
9
55
8
9
55
9
55
9
55
9
9
55
9
55
9
55
10
9
55
9
55
9
55
Tabel Hasil Pengujian 450 byte
Echo Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
16
55
16
55
2
600
255
14
55
14
55
3
600
255
9
55
9
55
4
600
255
9
55
9
55
5
600
255
9
55
9
55
6
600
255
9
55
9
55
Universitas Sumatera Utara
7
9
55
9
55
9
55
8
600
255
9
55
9
55
9
9
55
9
55
9
55
10
9
55
9
55
9
55
Tabel Hasil Pengujian 600 byte
Echo
Reply
Time Out 1 detik
Time Out 5 detik
Time Out 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
18
55
17
55
2
600
255
15
55
16
55
3
600
255
15
55
15
55
4
600
255
15
55
15
55
5
600
255
15
55
15
55
6
600
255
15
55
15
55
7
600
255
15
55
15
55
8
600
255
15
55
15
55
9
600
255
15
55
15
55
10
600
255
15
55
15
55
Tabel Hasil Pengujian 750 byte
Echo
Reply
Timeout 1 detik
Timeout 5 detik
Timeout 10 detik
Delay
TTL
Delay
TTL
Delay
TTL
1
600
255
18
55
18
55
2
600
255
15
55
15
55
Universitas Sumatera Utara
3
600
255
15
55
15
55
4
600
255
15
55
15
55
5
600
255
15
55
15
55
6
600
255
15
55
15
55
7
600
255
15
55
15
55
8
600
255
15
55
15
55
9
600
255
15
55
15
55
10
600
255
15
55
15
55
Universitas Sumatera Utara
LAMPIRAN C
Gambar Pengujian 30 byte dengan Timeout 1 detik
Gambar Pengujian 30 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 30 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 150 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 150 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 150 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 300 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 300 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 300 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 450 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 450 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 450 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 600 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 600 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 600 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Gambar Pengujian 750 byte dengan Timeout 1 detik
Universitas Sumatera Utara
Gambar Pengujian 750 byte dengan Timeout 5 detik
Universitas Sumatera Utara
Gambar Pengujian 750 byte dengan Timeout 10 detik
Universitas Sumatera Utara
Universitas Sumatera Utara
LAMPIRAN D
Gambar Penerimaan Data di Website
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara
LAMPIRAN E
Penentuan Nilai BER
Universitas Sumatera Utara
Penentuan Kuat Sinyal
Penentuan timeout
Universitas Sumatera Utara