Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Pelacakan GPS Instan untuk Arduino MKR GSM 1400 melalui SMS

Komponen dan Perlengkapan

Tentang Proyek Ini

Catatan: Tutorial ini mungkin sudah ketinggalan zaman, silakan pergi disini untuk versi yang lebih terkini.

Tujuan proyek ini adalah untuk menunjukkan cara menggunakan pelokalan seluler dari Arduino MKR GSM 1400. Untuk melakukan ini, kami mengimplementasikan aplikasi sederhana yang memungkinkan Anda untuk mencoba lintang dan bujur MKR GSM saat SMS dengan huruf pemeriksaan keamanan diterima. Nomor pengirim diambil dari SMS yang diterima dan balasan dibuat dengan tautan Google Maps yang tepat yang dilengkapi dengan koordinat yang diberikan oleh layanan pelokalan yang disediakan oleh modul u-blox.

Apa yang Anda Butuhkan

Proyek ini didasarkan pada Arduino MKR GSM 1400, antena, paket baterai LiPo, ponsel, dan satu SIM data.

Pengaturan Perangkat Keras

Proyek ini tidak membutuhkan sesuatu yang khusus. Hubungkan antena ke papan, masukkan kartu SIM dan hubungkan baterai LiPo ke konektor JST.

Baterai LiPo opsional, tetapi memungkinkan untuk mengatasi puncak arus yang mungkin diperlukan modul GSM dalam kondisi khusus cakupan buruk.

Pelacakan GPS Instan untuk Arduino MKR GSM 1400 melalui SMS

Cara Kerja

Proyek ini menggunakan pustaka MKRGSM untuk mengelola pesan SMS dan georeferensi berbasis sel.

Saat SMS diterima, isi diperiksa untuk mengetahui apakah berisi huruf “L”. Hanya jika demikian, sketsa melanjutkan dengan pelokalan dan transmisi SMS. Dengan solusi ini, nomor apa pun dapat meminta lokasi sistem, tetapi hanya mereka yang tahu kata sandi (huruf “rahasia”) yang akan mendapatkan balasan. Ini adalah baris yang melakukan pemeriksaan if (c != 76) dan 76 adalah kode ASCII dari “L”. Anda dapat mengubah nilainya untuk mengubah huruf yang dikenali.

Modul GSM tidak memiliki penerima GPS, tetapi produsen memiliki database lokasi setiap sel dari jaringan GSM dan oleh karena itu menyediakan koordinat untuk setiap ID sel yang disediakan. Sistem ini cukup akurat di area perkotaan, di mana setiap sel mencakup area kecil. Di area pedesaan cakupan setiap sel jauh lebih besar dan lokasi yang disediakan dengan pendekatan yang lebih kasar.

Untuk membuat tautan untuk Google Maps kami menggunakan URL standar tempat kami hanya menyatukan nilai Long dan Lat yang tepat di akhir. URL ini terlihat seperti “https://www.google.com/maps/place/<LAT>, <LONG>”. Posisi yang ditampilkan pada peta akan menjadi tempat di mana sel secara fisik berada; papan kami dalam jangkauan yang dicakupi oleh sel.

Sketsa

Berikut deskripsi rinci dari Sketsa; bagian kode pertama digunakan untuk menyertakan pustaka yang diperlukan oleh aplikasi.

MKRGSM menyertakan semua fungsi koneksi GSM, pelokalan dan manajemen SMS, ini tersedia melalui objek GSMClient, GPRS, GSM dan GSMLocation, API manajemen SMS tersedia melalui objek GSM_SMS, header ArduinoLowPower mengimpor API yang memungkinkan manajemen daya rendah modul Papan.

Jika Anda mengunduh kode dari Web Editor, Anda akan menemukan file arduino_secrets.h yang menyertakan data sensitif seperti PIN, APN, user dan password. Di web editor, Anda harus mengisi data sensitif di Tab Secrets.

// include the GSM library #include <MKRGSM.h> #include "ArduinoLowPower.h" char PINNUMBER [] = SECRET_PINNUMBER; char GPRS_APN[] = SECRET_GPRS_APN; char GPRS_LOGIN [] =SECRET_GPRS_LOGIN; char GPRS_PASSWORD[] =SECRET_GPRS_PASSWORD; // initialize the library instances GPRS gprs; GSM gsmAccess; GSM_SMS sms; GSMLocation location; 

Fungsi measureLocation() meminta modul untuk mencoba koordinat melalui jaringan seluler, jika koordinat baru tersedia itu menetapkannya ke variabel global sebaliknya meminta lagi selama 45 detik, jika tidak ada yang tersedia ukuran yang mematuhi batasan akurasi itu mengembalikan yang terbaik terakhir

//global variable used for location management String GSMlatitude = "0.000000"; String GSMlongitude = "0.000000"; // This function use the location's APIs to get the device coordinates and update the globa variable if all the requirement are satisfied void measureLocation() { unsigned long timeout = millis(); while (millis() - timeout < 45000) { if (location.available() && location.accuracy() < 300 && location.accuracy() != 0) { GSMlatitude = String(location.latitude(), 6); GSMlongitude = String(location.longitude(), 6); break; } } } 

Fungsi connectNetwork() menggunakan API smAccess.begin dan gprs.attachGPRS untuk menghubungkan papan ke jaringan data; kredensial data yang digunakan pin, apn, user dan pass yang ditetapkan oleh deklarasi di arduino_secrets.h.

// The connectNetwork() function is used for the board data connection void connectNetwork() { bool status = false; //set global AT command timeout this allow to recover from uart communication // freeze between samd module and ublox module. gprs.setTimeout(100000); gsmAccess.setTimeout(100000); // Start GSM connection while (status == false) { if ((gsmAccess.begin(PINNUMBER) == GSM_READY) & (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) == GPRS_READY)) { status = true; } else { delay(1000); } } } The setup section allow to initialize all the object used by the sketch, is called the connectionNetwork() function to establish the data connection and the localization structure beginning. //code section used to initialize data connection and localization object void setup() { connectNetwork(); location.begin(); } 

Bagian kode terakhir adalah fungsi loop di mana manajemen SMS dan Pengukuran Lokasi diimplementasikan, setiap kali SMS baru tersedia papan merespons pengirim dengan SMS yang berisi koordinat papan, untuk mengurangi konsumsi papan mematikan modul dan masuk ke tidur dalam selama 60 detik.

void loop() { int c; String response; String messager = ""; measureLocation(); unsigned long timeout = millis(); while (millis() - timeout < 5000) { if (sms.available()) { //check for SMS available char senderNumber[20] = {"0"}; sms.remoteNumber(senderNumber, 20); //Get remote number int c = sms.read(); if (c != 76) { sms.flush(); break; } //concatenate the string message to be sended to the remote number String txtMsg = "https://www.google.com/maps/place/" + GSMlatitude + "," + GSMlongitude; // send the message sms.beginSMS(senderNumber); sms.print(txtMsg); sms.endSMS(); break; } } //Turn off the GSM module to gain the lowest power consumption from the board while are sleeping gsmAccess.shutdown(); LowPower.sleep(60000); //enable the low power for 60 seconds and after retry the board connectNetwork(); //turn on the module and reconect to data network } 

Cara Menggunakannya

Siapkan perangkat keras seperti yang dijelaskan di atas, sesuaikan sketsa dengan kredensial akses Anda, muat sketsa ke papan, dan tunggu hingga koneksi terbentuk dengan jaringan GSM. Ini mungkin memakan waktu 30 detik.

Setelah koneksi terbentuk, cukup kirim SMS ke nomor SIM MKRGSM dengan teks “L”: ini akan memulai proses pelokalan dan papan akan merespons dengan SMS yang berisi tautan Google Maps dengan posisi yang diminta.

Kode

Arduino

Proses manufaktur

  1. Mengapa Desain Secara Sedikit Lebih Besar Dapat Mempercepat Inovasi dan Mengurangi Risiko
  2. Integrasikan Stasiun Cuaca Anda dengan CWOP: Panduan Praktis
  3. Menguasai Papan PSoC 6 Pioneer dengan IoT Add-On Shield: Panduan untuk Pengembang
  4. Cara Menerapkan Kode QR di CMMS Anda: Panduan Langkah demi Langkah
  5. Mengapa Set Bagasi Carbon Fiber adalah Upgrade Terbaik untuk Perjalanan
  6. Maksimalkan ROI Investasi IoT Anda: Panduan Praktis
  7. Temukan Bagaimana Techman Robot Mengotomatisasi Produksi: Webinar Cobot & Sistem Visi Lanjutan
  8. 7 Strategi Terbukti Mengurangi Biaya Produksi PCB
  9. Tingkatkan Operasi Pertanian dengan Pemeliharaan Proaktif
  10. Memaksimalkan Nilai: Strategi untuk Menjual atau Memanfaatkan Ulang Alat Berat Bekas