Alat membuka pintu dengan sms,
Sebenarnya kalau dipikir pikir lagi malah ribet kalau kita mau buka pintu aja harus ketik sms dulu
Tapi karena banyak temen yang request untuk bagaimana bisa bikin alat yang dipakai untuk buka pintu dengan hanya mengirimkan sms tanpa harus menean tombol apapun, akhirnya saya bikin deh tutorial ini.
Alat yang saya atau mungkin yang akan kalian buat ini dengan menggunakan koding standar yang saya bagikan gratis ini akan mampu mengaktifkan sebuah doorlock atau anak kunci untuk membuka pintu dengan mengirimkan sms tertentu pada nomor telepon yang sudah dipasangkan pada modul GSM alat ini.
Selain mampu untuk membuka dan mengunci kembali anak kunci pada sebuah pintu sebenarnya kalau kamu kembangkan lagi, rangkaian ini mampu menjadi sebuah security sistem yang akan menginformasikan kepada pengguna bila ada yang memaksa untuk membuka pintu dan masuk ke rumah atau ruangan tersebut.
Agar dapat menjadi sebuah security sistem pada pintu tentunya sensor yang akan kita pasang adalah sebuah magnetic switch seperti yang saya ilustrasikan di video.
Ok, apa aja sih yang kamu perlukan dalam pembuatan alat ini? beberapa komponen penting itu antara lain :
- Minimum sistem mikrokontroller
- Driver untuk doorlock
- Modul GSM
- Doorlock
- Magnetic switch (option)
Nah, dari hanya komponen sederhana itu saja kamu nantinya sudah mampu membangun sebuah alat yang bisa membuka kunci pintu dan menutupnya kembali hanya dengan perintah melalui sms.
Bagaimana kita merangkai semua alat tersebut agar bisa kita pakai? tentunya sebuah minimum sistem mikrokontroler kamu bisa merakitnya sendiri.
Minimum sistem mikrokontroller itu apa sih? Itu adalah sebuah board untuk mikrokontroller yang kamu pakai agar bisa sekedar menyala aja. Apa aja isinya? tentunya ada regulator untuk tegangan 5v ke mikrokontrolernya, trus ada crystal untuk eksternal oscillator nya dan pullup pada bagian reset, hanya itu. Sederhana kan?
Nah tentunya untuk bisa berkomunikasi dengan modul GSM kamu harus membuat sebuah jalur komunikasi serial pada mikrokontroller, dalam hal ini saya menggunakan ATmega328 dengan diprogram menggunakan arduino IDE. Jadi jalur komunikasi ke modul GSM nya saya bikin baru dengan bantuan software serial yang artinya saya tidak menggunakan hardware serial bawaan dari IC nya sendiri, kenapa gitu? karena rencananya sih mau dipakai buat upload coding (arduino).
Nah kalau masalah driver doorlock nya saya pakai transistor TIP122 karena ampere yang sanggup di angkat cukup lah untuk tipe doorlock yang saya pakai. Sistem kerjanya menerapkan konsep transistor sebagai saklar saja. Rangkaian minimum driver ini bisa kita dapatkan di datasheet masing masing transistor yang akan kita pakai :).
Gambar skematik dari minimum sistem mikrokontroller yang saya buat bisa kamu lihat pada gambar ini. Disana saya sudah menggabungkan antara minimum sistem dengan driver untuk doorlocknya.
[ads1]
Coba kamu perhatikan, regulator saya pakai 2 biji 7805. Satu untuk mikrokontroller nya dan satunya untuk modul gsm. Biar ga kekurangan arus sih maksudnya 😀 dan driver doorlocknya kamu bisa lihat simbol transistor yang tersusun darlington. Untuk layout nya menjadi sangat mini dan ringkas 😀 karena jalurnya saya buat mepet banget.
Pada alat ini juga saya pasang sebuah buzzer yang saya pakai untuk memberikan tanda suara saat adanya sms atau saat modul gsm sudah oke dan siap untuk mengirim sms.
Dalam pemrograman nya fungsi coding yang bertugas untuk mengaktikan driver pembuka dan pengunci doorlock adalah sebagai berikut :
if(!strcmp(smsbuffer,"bukapintu")) { }
Arti dari coding tersebut adalah, jika ada karakter pada variabel smsbuffer berisikan tulisan atau kata “bukapintu” maka akan menjalankan fungsi yang ada didalam kurung. Strcmp disana artinya adalah string comparation atau fungsi yang bertugas untuk membandingkan tipe data string atau sederhanya nya membandingkan kata atau tulisan 😀
Nah kalau katanya sama langsung deh aktifin doorlock nya melalui driver si TIP122.
Coding nya sangat sederhana, karena saya sendiri untuk perintah sms nya sudah pakai library gsm nya arduino 🙂 kamu sendiri bisa memodifikasinya agar pesan yang dikirim sebagai balasan sesuai dengan kehendak kamu. seperti pada coding dibawah ini :
sms.SendSMS("08970869443","Pintu SMS Menyala");
yang artinya 1 baris koding itu bisa membuat alat kamu mengirimkan sms ke nomor hp saya dengan pesan “pintu sms menyala”, sederhana kan?
Download project ini gratis deh buat kamu dari skematik yang saya bikin di software eagle sampai ke koding arduinonya. jangan lupa untuk tonton video nya sebelum praktek untuk menambah semangat kamu.
Oiya jangan lupa untuk melengkapi library arduino kamu kalau bikin project ini ya. semoga sukses.
[sociallocker id=2480]
[button color=”blue” size=”medium” link=”https://www.dropbox.com/s/cai2ytzidn9m6do/sms%20buka%20pintu.sch?dl=0″ icon=”” target=”false”]DOWNLOAD SKEMATIK[/button]
[button color=”green” size=”medium” link=”https://www.dropbox.com/s/gg26ia6ial2i1to/pintu_sms.ino?dl=0″ icon=”” target=”false”]DOWNLOAD CODING ARDUINO[/button]
[/sociallocker]
Kalau ada yang kesulitan silahkan beri komentar kamu dibawah artikel ini ya.
Eksplorasi konten lain dari Duwi Arsana
Berlangganan untuk dapatkan pos terbaru lewat email.
Maaf bli, mau tanya. Module gsm seingat saya disaranin oleh bli duwi max 4v, kalau makai 7805 bukannya output 5v? Mohon pencerahannya bli
coba di lihat video nya mas ada regulator stepdown lagi. untuk masalah v atau 4.2v itu tergantung dari jenis modul gsm yang dipakai. punya mas kemarin tipe yang lama, jadi tidak isi regulator tapi langsung ke chip sim900 sehingga perlu tegangan maksimal 4.2v tidak boleh lebih. coba dicek datasheet nya atau skematik dari produk yang dipakai. silahkan.
Itu bukan gagal sms mas 🙂 Kayanya pas ngetik “tutuppintu” ada spasinya diujung jadi “tutuppintu “. cmiiw hehe
oiya, saya baru sadar 😀 wkwkwk
Bli… kalo mau buy ada gak di store duwiarsana?
yang langsung jadi so tinggal pake.
belum dibikin mas pcb versi jadinya. ini masih coba coba. setelah oke baru saya cetak versi rakit sendiri atau siap pakai nya buat belajar atau buat tugas sekolah.
harga untuk toolsnya semua terjangkau gak mas?
saya rasa terjangkau sekali untuk mahasiswa
videonya bli
video nya kan uda di share. tinggal play
Kalau sudah jadi, infoin saya ya bli. Niat beli niki. Hehe heripratama@live.com
siap..
ini knp bli?
C:\Users\user\Documents\Arduino\libraries\GSMSHIELD\gps.cpp: In function ‘double convertLong()’:
C:\Users\user\Documents\Arduino\libraries\GSMSHIELD\gps.cpp:193:27: error: ‘longString’ was not declared in this scope
double longitude = atof(longString); // convert to a double
^
exit status 1
Error compiling.
coba pakai library GPRSSHIELD
itu minumsistemnya nyambung ke arduinonya ya ?
minimum sistem itu sebagai pengganti arduino mas
bli boleh pesan satu..?
silahkan di sms langsung mas
mohon maaf bli, apa boleh saya download kondingannya? tapi yg buat downloadnya dilock..
bisa mas di share aja salah satunya nanti lock nya kebuka otomatis kok
gan dwi, saya kemaren habis order, ini langsung bisa dipakai atau harus memprogram lagi ?
semua yang di beli langsung dipakai
kalau menggunakan modul gsm m590 apakah codenya berubah?
apa saja yg dirubah?
thx b4
ohya..saya pakai aplikasi arduino 1.6.10 dan di example-gsm untuk sms tidak spt di video tutorial punya bli,, jd udah dipisah send sms,recieve sms, dll.
kalau saya tes dengan at command standar sim900 normal bisa bekerja sesuai dengan perintahnya. untuk library belum saya coba mas
permisi fungsi void void delsms() nya untuk apa ya?
Kalau tidak digunakan apa bisa berfungsi juga ?
Kenapa harus ditaru diatas dan dibawah program ya?
itu untuk hapus sms mas coba cek coding nya. kalau tidak dihapus nanti sms di sim card nya penuh
oh untuk hapus saja ya mas, ok trimakasih mas duwi
siap mas
bli kira” eror gini keapa ya? sya ngak paham sama program soalnya. mohon bantuannya ya bli buat tugas akhir soalnya. thx banget artikelnya sangat membantu,
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In constructor ‘HWSerial::HWSerial()’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:4:4: error: ‘Serial1’ was not declared in this scope
Serial1.begin(9600);
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘void HWSerial::end()’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:12:3: error: ‘Serial1’ was not declared in this scope
Serial1.end();
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘virtual void HWSerial::begin(long int)’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:24:3: error: ‘Serial1’ was not declared in this scope
Serial1.begin(baud_rate);
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘int HWSerial::peek()’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:28:10: error: ‘Serial1’ was not declared in this scope
return Serial1.peek();
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘virtual size_t HWSerial::write(uint8_t)’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:32:10: error: ‘Serial1’ was not declared in this scope
return Serial1.write(byte);
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘virtual int HWSerial::read()’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:36:10: error: ‘Serial1’ was not declared in this scope
return Serial1.read();
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘virtual int HWSerial::available()’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:40:10: error: ‘Serial1’ was not declared in this scope
return Serial1.available();
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘virtual void HWSerial::flush()’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:44:3: error: ‘Serial1’ was not declared in this scope
Serial1.flush();
^
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp: In member function ‘size_t HWSerial::print(const __FlashStringHelper*)’:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:54:9: error: ‘prog_char’ does not name a type
const prog_char *p = (const prog_char *)ifsh;
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.h:6,
from C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:1:
C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG\HWSerial.cpp:57:37: error: ‘p’ was not declared in this scope
unsigned char c = pgm_read_byte(p++);
^
Using library LiquidCrystal at version 1.0.4 in folder: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
Using library GSMSHIELD_TDG in folder: C:\Users\User\Documents\Arduino\libraries\GSMSHIELD_TDG (legacy)
Using library SoftwareSerial at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial
Using library PString in folder: C:\Users\User\Documents\Arduino\libraries\PString (legacy)
exit status 1
Error compiling.
ibrary nya ga cocok mas. pakai board apa?
tanya lagi bli,
apakah arduino nano compatible sm m590?
saya sudah coba tp ga bekerja bli.
compatible mas, silahkan coba cek atcommand di serial monitor dengan baudrate yang tepat
Can someone help me? This is my code.
#include
#include “SIM900.h”
#include “sms.h”
#include
//#include
#include
SMSGSM sms;
boolean started = false;
char buffer[160];
char smsbuffer[160];
char n[20];
//LiquidCrystal lcd(4,2,3,7,8,9);
int buttonState;
int lastButtonState = LOW;
long lastDebounceTime = 0;
long debounceDelay = 50;
boolean st = false;
int buzzer = 12;
void setup() {
//lcd.begin(16, 2);
Serial.begin(9600);
if (gsm.begin(2400))
{
started = true;
}
if (started)
{
delsms();
}
sms.SendSMS(“+60142646978” , “Gas Sensor and GSM module activated”);
}
void loop() {
//lcd.setCursor(0, 0);
//lcd.print(“Detektor Gas SMS”);
int val = analogRead(A0);
val = map(val, 0, 1023, 0, 100);
//lcd.setCursor(0,1);
//lcd.print(“Kadar: “);
//lcd.print(val);
//lcd.print(“% “);
//code using sensor detection
if (val > 10) {
tone(buzzer,800,500);
delay(1000);
st = true;
}
else st = false;
if (st != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() – lastDebounceTime) > debounceDelay) {
if (st != buttonState) {
buttonState = st;
if (buttonState == HIGH) {
PString str(buffer, sizeof(buffer));
str.begin();
str.print(“Gas Detected! Gas leakage at “);
str.print(val);
str.print(“%”);
//String a=str;
sms.SendSMS(“+60142646978”, buffer);
}
}
}
//code using sms lapor.
lastButtonState = st;
int pos = 0;
if (started)
{
pos = sms.IsSMSPresent(SMS_ALL);
if (pos)
{
sms.GetSMS(pos, n, smsbuffer, 100);
delay(2000);
if (!strcmp(smsbuffer, “lapor”))
{
PString str(buffer, sizeof(buffer));
str.begin();
str.print(“Rate of gas leakage currently at “);
str.print(val);
str.print(“%”);
//String a=str;
sms.SendSMS(“+60142646978”, buffer);
}
delsms();
}
}
}
//delete sms yang dihantar
void delsms()
{
for (int i = 0; i < 10; i++)
{
int pos = sms.IsSMSPresent(SMS_ALL);
if (pos != 0)
{
if (sms.DeleteSMS(pos) == 1) {} else {}
}
}
}
I'm using arduino uno, sim900 module, mq2 gas sensor and buzzer to create a gas sensor detector based on sms.
I have to 2 option :
1. The mq2 gas sensor detects and send the result via sms to the number set in the code.
2. We can send a specific string to know the surrounding gas percentage and send the result to the specific number set in the code.
But I want to change the second option to be auto reply to any incoming number. What should I do?
you can create sending code sms, and change phone number to “n”. n is where incoming number stored
Permisi mas. tolong dong sekalian dishare library nya.
aku gk nemu2 yang sesuai dengan yg mas maksud
makasih =D
ada mas di artikel baru sekalian sama library nya 😀
yg mana bli
apanya bang?
yg mn bli?