Ponsel adalah penemuan revolusioner abad ini. Ini terutama dirancang untuk membuat dan menerima panggilan & pesan teks, tetapi telah menjadi seluruh dunia setelah telepon pintar masuk ke dalam gambar. Dalam proyek ini kami sedang membangun sistem otomasi rumah, di mana seseorang dapat mengontrol peralatan rumah tangga, menggunakan telepon berbasis GSM sederhana, hanya dengan mengirimkan SMS melalui teleponnya. Dalam proyek ini, tidak diperlukan ponsel pintar, hanya ponsel GSM lama yang akan berfungsi untuk MENGAKTIFKAN dan MENONAKTIFKAN peralatan elektronik rumah, dari mana saja. Anda juga dapat memeriksa beberapa proyek Otomasi Rumah Nirkabel di sini: Otomasi Rumah Terkendali Jarak Jauh IR menggunakan Arduino, Otomatisasi Rumah Terkendali Bluetooth bersama dengan Otomasi Rumah Berbasis DTMF, Otomasi Rumah Terkendali PC menggunakan Arduino.
Penjelasan Bekerja
Dalam proyek ini, Arduino digunakan untuk mengontrol seluruh proses. Di sini kami telah menggunakan komunikasi nirkabel GSM untuk mengontrol peralatan rumah tangga. Kami mengirimkan beberapa perintah seperti "# A.light on *", "# A.light off *" dan seterusnya untuk mengontrol peralatan AC rumah. Setelah menerima perintah yang diberikan oleh Arduino melalui GSM, Arduino mengirim sinyal ke relai, untuk menghidupkan atau mematikan peralatan rumah menggunakan driver relai.
Komponen Sirkuit:
- Arduino UNO
- Modul GSM
- ULN2003
- Relai 5 volt
- Bohlam dengan dudukan
- Menghubungkan kabel
- Papan roti
- LCD 16x2
- Sumber Daya listrik
- Telepon selular
Di sini kami telah menggunakan awalan dalam string perintah yaitu "#A". Awalan ini digunakan untuk mengidentifikasi bahwa perintah utama datang di sebelahnya dan * di akhir string menunjukkan bahwa pesan telah berakhir.
Ketika kita mengirim modul SMS ke GSM melalui Seluler, maka GSM menerima SMS tersebut dan mengirimkannya ke Arduino. Sekarang Arduino membaca SMS ini dan mengekstrak perintah utama dari string yang diterima dan menyimpannya dalam sebuah variabel. Setelah ini, Arduino membandingkan string ini dengan string yang sudah ditentukan sebelumnya. Jika terjadi kecocokan maka Arduino mengirimkan sinyal ke relay melalui driver relay untuk ON dan OFF peralatan rumah tangga. Dan hasil relatif juga dicetak pada LCD 16x2 dengan menggunakan perintah yang sesuai.
Di sini, di proyek ini kami telah menggunakan bola lampu 3 nol watt untuk demonstrasi yang menunjukkan Kipas, Lampu, dan TV.
Di bawah ini adalah daftar pesan yang kami kirim melalui SMS, untuk Menghidupkan dan Mematikan Kipas, Lampu dan TV:
S. tidak. |
Pesan |
Operasi |
1 |
# A. fan di * |
Kipas ON |
2 |
# A. fan off * |
Kipas MATI |
3 |
# A. nyalakan * |
Lampu menyala |
4 |
# A. lampu mati * |
Lampu MATI |
5 |
# A.tv di * |
TV AKTIF |
6 |
# A.tv mati * |
TV Mati |
7 |
# A. semuanya * |
Semua AKTIF |
8 |
# A. semuanya mati * |
Semua MATI |
Modul GSM:
Modul GSM digunakan di berbagai perangkat komunikasi yang berbasis teknologi GSM (Global System for Mobile Communications). Ini digunakan untuk berinteraksi dengan jaringan GSM menggunakan komputer. Modul GSM hanya memahami perintah AT, dan dapat merespons sesuai dengan itu. Perintah paling dasar adalah “AT”, jika GSM merespon OK maka berfungsi dengan baik jika tidak merespon dengan “ERROR”. Ada berbagai macam perintah AT seperti ATA untuk menjawab panggilan, ATD untuk melakukan panggilan, AT + CMGR untuk membaca pesan, AT + CMGS untuk mengirim sms dll. Perintah AT harus diikuti oleh Carriage return yaitu \ r (0D dalam hex), seperti “AT + CMGS \ r”. Kita dapat menggunakan modul GSM dengan menggunakan perintah berikut:
ATE0 - Untuk gema nonaktif
DI + CNMI = 2,2,0,0,0
ATD
DI + CMGF = 1
AT + CMGS = "Nomor Ponsel"
>> Sekarang kita bisa menulis pesan kita
>> Setelah menulis pesan
Ctrl + Z mengirim perintah pesan (26 dalam desimal).
ENTER = 0x0d di HEX
The SIM900 adalah lengkap Quad-band GSM / GPRS Modul yang memberikan GSM / GPRS 850/900/1800 / 1900MHz kinerja untuk suara, SMS dan data dengan konsumsi daya yang rendah.
Deskripsi Sirkuit
Koneksi rangkaian otomasi rumah berbasis GSM ini cukup sederhana, disini digunakan liquid crystal display untuk menampilkan status peralatan rumah tangga yang langsung terhubung ke arduino dalam mode 4-bit. Pin data LCD RS, EN, D4, D5, D6, D7 dihubungkan ke pin digital arduino nomor 6, 7, 8, 9, 10, 11. Dan pin Rx dan Tx modul GSM terhubung langsung ke Tx dan Rx. pin Arduino masing-masing. Dan modul GSM didukung dengan menggunakan adaptor 12 volt. Relai 5 volt SPDT 3 digunakan untuk mengontrol LAMPU, KIPAS, dan TV. Dan relai dihubungkan ke pin arduino nomor 3, 4 dan 5 melalui driver relai ULN2003 untuk masing-masing mengendalikan LAMPU, KIPAS dan TV.
Deskripsi Kode
Dalam bagian pemrograman proyek ini, pertama-tama dalam pemrograman kami menyertakan perpustakaan untuk layar kristal cair dan kemudian kami mendefinisikan data dan pin kontrol untuk LCD dan peralatan rumah tangga.
#include
Setelah komunikasi serial ini diinisialisasi pada 9600 bps dan memberikan arahan ke pin yang digunakan.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (Fan, OUTPUT); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Untuk penerimaan data secara serial kita menggunakan dua fungsi yaitu Serial.available yang memeriksa apakah ada data serial yang datang dan yang lainnya adalah Serial.read yang membaca data yang datang secara serial.
sementara (Serial.available ()) {char inChar = Serial.read ();
Setelah menerima data secara serial kita sudah menyimpannya dalam bentuk string lalu menunggu Enter.
void serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); penundaan (1000); digitalWrite (led, LOW); sementara (Serial.available ()) {char inChar = Serial.read (); str = inChar; jika (inChar == '*') {temp = 1; kembali; }
Ketika program Enter come mulai membandingkan string yang diterima dengan string yang telah ditentukan dan jika string cocok maka operasi relatif dilakukan dengan menggunakan perintah yang sesuai yang diberikan dalam kode.
void check () {if (! (strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("ON"); penundaan (200); } lain jika (! (strncmp (str, "tv off", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("OFF"); penundaan (200); }