Daftar Isi:
- Langkah 1: Catu Daya
- Langkah 2: Input Digital
- Langkah 3: Output Digital
- Langkah 4: Osilator Pengendali Mikro
- Langkah 5: LED Indikasi
- Langkah 6: Sirkuit Reset Prosesor Mikro
- Langkah 7: Modul SIM800L
- Langkah 8: Pengontrol Mikro
- Langkah 9: Mengoptimalkan Memori SRAM
- Langkah 10: Ukuran Buffer Serial Perangkat Lunak
- Langkah 11: Membuat Papan PC
- Langkah 12: Perakitan Papan PC
- Langkah 13: Memprogram AtMega328p
- Langkah 14: Menghubungkan Unit
- Langkah 15: Pengaturan Awal
- Langkah 16: Perintah SMS
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
! ! ! MELIHAT !
Dikarenakan tower handphone lokal sedang diupgrade di daerah saya, saya tidak bisa lagi menggunakan modul GSM ini. Menara yang lebih baru tidak lagi mendukung perangkat 2G. Oleh karena itu, saya tidak dapat lagi memberikan dukungan untuk proyek ini.
Dengan berbagai macam modul GSM yang tersedia untuk penghobi, kebanyakan dari kita akhirnya membeli satu. Saya membeli modul SIM800L secara lokal, dan akhirnya bermain dengan perintah modul yang berbeda.
Menggunakan Arduino Uno dan Arduino IDE, saya dapat mengubah ide saya menjadi kenyataan. Ini tidak datang dengan mudah, dengan SATU MASALAH TERBESAR adalah keterbatasan SRAM hanya 2KB. Setelah banyak penelitian di internet dan forum yang berbeda, saya bisa mengatasi keterbatasan ini.
Teknik pemrograman yang berbeda, pemahaman yang jauh lebih baik tentang kompiler Arduino, dan menggunakan kartu SIM dan EEPROM untuk memori tambahan, menyelamatkan proyek ini. Setelah beberapa perubahan pada kode, prototipe stabil dibangun dan diuji selama seminggu.
Kelemahan dari SRAM terbatas adalah bahwa unit tidak dapat dilengkapi dengan layar dan tombol pengguna. Ini menghasilkan penulisan ulang kode yang lengkap. Tanpa antarmuka pengguna, satu-satunya pilihan yang tersisa untuk melanjutkan proyek adalah menggunakan pesan SMS untuk mengkonfigurasi unit, serta pengguna.
Ini ternyata menjadi proyek yang menarik, dan lebih banyak masa depan ditambahkan saat pengembangan berlanjut.
Tujuan utama saya adalah tetap menggunakan Arduino Uno, atau dalam hal ini, ATMEGA328p, dan tidak menggunakan komponen pemasangan permukaan apa pun. Ini akan memudahkan masyarakat umum untuk menyalin dan membangun unit.
Spesifikasi unitnya:
- Maksimal 250 pengguna dapat diprogram pada unit
- Empat keluaran digital
- Empat input digital
- Setiap output dapat dikonfigurasi sebagai output PULSA atau ON/OFF
- Durasi pulsa keluaran dapat diatur antara 0,5.. 10 detik
- Setiap input dapat dikonfigurasi untuk memicu perubahan OFF ke ON.
- Setiap input dapat dikonfigurasi untuk memicu perubahan ON ke OFF
- Setiap waktu tunda input dapat diatur antara 0 detik dan 1 jam
- Pesan SMS untuk perubahan pada Input dapat dikirim ke 5 pengguna yang berbeda
- Nama dan teks status untuk setiap input dapat diatur oleh pengguna
- Nama dan teks status untuk setiap output dapat diatur oleh pengguna
- Unit dapat dikonfigurasi untuk menerima pesan saldo kartu SIM melalui pesan USSD.
- Semua pengguna dapat meminta pembaruan status I/O unit
- Semua pengguna dapat mengontrol output individu melalui pesan SMS
- Semua pengguna dapat mengontrol output individu dengan memanggil unit
Fitur keamanan
- Setup awal unit hanya bisa dilakukan saat berada di unit.
- Pengaturan awal hanya dapat dilakukan oleh PENGGUNA MASTER
- Perintah pengaturan awal secara otomatis dinonaktifkan setelah sepuluh menit.
- Hanya panggilan dan SMS yang dikirim dari pengguna yang dikenal yang dapat mengontrol unit
- Pengguna hanya dapat mengoperasikan output yang diberikan kepada mereka oleh PENGGUNA MASTER
Fitur lainnya
- Panggilan ke unit ini gratis, karena panggilan tidak pernah dijawab.
- Saat unit dipanggil, panggilan hanya akan terputus setelah 2 detik. Ini adalah konfirmasi kepada penelepon bahwa unit menanggapi panggilan tersebut.
- Jika penyedia layanan kartu SIM mendukung pesan USSD, pertanyaan saldo dapat dilakukan oleh PENGGUNA MASTER. Pesan USSD yang berisi saldo, kemudian akan diteruskan ke MASTER USER.
Langkah 1: Catu Daya
Agar unit dapat dihubungkan ke sistem keamanan standar (sistem alarm, pintu garasi listrik, motor gerbang listrik), unit akan diberi daya dari 12V DC yang biasanya tersedia pada sistem tersebut.
Daya diterapkan pada terminal 12V IN dan 0V, dan dilindungi oleh sekering 1A. Tersedia terminal OUT 12V tambahan, dan juga dilindungi oleh sekring.
Diode D1 melindungi unit dari koneksi polaritas terbalik pada saluran 12V.
Kapasitor C1 dan C2 menyaring kebisingan yang ada pada jalur suplai 12V. Catu daya 12V digunakan untuk memberi daya pada relai unit.
Suplai 5V terdiri dari regulator tegangan LM7805L, dan output stabil +5V yang diperlukan untuk modul GSM SIM800L, serta prosesor mikro. Kapasitor C3 dan C4 menyaring kebisingan yang mungkin ada pada jalur suplai +5V. Kapasitor elektrolit berukuran relatif besar digunakan, karena modul GSM SIM800L menggunakan sedikit daya saat mentransmisikan.
Tidak diperlukan heat sink pada pengatur tegangan.
Langkah 2: Input Digital
Sinyal input digital semuanya 12V, dan harus dihubungkan dengan pengontrol mikro 5V. Untuk ini, skrup opto digunakan untuk mengisolasi sinyal 12V dari sistem 5V.
Resistor input 1K membatasi arus input ke opto coupler hingga sekitar 10mA.
Karena keterbatasan ruang, tidak ada ruang yang tersedia di Papan PC untuk resistor pull-up 5V. Kontroler mikro diatur untuk mengaktifkan pin input pull-up yang lemah.
Dengan tidak adanya sinyal pada input (RENDAH) dari opto coupler, tidak ada arus yang akan mengalir melalui LED opto coupler. Dengan demikian transistor opto coupler dimatikan. Pull-up yang lemah dari mikrokontroler akan menarik kolektor ke hampir 5V, dan akan dilihat sebagai logika TINGGI oleh mikrokontroler.
Dengan diterapkannya 12V (TINGGI) ke input opto coupler, sekitar 10mA akan mengalir melalui LED opto coupler. Dengan demikian transistor opto coupler akan menyala. Ini akan menarik kolektor ke hampir 0V, dan akan dilihat sebagai logika RENDAH oleh pengontrol mikro.
Perhatikan bahwa input yang dilihat oleh pengontrol mikro terbalik dibandingkan dengan input 12V.
Kode normal untuk membaca pin input terlihat sebagai berikut:
Boolean Masukan = digitalRead(pin masukan);
Untuk mengoreksi sinyal terbalik, gunakan kode berikut:
boolean Masukan = !digitalRead(pin masukan); // PERHATIKAN ! di depan bacaan
Sekarang, input yang dilihat oleh pengontrol mikro akan sesuai dengan input pada input 12V.
Rangkaian input akhir terdiri dari 4 input digital. Setiap input terhubung ke terminal pada Papan PC.
Langkah 3: Output Digital
Biasanya, dengan rangkaian penggerak hanya jumlah minimum relay, cara terbaik adalah dengan menggunakan rangkaian driver transistor seperti yang ditunjukkan. Ini sederhana, biaya rendah, dan efektif.
Resistor menyediakan pull-down ke ground, dan pembatasan arus basis transistor. Transistor digunakan untuk meningkatkan arus yang tersedia untuk menggerakkan relai. Dengan hanya 1mA yang diambil dari pin pengontrol mikro, transistor dapat mengalihkan beban 100mA. Lebih dari cukup untuk sebagian besar jenis relai. Dioda adalah dioda fly-back, melindungi rangkaian dari lonjakan tegangan tinggi selama switching relai. Keuntungan tambahan menggunakan rangkaian ini, tegangan operasi relai dapat berbeda dengan tegangan mikrokontroler. Jadi, alih-alih menggunakan relai 5V, seseorang dapat menggunakan tegangan DC apa pun hingga 48V.
Memperkenalkan ULN2803
Semakin banyak relai yang dibutuhkan suatu proyek, semakin tinggi jumlah komponennya. Ini akan membuat desain PCB lebih sulit, dan mungkin menghabiskan ruang PCB yang berharga. Tetapi menggunakan susunan transistor, seperti ULN2803, pasti akan membantu menjaga ukuran PCB tetap kecil. ULN2803 cocok untuk input 3.3V dan 5V dari pengontrol mikro, dan dapat menggerakkan relai hingga 48V DC. ULN2803 ini memiliki 8 rangkaian transistor individu, masing-masing rangkaian dilengkapi dengan semua komponen yang diperlukan untuk mengganti relai.
Sirkuit keluaran akhir terdiri dari ULN3803, menggerakkan 4 relai keluaran 12V DC. Setiap kontak relai tersedia di terminal PC Board.
Langkah 4: Osilator Pengendali Mikro
Sirkuit Osilator
Kontroler mikro membutuhkan osilator agar berfungsi dengan benar. Untuk mempertahankan desain Arduino Uno, rangkaian akan menggunakan osilator standar 16MHz. Tersedia dua pilihan:
Kristal
Metode ini menggunakan kristal yang terhubung ke dua kapasitor pemuatan. Ini adalah opsi yang paling umum.
Resonator
Resonator pada dasarnya adalah kristal dan dua kapasitor pemuatan dalam paket 3-pin tunggal. Ini mengurangi jumlah komponen, dan menambah ruang yang tersedia di Papan PC.
Untuk menjaga jumlah komponen serendah mungkin, saya memilih untuk menggunakan resonator 16MHz.
Langkah 5: LED Indikasi
Apa yang akan menjadi sirkuit tanpa beberapa LED? Ketentuan dibuat pada Papan PC untuk LED 3mm.
Resistor 1K digunakan untuk membatasi arus yang melalui LED hingga kurang dari 5mA, Saat menggunakan LED terang tinggi 3mm, kecerahannya sangat baik.
Untuk interpretasi yang mudah dari LED status, dua warna digunakan. Dengan menggabungkan dua LED dengan indikasi berkedip, cukup banyak informasi yang dapat diperoleh hanya dari dua LED.
LED merah
LED merah digunakan untuk menunjukkan kondisi kesalahan, penundaan yang lama, perintah yang salah.
LED hijau
LED hijau digunakan untuk menunjukkan input dan perintah yang sehat dan/atau benar.
Langkah 6: Sirkuit Reset Prosesor Mikro
Untuk alasan keamanan, beberapa fungsi unit hanya tersedia dalam 10 menit pertama setelah unit dinyalakan.
Dengan tombol reset, daya ke unit tidak perlu dimatikan untuk mereset unit.
Bagaimana itu bekerja
Resistor 10K akan menjaga garis RESET dekat dengan 5V. Ketika tombol ditekan, garis RESET akan ditarik ke 0V, sehingga mikrokontroler tetap di reset. Saat tombol dilepaskan, garis RESET kembali ke %v, menghidupkan ulang pengontrol mikro.
Langkah 7: Modul SIM800L
Inti dari unit ini adalah modul GSM SIM800L. Modul ini hanya menggunakan 3 pin I/O pada mikrokontroler.
Antarmuka modul ke pengontrol mikro melalui port serial standar.
- Semua perintah ke unit dikirim melalui port serial menggunakan perintah AT standar.
- Dengan adanya panggilan masuk, atau saat SMS diterima, informasi tersebut dikirim ke mikrokontroler melalui port serial menggunakan teks ASCII..
Untuk menghemat ruang, modul GSM terhubung ke PC Board melalui 7-pin header. Ini membuat pelepasan modul GSM menjadi mudah. Ini juga memungkinkan pengguna untuk dengan mudah memasukkan/mengeluarkan kartu SIM di bagian bawah modul.
Kartu SIM aktif diperlukan, dan kartu SIM harus dapat mengirim dan menerima pesan SMS.
Pengaturan modul GSM SIM800L
Saat menyalakan unit, pin reset modul GSM ditarik rendah selama satu detik. Ini memastikan bahwa modul GSM hanya dimulai setelah catu daya stabil. Modul GSM memerlukan beberapa detik untuk reboot, jadi tunggu 5 detik sebelum mengirim perintah AT apa pun ke modul.
Untuk memastikan bahwa modul GSM dikonfigurasikan untuk berkomunikasi dengan benar dengan pengontrol mikro, perintah AT berikut digunakan selama pengaktifan:
PADA
digunakan untuk menentukan apakah modul GSM tersedia
AT+CREG?
Polling perintah ini sampai modul GSM terdaftar di jaringan ponsel
AT+CMGF=1
Setel mode pesan SMS ke ASCII
AT+CNMI=1, 2, 0, 0, 0
Jika SMS tersedia, kirim detail SMS ke port serial modul GSM
AT+CMGD=1, 4
Hapus semua pesan SMS yang tersimpan di kartu SIM
AT+CPBS=\"SM
Setel buku telepon modul GSM ke kartu SIM
AT+COPS=2, lalu AT+CLTS=1, lalu AT+COPS=0
Atur waktu modul GSM ke waktu jaringan ponsel
Tunggu 5 detik untuk mengatur waktu
AT+CUSD=1
Aktifkan fungsi perpesanan USSD
Langkah 8: Pengontrol Mikro
Kontroler mikro adalah AtMega328p standar, sama seperti yang digunakan pada Arduino Uno. Kode demikian sebanding dengan keduanya. Untuk memudahkan pemrograman on-board, header pemrograman 6-pin tersedia di PC Board.
Bagian yang berbeda dari unit terhubung ke prosesor mikro, dan termasuk yang berikut:
- Empat input digital
- Empat keluaran digital
- Osilator
- Dua indikasi LED
- Setel ulang sirkuit
- Modul GSM SIM800L
Semua komunikasi ke dan dari modul GSM dilakukan menggunakan fungsi SoftwareSerial(). Metode ini digunakan untuk membebaskan port serial utama untuk Arduino IDE selama fase pengembangan.
Dengan hanya 2KB SRAM, dan 1KB EEPROM, tidak ada cukup memori untuk menyimpan lebih dari beberapa pengguna yang dapat dihubungkan ke unit. Untuk mengosongkan SRAM, semua informasi pengguna disimpan di kartu SIM pada modul GSM. Dengan pengaturan ini, unit dapat melayani hingga 250 pengguna yang berbeda.
Data konfigurasi unit disimpan ke dalam EEPROM, sehingga memisahkan data pengguna dan data sistem satu sama lain.
Masih ada beberapa pin I/O cadangan yang tersedia, Namun, opsi untuk menambahkan layar LCD dan/atau keyboard tidak dimungkinkan karena banyaknya SRAM yang digunakan oleh buffer penerimaan dan pengiriman SoftWareSerial(), Karena kurangnya jenis antarmuka pengguna pada unit, semua pengaturan dan pengguna diprogram menggunakan pesan SMS.
Langkah 9: Mengoptimalkan Memori SRAM
Cukup awal dalam tahap pengembangan, Arduino IDE melaporkan memori SRAM rendah saat mengkompilasi kode. Beberapa cara digunakan untuk mengatasi hal tersebut.
Batasi data yang diterima pada port serial
Modul GSM akan melaporkan semua pesan ke mikrokontroler port serial. Saat menerima beberapa pesan SMS, panjang total pesan yang diterima bisa lebih dari 200 karakter. Ini dapat dengan cepat menghabiskan semua SRAM yang tersedia pada chip AtMega, dan akan menyebabkan masalah stabilitas.
untuk mencegah hal ini, hanya 200 karakter pertama dari pesan APAPUN yang diterima dari modul GSM yang akan digunakan. Contoh di bawah ini menunjukkan bagaimana hal ini dilakukan dengan menghitung karakter yang diterima dalam variabel Counter.
// memindai data dari port serial perangkat lunak
//------------------------------------------------ RxString = ""; Penghitung = 0; while(SSerial.available()){ delay(1); // penundaan singkat untuk memberikan waktu bagi data baru untuk ditempatkan di buffer // get new character RxChar = char(SSerial.read()); //menambahkan 200 karakter pertama ke string if (Counter < 200) { RxString.concat(RxChar); Penghitung = Penghitung + 1; } }
Mengurangi kode Serial.print()
Meskipun berguna selama pengembangan, Arduino Serial Monitor dapat menggunakan banyak SRAM. Kode dikembangkan menggunakan kode Serial.print() sesedikit mungkin. Satu bagian kode telah diuji untuk berfungsi, semua kode Serial.print() telah dihapus dari bagian kode tersebut.
Menggunakan kode Serial.print(F((""))
Banyak informasi yang biasanya ditampilkan di Arduino Serial Monitor lebih masuk akal ketika deskripsi ditambahkan. Ambil contoh berikut:
Serial.println("Menunggu tindakan tertentu");
String "Menunggu tindakan tertentu" telah diperbaiki, dan tidak dapat diubah.
Selama kompilasi kode, kompiler akan menyertakan string "Menunggu tindakan tertentu" di memori FLASH.
Selain itu, kompilator melihat bahwa string adalah konstanta, yang digunakan oleh instruksi "Serial.print" atau "Serial.println". Selama boot-up mikro, konstanta ini juga ditempatkan ke dalam memori SRAM.
Dengan menggunakan awalan "F" dalam fungsi Serial.print(), ia memberi tahu kompiler bahwa string ini hanya tersedia di memori FLASH. Untuk contoh ini, string berisi 28 karakter. Ini adalah 28 byte yang dapat dibebaskan di SRAM.
Serial.println(F("Menunggu tindakan tertentu"));
Metode ini juga berlaku untuk perintah SoftwareSerial.print(). Karena modul GSM bekerja pada perintah AT, kode tersebut berisi banyak perintah SoftwareSerial.print("xxxx"). Menggunakan awalan "F" membebaskan hampir 300 byte SRAM.
Jangan gunakan port serial perangkat keras
Setelah debugging kode, port serial perangkat keras dinonaktifkan dengan menghapus SEMUA perintah Serial.print(). Ini membebaskan beberapa byte tambahan SRAM.
Tanpa perintah Serial.print() yang tersisa dalam kode, tambahan 128 byte SRAM telah tersedia. Ini dilakukan dengan menghapus port serial perangkat keras dari kode. Ini fred up 64 byte mengirim dan 64 byte menerima buffer.
// Serial.begin(9600); // port serial perangkat keras dinonaktifkan
Menggunakan EEPROM untuk string
Untuk setiap input dan output, tiga string perlu disimpan. Mereka adalah nama saluran, string saat saluran aktif, dan string saat saluran mati.
Dengan total 8 saluran I/O, mereka akan menjadi
- 8 string berisi nama saluran, masing-masing sepanjang 10 karakter
- 8 string berisi saluran Pada deskripsi, masing-masing sepanjang 10 karakter
- 8 string yang berisi deskripsi saluran Off, masing-masing sepanjang 10 karakter
Iklan ini hingga 240 byte SRAM. Alih-alih menyimpan string ini di SRAM, mereka disimpan di EEPROM. Ini membebaskan 240 byte tambahan SRAM.
Mendeklarasikan string dengan panjang yang benar
Variabel biasanya dideklarasikan di awal kode. Kesalahan umum saat mendeklarasikan variabel string, adalah kita tidak mendeklarasikan string dengan jumlah karakter yang benar.
String GSM_Nr = "";
String GSM_Name = ""; String GSM_Msg = "";
Selama startup, pengontrol mikro tidak akan mengalokasikan memori di SRAM untuk variabel-variabel ini. Ini nantinya dapat menyebabkan ketidakstabilan ketika string ini digunakan.
Untuk mencegah hal ini, nyatakan string dengan jumlah karakter yang benar yang akan digunakan string dalam perangkat lunak.
String GSM_Nr = "1000000000";
String GSM_Name = "2000000000"; String GSM_Msg = "3000000000";
Perhatikan bagaimana saya tidak mendeklarasikan string dengan karakter yang sama. Jika Anda mendeklarasikan semua string ini dengan mengatakan "1234567890", kompiler akan melihat string yang sama dalam tiga variabel, dan hanya mengalokasikan cukup memori di SRAM untuk salah satu string.
Langkah 10: Ukuran Buffer Serial Perangkat Lunak
Dalam kode berikut, Anda akan melihat bahwa hingga 200 karakter dapat dibaca dari port serial perangkat lunak.
// memindai data dari port serial perangkat lunak
//------------------------------------------------ RxString = ""; Penghitung = 0; while(SSerial.available()){ delay(1); // penundaan singkat untuk memberikan waktu bagi data baru untuk ditempatkan di buffer // get new character RxChar = char(SSerial.read()); //menambahkan 200 karakter pertama ke string if (Counter < 200) { RxString.concat(RxChar); Penghitung = Penghitung + 1; } }
Ini membutuhkan buffer setidaknya 200 byte untuk port serial perangkat lunak juga. secara default, buffer port serial perangkat lunak hanya 64 byte. Untuk menambah buffer ini, cari file berikut:
SoftwareSerial.h
Buka file dengan editor teks, dan ubah ukuran buffer menjadi 200.
/******************************************************************************
* Definisi ************************************************ ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // Ukuran buffer RX #endif
Langkah 11: Membuat Papan PC
Papan PC dirancang menggunakan versi freeware dari Cadsoft Eagle (saya yakin namanya telah berubah).
- Papan PC adalah desain satu sisi.
- Tidak ada komponen pemasangan permukaan yang digunakan.
- Semua komponen dipasang ke papan PC, termasuk modul SIM800L.
- Tidak diperlukan komponen atau koneksi eksternal
- Wire jumper disembunyikan di bawah komponen untuk tampilan yang lebih bersih.
Saya menggunakan metode berikut untuk membuat Papan PC:
- Gambar Papan PC dicetak pada Press-n-Peel menggunakan printer laser.
- Press-n-Peel kemudian ditempatkan di atas papan PC yang bersih, dan diamankan dengan selotip.
- Gambar Papan PC kemudian ditransfer dari Press-n-Peel ke Papan PC kosong dengan melewatkan papan melalui laminator. Bagi saya, 10 operan adalah yang terbaik.
- Setelah Papan PC mendingin ke suhu kamar, Press-n-Peel perlahan diangkat dari papan.
- Papan PC kemudian digores menggunakan kristal Amonium Persulfat yang dilarutkan dalam air panas.
- Setelah etsa, Press-n-Peel biru dan toner hitam dihilangkan dengan membersihkan Papan PC yang tergores dengan beberapa aseton.
- Papan tersebut kemudian dipotong sesuai ukuran dengan Dremel
- Lubang untuk semua komponen lubang tembus dibor menggunakan mata bor 1 mm.
- Konektor sekrup terminal dibor menggunakan mata bor 1,2 mm.
Langkah 12: Perakitan Papan PC
Perakitan dilakukan dengan menambahkan komponen terkecil terlebih dahulu, dan bekerja dengan cara Anda hingga komponen terbesar.
Semua komponen yang digunakan dalam Instruksi ini, tidak termasuk modul SIM800, bersumber dari pemasok lokal saya. Berpikir kepada mereka untuk selalu memiliki stok. Silakan lihat websie Afrika Selatan mereka:
www.shop.rabtron.co.za/catalog/index.php
CATATAN! Solder terlebih dahulu kedua jumper yang terletak di bawah IC ATMEGA328p
Urutannya adalah sebagai berikut:
- Resistor dan dioda
- Tombol Atur ulang
- Soket IC
- Regulator tegangan
- Pin header
- Kapasitor kecil
- LED
- Pemegang sekering
- Blok terminal
- Relay
- Kapasitor elektrolit
Sebelum memasukkan IC, sambungkan unit ke 12V, dan uji semua voltase agar benar.
Terakhir, dengan menggunakan pernis bening, tutupi sisi tembaga Papan PC untuk melindunginya dari elemen.
Setelah pernis mengering, masukkan IC, tetapi biarkan modul GSM sampai AtMega diprogram.
Langkah 13: Memprogram AtMega328p
# # Upgrade Firmware ke Versi 3.02 # #
Diaktifkan SMS untuk dikirim ke MASTER USER saat daya dikembalikan ke perangkat
Saya menggunakan Arduino Uno dengan pelindung pemrograman untuk memprogram unit. Untuk informasi lebih lanjut tentang cara menggunakan Arduino Uno sebagai programmer, lihat Instruksi ini:
Arduino UNO Sebagai Pemrogram AtMega328P
Modul GSM harus dilepas dari Papan PC untuk mendapatkan akses ke header pemrograman. Berhati-hatilah agar tidak merusak kabel antena saat melepas modul GSM.
Hubungkan kabel pemrograman antara programmer dan unit menggunakan header pemrograman pada Papan PC., dan unggah sketsa ke unit.
Suplai 12V eksternal tidak diperlukan untuk memprogram unit. Papan PC akan diberi daya dari Arduino melalui kabel pemrograman.
Buka file terlampir di Arduino IDE, dan programkan ke unit.
Setelah pemrograman, lepaskan kabel pemrograman, dan masukkan modul GSM.
Unit sekarang siap digunakan.
Langkah 14: Menghubungkan Unit
Semua koneksi ke unit dibuat melalui terminal sekrup.
Menghidupkan Unit
Pastikan Anda telah memasukkan kartu SIM terdaftar ke dalam modul GSM, dan kartu SIM tersebut dapat mengirim dan menerima pesan SMS.
Hubungkan catu daya 12V DC ke 12V IN dan salah satu terminal 0V. Setelah dinyalakan, LED merah pada Papan PC akan menyala. Dalam waktu sekitar satu menit, modul GSM seharusnya sudah terhubung ke jaringan ponsel. LED merah akan mati, dan LED merah pada modul GSM akan berkedip cepat.
Setelah tahap ini tercapai, unit siap untuk dikonfigurasi.
Koneksi Masukan
Input digital bekerja pada 12V. Untuk mengaktifkan input, 12V perlu diterapkan ke input. Menghapus 12V akan mematikan input.
Koneksi Keluaran
Setiap output terdiri dari kontak change-over. Hubungkan setiap kontak sesuai kebutuhan.
Langkah 15: Pengaturan Awal
Pengaturan awal unit harus dilakukan untuk memastikan bahwa semua parameter diatur ke default pabrik, dan kartu SIM dikonfigurasi untuk menerima informasi pengguna dalam format yang benar.
Karena semua perintah berbasis SMS, Anda memerlukan telepon lain untuk melakukan pengaturan.
Untuk pengaturan awal, Anda harus berada di unit.
Setel nomor telepon PENGGUNA MASTER
Karena hanya MASTER USER yang dapat mengonfigurasi unit, langkah ini harus dilakukan terlebih dahulu.
- Unit harus diberi daya.
- Tekan dan lepaskan tombol Reset, dan tunggu hingga LED merah pada PC Board mati.
- LED NET pada modul GSM akan berkedip cepat.
- Unit sekarang siap menerima perintah pengaturan awal. Ini harus dilakukan dalam waktu 10 menit.
- Kirim pesan SMS berisi MASTER, deskripsi ke nomor telepon unit.
- Jika diterima, LED hijau pada Papan PC akan berkedip dua kali.
- PENGGUNA MASTER sekarang telah diprogram.
Kembalikan unit ke Default Pabrik
Setelah MASTER USER diprogram, pengaturan unit harus diatur ke default pabrik.
- Kirim pesan SMS hanya dengan CLEARALL ke nomor telepon unit.
- Jika diterima, LED hijau dan merah pada Papan PC akan berkedip secara bergantian setiap detik. Unit telah dipulihkan dengan pengaturan default pabrik.
- Semua pengaturan telah dikembalikan ke default pabrik.
- Tekan dan lepaskan tombol Reset untuk mem-boot ulang unit.
Memformat Kartu SIM
Langkah terakhir adalah menghapus semua informasi yang tersimpan di kartu SIM, dan mengkonfigurasinya untuk digunakan di unit ini.
- Tekan dan lepaskan tombol Reset, dan tunggu hingga LED merah pada PC Board mati.
- LED NET pada modul GSM akan berkedip cepat.
- Unit sekarang siap menerima perintah pengaturan awal. Ini harus dilakukan dalam waktu 10 menit.
- Kirim pesan SMS hanya dengan ERASESIM ke nomor telepon unit.
- Jika diterima, LED hijau pada Papan PC akan berkedip beberapa kali.
Unit sekarang telah dikonfigurasi, dan siap digunakan.
Langkah 16: Perintah SMS
Ada tiga jenis perintah yang digunakan oleh unit. Semua perintah dikirim melalui SMS, dan semuanya dalam format berikut:
MEMERINTAH,,,,,
- Semua perintah, kecuali perintah NORMAL USER peka huruf besar/kecil.
- Parameter tidak peka huruf besar/kecil.
Perintah Pengaturan Awal
GURU, nama
Nomor telepon pengirim SMS digunakan sebagai nomor telepon PENGGUNA MASTER. Deskripsi untuk unit dapat ditambahkan di sini.
BERSIHKAN SEMUA
Setel ulang unit ke default pabrik
CLEARSIM
Hapus semua data dari kartu SIM
MENGATUR ULANG
Nyalakan ulang unit
MASTER USER Perintah untuk mengonfigurasi unit
OUTMODE, c, m, t CATATAN ! ! ! BELUM DILAKSANAKAN
Setel saluran tertentu untuk memiliki keluaran PULSED, TIMED atau LATCHING. t adalah durasi waktu dalam menit untuk keluaran TIMED
PULSA, cccc
Atur saluran tertentu ke output PULSED. Jika tidak disetel, saluran akan disetel sebagai keluaran LATCHING.
PULSETIME, tMenyetel durasi output berdenyut dalam detik (0.. 10 detik)
INPUTON, cccc
Setel saluran yang harus dipicu, dan kirim pesan SMS saat status berubah dari OFF ke ON
MASUKAN, cccc
Setel saluran yang harus dipicu, dan kirim pesan SMS saat status berubah dari ON ke OFF
INTIME, c, t
Mengatur waktu tunda input untuk mendeteksi perubahan status dalam hitungan detik
INTEXT, ch, nama, hidup, mati
Atur nama setiap saluran input, pada teks dan teks nonaktif
OUTTEXT, ch, nama, hidup, mati
Atur setiap nama saluran keluaran, pada teks dan teks nonaktif
Tambahkan, lokasi, nomor, Calloutput, SMSoutput, input
Tambahkan pengguna ke kartu SIM di 'lokasi' memori, dengan saluran keluaran dan masukan ditetapkan ke pengguna
Del, lokasi
Hapus pengguna dari 'lokasi' memori kartu SIM
Nama saluran
Akan mengeluarkan pulsa dengan nama ChannelName
ChannelName, onText, atau ChannelName, offText
Akan mengubah output On/Off dengan nama ChannelName, dan onText/offText
Perintah Pengguna Normal untuk mengontrol unit
????Meminta pembaruan status I/O. Status SMS akan dikirim ke originator.
Nama saluran
Akan mengeluarkan pulsa dengan nama ChannelName
ChannelName, onText
Akan mengaktifkan output On dengan nama ChannelName, dan teks status onText
ChannelName, offText Akan mematikan output dengan nama ChannelName, dan teks status offText
Untuk deskripsi perintah yang lebih detail, silakan merujuk ke dokumen PDF terlampir.