Alat Membuka Pintu Dengan SMS

Back to Blog

Alat Membuka Pintu Dengan SMS

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?

Baca juga  Saklar Infrared

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 :D dan driver doorlocknya kamu bisa lihat simbol transistor yang tersusun darlington. Untuk layout nya menjadi sangat mini dan ringkas :D 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 :D

Baca juga  Membuat Genset Otomatis

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.

[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]

Kalau ada yang kesulitan silahkan beri komentar kamu dibawah artikel ini ya.

Share this post

Comments (37)

  • Djoko Purwanto Reply

    Maaf bli, mau tanya. Module gsm seingat saya disaranin oleh bli duwi max 4v, kalau makai 7805 bukannya output 5v? Mohon pencerahannya bli

    19 Januari 2016 at 14.14
    • Anak Agung Duwi Arsana Reply

      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.

      19 Januari 2016 at 14.38
  • AYESHA Ziky Iftikhor Reply

    Itu bukan gagal sms mas :) Kayanya pas ngetik “tutuppintu” ada spasinya diujung jadi “tutuppintu “. cmiiw hehe

    19 Januari 2016 at 17.42
  • astoadhi Reply

    Bli… kalo mau buy ada gak di store duwiarsana?
    yang langsung jadi so tinggal pake.

    19 Januari 2016 at 20.30
    • Anak Agung Duwi Arsana Reply

      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.

      19 Januari 2016 at 22.18
  • Devi Maria Reply

    harga untuk toolsnya semua terjangkau gak mas?

    20 Januari 2016 at 01.27
  • hendro agung Reply

    videonya bli

    21 Januari 2016 at 05.22
  • heriprata Reply

    Kalau sudah jadi, infoin saya ya bli. Niat beli niki. Hehe heripratama@live.com

    21 Januari 2016 at 09.14
  • medan Reply

    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.

    21 Januari 2016 at 10.13
  • Erya Warandita Reply

    itu minumsistemnya nyambung ke arduinonya ya ?

    21 Januari 2016 at 16.45
  • Haryanto Maliki Reply

    bli boleh pesan satu..?

    24 Januari 2016 at 21.36
  • ryan prattama Reply

    mohon maaf bli, apa boleh saya download kondingannya? tapi yg buat downloadnya dilock..

    23 Maret 2016 at 04.36
    • Anak Agung Duwi Arsana Reply

      bisa mas di share aja salah satunya nanti lock nya kebuka otomatis kok

      26 Maret 2016 at 02.06
      • Bagus27 Reply

        gan dwi, saya kemaren habis order, ini langsung bisa dipakai atau harus memprogram lagi ?

        18 Juni 2016 at 20.36
  • TinoL Reply

    kalau menggunakan modul gsm m590 apakah codenya berubah?
    apa saja yg dirubah?
    thx b4

    5 Juli 2016 at 14.42
    • TinoL Reply

      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.

      5 Juli 2016 at 14.46
      • Anak Agung Duwi Arsana Reply

        kalau saya tes dengan at command standar sim900 normal bisa bekerja sesuai dengan perintahnya. untuk library belum saya coba mas

        6 Juli 2016 at 19.44
  • joko Reply

    permisi fungsi void void delsms() nya untuk apa ya?
    Kalau tidak digunakan apa bisa berfungsi juga ?
    Kenapa harus ditaru diatas dan dibawah program ya?

    8 Juli 2016 at 03.06
  • vicky wahyu dharmawan Reply

    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.

    25 Juli 2016 at 19.48
  • TinoL Reply

    tanya lagi bli,
    apakah arduino nano compatible sm m590?
    saya sudah coba tp ga bekerja bli.

    30 Juli 2016 at 13.28
    • Anak Agung Duwi Arsana Reply

      compatible mas, silahkan coba cek atcommand di serial monitor dengan baudrate yang tepat

      9 Agustus 2016 at 00.54
  • Richmond Reply

    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?

    3 Agustus 2016 at 02.00
    • Anak Agung Duwi Arsana Reply

      you can create sending code sms, and change phone number to “n”. n is where incoming number stored

      9 Agustus 2016 at 00.47
  • Faza farkhani Reply

    Permisi mas. tolong dong sekalian dishare library nya.
    aku gk nemu2 yang sesuai dengan yg mas maksud
    makasih =D

    7 Agustus 2016 at 15.48

Komentar anda

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to Blog