Isi kandungan:

Penjejak GPS Realtime buatan sendiri (SIM800L, Ublox NEO-6M, Arduino): 8 Langkah
Penjejak GPS Realtime buatan sendiri (SIM800L, Ublox NEO-6M, Arduino): 8 Langkah

Video: Penjejak GPS Realtime buatan sendiri (SIM800L, Ublox NEO-6M, Arduino): 8 Langkah

Video: Penjejak GPS Realtime buatan sendiri (SIM800L, Ublox NEO-6M, Arduino): 8 Langkah
Video: Membuat Alat GPS Pelacak Lokasi Ukuran Mini Arduino - PCBWAY.COM 2024, November
Anonim
Penjejak GPS Realtime buatan sendiri (SIM800L, Ublox NEO-6M, Arduino)
Penjejak GPS Realtime buatan sendiri (SIM800L, Ublox NEO-6M, Arduino)

Oleh itu, anda mempunyai modul GSM seperti saya? Penjejak GPS juga?

Kami berfikir sama!

Dalam arahan ini, saya akan cuba membimbing anda bagaimana mencapai matlamat anda dari perspektif pemula.

Oleh kerana saya tidak mempunyai pengetahuan kejuruteraan elektrik sebelumnya (sejujurnya, projek ini tidak memerlukannya, tetapi tidak), dan tidak tahu bagaimana membuat peranti yang mengepam data secara real-time ke pelayan web, saya menghadapi banyak masalah. Namun, saya akhirnya berjaya menyelesaikan masalah.

Oleh itu, dalam tutorial ini, saya ingin menekankan kesalahan yang dapat dilakukan oleh pemula, dan membina projek dengan sewajarnya.

Ingat: Sentiasa berhati-hati semasa anda bekerja dengan elektrik!

CATATAN: Saya tidak profesional. Kodnya mungkin tidak cukup canggih untuk semua keperluan anda. Projek ini bertujuan untuk menjadi "projek hobi", tetapi! ia berfungsi untuk saya. Dan jika ia berfungsi untuk saya, ia juga akan berfungsi untuk anda!

Langkah 1: Prasyarat

Prasyarat
Prasyarat
Prasyarat
Prasyarat
Prasyarat
Prasyarat

MODUL GSM - SIM800L

  • Cukup kecil, senang digunakan
  • Berkeupayaan menggunakan internet mudah alih (GPRS)
  • Murah

MODUL GPS - Ublox NEO6M

  • Juga kecil
  • Menangani tugasnya dengan baik

Pengawal mikro - boleh jadi apa sahaja - anda boleh menggunakan Arduino Uno atau Nano yang terkenal untuk mengosongkan ruang

Bateri - Saya menggunakan sel 18650 sebagai sumber utama dan satu-satunya sumber kuasa (Nominal 3.7V)

Pemegang bateri - mengapa? - kerana menyolder bateri 18650 cukup berbahaya kerana panas.

DC-DC Boost Converter Step Up Module 5V - Mesti ada, kerana Arduino yang saya gunakan memerlukan 5V

Alat, barang asas yang berguna:

Kawat, besi pematerian, papan roti untuk diuji

Langkah 2: Konsep Utama

Konsep Utama
Konsep Utama

Konsep utama sistem ini adalah seperti berikut:

Ia terdiri daripada 3 bahagian:

  1. Peranti - yang mempunyai GPS-Koordinat yang betul dan dapat menyambung ke pelayan dari jauh dan menghantar data kepadanya
  2. Pelayan laman web - yang dapat menerima data masuk - menyimpannya - dan melayani pelanggan lain
  3. Platform - di mana kita dapat melihat koordinat - Sebaiknya sekarang aplikasi mudah alih, atau laman web

Langkah 3: Modul SIM800L

Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L

Saya mempunyai masa yang sukar dengan modul.

Saya ingin memulakan dengan beberapa ciri dan rujukan.

Menurut lembaran data:

  • Ia beroperasi antara 3.4V - 4.4V
  • Ia boleh menghantar SMS, membuat panggilan suara ke telefon lain, dan juga menyambung ke Internet!
  • Kita boleh berkomunikasi dengannya melalui perintah AT!
  • Ia boleh menggunakan hingga 2A pada waktu puncak! Catatan: anda mungkin tidak dapat mengukurnya dengan multimeter - kerana kadar persampelannya rendah

Pengalaman saya ialah SIM800L di bawah 3.8V tidak berfungsi.

Untuk maklumat lebih lanjut, lawati: lembar data

Oleh itu, tugas anda adalah menyediakan sekurang-kurangnya 3.8V ke modul (idealnya 4V), bekalan kuasa yang menghasilkan sekurang-kurangnya 2A.

Sebelum menggunakan modul pada peranti akhir, saya sarankan anda menjalin komunikasi dengan SIM800L dan komputer anda untuk memastikan peranti anda berfungsi dengan baik.

Perkara pertama yang pertama, pasangkan SIM Card seperti dalam gambar di atas.

Untuk menyambungkannya dengan PC anda, anda boleh menggunakan penukar USB ke TTL atau Arduino.

Sekarang, saya pergi dengan Arduino.

Sambungkan SIM800L VCC dan GND ke terminal sumber kuasa anda.

Sambungkan TX ke pin digital Arduino ke-10, RX ke pin digital ke-11 arduino.

Muat turun kod, saya pautkan dalam langkah ini.

Dengan kod tersebut, anda boleh menghantar arahan dan mengembalikannya ke Serial Monitor anda.

Beberapa arahan mudah:

AT Mengembalikan OK, jika sambungan OK.

ATD + 123456789; Hubungi nombor telefon yang diberikan. Catatan: Jangan lupa mengakhirinya dengan titik koma.

AT + CPIN? Mengembalikan status Kad SIM (dikunci atau tidak)

Sekiranya anda ingin menghantar SMS, anda perlu mengakhiri input anda dengan watak khas, ia boleh dilakukan dengan simbol '$'.

Untuk arahan menarik yang lebih lama, saya cadangkan anda membaca ini.

Terdapat pelbagai perintah, membiasakannya, ia sangat berguna.

Terdapat LED status merah yang memberitahu anda dalam operasi SIM800L.

64 MS ON - 800MS OFF - SIM800L tidak didaftarkan ke rangkaian.

64 MS ON - 3000MS OFF - SIM800L didaftarkan ke rangkaian.

64 MS ON - 300MS OFF - SIM800l berada dalam mod GPRS

Sekiranya SIM800L terus dimulakan semula setelah kira-kira 8-10 berkelip, ia mungkin disebabkan oleh kekurangan bekalan kuasa yang cekap.

Sekiranya anda tidak mendapat OK selepas AT, periksa pendawaian! Sekiranya anda mempunyai multimeter, periksa kesinambungan wayar.

Periksa sambungan wayar dan pateri! Modul hanya akan berfungsi apabila berkelip.

Langkah 4: Ublox Neo 6m

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

Beberapa ciri

  • Voltan maksimum: 3.6V - Saya menghidupkannya dengan pin 3.3V Arduino
  • Cabutan semasa maksimum ialah 67mA - jadi anda boleh menggunakannya dari arduino
  • Julat suhu: -40-85 Celsius (saya rasa ia sesuai dengan anda)

Unit yang saya pesan dilengkapi dengan antena yang terdapat pada gambar, saya pasangkannya pada slot yang sesuai.

Peranti apabila mempunyai isyarat, berkelip dengan LED biru.

Pertama, periksa bagaimana GPS berfungsi di sini, jika anda tidak tahu.

Apabila peranti dihidupkan, dan menemui 3 satelit, ia menghantar banyak nilai yang dipisahkan koma ke Arduino seperti di atas.

Untuk menolong tugas kita, kita boleh menggunakan beberapa perpustakaan luaran untuk menguraikan data ini agar lebih mudah dibaca oleh manusia.

Anda boleh menggunakan perpustakaan TinyGps atau perpustakaan NeoGPS. Saya menggunakan yang kedua kerana itu ringan.

Untuk ujian, anda mesti menyambungkan pin kuasa ke arduino 3.3V dan GND.

Muat turun kod ini, dan gunakan dengan GPS anda. Pin Digital RX 10, pin Digital TX 11

Catatan: Jangan lupa menggunakan modul di luar rumah, lebih baik jika tidak ada awan.

Selepas setengah minit, peranti akan berkelip dan mengeluarkan koordinat GPS anda!:)

Sekali, anda tahu bahawa modul SIM800L dan GPS anda berfungsi dengan baik, anda boleh pergi ke langkah seterusnya.

Langkah 5: Litar

Litar
Litar

Litar seperti di gambar.

Jadi, bateri 3.4V - 4.2V 18650 adalah sumber kuasa utama. Sim800L mendapat tenaga langsung daripadanya. Terdapat kapasitor di antara mereka secara paralel untuk meningkatkan kestabilan litar.

Apabila anda memilih kapasitor, anda harus memilih capactior ESR rendah.

Satu penukar langkah 5V meningkatkan voltan bateri menjadi 5V (diperlukan kerana Arduino berfungsi dengan 5V).

Rel kuasa 5V disambungkan ke Nano di sini. Sim800L dan Neo6m dihubungkan dengan Nano seperti pada gambar. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 disambungkan ke RST, jadi kami dapat melakukan boot semula sistem secara teratur (kecuali SIM800L). CATATAN: Kaedah reboot ini mungkin bukan amalan terbaik)

Dan terakhir, dua LED disambungkan ke NANO, jadi kami dapat memberitahu pengguna, jika ada kesalahan yang berlaku.

Langkah 6: Kod

Kod tersebut dilampirkan pada Instructables atau lihat github.

Anda boleh mengubahnya agar berfungsi dengan betul untuk keperluan anda, atau anda boleh menggunakan kod orang lain jika anda mahu.

tungguUntilResponse (); fungsi pembantu diambil dari kodnya. Periksa kerjanya, dan kod juga!

Secara ringkas, dalam fungsi persediaan, kita perlu mengaktifkan sambungan GPRS modul SIM800L kita. Kami tahu jika berjaya sekiranya LED berkelip dengan cepat. (persediaanGPRSConnection ())

Dalam fungsi gelung - setiap 15 saat fungsi sendData () dipanggil - yang mempunyai permintaan

Saya menggunakan rentetan pertanyaan untuk mendorong data ke pelayan web dalam format ini:

ip adress / file.php? key = nilai & kunci = nilai mis.

Sekiranya terdapat kesilapan, LED yang bersesuaian akan menyala. (SIM, GPS)

Langkah 7: Pelayan Web

Pelayan laman web
Pelayan laman web

Untuk kegunaan kami, pelayan web ringan yang sederhana sudah cukup.

Terdapat beberapa pilihan yang boleh anda pilih:

  1. Anda boleh menggunakan pelayan jauh syarikat, yang mungkin perlu anda bayar dengan kerap.
  2. Anda boleh menggunakan komputer anda sendiri. Saya hanya mencadangkannya untuk ujian, ia tidak berkesan untuk menjalankannya 24/7, kerana pembaziran tenaga, masalah keselamatan.
  3. Anda boleh menggunakan komputer kecil, seperti Raspberry PI. Ringan, murah, tidak menggunakan banyak tenaga.

Saya mencuba pilihan ke-2 dan ke-3, mereka berjaya. Oleh itu, tujuan utamanya bukanlah pelayan arahan ini, tetapi saya memberi petunjuk kepada anda.

Sekiranya anda menggunakan PC, anda mungkin menggunakan Windows. Sekiranya saya adalah anda, saya akan memasang pelayan Apache atau XAMPP ke atasnya.

XAMPP sudah memiliki PHP di dalamnya, selain itu ia juga dilengkapi dengan HTML, Perl, dan Sistem Pengurusan Pangkalan Data. Dengan PHP, anda boleh membuat pelayan dinamik. Sekiranya anda ingin menggunakan pelayan tempatan yang baru anda buat dari mana saja di dunia, anda perlu memberikan IP statik ke PC anda dan melakukan beberapa portforwarding. Tutorial berguna untuk IP statik:

Dan keseluruhan perkara yang penting:

Sekiranya anda mempunyai Raspberry, adalah amalan yang baik untuk menggunakannya. Anda dapat membiasakan diri dengan perintah Linux, dan menjalankan pelayan anda sendiri 24/7.

OSnya adalah Raspbian Jessie dengan persediaan tanpa kepala (tanpa papan kekunci, monitor) - Saya mengendalikannya dengan komputer dengan sambungan SSH.

Saya menggunakan Putty untuk log masuk ke Raspberry saya. Jangan lupa menukar kata laluan akaun anda, sehingga orang lain tidak dapat masuk ke dalam anda Pi. Lalai adalah: pi, passw: raspberry.

Saya memasang pelayan web lighttpd dengan sqlite3. Tutorial yang baik dijumpai di sini:

Saya menggunakan PHP terutamanya dalam kod pelayan. Dengan PHP anda dapat menerima data, membaca / menulis pangkalan data - menyandikan pertanyaan ke dalam format json, dll. … Tutorial ini akan banyak membantu anda, bagaimana menguruskan pangkalan data anda dengan PHP.

Anda juga dapat melihat kod saya di github, di folder server_files.

Dan tentu saja, anda harus mengaktifkan portforwarding ke Pi anda pada penghala anda, jika anda ingin mengaksesnya dari jauh.

Langkah 8: Pengakhiran / Pengalaman

Kandang masih belum dibuat.

Pengalaman saya ialah, sistem ini tidak terlalu teruk. Tetapi ada peningkatan kestabilan sedang menunggu.

Sekiranya pelacak tidak berfungsi dengan kod yang saya lampirkan, jangan risau. Cuba pastikan SIM800L dan NEO 6M berfungsi sebagaimana mestinya. Anda boleh mengubah kod saya dengan bebas, atau mencari yang lebih baik. Saya hanya berharap, bahawa saya dapat menunjukkan kepada anda satu contoh, bagaimana anda dapat menyelesaikan projek ini.

Saya menerima sebarang nasihat, pembetulan dari komen. Jangan ragu untuk bertanya.

Disyorkan: