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

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Komponen dan Perlengkapan

Alat dan Mesin yang Diperlukan

Aplikasi dan Layanan Online

Tentang Proyek Ini

Proyek ini dimulai sebagai ide sederhana "pelacak GPS" dan berubah menjadi "pelacak GPS multifungsi". Sebagai proyek pertama saya, kurva pembelajaran cukup tajam, dan saya sangat terbuka untuk masukan, masukan, dan perbaikan pada desain! :)

Pelacak ini dimaksudkan untuk ditempatkan dalam mobil saya dan memiliki fitur berikut:

Selama proyek ini, saya dengan cepat menyadari betapa "terbatasnya" Arduino in terms of memori yang tersedia dan saya harus belajar teknik untuk mengurangi overhead dan membuat kode yang efisien (setidaknya saya telah mencoba). Saya juga menggunakan library ringan agar semuanya muat pada chip dan RAM yang tersedia.

Komponen yang digunakan adalah sebagai berikut (seperti dalam daftar komponen):

Pertama kita perlu menginstal library yang diperlukan. Saya menggunakan library berikut untuk proyek ini:

Mengapa tidak menggunakan library yang tersedia untuk Arduino oleh thinger.io?

Meskipun library yang disediakan oleh thinger.io sangat mudah digunakan dan akan menyederhanakan hal-hal secara signifikan, tidak kalah dengan yang sudah terintegrasi di IDE, ini mengonsumsi hampir 80% penyimpanan pada Arduino Leo, sehingga hampir tidak ada ruang yang tersisa untuk kode yang tersisa. Jadi ini terlalu besar untuk proyek ini dan kita akan harus melakukannya dengan cara yang sulit. Untuk berkomunikasi dengan cloud thinger.io kita akan menggunakan HTTP POST requests.

Perintah SMS

Perintah yang tersedia pada SMS adalah sebagai berikut (semua huruf kapital). Ini adalah perintah yang didukung dalam kode yang disediakan; Anda dapat menambahkan / menghapus perintah untuk proyek / kebutuhan Anda sendiri:

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Menyiapkan NeoGPS

Kami menggunakan library NeoGPS untuk kinerja dan penggunaan sumber daya dibandingkan alternatif seperti TinyGPS++. Ini mengonsumsi RAM yang sangat sedikit, dan ini diperlukan; jika tidak kita akan mendapatkan peringatan untuk memori rendah dan stabilitas.

Setelah library terinstal, modifikasi file GPSPort.h di jalur instalasi library (contoh yang diberikan adalah untuk OS X - untuk Windows Anda akan menemukan library di lokasi yang berbeda)

Ganti semua konten dalam GPSPort.h dengan yang berikut:

#ifndef GPSport_h #define GPSport_h #define gpsPort Serial1 #define GPS_PORT_NAME "Serial1" #define DEBUG_PORT Serial #endif 
Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

File ini berisi definisi yang digunakan oleh library NeoGPS. Jika Anda menggunakan papan Arduino yang berbeda, ini adalah tempat Anda menentukan baris serial ke penerima GPS, misalnya "Serial2", "Serial3" untuk Arduino MEGA.

Catatan tentang akurasi

Harus dicatat bahwa GPS bukan cara yang paling akurat untuk mengukur dan mengakumulasi jarak, karena posisi akan beregring sedikit bahkan saat diam. Anda dapat menguji ini dengan berdiri diam di tempat yang sama dan amati bahwa koordinat GPS akan berbeda untuk setiap pembacaan. Untuk aplikasi ini, akurasi kurang penting dan oleh karena itu deviasi kecil dapat diterima.

Saya telah mencoba untuk mengakui deviasi kecil dalam koordinat dan perangkat lunak hanya menambahkan jarak untuk gerakan di atas 10m (semua gerakan di bawah 10m dianggap diam) selama 15 detik.

Ingat juga bahwa jarak dihitung dalam garis lurus, sedangkan jarak aktual yang ditempuh mobil tergantung pada jalan, belokan, dll. Saya mengatur tingkat sampling menjadi 15 detik, Anda dapat menurunkannya jika ingin akurasi yang lebih tinggi.

Menyiapkan PetitFS

Library ini adalah library super-ringan untuk read/write ke kartu SD dengan format FAT. Membutuhkan waktu bagi saya untuk memahami cara kerjanya, karena dokumentasi hampir tidak ada dan beberapa bahkan salah / ketinggalan zaman. Kode contoh library yang disediakan bahkan tidak akan dikompilasi. Ini datang dengan banyak pembatasan (berlawanan dengan library "normal" seperti library SD Arduino atau SDFat):

Mengapa menggunakan library kecil dan terbatas dengan banyak kekhususan?

Ukuran, dasarnya. Saya telah mencoba beberapa library termasuk library SD Arduino, SDFat dan juga fat16lib. Semuanya terlalu besar untuk membuat semua kode muat pada chip, jadi untuk tidak menghapus fungsionalitas saya menggunakan library ini (library SD Arduino standar mengambil sekitar 12% lebih banyak ruang). Meskipun semua kekhususan dan keterbatasan, ini masih menyediakan apa yang kita butuhkan untuk aplikasi ini: read dan write sederhana dari satu nilai untuk penyimpanan.

Jika Anda tidak menggunakan semua kode dan ada cukup ruang untuk menyisipkan sedikit tambahan, jauh lebih mudah untuk bekerja dengan library seperti library SD standar.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Buka file pffArduino.h dari folder library PetitFS. Ubah SD_CS_PIN menjadi 10. Ini adalah pin SS yang digunakan untuk berkomunikasi dengan kartu SD dengan SPI.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Buka file pffconf.h dari folder library. Nonaktifkan opsi berikut dengan mengubah nilai yang diatur dari 1 menjadi 0:

Dengan menonaktifkan opsi ini, program yang dikompilasi mengambil lebih sedikit ruang - yang diperlukan; Skrip akhir mengambil sekitar 96% penyimpanan.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Pada impor pertama library Anda akan mendapatkan error kompilasi yang *dapat* diabaikan (kompilasi kedua error tidak muncul - masih tidak mengerti mengapa). Namun, jika Anda ingin memperbaiki ini (akan muncul kembali setiap kali Anda memulai Arduino IDE -> kompilasi) tambahkan parameter return fungsi yang hilang "FRESULT" seperti yang ditunjukkan dalam screenshot di atas. Ini ada dalam file pff.cpp di folder library.

Saya telah mencoba sebaik mungkin untuk memahami cara kerja library ini dan meskipun saya telah membuat semuanya bekerja, saya cukup yakin hal-hal dapat ditingkatkan juga. Jika Anda menemukan kesalahan atau perbaikan dalam rutinitas yang saya tulis, silakan berbagi! Saya sangat ingin belajar dan membangun lebih banyak pengalaman.

Siapkan kartu SD

Saya menggunakan kartu Micro SD untuk proyek ini. Karena library tidak dapat membuat file sendiri, penting untuk membuat file "dist.txt" dan "settings.txt" pada kartu sebelum digunakan. Saya merekomendasikan menyalin file "dist.txt" dan "settings.txt" yang dilampirkan dari halaman proyek ini, karena file-file ini sudah memiliki format yang benar dan bekerja (library sangat selektif terhadap format dan konten teks).

Sebelum Anda menempatkan file pada kartu Micro SD pastikan untuk memformat kartu dengan benar (sebagai FAT32). Saya merekomendasikan menggunakan "SD Card Formatter" resmi dari SD Association: https://www.sdcard.org/downloads/formatter/.

Memastikan kartu SD bekerja (read / write ke file dengan benar)

Library PetitFS sangat selektif terhadap file masukan. Jika Anda menyalakan perangkat dan tidak ada output yang ditampilkan di serial monitor (hanya kosong) kemungkinan besar macet di "loop" di mana mencoba membaca file dari kartu tetapi tidak dapat untuk beberapa alasan (fungsi initializeSD()). Saya telah memiliki banyak file teks yang untuk beberapa alasan tidak dapat dibaca, oleh karena itu saya telah menyertakan file teks referensi yang saya gunakan yang bekerja. Tempatkan file referensi ini pada kartu SD dan seharusnya dapat baik membaca maupun menulis dengan benar padanya.

Opsi lain dapat menjadi mengisi file teks dengan angka yang lebih besar dari yang ditulis. Saya belum menguji ini, tetapi karena library tidak dapat memperluas ukuran file sendiri, saya mengasumsikan ini dapat menjadi masalah.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

PetitFS akan menulis seluruh panjang array karakter ke file, sehingga Anda akan melihat spasi kosong di depan angka aktual (kecuali angka cukup besar untuk mengisi array - panjang "array" ditentukan dalam kode). Spasi ini harus dipertahankan saat membuat perubahan pada file - karena PetitFS tidak dapat mengubah ukuran file, dapat menyebabkan masalah jika jumlah karakter berubah.

Setel file "dist.txt" ke "0" jika Anda ingin odometer dimulai dari "0", atau angka lain untuk memudahkan verifikasi bahwa bekerja, misalnya mengirim perintah "GETKM" untuk verifikasi balasan SMS.

Dalam "settings.txt" Anda menetapkan jarak pemicu notifikasi, jarak tempat odometer memicu notifikasi SMS (dalam meter).

Siapkan Papan SIM900

Beberapa hal harus diatur pada papan SIM900 sebelum kita dapat menggunakannya. Untuk detailnya ada sumber daya yang bagus di https://lastminuteengineers.com/sim900-gsm-shield-arduino-tutorial/ untuk pengaturan papan ini.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Sumber daya

Papan Arduino tidak mampu menyediakan daya yang cukup, oleh karena itu kita harus menggunakan sumber daya eksternal. Karena lonjakan dapat menarik hingga 2A pastikan untuk menggunakan sumber daya yang dapat menyediakan setidaknya 2A pada 5V-9V DC; ini menggunakan konektor barrel 5,5mm.

Pemilih sumber daya

Di samping jack DC ada pemilih sumber daya. Untuk menggunakan sumber daya eksternal, geser slider seperti yang ditunjukkan dalam gambar di atas.

Pemilih serial

Atur papan untuk menggunakan Software Serial dengan menyelaraskan jumper seperti yang ditunjukkan di atas.

Trigger perangkat lunak

Alih-alih menekan tombol power secara manual setiap kali, Anda dapat menyalakan/mematikan SIM900 dalam perangkat lunak. Untuk melakukannya jumper bernama R13 harus di-solder. Papan kemudian akan menyala dengan menghubungkan pin #9 SIM900 ke pin #7 Arduino (seperti ditunjukkan dalam skematik).

Jika mempertahankan fungsionalitas "power on manual", fungsi "SIM900power()" dalam kode dapat dihapus.

Hapus kunci PIN SIM card

Pastikan untuk menghapus kunci PIN pada kartu SIM sebelum digunakan. Ini dapat dilakukan dengan memasukkannya ke ponsel reguler dan menghapus kunci PIN dari menu pengaturan yang berlaku.

Ingat juga bahwa modul SIM900 dalam skematik mungkin terlihat berbeda dari papan aktual, namun tata letak pinnya benar yang merupakan bagian terpenting.

Versi firmware SIM900 (Penting!)

Sangat penting untuk memiliki versi firmware yang benar yang dimuat pada chip. Ini karena salah satu perintah untuk dengan benar mengatur header HTTP POST tidak didukung hingga versi B10 firmware. Ini berarti Anda perlu memiliki setidaknya versi B10 atau lebih tinggi agar komunikasi http bekerja. Secara khusus, dengan versi firmware yang lebih rendah tidak akan dapat mengatur "Content-type" dalam header http. Jika content-type tidak diatur ke "application/json" dalam permintaan post, akan ditolak oleh server.

Untuk memeriksa versi firmware Anda gunakan perintah AT berikut:

AT+CGMR 

Chip SIM900 kemudian akan memberikan versi firmware saat ini di konsol output. Masukkan yang berikut di akhir bagian setup() untuk mencetak versi firmware saat startup:

SIM900.println( F("AT+CGMR") ); 

Dalam kasus saya akan menunjukkan ini (sebelum saya memperbarui):

Revision:1137B01SIM900M64_ST_AM 

Ini adalah versi firmware terlama yang mungkin untuk chip ini ("B01"), jadi saya memperbarui ke versi B10: 1137B10SIM900M64_ST. Firmware yang lebih baru juga seharusnya bekerja.

Saya tidak akan membahas cara memperbarui firmware dalam panduan ini, sudah ada panduan yang bagus cara melakukannya: SIM900 firmware update - ACOPTEX (meskipun proses yang cukup menyakitkan).

Saya tidak tahu apakah ini akan menjadi kasus untuk chip lain seperti SIM800, namun, ini merupakan chip yang lebih baru saya katakan lebih mungkin bahwa ini sudah ada di sana.

Penyesuaian Kode

Untuk menyesuaikan kode untuk proyek Anda sendiri beberapa penyesuaian diperlukan:

Penyedia APN

void connectGPRS(){ ... SIM900.println( F("AT+SAPBR=3,1,\"APN\",\"TeleXXX\"") ); delay(1000); updateSIM900(); ... 

Di bawah fungsi connectGPRS() Anda akan menemukan nama APN yang diberikan oleh penyedia jaringan Anda, ditampilkan di atas sebagai "TeleXXX". Ganti ini dengan nama APN Anda sendiri.

AT OK AT+CMGF=1 OK AT+CNMI=1,2,0,0,0 OK AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","TeleXXX" OK AT+SAPBR=1,1 OK AT+SAPBR=2,1 +SAPBR: 1,1,"36.57.240.233" OK 

Di atas: output dari fungsi connectGPRS() saat koneksi berfungsi. Semua perintah harus mengembalikan status "OK".

Zona waktu

#define UTC_OFFSET 1 // set time zone offset, i.e. 1 = UTC+1 

Dalam bagian "define", setel zona waktu sesuai kebutuhan Anda. Kode diatur ke UTC+1.

Notifikasi SMS

Saya telah mengatur notifikasi setiap 4000km untuk mengosongkan tangki tangkapan minyak saya. Saya menyadari kebanyakan orang tidak memiliki tangki tangkapan minyak, notifikasi ini seharusnya diubah menjadi apa pun yang Anda inginkan (atau dinonaktifkan sepenuhnya).

void loop() { ... // sends notification on SMS if the total distance exceeds 4000km if (totalDistance > triggerDistance) { char sms_msg[160]; char distanceTotalMsg[10]; itoa( (totalDistance / 1000) , distanceTotalMsg, 10); sprintf(sms_msg, "Empty catchtank! Current distance: %skm", distanceTotalMsg); textMessage = ""; totalDistance = 0; // sets the default phone number to trigger notification number = DEFAULT_NUMBER; sendSMS(sms_msg); } ... } 

Di atas: bagian kode yang memicu notifikasi (di dalam loop() utama).

Comment out / hapus bagian ini jika Anda tidak ingin notifikasi yang dipicu. Atau ubah teks menjadi sesuatu yang berguna.

Notifikasi dipicu saat "odometer" (jarak yang terakumulasi) mencapai jarak yang dikonfigurasi dalam file "settings.txt".

Nomor telepon default

Ini adalah nomor telepon tempat notifikasi yang dipicu dikirim (karena notifikasi tidak memiliki nomor "pengirim" untuk dibalas)

// phone number for triggered notification #define DEFAULT_NUMBER "+4712345678" 

Tunggu koneksi serial

Sebaiknya juga untuk mencoment baris berikut dalam kode. Ini membuat papan Arduino menunggu koneksi serial menjadi aktif, misalnya serial monitor untuk debugging. Dengan cara ini Anda tidak akan melewatkan pesan debugging apa pun di awal kode sebelum baris serial menjadi aktif.

Ingat untuk menghapus / mencoment baris sebelum menyala Arduino dari sumber daya eksternal, karena sebaliknya akan berhenti dalam loop tak terbatas sampai terhubung ke PC.

 // while (!Serial); // wait for serial port to connect - for ATmega32u4 (Leonardo) 

Integrasi Thinger.io

Saya tidak akan membahas detail cara menyiapkan thinger.io karena cukup mudah; Anda harus membuat akun dan "bucket" untuk menerima data melalui situs web mereka, dan "device" yang akan kita hubungkan. "Bucket" adalah database untuk menerima data. "Device" adalah titik koneksi untuk kode kita tempat kita memutuskan apa yang akan dilakukan dengan data (dalam kasus kita, mengisi database "bucket").

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Buat "bucket" seperti yang ditunjukkan di atas dengan nama dan deskripsi Anda sendiri.

Sekarang, lanjutkan dan buat "HTTP Device" seperti yang dijelaskan dalam dokumentasi resmi: https://docs.thinger.io/quick-sart/devices/http-devices.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Gunakan nama device yang pendek. Karena nama device adalah bagian dari algoritma yang menghasilkan kunci otorisasi saya menemukan bahwa nama device yang lebih panjang menghasilkan kunci otorisasi yang lebih panjang juga. Masalahnya? Kunci otorisasi dengan cepat menjadi lebih panjang dari buffer 256 karakter yang digunakan untuk mengirim string dari Arduino. Kemungkinan ada beberapa cara yang lebih baik untuk memperbaiki ini, tetapi saya menemukan pendekatan termudah adalah menjaga nama device pendek dan menghindari masalahnya.

Di bagian callback > settings device pastikan pengaturan "write bucket" menunjuk ke bucket yang telah dibuat sebelumnya. Ini memberitahu "device" untuk menulis data masuk ke database kita.

Di bagian callback > overview device catat method URL dan authorization header (string panjang tanpa kata kunci "Bearer").

Untuk mengirim data ke thinger.io kita menggunakan "authorization URL" dalam permintaan HTTP POST. Anda kemudian harus mengganti URL dan kunci otorisasi dalam kode dengan yang Anda miliki.

Dalam fungsi postDataThinger() Anda akan menemukan panggilan (kunci otorisasi sebenarnya diacak):

SIM900.println( F("AT+HTTPPARA=\"URL\",\"https://backend.thinger.io/v3/users/tom/devices/CT/callback/data?authorization=eyJhbGciOiJIUzI1NiIsInR5cdfkjowiuerdf.sdfsdf.wekrjciI6InRvcm1vZCJ9.AR1gWvIZB9KmtI-5Z12YXKuchPTGn58AkwBJSZQIoxQ\"") ); 

Anda kemudian harus mengganti URL dan kunci otorisasi dalam kode dengan yang Anda miliki, dihasilkan dengan mengikuti instruksi dalam tautan yang disediakan di atas.

https://backend.thinger.io/... 

Secara default, authorization URL yang dihasilkan akan https. SIM900 tidak mendukung SSL (setidaknya saya belum berhasil), jadi pastikan untuk mengubah "https://" menjadi "https://". API thinger juga mendukung koneksi non-SSL. Ini sangat penting. Jika Anda mempertahankan "https" ini tidak akan bekerja. Saat semuanya berfungsi, serial monitor seharusnya memberikan balasan "200 - OK" saat mengirimkan permintaan http post.

Setelah perintah AT "AT+HTTPACTION=1" (mengirim permintaan HTTP POST) Anda seharusnya menerima balasan seperti ini di serial monitor:

+HTTPACTION: 1,200,0 

Jika Anda menerima balasan "400 - bad request" atau sejenisnya..

+HTTPACTION: 0,400,51 

..kemungkinan ada yang salah dengan URL, misalnya "https" alih-alih "http", sintaks "kunci otorisasi" yang salah, dll. Saat Anda menerima pesan "200 - OK" data seharusnya muncul di bucket thinger seperti yang ditunjukkan di bawah ini. Anda juga dapat menerima 400 - "bad request" jika Anda tidak memiliki firmware yang benar seperti disebutkan sebelumnya.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Di atas adalah tampilan bucket setelah data tiba (diacak untuk alasan privasi). Konten (kolom data) ditentukan oleh sintaks permintaan HTTP POST dalam kode, tidak perlu pengaturan di thinger.io.

Di bawah adalah output serial dari permintaan HTTP POST seharusnya terlihat saat semuanya berfungsi. +HTTPACTION:1, 200, 0 menunjukkan bahwa pembaruan berhasil.

AT+HTTPINIT OK AT+HTTPPARA="CID",1 OK AT+HTTPPARA="URL"," OK AT+HTTPPARA="CONTENT","application/json" OK AT+HTTPDATA=84,10000 DOWNLOAD OK AT+HTTPACTION=1 OK +HTTPACTION:1,200,0 AT+HTTPTERM OK 

Dashboard kemudian dapat dengan mudah diatur di thinger dengan widget peta menggunakan bucket sebagai sumber data.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Lebih banyak data ke thinger?

Apakah Anda ingin mendorong lebih banyak data daripada longitude, latitude dan date/time? Cukup tambahkan lebih banyak kolom data ke permintaan http seperti yang ditunjukkan di bawah ini.

Format adalah { "field1 name" : field1, "field2 name" : field2, "field3 name" : field3 }

sprintf(httpContent, "{ \"longitude\" : %s , \"latitude\" : %s , \"date\" : \"%s %s\" }", tempstrLong, tempstrLat, date1, time1); 

Perintah sprintf di atas mengompilasi string data yang dikirim ke thinger. Sintaksnya *sangat* ketat dan Anda harus menambahkan kolom data baru dengan cara yang sama persis. Contoh diberikan dalam kode (bagian komentar). Ide yang baik adalah mencatat output serial monitor dari perintah yang akan menampilkan string. Kemudian Anda menambahkan "field4" dan seterusnya..

Kotak

Saya telah melampirkan kotak 3D printable lengkap. Ini dirancang untuk cocok dengan PCB yang tepat yang digunakan untuk proyek ini. Baut M3 digunakan untuk pemasangan.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Ini dirancang untuk solder board 7x5cm untuk rangkaian "LED" dan bukan breadboard. Jika menggunakan breadboard, cukup gunakan lem. GPS dan solder board ("breadboard") dipasang di casing atas. Gunakan spasi kecil untuk pemasangan PCB terbaik di casing atas.

Saya juga menjaga titik pemasangan di casing atas padat (tidak ada lubang) untuk mencetak tanpa dukungan yang lebih mudah. Buka ini dengan bor 3mm.

Ini dicetak dengan baik pada 0,2mm tanpa dukungan.

Koneksi ke aki mobil / sumber daya

Kemungkinan ada ratusan cara untuk melakukannya, jadi saya tidak memiliki jawaban tunggal, atau jawaban terbaik untuk itu; bagaimana merangkakannya ke aki mobil. Semua tergantung pada aplikasi Anda, tetapi saya akan segera menjelaskan solusi saya.

Saya ingin perangkat menyala dengan mobil, sehingga tidak terhubung langsung ke aki (dan menghabiskan daya saat mobil mati). Jadi saya telah menghubungkannya ke rangkaian "stop kontak rokok" yang sudah menyala/mati bersama mobil. Jika Anda ingin perangkat online bahkan saat mobil mati, Anda harus menemukan cara untuk merangkaknya ke aki. Untuk sebagian besar mobil stop kontak rokok mati bersama mobil, tetapi Anda harus memeriksa ini untuk mobil Anda sendiri. Saya tidak akan menunjukkan rangkaian yang tepat untuk saya karena ini juga akan berbeda untuk setiap mobil. Anda juga dapat menempatkan paket baterak di antaranya untuk menjaga perangkat tetap menyala selama jam-jam setelah mobil dimatikan (atau dicuri..).

Anda tentu juga dapat hanya menggunakan adapter, seperti salah satu charger ponsel USB, tetapi itu mengorbankan tujuan saya untuk menyembunyikannya (jika mobil dicuri). Kita juga memiliki dua sumber daya, papan Arduino dan modul SIM900. Saya menggunakan modul step-down "China cheap-o matic", yang mengonversi dari 12V-5V (rentang input aktual dikatakan 9V-20V). Ini mungkin bukan kualitas bagus, tetapi telah bekerja baik sejauh ini :)

Modul step-down mengubah input 12V menjadi output 5V ke dua konektor USB female. Kemudian saya menghubungkan Arduino dan modul SIM900 ke masing-masing output USB ini untuk menyediakan daya. Kemungkinan ada solusi lain yang lebih "profesional", tetapi ini murah dan bekerja cukup baik.

Saya mengukur daya yang ditarik selama aktivitas GSM sekitar 110maH, jadi konsumsi daya sangat sedikit. Ini mungkin akan menarik lebih banyak daya di area dengan cakupan GSM buruk.

Pelacak GPS Mobil Terpercaya dengan Integrasi Peta Real-Time Thinger.io

Masalah yang diketahui

Jika perintah SMS diterima pada saat yang sama dengan saat permintaan http thinger.io diproses (saat data sedang dikirim ke thinger) perintah tidak akan ditangkap oleh perangkat lunak. Dalam hal ini, Anda tidak akan menerima balasan SMS. Kirim perintah baru beberapa detik kemudian dan akan bekerja lagi. Saya belum membuat solusi untuk ini, karena bukan masalah besar. Jika seseorang ingin memperbaiki ini, silakan berbagi.

Juga, jika Arduino dihidupkan di area tanpa cakupan jaringan, tidak akan menyambung kembali saat jaringan tersedia lagi, karena hanya menyambung saat startup. Saya mungkin akan memodifikasi kode pada suatu titik untuk memperbaiki ini, tetapi saat ini itu

Proses manufaktur

  1. Manufaktur Papan Setrika: Desain, Bahan, dan Proses Produksi
  2. Konstruksi dan Desain Surfboard: Dari Akar Polynesia hingga Inovasi Modern
  3. Pelacakan Aset GPS Outdoor: Tren, Tantangan, dan Teknologi Mendarat
  4. Raspberry Pi Meluncurkan Mikrokontroler RP2040 dan Papan Pico $4
  5. Mengintegrasikan Data Sensor ke Raspberry Pi: Panduan Praktis
  6. Menguasai Papan PSoC 6 Pioneer dengan IoT Add-On Shield: Panduan untuk Pengembang
  7. Percepat Repurposing Obat COVID-19 dengan BIOVIA Living Map
  8. Menguasai Fungsi map() Python: Sintaks, Contoh, dan Praktik Terbaik
  9. Memanfaatkan Sistem Integrasi In-House untuk Manufaktur Presisi
  10. Risiko Mengemudi Mobil dengan Pendingin Mesin Rendah