สารบัญ:
- ขั้นตอนที่ 1: ฮาร์ดแวร์
- ขั้นตอนที่ 2: ซอฟต์แวร์ (โปรแกรม Arduino)
- ขั้นตอนที่ 3: ซอฟต์แวร์เพิ่มเติม (การรับตำแหน่ง Gps ฝั่งเซิร์ฟเวอร์)
- ขั้นตอนที่ 4: ซอฟต์แวร์มากยิ่งขึ้น (แอพมือถือ)
- ขั้นตอนที่ 5: งานในอนาคต
วีดีโอ: ระบบกันขโมย GPS+GPRS สำหรับรถยนต์ที่ใช้ Arduino สมบูรณ์: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สวัสดีทุกคน!
ฉันต้องการสร้างโซลูชันที่สมบูรณ์สำหรับอุปกรณ์กันขโมยรถยนต์ 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 มิฉะนั้น โปรดเริ่มด้วยคู่มือนี้: บน 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 เพื่อสนุกกับการติดตามแบบเรียลไทม์:)
หวังว่าคุณจะสนุกกับการสั่งสอนครั้งแรกของฉัน!
แนะนำ:
เซ็นเซอร์สภาพอากาศขนาดกะทัดรัดพร้อมลิงค์ข้อมูล GPRS (ซิมการ์ด): 4 ขั้นตอน
เซ็นเซอร์สภาพอากาศขนาดกะทัดรัดพร้อมลิงค์ข้อมูล GPRS (ซิมการ์ด): สรุปโครงการนี่คือเซ็นเซอร์สภาพอากาศที่ใช้พลังงานแบตเตอรี่ตามเซ็นเซอร์อุณหภูมิ/ความดัน/ความชื้น BME280 และ ATMega328P MCU ใช้แบตเตอรี่ลิเธียมไทโอนิล AA 3.6 V จำนวน 2 ก้อน มีการบริโภคการนอนหลับต่ำเป็นพิเศษถึง 6 µA มันส่งข้อมูล
A9G GPS & GPRS โมดูลการสอน - ไอ-นักคิด - คำสั่ง AT: 7 ขั้นตอน
A9G GPS & GPRS โมดูลการสอน | ไอ-นักคิด | คำสั่ง AT: เฮ้ ว่าไงพวก! Akarsh จาก CETech วันนี้ เราจะมาพูดถึงโมดูล A9G GPS, GSM และ GPRS จาก AI Thinker มีโมดูลอื่นๆ อีกหลายโมดูลเช่นกัน เช่น A9 และ A6 จาก AI Thinker ซึ่งมีความสามารถด้าน GSM และ GPRS ที่คล้ายกัน แต่
กล้องอีเมล 3G/GPRS ของ Arduino Security พร้อมการตรวจจับการเคลื่อนไหว: 4 ขั้นตอน
Arduino Security 3G/GPRS Email Camera พร้อม Motion Detection: ในคู่มือนี้ ผมอยากจะเล่าเกี่ยวกับรุ่นหนึ่งในการสร้างระบบเฝ้าระวังความปลอดภัยด้วยเครื่องตรวจจับความเคลื่อนไหว และส่งภาพถ่ายไปยังกล่องจดหมายผ่าน 3G/GPRS shield บทความนี้อ้างอิงจาก คำแนะนำอื่นๆ: คำแนะนำ 1 และคำแนะนำ
Arduino และ SIM900 GSM GPRS 3G การบันทึกอุณหภูมิและความชื้น, สถิติมือถือ: 4 ขั้นตอน
Arduino และ SIM900 GSM GPRS 3G การบันทึกอุณหภูมิและความชื้น สถิติมือถือ: ด้วย Arduino UNO R3, SIM900 Shield และ DHT22 คุณสามารถบันทึกข้อมูลอุณหภูมิและความชื้นภายนอก ในห้อง เรือนกระจก ห้องปฏิบัติการ ห้องเย็น หรือสถานที่อื่น ๆ ได้อย่างสมบูรณ์ฟรี ตัวอย่างนี้เราจะใช้บันทึกอุณหภูมิและความชื้นในห้อง อุปกรณ์จะ
การเชื่อมต่อ TCP/IP ผ่าน GPRS: วิธีส่งข้อมูลไปยังเซิร์ฟเวอร์โดยใช้โมดูล SIM900A: 4 ขั้นตอน
การเชื่อมต่อ TCP/IP ผ่าน GPRS: วิธีส่งข้อมูลไปยังเซิร์ฟเวอร์โดยใช้โมดูล SIM900A: ในบทช่วยสอนนี้ ฉันจะบอกคุณเกี่ยวกับวิธีการส่งข้อมูลไปยังเซิร์ฟเวอร์ TCP โดยใช้โมดูล SIM900 นอกจากนี้เรายังจะดูว่าเราสามารถรับข้อมูลจากเซิร์ฟเวอร์ไปยังไคลเอนต์ได้อย่างไร (โมดูล GSM)