สารบัญ:

ระบบกันขโมย GPS+GPRS สำหรับรถยนต์ที่ใช้ Arduino สมบูรณ์: 5 ขั้นตอน (พร้อมรูปภาพ)
ระบบกันขโมย GPS+GPRS สำหรับรถยนต์ที่ใช้ Arduino สมบูรณ์: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบกันขโมย GPS+GPRS สำหรับรถยนต์ที่ใช้ Arduino สมบูรณ์: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบกันขโมย GPS+GPRS สำหรับรถยนต์ที่ใช้ Arduino สมบูรณ์: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Geofencing in Cars using Arduino, GPS, and GSM, Geofence GPS Tracker, Geofence Technology 2024, พฤศจิกายน
Anonim
Image
Image
ฮาร์ดแวร์
ฮาร์ดแวร์

สวัสดีทุกคน!

ฉันต้องการสร้างโซลูชันที่สมบูรณ์สำหรับอุปกรณ์กันขโมยรถยนต์ GPS ซึ่งจะเป็น:

ถูกที่สุด

ให้สมบูรณ์ที่สุด

อย่างที่มันเพิ่งจะได้ผล ไม่มีอะไรจะทำอย่างอื่นให้มากที่สุด

ดังนั้นฉันจึงลงเอยด้วยการสร้างโซลูชันที่ใช้ Arduino ซึ่งเสียค่าใช้จ่ายทั้งหมด 25$ ไม่มากก็น้อย

อย่างที่คุณเห็นจากวิดีโอ มันใช้งานได้! คุณสตาร์ทรถ คุณจะได้รับการแจ้งเตือนทางโทรศัพท์มือถือว่ารถกำลังเคลื่อนที่ จากนั้นคุณเปิดแอปบนอุปกรณ์เคลื่อนที่และคุณจะเห็นรถเคลื่อนที่แบบเรียลไทม์ (ด้วยการอัปเดตล่าช้า 10 วินาที)

บทช่วยสอนนี้จะแนะนำคุณตลอดขั้นตอนทั้งหมด โดยคำนึงถึงองค์ประกอบหลายอย่างในโซลูชัน:

1) ฮาร์ดแวร์ (ใช้ Arduino)

2) ซอฟต์แวร์ (โปรแกรม Arduino)

3) ซอฟต์แวร์เพิ่มเติม (การรับตำแหน่ง gps ฝั่งเซิร์ฟเวอร์)

4) ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)

เริ่มกันเลย..

ขั้นตอนที่ 1: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์

รายการช้อปปิ้ง:

1) Arduino Uno R3 หรือโคลน ฉันใช้โคลน "DCcEle DCcduino uno" ซึ่งดูเหมือนจะไม่มีให้ใช้งานอีกต่อไป นี่เทียบเท่า: ใน Aliexpress - 3.75$

2) หน่วย GPS สำหรับ Arduino (โมดูล GPS ใหม่ GY-NEO6MV2 พร้อมการควบคุมการบินควบคุมการบิน EEPROM MWC APM2.5 เสาอากาศขนาดใหญ่ NEO6MV2) ฉันใช้สิ่งนี้: ใน Aliexpress - 6.66$

3) หน่วย GPRS / GSM สำหรับ Arduino (SIM800L V2.0 5V ไร้สาย GSM GPRS โมดูล Quad-Band W / ฝาครอบสายเคเบิลเสาอากาศ) ฉันใช้สิ่งนี้: ใน Aliexpress - 6.71$

4) สายเคเบิลดูปองท์สำรองเช่นนี้: ใน Aliexpress - 0.89$

5) ซิมการ์ดข้อมูล IoT (หรือซิมการ์ดอื่นที่มีการเชื่อมต่อข้อมูล) ฉันใช้สิ่งนี้: จาก Hologram.io ฉันมีนักพัฒนาซอฟต์แวร์ฟรี ชำระค่าจัดส่งเท่านั้น - 7.50$

รวม: 25.51$ แต่ฉันมีสายอยู่แล้วดังนั้นมันจึงน้อยกว่า 25$ !

ภาพสองภาพแสดงส่วนประกอบก่อนประกอบ และผลิตภัณฑ์ขั้นสุดท้าย การเชื่อมต่อที่คุณต้องทำคือ:

Arduino -- SIM800L

10 -- รีเซ็ต

GND - GND (2 ในนั้น)

5v -- 5v

7 -- SIM_TXD

8 -- SIM_RXD

Arduino -- GY-NEO6MV2

GND -- GND

5v -- VCC

3 -- RX

4 -- TX

เชื่อมต่อสายเคเบิลและเสาอากาศทั้งหมด และตรวจสอบให้แน่ใจว่าคุณได้เปิดเครื่อง Arduino จากแหล่งที่สามารถให้ค่าสูงสุด 2A แก่คุณได้ USB ของคอมพิวเตอร์แทบไม่ใช้ได้ (ฉันใช้ MacBook Pro) ที่ชาร์จโทรศัพท์แบบ "สุ่ม" จะไม่เพียงพอ เต้ารับ USB ในรถยนต์ส่วนใหญ่ยังน้อยกว่า 1A หากเป็นกรณีของคุณ คุณต้องใช้แหล่งจ่ายไฟ 5v สำหรับรถยนต์ 12v ที่มีอย่างน้อย 2A ด้วย

ใส่ซิมการ์ด หากคุณกำลังใช้ซิมการ์ด Hologram.io ตรวจสอบให้แน่ใจว่าคุณได้ลงทะเบียนบนแดชบอร์ดและเปิดใช้งานซิมการ์ด (ใช้เวลาสองสามนาที / ชั่วโมง)

ขั้นตอนที่ 2: ซอฟต์แวร์ (โปรแกรม Arduino)

ซอฟต์แวร์ (โปรแกรม Arduino)
ซอฟต์แวร์ (โปรแกรม Arduino)

ฉันจะถือว่าคุณคุ้นเคยกับการเขียนโปรแกรม Arduino มิฉะนั้น โปรดเริ่มด้วยคู่มือนี้: บน Instructables

คุณต้องการไลบรารีภายนอกเพียงตัวเดียว ฉันต้องติดตั้งด้วยตนเอง ไปที่นี่: TinyGPS ส่งออกไลบรารี และติดตั้งลงในโฟลเดอร์ Arduino ในเครื่องของคุณ

จากนั้น เราจะ "ขโมย" โค้ดบางส่วนจากตัวอย่างพื้นฐาน และแก้ไขให้เป็นไปตามวัตถุประสงค์ของเรา

จากนั้นเราจะ "ขโมย" จากคู่มือนี้ และแก้ไขโค้ดอีกครั้งตามวัตถุประสงค์ของเรา

ผลลัพธ์คือโปรแกรม.ino ที่แนบมา

มีสองสิ่งที่คุณทำได้และต้องปรับแต่ง:

"วินาที" กำหนด และ "เซิร์ฟเวอร์" กำหนด

ฉันตั้งค่า SECONDS เป็น 10 และนี่คือเหตุผล: โปรแกรมสำหรับนักพัฒนา Hologram.io ให้ข้อมูลฟรี 1mb ต่อเดือนแก่คุณ ซึ่งหมายความว่าเราต้องการย่อขนาดไบต์ที่ส่งให้น้อยที่สุด แต่เราจำเป็นต้องอัปเดตตำแหน่งของเราบ่อยครั้งเช่นกัน เราจะใช้คำสั่งโมเด็ม AT มาตรฐานเพื่อส่งแพ็กเก็ต UDP ไปยังเซิร์ฟเวอร์ของเราที่ได้รับข้อความ โดยมี lat/lon แต่ละตัวใช้ 4 ไบต์ และความเร็ว 1 ไบต์ ดังนั้นการอัปเดต gps ทั้งหมดคือ 20 ไบต์ (ส่วนหัว IP) บวก 8 ไบต์ (ส่วนหัว UDP) บวก 9 ไบต์ (เพย์โหลด) นั่นคือ 37 ไบต์ สมมติว่ารถของฉันมีการใช้งานไม่เกิน 2 ชั่วโมงต่อวัน ฉันสามารถจ่ายค่าอัปเดตทุกๆ 10 วินาทีและกินไฟเพียง 806kb ต่อเดือน (31 วัน) นั่นทำให้ฉัน 218kb สำหรับการขับรถด้วยตัวเองนั่นคือขโมยรถ ซึ่งให้เวลาฉันในการติดตาม gps 16.76 ชั่วโมงนอกเวลาขับรถของฉัน โดยมีการอัปเดตหนึ่งครั้งทุกๆ 10 วินาที

ตอนนี้แพ็กเก็ต UDP เหล่านี้ต้องไปที่ไหนสักแห่ง ฉันใช้เซิร์ฟเวอร์ Ubuntu ที่โฮสต์บนคลาวด์ CloudAtCost ซึ่งฉันซื้อในราคา 8$ พร้อมส่วนลด 80% และให้บริการเพื่อวัตถุประสงค์อื่น ดังนั้นจึงไม่ต้องนำไปคำนวณต้นทุน หากคุณไม่ต้องการจ่ายค่าเซิร์ฟเวอร์ คุณสามารถรับอินสแตนซ์ Amazon AWS ฟรีเป็นเวลา 12 เดือน และติดตั้ง Ubuntu ได้ เมื่อคุณตั้งค่าเซิร์ฟเวอร์ของคุณแล้ว (ดูขั้นตอนถัดไป) ให้รับที่อยู่ IP แบบคงที่ และวางไว้ถัดจากการกำหนดเซิร์ฟเวอร์

ขั้นตอนที่ 3: ซอฟต์แวร์เพิ่มเติม (การรับตำแหน่ง Gps ฝั่งเซิร์ฟเวอร์)

ทั้ง CloudAtCost และ Amazon มาพร้อมกับอิมเมจ Ubuntu ที่กำหนดค่าไว้ล่วงหน้า (CloudAtCost อยู่ที่ Ubuntu 14.04) ฉันจะไม่ทำตามขั้นตอนในการติดตั้ง Ubuntu อย่างที่คุณไม่จำเป็นต้องทำ หากคุณใช้ CloudAtCost คุณอาจต้องการอัปเกรดเป็น Ubuntu 16.04 ซึ่งเสร็จสิ้นด้วย

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

จากนั้นคุณต้องติดตั้ง LAMP (ดูคู่มือนี้: ที่นี่) แม้ว่าเราจะไม่ใช้ PHP ก็ตาม

ติดตั้ง Python ด้วย

sudo apt-get ติดตั้ง python-minimal pip

จากนั้นเพิ่มสองสามโมดูล:

pip install --user urllib3 ร้องขอ

เราจำเป็นต้องตั้งค่า /var/www ที่คุณเขียนได้ ให้ทำดังนี้

sudo adduser YOUR_USER www-datasudo chown -R www-data:www-data /var/www

sudo chmod -R g+rwX /var/www

ตอนนี้ เราต้องการ "เซิร์ฟเวอร์" เพื่อ i) รับแพ็กเก็ต UDP ii) สร้างแทร็ก iii) ส่งการแจ้งเตือนไปยังโทรศัพท์มือถือของเรา และ "เซิร์ฟเวอร์" เพื่อให้บริการแทร็ก gps ที่สร้างขึ้น (นี่คือ apache)

สำหรับเซิร์ฟเวอร์แรก ให้คัดลอกรหัสหลามที่แนบมา คุณต้องกำหนดค่าสิ่งต่อไปนี้:

iftttuser="ผู้ใช้ IFTTT ของคุณ"

iftttpass="รหัสผ่าน IFTTT ของคุณ"

iftttappletid="แอปเพล็ตการแจ้งเตือน IFTTT ของคุณ"

iftttkey="คีย์ IFTTT ของคุณ"

iftttevent="กิจกรรม IFTTT ของคุณ"

อย่างที่คุณอาจเดาได้ เรากำลังใช้ IFTTT เพื่อส่งการแจ้งเตือนแบบเรียลไทม์ไปยังโทรศัพท์มือถือของเรา ทำตามคำแนะนำนี้: ที่นี่ แต่แทนที่จะเลือก "ส่ง SMS ถึงฉัน" ให้เลือก "ส่งการแจ้งเตือนแอป" รับรหัสแอปเพล็ตของคุณ (เลื่อนไปที่ด้านล่างของการกำหนดค่าแอปเพล็ตเพื่อดู) และใช้สิ่งนั้นด้านบน ใช้คีย์ที่สร้างขึ้นดังนั้นในการตั้งค่าด้านบนด้วย งาน IFTTT คือชื่อที่คุณตั้งให้กับแอปเพล็ตของคุณ ฉันตั้งชื่อมันว่า "carmoving"

ขณะนี้ AFAIK ไม่มีแพลตฟอร์มการแจ้งเตือนแบบเรียลไทม์ฟรี หากคุณรู้อย่างใดอย่างหนึ่งบอกฉัน IFTTT มีความล่าช้า ความล่าช้านี้สามารถย่อให้เหลือไม่กี่วินาทีหากคุณใช้ทริกเกอร์อีเมล น่าเสียดายที่สิ่งนี้ไม่น่าเชื่อถือ เว็บฮุคที่เพิ่งสร้างขึ้นมีความล่าช้า 15 นาที แต่เราไม่อยากรอ 15 นาทีถึงรู้ว่ารถของเราถูกขโมยใช่ไหม? นั่นคือรหัสผ่านที่ขอให้คุณตั้งค่าทั้งหมดข้างต้น หากคุณเลื่อนโค้ด python คุณจะเห็นว่ามีสองสามบรรทัด คือ 45-53 เพื่อให้ฟังก์ชัน "ตรวจสอบทันที" ของ IFTTT เป็นไปโดยอัตโนมัติ ซึ่งบังคับให้ตรวจสอบทริกเกอร์อย่างกะทันหัน และทริกเกอร์การแจ้งเตือนภายในเวลาไม่ถึง 1 วินาที! ด้วยความยินดี:)

เมื่อคุณตั้งค่ารหัสหลามของคุณไว้ที่ใดที่หนึ่งแล้ว ให้เรียกใช้มัน หากคุณเป็นผู้ใช้มืออาชีพ ให้เริ่มต้นที่การบูตเซิร์ฟเวอร์ อ้างถึงคู่มือออนไลน์ฟรีมากมายเกี่ยวกับวิธีการทำเช่นนั้น ตัวอย่างเช่น คู่มือนี้

ขั้นตอนที่ 4: ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)

ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)

เราต้องการวิธีที่รวดเร็วและง่ายดายในการแสดงภาพแทร็ก gps ที่เซิร์ฟเวอร์ในขั้นตอนก่อนหน้านี้กำลังอัปเดตอยู่เสมอ อาจต้องใช้งานได้กับสมาร์ทโฟนทุกประเภท

ลองใช้ชุดแอปมือถือข้ามแพลตฟอร์ม เช่น Ionic/Cordova ฉันใช้ Ionic v1 อย่าสับสนกับ Ionic Native หรือ Ionic v2 นั่นเป็นคนละเรื่องกัน

ทำตามขั้นตอนง่ายๆ เหล่านี้เพื่อเริ่มโครงการแรกของคุณใน Ionic: ที่นี่

จากนั้น คุณต้องเริ่มโครงการใหม่โดยใช้ google maps sdk ดังนี้:

ionic start myapp maps

ไปที่โฟลเดอร์ "resources" และคัดลอกรูปภาพรถขนาดใหญ่ที่นี่เป็น "icon.png" อัปโหลดแทนไอคอนขนาดเล็กเป็น "car2.png" และ "start.png" ที่ใดที่หนึ่งบนเซิร์ฟเวอร์ของคุณ เช่น https://yourserver/car2-p.webp

ใช้ไฟล์ index.html ที่แนบมา (เปลี่ยนชื่อ index.html.txt เป็น index.html), directives.js และไฟล์ controllers.js และใส่ลงใน www (index.html), www/js (js ทั้งหมด)

เพิ่มแพลตฟอร์มของคุณดังนี้:

อิออนเพิ่ม plaftorm android

สร้างแบบนี้:

ionic build android

จากนั้นอิออนจะบอกคุณว่ามันสร้าง.apk ของคุณไว้ที่ใด ซึ่งคุณสามารถติดตั้งบนโทรศัพท์มือถือของคุณได้

ในการสร้างสำหรับ iOS คุณจะต้องมี Mac และ Xcode ไอออนิกสามารถบันทึกโปรเจ็กต์ Xcode ซึ่งคุณสามารถเปิดใน Xcode และสร้างสำหรับโทรศัพท์ของคุณได้ หากคุณไม่มีบัญชีนักพัฒนา iOS คุณจะต้องแนบโทรศัพท์กับ Xcode และตั้งค่าโทรศัพท์สำหรับการพัฒนาเพื่อให้สามารถติดตั้งแอปได้ที่นั่น นี่อยู่นอกขอบเขตของคำแนะนำนี้

ในไฟล์ js ต่างๆ คุณจะต้องค้นหาบรรทัดที่เกี่ยวข้องกับ "car2.png" และ "start.png" และแก้ไขด้วยเส้นทางของรูปภาพของคุณ เช่นเดียวกับ "plan.json"

แค่นั้นแหละ!!

ขั้นตอนที่ 5: งานในอนาคต

1) ฉันใส่ทุกอย่างลงในกล่องกระดาษแข็งซึ่งฉันสามารถซ่อนได้ทุกที่ใกล้กับเต้ารับ usb สิ่งที่ดีที่สุดที่ควรทำคือการติดตั้งเคสที่ดีกว่าไว้ใต้ฝากระโปรงรถด้วยตัวแปลง 12v->5v

2) ด้วยเซ็นเซอร์บลูทูธ คุณสามารถ "สัมผัส" ได้จริงหากคุณอยู่ในรถ ดังนั้นระบบ gps จะไม่เปิดขึ้น

3) เพียงชำระค่าแผนข้อมูลซิมและตั้งค่า SECONDS เป็น 1 เพื่อสนุกกับการติดตามแบบเรียลไทม์:)

หวังว่าคุณจะสนุกกับการสั่งสอนครั้งแรกของฉัน!

แนะนำ: