- ส่วนประกอบที่จำเป็นสำหรับระบบติดตามยานพาหนะที่ใช้ Arduino:
- วิธีใช้โมดูล GSM เพื่อติดตามตำแหน่ง:
- คำอธิบายวงจรสำหรับการเชื่อมต่อ GSM และ GPS กับ Arduino:
- ระบบติดตามยานพาหนะที่ใช้ GSM และ GPS โดยใช้ Arduino - Working
- GAM และ GPS เชื่อมต่อกับรหัส Arduino เพื่อติดตามตำแหน่งยานพาหนะ
ระบบติดตามยานพาหนะมักใช้ในการจัดการยานพาหนะและแอพพลิเคชั่นติดตามทรัพย์สิน ปัจจุบันระบบเหล่านี้ไม่เพียง แต่ติดตามตำแหน่งของยานพาหนะเท่านั้น แต่ยังสามารถรายงานความเร็วและควบคุมได้จากระยะไกล โดยทั่วไปการติดตามยานพาหนะเป็นกระบวนการที่เราติดตามตำแหน่งรถในรูปแบบของ ละติจูดและลองจิจูด (พิกัด GPS) พิกัด GPS คือค่าของตำแหน่ง ระบบนี้มีประสิทธิภาพมากสำหรับการใช้งานภายนอกอาคารโครงการระบบติดตามยานพาหนะประเภท นี้ใช้กันอย่างแพร่หลายในการติดตามรถแท็กซี่ / แท็กซี่ยานพาหนะที่ถูกขโมยรถโรงเรียน / วิทยาลัย ฯลฯ ในโครงการนี้เรากำลังก้าวไปอีกขั้นด้วย GPS ที่สร้างระบบติดตามยานพาหนะที่ใช้ GSM และ GPS โดยใช้ Arduino ระบบติดตามยานพาหนะนี้ สามารถใช้เพื่อ ติดตามยานพาหนะโดยใช้ GPS และGSMและยังสามารถใช้เป็นระบบแจ้งเตือนการตรวจจับอุบัติเหตุระบบติดตามทหารและอื่น ๆ อีกมากมายโดยทำการเปลี่ยนแปลงฮาร์ดแวร์และซอฟต์แวร์เพียงเล็กน้อย
เราได้สร้างระบบติดตามยานพาหนะประเภทอื่น ๆก่อนหน้านี้คุณสามารถตรวจสอบได้หากสนใจ
- การติดตามยานพาหนะ GPS และการแจ้งเตือนอุบัติเหตุโดยใช้ Arduino
- การติดตามยานพาหนะด้วย Google Maps โดยใช้ Arduino และ ESP8266
- การติดตามยานพาหนะ GPS และการแจ้งเตือนอุบัติเหตุโดยใช้ MSP430
- การติดตามยานพาหนะด้วย GPS LoRa โดยใช้ Arduino
- Location Tracker โดยไม่ใช้ GPS โดยใช้ SIM800 และ Arduino
ส่วนประกอบที่จำเป็นสำหรับระบบติดตามยานพาหนะที่ใช้ Arduino:
ในการสร้างระบบติดตามยานพาหนะแบบง่ายๆที่ฟ้อง Arduino เราจะต้องมีส่วนประกอบต่อไปนี้
- Arduino UNO
- โมดูล GSM
- โมดูล GPS
- 16x2 LCD
- พาวเวอร์ซัพพลาย
- การเชื่อมต่อสายไฟ
- 10 K พอต
วิธีใช้โมดูล GSM เพื่อติดตามตำแหน่ง:
GPS ย่อมาจาก Global Positioning System และใช้ในการตรวจจับละติจูดและลองจิจูดของตำแหน่งใด ๆ บนโลกด้วยเวลา UTC ที่แน่นอน (Universal Time Coordinated) โมดูล GPS เป็นส่วนประกอบหลักในโครงการระบบติดตามยานพาหนะของเรา อุปกรณ์นี้รับพิกัดจากดาวเทียมเป็นรายวินาทีพร้อมเวลาและวันที่
![]()
โมดูล GPSส่งข้อมูลที่เกี่ยวข้องกับตำแหน่งการติดตามแบบเรียลไทม์และส่งข้อมูลจำนวนมากในรูปแบบ NMEA (ดูภาพหน้าจอด้านล่าง) รูปแบบ NMEA ประกอบด้วยหลายประโยคซึ่งเราต้องการเพียงประโยคเดียว ประโยคนี้เริ่มต้นจาก$ GPGGAและมีพิกัดเวลาและข้อมูลที่เป็นประโยชน์อื่น ๆ นี้GPGGAจะเรียกว่าGlobal Positioning System แก้ไขข้อมูล เรียนรู้เพิ่มเติมเกี่ยวกับการอ่านข้อมูล GPS และสตริงที่นี่
เราสามารถแยกพิกัดจากสตริง $ GPGGA โดยการนับลูกน้ำในสตริง สมมติว่าคุณพบสตริง $ GPGGA และเก็บไว้ในอาร์เรย์แล้วละติจูดสามารถพบได้หลังจากพบเครื่องหมายจุลภาคสองตัวและลองจิจูดหลังจากสี่ลูกน้ำ ตอนนี้ละติจูดและลองจิจูดเหล่านี้สามารถใส่ในอาร์เรย์อื่นได้

ด้านล่างนี้คือ $ GPGGA String พร้อมกับคำอธิบาย:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0.9,510.4, M, 43.9, M,, * 47
$ GPGGA, HHMMSS.SSS, ละติจูด, N, ลองจิจูด, E, FQ, NOS, HDP, ความสูง, M, ความสูง, M, ข้อมูลการตรวจสอบ
|
ตัวระบุ |
คำอธิบาย |
|
$ GPGGA |
ข้อมูลการแก้ไขระบบกำหนดตำแหน่งบนพื้นโลก |
|
HHMMSS.SSS |
เวลาเป็นชั่วโมงนาทีวินาทีและรูปแบบมิลลิวินาที |
|
ละติจูด |
ละติจูด (พิกัด) |
|
น |
ทิศทาง N = เหนือ, S = ใต้ |
|
ลองจิจูด |
ลองจิจูด (พิกัด) |
|
จ |
ทิศทาง E = ตะวันออก, W = ตะวันตก |
|
FQ |
แก้ไขข้อมูลคุณภาพ |
|
NOS |
จำนวนดาวเทียมที่ใช้ |
|
HPD |
การเจือจางความแม่นยำในแนวนอน |
|
ระดับความสูง |
ระดับความสูงจากระดับน้ำทะเล |
|
ม |
เมตร |
|
ความสูง |
ความสูง |
|
เช็คซัม |
ข้อมูล Checksum |
คำอธิบายวงจรสำหรับการเชื่อมต่อ GSM และ GPS กับ Arduino:
การเชื่อมต่อวงจรของโครงการระบบติดตามยานพาหนะนี้ทำได้ง่ายและแสดงอยู่ในภาพ belwo ที่นี่ Tx pin ของโมดูล GPS เชื่อมต่อโดยตรงกับพินดิจิทัลหมายเลข 10 ของ Arduino เมื่อใช้ Software Serial Library ที่นี่เราอนุญาตให้มีการสื่อสารแบบอนุกรมบนพิน 10 และ 11 และทำให้เป็น Rx และ Tx ตามลำดับและเปิดพิน Rx ของโมดูล GPS ไว้ โดยค่าเริ่มต้น Pin 0 และ 1 ของ Arduino จะใช้สำหรับการสื่อสารแบบอนุกรม แต่ด้วยการใช้ไลบรารี SoftwareSerial เราสามารถอนุญาตการสื่อสารแบบอนุกรมบนพินดิจิทัลอื่น ๆ ของ Arduino ได้ แหล่งจ่ายไฟ 12 โวลต์ใช้เพื่อจ่ายไฟให้กับโมดูล GPS
![]()
หมุด Tx และ Rx ของโมดูล GSM เชื่อมต่อโดยตรงกับพิน Rx และ Tx ของ Arduino โมดูล GSM ยังใช้พลังงานจากแหล่งจ่ายไฟ 12v หมุดข้อมูลของ LCD ที่เป็นอุปกรณ์เสริม D4, D5, D6 และ D7 เชื่อมต่อกับพินหมายเลข 5, 4, 3 และ 2 ของ Arduino ขาคำสั่ง RS และ EN ของ LCD เชื่อมต่อกับหมายเลขพิน 2 และ 3 ของ Arduino และขา RW เชื่อมต่อโดยตรงกับกราวด์ โพเทนชิออมิเตอร์ยังใช้สำหรับตั้งค่าคอนทราสต์หรือความสว่างของ LCD
ระบบติดตามยานพาหนะที่ใช้ GSM และ GPS โดยใช้ Arduino - Working
ในโครงการนี้ Arduino ถูกนำมาใช้ในการควบคุมกระบวนการทั้งหมดที่มีโมดูลรับ GPS และ GSM ตัวรับสัญญาณ GPS ใช้สำหรับตรวจจับพิกัดของยานพาหนะโมดูล GSM ใช้สำหรับส่งพิกัดไปยังผู้ใช้ทาง SMS และยังใช้จอ LCD 16x2 ที่เป็นอุปกรณ์เสริมสำหรับแสดงข้อความสถานะหรือพิกัด เราใช้โมดูล GPS SKG13BL และโมดูล GSM SIM900A
![]()
เมื่อเราพร้อมกับฮาร์ดแวร์ของเราหลังจากการเขียนโปรแกรมเราสามารถติดตั้งในรถของเราและเปิดเครื่องได้ จากนั้นเราก็ต้องส่ง SMS“ Track Vehicle” ไปยังระบบที่ติดตั้งไว้ในรถของเรา นอกจากนี้เรายังสามารถใช้คำนำหน้า (#) หรือคำต่อท้าย (*) เช่น #Track Vehicle * เพื่อระบุจุดเริ่มต้นและจุดสิ้นสุดของสตริงได้อย่างถูกต้องเช่นเดียวกับที่เราทำในโครงการเหล่านี้: GSM Based Home Automation และ Wireless Notice Board
รับข้อความที่ส่งโดยโมดูล GSM ซึ่งเชื่อมต่อกับระบบและส่งข้อมูลข้อความไปยัง Arduino Arduino อ่านและแยกข้อความหลักจากข้อความทั้งหมด จากนั้นเปรียบเทียบกับข้อความที่กำหนดไว้ล่วงหน้าใน Arduino หากมีการจับคู่เกิดขึ้น Arduino จะอ่านพิกัดโดยการแยก $ GPGGA String จากข้อมูลโมดูล GPS (อธิบายการทำงานของ GPS ไว้ด้านบน) และส่งให้ผู้ใช้โดยใช้โมดูล GSM ข้อความนี้มีพิกัดตำแหน่งรถ
GAM และ GPS เชื่อมต่อกับรหัส Arduino เพื่อติดตามตำแหน่งยานพาหนะ
ในส่วนการเขียนโปรแกรมก่อนอื่นเรารวมไลบรารีและกำหนดพินสำหรับการสื่อสารแบบอนุกรมของ LCD และซอฟต์แวร์ กำหนดตัวแปรบางตัวด้วยอาร์เรย์สำหรับจัดเก็บข้อมูล ซอฟต์แวร์ Serial Library ใช้เพื่อให้สามารถสื่อสารแบบอนุกรมบนพิน 10 และ 11
# รวม
ที่นี่ array str ใช้สำหรับจัดเก็บข้อความที่ได้รับจากโมดูล GSM และ gpsString ใช้สำหรับจัดเก็บสตริง GPS char * test =” $ GPGGA” ใช้เพื่อเปรียบเทียบสตริงที่ถูกต้องที่เราต้องการสำหรับพิกัด
หลังจากนั้นเราได้เริ่มต้นการสื่อสารแบบอนุกรมโมดูล LCD, GSM และ GPS ในฟังก์ชันการตั้งค่าและแสดงข้อความต้อนรับบน LCD
การตั้งค่าเป็นโมฆะ () {lcd.begin (16,2); Serial.begin (9600); gps.begin (9600); lcd.print ("ติดตามยานพาหนะ"); lcd.setCursor (0,1);……………
ในฟังก์ชันลูปเราได้รับข้อความและสตริง GPS
โมฆะ loop () {serialEvent (); ถ้า (temp) {get_gps (); ติดตาม (); }}
ฟังก์ชัน เป็นโมฆะ init_sms และ โมฆะ send_sms () ใช้เพื่อเริ่มต้นและส่งข้อความ ใช้หมายเลขโทรศัพท์มือถือ 10 หลักที่เหมาะสมในฟังก์ชัน init_sms
มีการใช้ฟังก์ชัน void get_gps () เพื่อแยกพิกัดจากสตริงที่ได้รับ
ฟังก์ชัน void gpsEvent () ใช้สำหรับรับข้อมูล GPS เข้าสู่ Arduino
ฟังก์ชัน void serialEvent () ใช้สำหรับรับข้อความจาก GSM และเปรียบเทียบข้อความที่ได้รับกับข้อความที่กำหนดไว้ล่วงหน้า (Track Vehicle)
เป็นโมฆะ serialEvent () {while (Serial.available ()) {if (Serial.find ("Track Vehicle")) {temp = 1; หยุดพัก; }…………..
ฟังก์ชันการเริ่มต้น 'gsm_init () ' ใช้สำหรับการเริ่มต้นและกำหนดค่าโมดูล GSM โดยประการแรกโมดูล GSM จะถูกตรวจสอบว่าเชื่อมต่อหรือไม่โดยการส่งคำสั่ง 'AT' ไปยังโมดูล GSM หากได้รับคำตอบตกลงแสดงว่าพร้อมแล้ว ระบบจะตรวจสอบโมดูลจนกว่าจะพร้อมหรือจนกว่าจะได้รับ 'OK' จากนั้น ECHO จะปิดโดยการส่งคำสั่ง ATE0 มิฉะนั้นโมดูล GSM จะสะท้อนคำสั่งทั้งหมด ในที่สุดความพร้อมใช้งานของเครือข่ายจะถูกตรวจสอบผ่าน 'AT + CPIN?' คำสั่งหากใส่การ์ดเป็นซิมการ์ดและมี PIN อยู่จะให้การตอบกลับ + CPIN: READY นอกจากนี้ยังตรวจสอบซ้ำ ๆ จนกว่าจะพบเครือข่าย สิ่งนี้สามารถเข้าใจได้อย่างชัดเจนจากวิดีโอด้านล่าง
ตรวจสอบฟังก์ชันข้างต้นทั้งหมดในส่วนรหัสด้านล่าง
