Daftar Isi:
- Langkah 1: Mendapatkan Peta 3D
- Langkah 2: Mempersiapkan Peta untuk Sisipan LED
- Langkah 3: Masukkan LED
- Langkah 4: Hubungkan LED ke Raspberry Pi
- Langkah 5: Uji LED
- Langkah 6: Kode untuk Menyalakan LED Saat Diminta
- Langkah 7: Cara Menerima Lokasi
- Langkah 8: Bagaimana Semua Ini Bekerja
- Langkah 9: Bangun Sendiri Dari Inspirasi Dari Proyek Saya
Video: Peta 3D Pelacakan GPS: 9 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Proyek ini adalah peta 3D cetak 3D, dengan jalan, sungai, dan kota, dengan suar LED untuk menunjukkan lokasi anggota keluarga. Ini dapat menunjukkan apakah seorang anak berada di sekolah atau tidak, atau hanya lokasi kedua orang tuanya. Kita juga bisa menggunakannya untuk memprediksi jam berapa orang tua pulang, sehingga makan malam bisa dibuat di waktu yang tepat. Ini juga merupakan proyek yang umumnya keren untuk dipamerkan dan ditampilkan kepada keluarga dan teman.
Saya harap Anda menikmati membuat Instruksi ini, atau menikmati mencari tahu tentang proyek yang telah saya buat
Langkah 1: Mendapatkan Peta 3D
UNTUK mendapatkan peta 3D wilayah Anda, saya telah menulis instruksi terpisah untuk membantu memandu Anda melalui proses pembuatannya. Tautan ke instruksi ada di sini:
www.instructables.com/id/Making-a-3D-Print…
Langkah 2: Mempersiapkan Peta untuk Sisipan LED
Sekarang setelah Anda memiliki peta 3D, dengan jalan, kota, dan sungai, kami memerlukan cara untuk menunjukkan di mana seseorang berada di peta. Saya menggunakan LED RG 3mm dua warna, karena tujuan utama peta adalah untuk menunjukkan di mana kedua orang tua berada. Di tempat-tempat tertentu saya menggunakan LED RGB, untuk memungkinkan saya menunjukkan di mana anak tertua berada. Ada batas 28 pin untuk output pada Raspberry Pi, Jadi pilih lokasi LED dengan bijak. Saya akhirnya menggunakan sekitar 24 dari mereka, jadi Anda harus baik-baik saja.
Untuk mengebor PLA, saya menemukan mata bor kayu biasa bekerja dengan baik, dan saya memperlakukannya seperti saya merawat kayu.
Di tempat-tempat di mana peta terlalu tebal, saya akan mengebor lapisan dasar dengan mata bor besar, dan kemudian lapisan di atas yang terlihat dengan mata bor 3mm yang benar.
Langkah 3: Masukkan LED
Sekarang kami memiliki lubang untuk LED, Kami dapat merekatkannya. PVA atau Superglue bekerja dengan baik untuk ini, saya menemukan bahwa PVA berlari di sekitarnya untuk menyegelnya, dan superglue juga bekerja dengan sangat baik. Pastikan bahwa dengan setiap LED, mereka hanya menonjol di sisi yang terlihat beberapa mm, Karena LED yang menonjol sepanjang jalan terlihat agak berantakan. Jangan khawatir tentang kaki di bagian belakang, kita bisa melipatnya setelah disolder.
Langkah 4: Hubungkan LED ke Raspberry Pi
Saya langsung menyolder LED ke Raspberry Pi, namun, jika Anda memilikinya dengan header yang telah disolder sebelumnya, atau Anda ingin dapat menggunakan pi untuk hal lain, maka saya sarankan menggunakan kabel jumper untuk setiap LED, artinya Pi dapat dihapus. Anda dapat melihat bahwa setelah saya menyolder LED, saya melipat kakinya ke bawah sehingga tidak menempel di bagian belakang.
Langkah 5: Uji LED
Untuk memastikan bahwa semua LED berfungsi, saya menjalankan skrip yang melewati setiap pin yang mungkin, dan menyalakannya, satu per satu, yang akan berpindah ke pin berikutnya ketika saya mengklik enter. Ini memungkinkan saya untuk mencatat nomor pin mana yang melakukan lokasi mana, yang sangat berguna.
impor RPi. GPIO sebagai GPIO
waktu impor GPIO.setmode(GPIO. BCM) untuk i dalam rentang (0, 28): GPIO.setup(i, GPIO. OUT) untuk i dalam rentang (0, 28): GPIO.output(i, GPIO. HIGH) time.sleep(0.3) GPIO.output(i, GPIO. LOW) print("Itu tadi: " + str(i)) z = raw_input("Selanjutnya?")
Sementara ini terjadi, saya akan mencatat pada file teks pin mana yang melakukan lokasi dan warna mana. Anda perlu melakukan ini, karena ini sangat berguna pada langkah selanjutnya.
Langkah 6: Kode untuk Menyalakan LED Saat Diminta
Cara saya melakukan proyek ini melibatkan satu Raspberry Pi Zero W, dengan situs web dasar yang memungkinkan Anda mengaktifkan pin. Ini berarti bahwa Pi 4 utama, yang biasanya aktif, dan berjalan, dapat melakukan pemrosesan, dan kemudian Pi 0 kecil hanya perlu menyalakan pin, membuat segalanya sedikit lebih rumit. Saya melakukan ini karena sesuai dengan pengaturan saya, dan juga saya merasa Pi 0 bisa agak lambat untuk apa yang akan kita lakukan nanti.
impor RPi. GPIO sebagai GPIO
waktu impor dari labu impor Labu, render_template, permintaan, jsonify import os app = Flask(_name_) p = GPIO.setmode(GPIO. BCM) untuk i dalam rentang (0, 28): GPIO.setup(i, GPIO. KELUAR) @app.route('/') def index(): kembali request.remote_addr @app.route("/off/") def turn_off(pin): GPIO.output(int(pin), GPIO. LOW) return "Off" @app.route("/off/all") def alloff(): for i in range(0, 28): GPIO.output(i, GPIO. LOW) return "off" @app.route("/on/") def turn_on(pin): GPIO.output(int(pin), GPIO. HIGH) mengembalikan "On" jika _name_ == '_main_': app.run(debug=True, host='0.0. 0,0')
Cara kerjanya adalah menunggu url alamat IP pi dan kemudian on atau off dan kemudian nomor pin.
simpan kode ini di direktori home Raspberry Pi, dan beri nama "pin_website.py"
Anda perlu mengatur ini untuk berjalan secara otomatis, jadi untuk melakukan ini, di terminal ketik: sudo nano /etc/profile
Di bagian bawah file ini, tambahkan "python3 pin_website.py &"
"&" sangat penting, karena membuatnya berjalan di latar belakang, dan oleh karena itu memungkinkan boot untuk melanjutkan
Langkah 7: Cara Menerima Lokasi
Dengan menggunakan IFTTT, Anda dapat mengatur layanan sehingga ketika telepon memasuki lokasi tertentu, ia dapat mengirim email kepada Anda, atau melakukan ping ke alamat web, atau mengirim pesan kepada Anda melalui telegram.
Langkah 8: Bagaimana Semua Ini Bekerja
Pengaturan yang saya miliki adalah Server Pi, hosting situs web saya, dengan penerusan porta dan DNS statis menggunakan layanan yang disediakan oleh https://freedns.afraid.org/. Banyak dari ini cukup rumit, dan Anda perlu memiliki pemahaman tentang penerusan porta, saya mungkin akan membuat instruksi tentang cara melakukan bagian ini di lain waktu.
Cara lain yang dapat Anda lakukan adalah menggunakan telegram untuk mengirim pesan ke pi, atau mungkin yang paling mudah, adalah dengan menyiapkan pembaca email yang membaca email dan menerima pembaruan lokasi melalui itu.
Saya belum mencoba bot Telegram atau pembaca email, tetapi ada banyak tutorial di luar sana yang akan menunjukkan caranya.
Berikut adalah kode Flask/Python saya yang kemudian diminta oleh webhook menggunakan IFTTT:
dari labu impor Flask, render_template, request, jsonify
import os from datetime import datetime from map import * app = Flask(_name_) l = 0 setup() @app.route('/') def index(): return request.remote_addr @app.route('/mum/enter /') def mu(lokasi): mum.current_loc(location) return "Terima kasih Atas Pembaruannya, Bu!" @app.route("/dad/enter/") def da(l): dad.current_loc(l) return "Terima kasih Atas Pembaruannya, Ayah!" @app.route("/child/enter/") def child_enter(l): me.current_loc(l) mengembalikan "Hai, Saya" @app.route('/mum/exit/') def mume(lokasi): mum.offline(location) return "Terima kasih Atas Pembaruannya, Bu!" @app.route("/dad/exit/") def dade(l): dad.offline(l) return "Terima kasih Atas Pembaruannya, Ayah!" @app.route("/child/exit/") def child_exit(l): me.offline(l) return "Hey, Me" @app.route("/reset") def redo(): setup() return "Mengatur ulang!" if _name_ == '_main_': app.run(debug=True, host='0.0.0.0')
dan map.py:
impor http.client, urllib.request, urllib.parse, urllib.error, base64
import ast, json import time import threading import os params = urllib.parse.urlencode({ }) last_loc = 0 dlast_loc = 0 mlast_loc = 0 def setup(): conn = http.client. HTTPSConnection('freedns.afraid.org') conn.request("GET", str("/dynamic/update.php?ZmFpOWlJQ29QczhiOW1iYWJoNVdVcG9HOjE5MTM2ODU2")) response = conn.getresponse() conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request("GET", str("/off/all")) response = conn.getresponse() f = open("pin", "w") f.write(str(-1)) f.close() f = buka("pind", "w") f.write(str(-1)) f.close() f = open("pinm", "w") f.write(str(-1)) f.close () kelas ibu: def current_loc(l): global last_loc locs = { "llansantffraid": 4, "oswestry": 5, "lynclys": 8, "home": 9, "shrewsbury": 11, "llanymynech": 13, "empat salib": 18, "llandrinio": 25, "welshpool": 27 } f = open("pin", "w") f.write(str(-1)) f.close() waktu. sleep(1) conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request("GET", str("/off/") + str(last_loc)) response = conn.getrespons e() conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request("GET", str("/on/") + str(locs[l])) response = conn.getresponse() last_loc = locs[l] def offline(l): global last_loc locs = { "llansantffraid": 4, "oswestry": 5, "lynclys": 8, "home": 9, "shrewsbury": 11, "llanymynech ": 13, "empat salib": 18, "llandrinio": 25, "welshpool": 27 } conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request("GET", str(" /off/") + str(last_loc)) response = conn.getresponse() f = open("pin", "w") f.write(str(locs[l])) f.close() os.system ("python3 flash.py &") ayah kelas: locs = { "welshpool": 3, "lynclys": 1, "home": 23, "shrewsbury": 0, "llanymynech": 6, "four crosses": 15, "llandrinio": 10, "welshpool": 24 } def current_loc(l): global dlast_loc locs = { "welshpool": 3, "lynclys": 1, "home": 23, "shrewsbury": 0, " llanymynech": 6, "four crosses": 15 } f = open("pind", "w") f.write(str(-1)) f.close() time.sleep(1) conn = http.client. HTTPConnection('192.168.1.251:5000') conn.reques t("GET", str("/off/") + str(dlast_loc)) response = conn.getresponse() conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request("GET", str("/on/") + str(locs[l])) response = conn.getresponse() dlast_loc = locs[l] def offline(l): global dlast_loc locs = { "welshpool": 3, "lynclys ": 1, "home": 23, "shrewsbury": 0, "llanymynech": 6, "four cross": 15, "llandrinio": 10 } conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request("GET", str("/off/") + str(dlast_loc)) response = conn.getresponse() f = open("pind", "w") f.write(str(locs[l])) f.close() os.system("python3 flashd.py &") kelas saya: def current_loc(l): global mlast_loc locs = { "rumah": 22, "sekolah": 2, "oswestry": 14 } f = open("pinm", "w") f.write(str(-1)) f.close() time.sleep(1) conn = http.client. HTTPConnection('192.168.1.251:5000 ') conn.request("GET", str("/off/") + str(mlast_loc)) response = conn.getresponse() conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request ("DAPATKAN", str("/pada/") + str(lo cs[l])) response = conn.getresponse() mlast_loc = locs[l] def offline(l): global dlast_loc locs = { "home": 22, "school": 2, "oswestry": 14 } conn = http.client. HTTPConnection('192.168.1.251:5000') conn.request("GET", str("/off/") + str(mlast_loc)) response = conn.getresponse() f = open("pinm", "w") f.write(str(locs[l])) f.close() os.system("python3 flashm.py &")
Langkah 9: Bangun Sendiri Dari Inspirasi Dari Proyek Saya
Jadi saya tahu bahwa langkah sebelumnya akan sangat sulit untuk dipahami, jadi saya akan membiarkannya menunjukkan cara membuat peta, dan dapat memiliki raspberry pi yang menghidupkan dan mematikan LED. Anda sekarang perlu membuat skrip python yang, menggunakan IFTTT, mengirimi Anda email. Maka Anda perlu menemukan sepotong kode membaca email, yang cukup mudah (google it). Kemudian setelah Anda membaca email dan menemukan lokasi orang tua, gunakan pernyataan 'jika' untuk menemukan pin mana yang akan diaktifkan.
Di peta, Lampu berkedip berarti mereka baru saja meninggalkan area
Cara menyalakan LED pada pi lain dari python adalah sebagai berikut:
impor http.client, urllib.request, urllib.parse, urllib.error, base64
params = urllib.parse.urlencode({ }) conn = http.client. HTTPConnection('192.168.1.251:5000') #ubah ini dengan alamat IP peta raspberry pi conn.request("GET", str("/off /2")) # ini mematikan pin nomor 2 response = conn.getresponse() # ini meminta URL, dan kemudian peta pi membaca ini dan mematikan pin nomor 2
Pada dasarnya, saya harap Anda dapat menggunakan apa yang telah saya lakukan dengan peta 3D saya sebagai inspirasi untuk membuat peta pelacakan GPS Anda sendiri.
Direkomendasikan:
Buat Peta Kustom untuk GPS Garmin Anda: 8 Langkah (dengan Gambar)
Buat Peta Kustom untuk GPS Garmin Anda: Jika Anda memiliki GPS Garmin yang dirancang untuk hiking dan aktivitas luar ruangan lainnya (termasuk seri GPSMAP, eTrex, Colorado, Dakota, Oregon, dan Montana, di antara beberapa lainnya), Anda tidak perlu melakukannya puas dengan peta telanjang yang sudah dimuat sebelumnya. E
Pendahuluan - Ubah Raspberry Pi Menjadi Server Pelacakan GPS: 12 Langkah
Pendahuluan - Ubah Raspberry Pi Menjadi Server Pelacakan GPS: Dalam panduan ini saya akan menunjukkan cara menginstal perangkat lunak pelacakan GPS Traccar ke Raspberry Pi yang akan menerima data dari perangkat yang kompatibel melalui internet, mencatat posisi mereka ke peta secara real time pelacakan, dan juga pemutaran pelacakan
Buat Sistem Pelacakan Keamanan SMS GPS Anda Sendiri: 5 Langkah (dengan Gambar)
Buat Sistem Pelacakan Keamanan SMS GPS Anda Sendiri: Dalam proyek ini saya akan menunjukkan cara menggabungkan modul SIM5320 3G dengan Arduino dan transduser piezoelektrik sebagai sensor kejut untuk membuat sistem pelacakan keamanan yang akan mengirimkan lokasi Anda kendaraan berharga melalui SMS ketika saya
Menavigasi Robot Dengan Sensor Sepatu, Tanpa GPS, Tanpa Peta: 13 Langkah (dengan Gambar)
Menavigasi Robot Dengan Sensor Sepatu, Tanpa GPS, Tanpa Peta: Robot bergerak di jalur yang telah diprogram dan mentransmisikan (melalui bluetooth) informasi pergerakan aktualnya ke telepon untuk pelacakan waktu nyata. Arduino sudah diprogram dengan path dan oblu digunakan untuk mendeteksi gerakan robot. oblu mengirimkan informasi gerakan
Cara Menghubungkan GPS DeLorme Earthmate LT-20 ke Google Earth Anda untuk Peta Pelacakan GPS yang Hebat.: 5 Langkah
Cara Menghubungkan GPS DeLorme Earthmate LT-20 ke Google Earth Anda untuk Peta Pelacakan GPS yang Hebat.: Saya akan menunjukkan cara menghubungkan perangkat GPS ke program Google Earth yang populer, tanpa menggunakan Google Earth Plus. Saya tidak memiliki anggaran yang besar sehingga saya dapat menjamin bahwa ini akan semurah mungkin