- ส่วนประกอบที่จำเป็นสำหรับระบบติดตามยานพาหนะที่ใช้ 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 นอกจากนี้ยังตรวจสอบซ้ำ ๆ จนกว่าจะพบเครือข่าย สิ่งนี้สามารถเข้าใจได้อย่างชัดเจนจากวิดีโอด้านล่าง
ตรวจสอบฟังก์ชันข้างต้นทั้งหมดในส่วนรหัสด้านล่าง