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.

Alat Membuka Pintu Dengan SMS

Eksplorasi konten lain dari Duwi Arsana

Berlangganan untuk dapatkan pos terbaru lewat email.

Tag pada:                                                                            

40 gagasan untuk “Alat Membuka Pintu Dengan SMS

  • 19 Januari 2016 pukul 14.14
    Permalink

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

    Balas
    • 19 Januari 2016 pukul 14.38
      Permalink

      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.

      Balas
  • 19 Januari 2016 pukul 17.42
    Permalink

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

    Balas
  • 19 Januari 2016 pukul 20.30
    Permalink

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

    Balas
    • 19 Januari 2016 pukul 22.18
      Permalink

      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.

      Balas
  • 20 Januari 2016 pukul 01.27
    Permalink

    harga untuk toolsnya semua terjangkau gak mas?

    Balas
  • 21 Januari 2016 pukul 05.22
    Permalink

    videonya bli

    Balas
  • 21 Januari 2016 pukul 10.13
    Permalink

    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.

    Balas
  • 21 Januari 2016 pukul 16.45
    Permalink

    itu minumsistemnya nyambung ke arduinonya ya ?

    Balas
  • 23 Maret 2016 pukul 04.36
    Permalink

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

    Balas
  • 5 Juli 2016 pukul 14.42
    Permalink

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

    Balas
    • 5 Juli 2016 pukul 14.46
      Permalink

      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.

      Balas
      • 6 Juli 2016 pukul 19.44
        Permalink

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

        Balas
  • 8 Juli 2016 pukul 03.06
    Permalink

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

    Balas
  • 25 Juli 2016 pukul 19.48
    Permalink

    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.

    Balas
  • 30 Juli 2016 pukul 13.28
    Permalink

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

    Balas
  • 3 Agustus 2016 pukul 02.00
    Permalink

    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?

    Balas
    • 9 Agustus 2016 pukul 00.47
      Permalink

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

      Balas
  • 7 Agustus 2016 pukul 15.48
    Permalink

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

    Balas

Komentar anda

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.