Unit Kawalan Jauh GSM / SMS Berasaskan Arduino: 16 Langkah (dengan Gambar)
Unit Kawalan Jauh GSM / SMS Berasaskan Arduino: 16 Langkah (dengan Gambar)
Anonim
Unit Kawalan Jauh GSM / SMS Berasaskan Arduino
Unit Kawalan Jauh GSM / SMS Berasaskan Arduino

! ! ! NOTIS !

Oleh kerana menara telefon bimbit tempatan dinaik taraf di kawasan saya, saya tidak lagi dapat menggunakan modul GSM ini. Menara yang lebih baru tidak lagi menyokong peranti 2G. Oleh itu, saya tidak lagi dapat memberikan sokongan untuk projek ini.

Dengan pelbagai modul GSM yang tersedia untuk para penggemar, kebanyakan kita akhirnya membelinya. Saya membeli modul SIM800L secara tempatan, dan akhirnya bermain dengan pelbagai arahan modul.

Dengan menggunakan Arduino Uno dan Arduino IDE, saya dapat mengubah idea saya menjadi kenyataan. Ini tidak menjadi mudah, dengan MASALAH TERBESAR TINGGI menjadi had SRAM 2KB sahaja. Setelah membuat banyak penyelidikan di internet dan forum yang berbeza, saya dapat mengatasi batasan ini.

Teknik pengaturcaraan yang berbeza, pemahaman yang lebih baik mengenai penyusun Arduino, dan menggunakan kad SIM dan EEPROM untuk memori tambahan, menyimpan projek ini. Setelah beberapa perubahan pada kod, prototaip stabil dibina dan diuji dalam jangka waktu seminggu.

Kelemahan SRAM terhad ialah unit tidak dapat dilengkapi dengan paparan dan kunci pengguna. Ini menghasilkan penulisan semula kod yang lengkap. Tanpa antarmuka pengguna, satu-satunya pilihan yang tersisa untuk melanjutkan proyek ini, adalah menggunakan pesan SMS untuk mengkonfigurasi unit, dan juga pengguna.

Ini ternyata menjadi projek yang menarik, dan lebih banyak niaga hadapan ditambahkan ketika perkembangannya berlanjutan.

Tujuan utama saya adalah berpegang pada Arduino Uno, atau dalam hal ini, ATMEGA328p, dan tidak menggunakan komponen pelekap permukaan. Ini akan memudahkan orang awam menyalin dan membina unit.

Spesifikasi unit:

  • Maksimum 250 pengguna boleh diprogramkan di unit ini
  • Empat output digital
  • Empat input digital
  • Setiap output boleh dikonfigurasi sebagai output PULSE atau ON / OFF
  • Tempoh nadi output dapat ditetapkan antara 0.5.. 10 saat
  • Setiap input dapat dikonfigurasi untuk memicu perubahan OFF ke ON.
  • Setiap input dapat dikonfigurasi untuk memicu perubahan ON hingga OFF
  • Setiap masa penangguhan input boleh ditetapkan antara 0 saat dan 1 jam
  • Mesej SMS untuk perubahan pada Input dapat dihantar kepada 5 pengguna yang berbeza
  • Nama dan teks status untuk setiap input dapat ditetapkan oleh pengguna
  • Nama dan teks status untuk setiap output dapat ditetapkan oleh pengguna
  • Unit dapat dikonfigurasi untuk menerima mesej baki kad SIM melalui pemesejan USSD.
  • Semua pengguna boleh meminta kemas kini status I / O unit
  • Semua pengguna dapat mengawal output individu melalui mesej SMS
  • Semua pengguna dapat mengawal output individu dengan memanggil unit

Ciri-ciri keselamatan

  • Penyediaan awal unit hanya dapat dilakukan semasa berada di unit.
  • Penyediaan awal hanya dapat dilakukan oleh PENGGUNA MASTER
  • Perintah persediaan awal dilumpuhkan secara automatik setelah sepuluh minit.
  • Hanya panggilan dan pesanan ringkas dari pengguna yang dikenali yang dapat mengendalikan unit ini
  • Pengguna hanya dapat mengoperasikan output yang diberikan kepada mereka oleh PENGGUNA MASTER

Ciri-ciri lain

  • Panggilan ke unit ini adalah percuma, kerana panggilan tidak dapat dijawab.
  • Semasa unit dipanggil, panggilan hanya akan berhenti selepas 2 saat. Ini adalah pengesahan kepada pemanggil bahawa unit itu menjawab panggilan tersebut.
  • Sekiranya penyedia perkhidmatan kad SIM menyokong mesej USSD, pertanyaan baki boleh dibuat oleh PENGGUNA MASTER. Mesej USSD yang mengandungi baki, kemudian akan diteruskan ke PENGGUNA MASTER.

Langkah 1: Bekalan Kuasa

Bekalan Kuasa
Bekalan Kuasa

Untuk memastikan bahawa unit dapat dihubungkan ke sistem keselamatan standard (sistem penggera, pintu garaj elektrik, motor gerbang elektrik), unit ini akan dihidupkan dari 12V DC yang biasanya tersedia pada sistem tersebut.

Kuasa digunakan pada terminal 12V IN dan 0V, dan dilindungi oleh sekering 1A. Terminal 12V OUT tambahan tersedia, dan juga dilindungi oleh sekering.

Diod D1 melindungi unit daripada sambungan polaritas terbalik pada garis 12V.

Kapasitor C1 dan C2 menyaring kebisingan yang terdapat pada saluran bekalan 12V. Bekalan 12V digunakan untuk menghidupkan geganti unit.

Bekalan 5V terdiri daripada pengatur voltan LM7805L, dan menghasilkan stabil + 5V yang diperlukan untuk modul GSM SIM800L, serta pemproses mikro. Kapasitor C3 dan C4 menyaring kebisingan yang mungkin terdapat pada saluran bekalan + 5V. Kapasitor elektrolitik bersaiz besar digunakan, kerana modul GSM SIM800L menggunakan sedikit tenaga semasa menghantar.

Tidak ada pendingin yang diperlukan pada pengatur voltan.

Langkah 2: Input Digital

Input Digital
Input Digital
Input Digital
Input Digital

Isyarat input digital semuanya 12V, dan mesti dihubungkan dengan pengawal mikro 5V. Untuk ini, pengganding opto digunakan untuk mengasingkan isyarat 12V dari sistem 5V.

Perintang input 1K menghadkan arus input ke pengganding opto hingga sekitar 10mA.

Kerana keterbatasan ruang, tidak ada ruang yang tersedia di Papan PC untuk resistor penarik 5V. Pengawal mikro disediakan untuk membolehkan pin input lemah.

Tanpa adanya isyarat pada input (RENDAH) pengganding opto, arus tidak akan mengalir melalui LED pengganding opto. Oleh itu transistor pengganding opto dimatikan. Penarikan pengawal mikro yang lemah akan menarik pengumpul hingga hampir 5V, dan akan dilihat sebagai logik TINGGI oleh pengawal mikro.

Dengan 12V diterapkan (TINGGI) pada input opto coupler, sekitar 10mA akan mengalir melalui LED opto coupler. Oleh itu transistor pengganding opto akan dihidupkan. Ini akan menurunkan pengumpul hampir 0V, dan akan dilihat sebagai logik RENDAH oleh pengawal mikro.

Perhatikan bahawa input yang dilihat oleh pengawal mikro terbalik berbanding dengan input 12V.

Kod biasa untuk membaca pin input kelihatan seperti berikut:

boolean Input = digitalRead (inputpin);

Untuk membetulkan isyarat terbalik, gunakan kod berikut:

boolean Input =! digitalRead (inputpin); // PERHATIKAN! di hadapan bacaan

Sekarang, input yang dilihat oleh pengawal mikro akan sesuai dengan input pada input 12V.

Litar input akhir terdiri daripada 4 input digital. Setiap input disambungkan ke terminal pada PC Board.

Langkah 3: Keluaran Digital

Keluaran Digital
Keluaran Digital
Keluaran Digital
Keluaran Digital
Keluaran Digital
Keluaran Digital

Biasanya, dengan litar yang memandu hanya sebilangan geganti minimum, cara terbaik adalah menggunakan litar pemacu transistor seperti yang ditunjukkan. Ia sederhana, kos rendah dan berkesan.

Perintang memberikan had ke bawah, dan had arus asas transistor. Transistor digunakan untuk meningkatkan arus yang ada untuk menggerakkan geganti. Dengan hanya 1mA yang diambil dari pin pengawal mikro, transistor dapat menukar beban 100mA. Lebih daripada cukup untuk kebanyakan jenis geganti. Diod adalah diod terbang balik, melindungi litar dari lonjakan voltan tinggi semasa pertukaran geganti. Kelebihan tambahan menggunakan litar ini, ialah voltan operasi geganti boleh berbeza dengan voltan pengawal mikro. Oleh itu, daripada menggunakan relay 5V, seseorang boleh menggunakan voltan DC sehingga 48V.

Memperkenalkan ULN2803

Semakin banyak geganti yang diperlukan oleh projek, semakin tinggi kiraan komponennya. Ini akan menjadikan reka bentuk PCB lebih sukar, dan mungkin menggunakan ruang PCB yang berharga. Tetapi menggunakan array transistor, seperti ULN2803, pasti akan membantu menjaga ukuran PCB tetap kecil. ULN2803 sangat sesuai untuk input 3.3V dan 5V dari pengawal mikro, dan dapat memacu relay hingga 48V DC. ULN2803 ini mempunyai 8 litar transistor individu, setiap litar dilengkapi dengan semua komponen yang diperlukan untuk menukar geganti.

Litar keluaran akhir terdiri daripada ULN3803, memacu 4 relay output 12V DC. Setiap kenalan relay boleh didapati di terminal PC Board.

Langkah 4: Pengayun Mikro Pengawal

Pengayun Mikro Pengawal
Pengayun Mikro Pengawal
Pengayun Mikro Pengawal
Pengayun Mikro Pengawal
Pengayun Mikro Pengawal
Pengayun Mikro Pengawal

Litar Pengayun

Pengawal mikro memerlukan pengayun untuk berfungsi dengan betul. Untuk mengikuti reka bentuk Arduino Uno, litar akan menggunakan pengayun 16MHz standard. Terdapat dua pilihan:

Kristal

Kaedah ini menggunakan kristal yang dihubungkan dengan dua kapasitor pemuatan. Ini adalah pilihan yang paling biasa.

Resonator

Resonator pada dasarnya adalah kapasitor kristal dan dua pemuat dalam satu pakej 3 pin. Ini mengurangkan jumlah komponen, dan menambah ruang yang tersedia di Papan PC.

Untuk memastikan jumlah komponen serendah mungkin, saya memilih untuk menggunakan resonator 16MHz.

Langkah 5: LED Petunjuk

LED Petunjuk
LED Petunjuk
LED Petunjuk
LED Petunjuk

Litar apa yang akan berlaku tanpa beberapa LED? Peruntukan dibuat pada Papan PC untuk LED 3mm.

Perintang 1K digunakan untuk mengehadkan arus melalui LED hingga kurang dari 5mA, Apabila menggunakan LED tinggi 3mm, kecerahannya sangat baik.

Untuk penafsiran mudah mengenai status LED, dua warna digunakan. Dengan menggabungkan dua LED dengan petunjuk berkelip, cukup banyak maklumat yang dapat diperoleh dari hanya dua LED.

LED Merah

LED merah digunakan untuk menunjukkan keadaan kesalahan, kelewatan panjang, arahan yang salah.

LED hijau

LED hijau digunakan untuk menunjukkan input dan perintah yang sihat dan / atau betul.

Langkah 6: Litar Tetapkan Semula Pemproses Mikro

Litar Tetapan Semula Pemproses Mikro
Litar Tetapan Semula Pemproses Mikro

Atas sebab keselamatan, beberapa fungsi unit hanya tersedia dalam 10 minit pertama setelah menghidupkan unit.

Dengan butang reset, kuasa ke unit tidak perlu dimatikan untuk menetapkan semula unit.

Bagaimana ia berfungsi

Perintang 10K akan mengekalkan garis RESET hampir 5V. Apabila butang ditekan, garis RESET akan ditarik ke 0V, sehingga pengawal mikro tetap diatur semula. Apabila butang dilepaskan, garis RESET kembali ke% v, menghidupkan semula pengawal mikro.

Langkah 7: Modul SIM800L

Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L

Inti unit adalah modul GSM SIM800L. Modul ini hanya menggunakan 3 pin I / O pada pengawal mikro.

Modul antara muka ke pengawal mikro melalui port bersiri standard.

  • Semua arahan ke unit dikirim melalui port bersiri menggunakan perintah AT standard.
  • Dengan panggilan masuk, atau ketika SMS diterima, maklumat tersebut dikirim ke pengawal mikro melalui port bersiri menggunakan teks ASCII.

Untuk menjimatkan ruang, modul GSM disambungkan ke Papan PC melalui header 7-pin. Ini memudahkan penyingkiran modul GSM. Ini juga membolehkan pengguna memasukkan / mengeluarkan kad SIM dengan mudah di bahagian bawah modul.

Kad SIM aktif diperlukan, dan kad SIM mesti dapat mengirim dan menerima mesej SMS.

Penyediaan modul GSM SIM800L

Semasa menghidupkan unit, pin tetapan semula modul GSM ditarik rendah sebentar. Ini memastikan bahawa modul GSM hanya dapat dimulakan setelah bekalan kuasa stabil. Modul GSM memerlukan beberapa saat untuk reboot, jadi tunggu 5 saat sebelum menghantar arahan AT ke modul.

Untuk memastikan bahawa modul GSM dikonfigurasi untuk berkomunikasi dengan betul dengan pengawal mikro, arahan AT berikut digunakan semasa permulaan:

AT

digunakan untuk menentukan sama ada modul GSM ada

AT + CREG?

Mengundi arahan ini sehingga modul GSM didaftarkan di rangkaian telefon bimbit

AT + CMGF = 1

Tetapkan mod pesanan SMS ke ASCII

AT + CNMI = 1, 2, 0, 0, 0

Sekiranya SMS tersedia, hantarkan butiran SMS ke port bersiri modul GSM

AT + CMGD = 1, 4

Padamkan sebarang mesej SMS yang tersimpan di kad SIM

AT + CPBS = / "SM

Tetapkan buku telefon modul GSM ke kad SIM

AT + COPS = 2, kemudian AT + CLTS = 1, kemudian AT + COPS = 0

Tetapkan masa modul GSM ke waktu rangkaian telefon bimbit

Tunggu 5 saat untuk masa yang ditetapkan

AT + CUSD = 1

Aktifkan fungsi pemesejan USSD

Langkah 8: Pengawal Mikro

Pengawal Mikro
Pengawal Mikro
Pengawal Mikro
Pengawal Mikro
Pengawal Mikro
Pengawal Mikro

Pengawal mikro adalah AtMega328p standard, sama seperti yang digunakan pada Arduino Uno. Oleh itu, kodnya dapat dibandingkan dengan kedua-duanya. Untuk membolehkan pengaturcaraan on-board mudah, header pengaturcaraan 6-pin tersedia di PC Board.

Bahagian yang berlainan unit disambungkan ke pemproses mikro, dan merangkumi yang berikut:

  • Empat input digital
  • Empat output digital
  • Pengayun
  • Dua LED petunjuk
  • Tetapkan semula litar
  • Modul GSM SIM800L

Semua komunikasi ke dan dari modul GSM dilakukan menggunakan fungsi SoftwareSerial (). Kaedah ini digunakan untuk membebaskan port bersiri utama untuk Arduino IDE selama fasa pengembangan.

Dengan hanya 2KB SRAM, dan 1KB EEPROM, memori tidak mencukupi untuk menyimpan lebih daripada beberapa pengguna yang dapat dihubungkan ke unit. Untuk membebaskan SRAM, semua maklumat pengguna disimpan pada kad SIM pada modul GSM. Dengan pengaturan ini, unit ini dapat memenuhi sehingga 250 pengguna yang berbeza.

Data konfigurasi unit disimpan ke EEPROM, sehingga memisahkan data pengguna dan data sistem antara satu sama lain.

Masih ada beberapa pin I / O ganti yang tersedia, Namun, pilihan untuk menambahkan paparan LCD dan / atau papan kekunci tidak mungkin dilakukan kerana jumlah SRAM yang banyak digunakan oleh penyangga terima dan menghantar SoftWareSerial (), Kerana kurangnya jenis antara muka pengguna pada unit, semua tetapan dan pengguna diprogramkan menggunakan pesan SMS.

Langkah 9: Mengoptimumkan Memori SRAM

Mengoptimumkan Memori SRAM
Mengoptimumkan Memori SRAM

Pada awal peringkat pengembangan, Arduino IDE melaporkan memori SRAM yang rendah ketika menyusun kod. Beberapa kaedah digunakan untuk mengatasi ini.

Hadkan data yang diterima di port bersiri

Modul GSM akan melaporkan semua mesej ke pengawal mikro port bersiri. Semasa menerima beberapa pesanan SMS, panjang keseluruhan mesej yang diterima boleh melebihi 200 aksara. Ini dengan cepat dapat menggunakan semua SRAM yang terdapat pada cip AtMega, dan akan menyebabkan masalah kestabilan.

untuk mengelakkan ini, hanya 200 aksara pertama dari SETIAP mesej yang diterima dari modul GSM akan digunakan. Contoh di bawah menunjukkan bagaimana ini dilakukan dengan menghitung watak yang diterima dalam Pembilang pembolehubah.

// imbas data dari port siri perisian

// ----------------------------------------------- RxString = ""; Kaunter = 0; sementara (SSerial.available ()) {kelewatan (1); // kelewatan pendek untuk memberi masa untuk data baru diletakkan dalam penyangga // dapatkan watak baru RxChar = char (SSerial.read ()); // tambahkan 200 watak pertama ke rentetan jika (Kaunter <200) {RxString.concat (RxChar); Kaunter = Kaunter + 1; }}

Mengurangkan kod Serial.print ()

Walaupun berguna semasa pembangunan, Arduino Serial Monitor dapat menggunakan banyak SRAM. Kod ini dikembangkan dengan menggunakan sebilangan kecil kod Serial.print (). Satu bahagian kod telah diuji untuk berfungsi, semua kod Serial.print () telah dikeluarkan dari bahagian kod tersebut.

Menggunakan kod Serial.print (F ((""))

Banyak maklumat yang biasanya dipaparkan di Arduino Serial Monitor lebih masuk akal apabila penerangan ditambahkan. Ambil contoh berikut:

Serial.println ("Menunggu tindakan tertentu");

Rentetan "Menunggu tindakan tertentu" diperbaiki, dan tidak dapat berubah.

Semasa penyusunan kod, penyusun akan memasukkan rentetan "Menunggu tindakan tertentu" dalam memori FLASH.

Selain itu, penyusun melihat bahawa rentetan adalah pemalar, yang digunakan oleh arahan "Serial.print" atau "Serial.println". Semasa boot mikro, pemalar ini juga dimasukkan ke dalam memori SRAM.

Dengan menggunakan awalan "F" dalam fungsi Serial.print (), ia memberitahu penyusun bahawa rentetan ini hanya tersedia dalam memori FLASH. Untuk contoh ini, rentetan mengandungi 28 aksara. Ini adalah 28 bait yang dapat dibebaskan dalam SRAM.

Serial.println (F ("Menunggu tindakan tertentu"));

Kaedah ini juga berlaku untuk perintah SoftwareSerial.print (). Oleh kerana modul GSM berfungsi pada perintah AT, kod tersebut mengandungi banyak perintah SoftwareSerial.print ("xxxx"). Menggunakan awalan "F" membebaskan hampir 300 bait SRAM.

Jangan gunakan port bersiri perkakasan

Selepas penyahpepijatan kod, port siri perkakasan dilumpuhkan dengan membuang SEMUA perintah Serial.print (). Ini membebaskan beberapa bait SRAM tambahan.

Tanpa arahan Serial.print () yang tersisa dalam kod, tambahan 128 byte SRAM disediakan. Ini dilakukan dengan mengeluarkan port siri perkakasan dari kod. Ini mempercepat penyampaian 64 bait dan penampan 64 bait.

// Serial.begin (9600); // port siri perkakasan dilumpuhkan

Menggunakan EEPROM untuk tali

Untuk setiap input dan output, tiga rentetan perlu disimpan. Mereka adalah nama saluran, rentetan ketika saluran dihidupkan, dan rentetan ketika saluran dimatikan.

Dengan sejumlah 8 saluran I / O, kehendak mereka akan menjadi

  • 8 rentetan yang mengandungi nama saluran, masing-masing 10 aksara panjang
  • 8 rentetan yang mengandungi saluran On description, masing-masing 10 aksara panjang
  • 8 rentetan yang mengandungi perihalan saluran Off, masing-masing 10 aksara panjang

Ini mengiklankan sehingga 240 bait SRAM. Daripada menyimpan tali ini dalam SRAM, ia disimpan di EEPROM. Ini membebaskan tambahan 240 byte SRAM.

Menyatakan tali dengan panjang yang betul

Pemboleh ubah biasanya dinyatakan pada awal kod. Kesalahan umum ketika menyatakan pemboleh ubah rentetan, adalah bahawa kita tidak menyatakan rentetan dengan bilangan watak yang betul.

Rentetan GSM_Nr = "";

Rentetan GSM_Name = ""; Rentetan GSM_Msg = "";

Semasa permulaan, pengawal mikro tidak akan memperuntukkan memori dalam SRAM untuk pemboleh ubah ini. Ini kemudiannya boleh menyebabkan ketidakstabilan apabila tali ini digunakan.

Untuk mengelakkan ini, nyatakan rentetan dengan bilangan aksara yang betul yang akan digunakan tali dalam perisian.

Rentetan GSM_Nr = "1000000000";

Rentetan GSM_Name = "2000000000"; Rentetan GSM_Msg = "3000000000";

Perhatikan bagaimana saya tidak menyatakan rentetan dengan watak yang sama. Sekiranya anda menyatakan rentetan ini semua dengan mengatakan "1234567890", penyusun akan melihat rentetan yang sama dalam ketiga pemboleh ubah, dan hanya memperuntukkan memori yang mencukupi di SRAM untuk salah satu rentetan.

Langkah 10: Saiz Buffer Bersiri Perisian

Saiz Buffer Serial Perisian
Saiz Buffer Serial Perisian

Dalam kod berikut, anda akan melihat bahawa sehingga 200 aksara dapat dibaca dari port bersiri perisian.

// imbas data dari port siri perisian

// ----------------------------------------------- RxString = ""; Kaunter = 0; sementara (SSerial.available ()) {kelewatan (1); // kelewatan pendek untuk memberi masa untuk data baru diletakkan dalam penyangga // dapatkan watak baru RxChar = char (SSerial.read ()); // tambahkan 200 aksara pertama ke rentetan jika (Kaunter <200) {RxString.concat (RxChar); Kaunter = Kaunter + 1; }}

Ini memerlukan penyangga sekurang-kurangnya 200 bait untuk port bersiri perisian juga. secara lalai, buffer port bersiri perisian hanya 64 bait. Untuk meningkatkan penyangga ini, cari fail berikut:

PerisianSerial.h

Buka fail dengan editor teks, dan ubah ukuran penyangga menjadi 200.

/******************************************************************************

* Definisi ************************************************ ****************************** / #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // RX buffer size #endif

Langkah 11: Membuat Papan PC

Membuat Papan PC
Membuat Papan PC

Papan PC direka menggunakan versi perisian percuma Cadsoft Eagle (saya percaya namanya telah berubah).

  • PC Board adalah reka bentuk satu sisi.
  • Tidak ada komponen permukaan yang digunakan.
  • Semua komponen dipasang ke papan PC, termasuk modul SIM800L.
  • Tidak diperlukan komponen atau sambungan luaran
  • Pelompat wayar tersembunyi di bawah komponen untuk penampilan yang lebih bersih.

Saya menggunakan kaedah berikut untuk membuat Papan PC:

  • Gambar Papan PC dicetak pada Press-n-Peel menggunakan pencetak laser.
  • Press-n-Peel kemudian diletakkan di atas papan PC yang bersih, dan diikat dengan beberapa pita.
  • Imej Papan PC kemudian dipindahkan dari Press-n-Peel ke Papan PC kosong dengan melewati papan melalui laminator. Bagi saya, 10 hantaran paling sesuai.
  • Setelah Papan PC disejukkan ke suhu bilik, Press-n-Peel perlahan-lahan diangkat dari papan.
  • Papan PC kemudian terukir menggunakan kristal Ammonium Persulphate yang dilarutkan dalam air panas.
  • Setelah terukir, toner Press-n-Peel biru dan hitam dikeluarkan dengan membersihkan Papan PC yang terukir dengan sebilangan aseton.
  • Papan kemudian dipotong dengan ukuran Dremel
  • Lubang untuk semua komponen lubang melalui dibor menggunakan bit gerudi 1mm.
  • Penyambung skru terminal digerudi menggunakan bit gerudi 1.2mm.

Langkah 12: Pemasangan Papan PC

Pemasangan Dewan PC
Pemasangan Dewan PC
Pemasangan Dewan PC
Pemasangan Dewan PC
Pemasangan Dewan PC
Pemasangan Dewan PC
Pemasangan Dewan PC
Pemasangan Dewan PC

Pemasangan dilakukan dengan menambahkan komponen terkecil terlebih dahulu, dan bekerja hingga komponen terbesar.

Semua komponen yang digunakan di Instructable ini, tidak termasuk modul SIM800, diperoleh daripada pembekal tempatan saya. Berfikir kepada mereka kerana selalu mempunyai stok. Sila lihat laman web Afrika Selatan mereka:

www.shop.rabtron.co.za/catalog/index.php

CATATAN! Memateri pertama dua penerjun yang terletak di bawah ATMEGA328p IC

Urutannya adalah seperti berikut:

  • Perintang dan diod
  • Butang set semula
  • Soket IC
  • Pengatur voltan
  • Pin pengepala
  • Kapasitor kecil
  • LED
  • Pemegang fius
  • Blok terminal
  • Geganti
  • Kapasitor elektrolitik

Sebelum memasukkan IC, sambungkan unit ke 12V, dan uji semua voltan agar betul.

Akhirnya, dengan menggunakan beberapa pernis yang jelas, tutup bahagian tembaga Papan PC untuk melindunginya dari unsur-unsur.

Apabila lakuer telah kering, masukkan IC, tetapi tinggalkan modul GSM sehingga AtMega diprogramkan.

Langkah 13: Memprogram AtMega328p

Mengaturcara AtMega328p
Mengaturcara AtMega328p
Mengaturcara AtMega328p
Mengaturcara AtMega328p
Mengaturcara AtMega328p
Mengaturcara AtMega328p

# # Peningkatan Firmware ke Versi 3.02 # #

SMS diaktifkan untuk dihantar ke PENGGUNA MASTER apabila kuasa dipulihkan ke peranti

Saya menggunakan Arduino Uno dengan perisai pengaturcaraan untuk memprogram unit ini. Untuk maklumat lebih lanjut mengenai cara menggunakan Arduino Uno sebagai pengaturcara, rujuk Instruktif ini:

Arduino UNO Sebagai Pengaturcara AtMega328P

Modul GSM perlu dikeluarkan dari Papan PC untuk mendapatkan akses ke tajuk pengaturcaraan. Berhati-hatilah untuk tidak merosakkan wayar antena semasa melepaskan modul GSM.

Sambungkan kabel pengaturcaraan antara pengaturcara dan unit menggunakan tajuk pengaturcaraan pada Papan PC., Dan muat naik lakaran ke unit.

Bekalan 12V luaran tidak diperlukan untuk memprogramkan unit. Papan PC akan digerakkan dari Arduino melalui kabel pengaturcaraan.

Buka fail yang dilampirkan di Arduino IDE, dan aturlah ke unit.

Selepas pengaturcaraan, lepaskan kabel pengaturcaraan, dan masukkan modul GSM.

Unit ini kini siap digunakan.

Langkah 14: Menyambungkan Unit

Menyambungkan Unit
Menyambungkan Unit
Menyambungkan Unit
Menyambungkan Unit
Menyambungkan Unit
Menyambungkan Unit

Semua sambungan ke unit dibuat melalui terminal skru.

Menghidupkan Unit

Pastikan anda telah memasukkan kad SIM yang didaftarkan dalam modul GSM, dan bahawa kad SIM dapat mengirim dan menerima mesej SMS.

Sambungkan bekalan kuasa 12V DC ke 12V IN dan mana-mana terminal 0V. Setelah dihidupkan, LED merah pada Papan PC akan menyala. Dalam masa lebih kurang satu minit, modul GSM seharusnya tersambung ke rangkaian telefon bimbit. LED merah akan mati, dan LED merah pada modul GSM akan berkelip dengan cepat.

Setelah tahap ini tercapai, unit ini siap dikonfigurasi.

Sambungan Input

Input digital berfungsi pada 12V. Untuk menghidupkan input, 12V perlu digunakan pada input. Melepaskan 12V akan mematikan input.

Sambungan Keluaran

Setiap output terdiri daripada kenalan pertukaran. Sambungkan setiap kenalan seperti yang diperlukan.

Langkah 15: Persediaan Awal

Persediaan Awal
Persediaan Awal

Persiapan awal unit harus dilakukan untuk memastikan semua parameter ditetapkan ke default kilang, dan kad SIM dikonfigurasi untuk menerima informasi pengguna dalam format yang benar.

Oleh kerana semua arahan berdasarkan SMS, anda memerlukan telefon lain untuk melakukan penyiapan.

Untuk persediaan awal, anda perlu berada di unit.

Tetapkan nombor telefon PENGGUNA MASTER

Oleh kerana hanya PENGGUNA MASTER yang dapat mengkonfigurasi unit, langkah ini mesti dilakukan terlebih dahulu.

  • Unit mesti dihidupkan.
  • Tekan dan lepaskan butang Reset, dan tunggu LED merah pada Papan PC mati.
  • LED NET pada modul GSM akan berkelip dengan cepat.
  • Unit ini kini bersedia untuk menerima perintah persediaan awal. Perkara ini mesti dilakukan dalam masa 10 minit.
  • Hantarkan mesej SMS yang mengandungi MASTER, keterangan ke nombor telefon unit.
  • Sekiranya diterima, LED hijau pada Papan PC akan berkelip dua kali.
  • PENGGUNA MASTER kini telah diprogramkan.

Kembalikan unit ke Kilang Lalai

Setelah PENGGUNA MASTER diprogramkan, tetapan unit mesti ditetapkan ke lalai kilang.

  • Hantar mesej SMS dengan CLEARALL ke nombor telefon unit.
  • Sekiranya diterima, LED hijau dan merah pada Papan PC akan berkelip secara bergantian sesaat. Unit telah dipulihkan dengan tetapan lalai kilang.
  • Semua tetapan telah dikembalikan ke lalai kilang.
  • Tekan dan lepaskan butang Reset untuk menghidupkan semula unit.

Memformat Kad SIM

Langkah terakhir adalah menghapus semua maklumat yang tersimpan pada kad SIM, dan mengkonfigurasinya untuk digunakan di unit ini.

  • Tekan dan lepaskan butang Reset, dan tunggu LED merah pada Papan PC mati.
  • LED NET pada modul GSM akan berkelip dengan cepat.
  • Unit ini kini bersedia untuk menerima perintah persediaan awal. Perkara ini mesti dilakukan dalam masa 10 minit.
  • Hantar mesej SMS dengan hanya ERASESIM ke nombor telefon unit.
  • Sekiranya diterima, LED hijau pada Papan PC akan berkedip kali ganda.

Unit ini kini telah dikonfigurasi, dan siap digunakan.

Langkah 16: Perintah SMS

Perintah SMS
Perintah SMS

Terdapat tiga jenis perintah yang digunakan oleh unit. Semua arahan dihantar melalui SMS, dan semuanya dalam format berikut:

PERINTAH,,,,,

  • Semua arahan, kecuali arahan NORMAL USER adalah peka huruf besar kecil.
  • Parameter tidak peka huruf besar kecil.

Perintah Persediaan Awal

MASTER, nama

Nombor telefon pengirim SMS digunakan sebagai nombor telefon PENGGUNA MASTER. Penerangan untuk unit boleh ditambah di sini.

KOSONGKAN SEMUA

Tetapkan semula unit ke lalai kilang

CLEARSIM

Padamkan semua data dari kad SIM

LETAKKAN

Nyalakan semula unit

PENGGUNA MASTER Perintah untuk mengkonfigurasi unit

OUTMODE, c, m, t CATATAN! ! ! TIDAK BOLEH DILAKSANAKAN

Tetapkan saluran tertentu untuk mempunyai output PULSED, TIMED atau LATCHING. t adalah jangka masa dalam beberapa minit untuk output TIMED

PULSE, cccc

Tetapkan saluran tertentu ke output PULSED. Sekiranya tidak ditetapkan, saluran akan ditetapkan sebagai keluaran LATCHING.

PULSETIME, tMenetapkan jangka masa output berdenyut dalam beberapa saat (0.. 10s)

INPUTON, cccc

Tetapkan saluran yang mesti dicetuskan, dan hantar mesej SMS apabila keadaan berubah dari MATI ke AKTIF

INPUTOFF, cccc

Tetapkan saluran yang mesti dicetuskan, dan hantar mesej SMS apabila keadaan berubah dari AKTIF ke MATI

INTIME, c, t

Menetapkan masa kelewatan input untuk mengesan perubahan status dalam beberapa saat

INTEXT, ch, name, on, off

Tetapkan nama setiap saluran input, pada teks dan teks luar

OUTTEXT, ch, name, on, off

Tetapkan nama setiap saluran output, pada teks dan teks yang tidak aktif

Tambahkan, lokasi, nombor, Calloutput, SMSoutput, input

Tambahkan pengguna ke kad SIM di 'lokasi' memori, dengan saluran output dan input diberikan kepada pengguna

Del, lokasi

Padamkan pengguna dari 'lokasi' memori kad SIM

Nama Saluran

Akan mengeluarkan output dengan nama ChannelName

ChannelName, onText, atau ChannelName, offText

Akan menghidupkan / mematikan output dengan nama ChannelName, dan onText / offText

Perintah Pengguna Biasa untuk mengawal unit

???? Meminta kemas kini status I / O. Status SMS akan dihantar kepada pemula.

Nama Saluran

Akan mengeluarkan output dengan nama ChannelName

ChannelName, onText

Akan menghidupkan output dengan nama ChannelName, dan teks status onText

ChannelName, offText Akan mematikan output dengan nama ChannelName, dan teks status offText

Untuk keterangan lebih terperinci mengenai perintah, sila lihat dokumen PDF yang dilampirkan.

Disyorkan: