Përmbajtje:
- Hapi 1: Marrja e një harte 3D
- Hapi 2: Përgatitja e Hartës për Futjet LED
- Hapi 3: Futni LED -të
- Hapi 4: Lidhni LED -të me Raspberry Pi
- Hapi 5: Testoni LED -të
- Hapi 6: Kodi për të ndezur LED kur kërkohet
- Hapi 7: Si të merrni vendndodhjen
- Hapi 8: Si funksionon e gjitha kjo
- Hapi 9: Ndërtoni tuajin nga frymëzimi nga projekti im
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
Ky projekt është një hartë 3D e printuar 3D, me rrugë, lumenj dhe qytete, me fenerë LED për të treguar vendndodhjen e anëtarëve të familjes. Mund të tregojë nëse një fëmijë është apo jo në shkollë, ose vetëm vendndodhjen e të dy prindërve. Ne gjithashtu mund ta përdorim atë për të parashikuar në cilën orë prindërit kthehen në shtëpi, në mënyrë që darka të bëhet për kohën e duhur. Alsoshtë gjithashtu vetëm një projekt përgjithësisht interesant për tu shfaqur dhe shfaqur para familjes dhe miqve.
Shpresoj që të kënaqeni duke e bërë këtë udhëzues, ose të kënaqeni duke mësuar për një projekt që kam bërë
Hapi 1: Marrja e një harte 3D
Për të marrë një hartë 3D të zonës tuaj, unë kam shkruar një udhëzues të veçantë për t'ju ndihmuar të udhëzoni gjatë procesit të krijimit të një të tillë. Lidhja me udhëzimet është këtu:
www.instructables.com/id/Making-a-3D-Print…
Hapi 2: Përgatitja e Hartës për Futjet LED
Tani që keni një hartë 3D, me rrugë, qytete dhe lumenj, ne kemi nevojë për një mënyrë për të treguar se ku është një person në hartë. Kam përdorur LED me ngjyra RG 3 mm, sepse qëllimi kryesor i hartës është të tregojë se ku janë dy prindërit. Në vende të caktuara kam përdorur një LED RGB, për të më lejuar të tregoj se ku ishte fëmija më i madh. Ekziston një kufi prej 28 kunjash për të dalë në Raspberry Pi, kështu që zgjidhni vendet e LED -ve me mençuri. Përfundova duke përdorur rreth 24 prej tyre, kështu që ju duhet të jeni mirë.
Për të shpuar PLA, gjeta se një stërvitje normale e drurit punonte mirë, dhe unë trajtova siç do të trajtoja drurin.
Në vendet, ku harta ishte shumë e trashë, unë do të shpoja shtresën bazë me një stërvitje të madhe, dhe më pas shtresën e dukshme më sipër me stërvitjen e saktë 3 mm.
Hapi 3: Futni LED -të
Tani që kemi vrima për LED për t'u ulur, Ne mund t'i ngjisim ato. PVA ose Superglue funksionon mirë për këtë, zbulova se PVA vrapoi rreth tij duke e mbyllur atë në vend, dhe supergla gjithashtu funksionoi shumë mirë. Sigurohuni që me secilën LED, ato të qëndrojnë vetëm në anën e dukshme me disa mm, sepse të kesh LED të dalë deri në fund duket pak e çrregullt. Mos u shqetësoni për këmbët në anën e pasme, ne mund t'i palosim ato pasi të jenë ngjitur.
Hapi 4: Lidhni LED -të me Raspberry Pi
Unë i bashkova drejtpërdrejt LED-të në Raspberry Pi, megjithatë, nëse keni një me një kokë të para-ngjitur, ose dëshironi të jeni në gjendje të përdorni pi për diçka tjetër, atëherë unë do të sugjeroja përdorimin e telave të bluzave për secilën LED, që do të thotë se Pi është i heqshëm. Ju mund të shihni që sapo e kisha bashkuar LED -in, i palosa këmbët poshtë në mënyrë që ato të mos ngjiteshin në anën e pasme.
Hapi 5: Testoni LED -të
Për t'u siguruar që të gjitha LED -të janë duke punuar, unë drejtova një skenar që kalon nëpër secilën kunj të mundshëm dhe i ndez ato, një nga një, i cili, kalon në tjetrin kur klikoj enter. Kjo më lejoi të shënoja se cili numër pin e bëri cilin vend, i cili doli shumë i dobishëm.
importoni RPi. GPIO si GPIO
koha e importit GPIO.setmode (GPIO. BCM) për i në rang (0, 28): GPIO.setup (i, GPIO. OUT) për i në rang (0, 28): GPIO.output (i, GPIO. HIGHT) time.sleep (0.3) GPIO.putput (i, GPIO. LOW) print ("Kjo ishte:" + str (i)) z = raw_input ("Tjetra?")
Ndërsa kjo po ndodhte, unë do të shënoja një skedar teksti se cili pin e bëri atë vendndodhje dhe cilën ngjyrë. Ju duhet ta bëni këtë, pasi është shumë e dobishme në hapin tjetër.
Hapi 6: Kodi për të ndezur LED kur kërkohet
Mënyra se si e kam bërë këtë projekt përfshin një Raspberry Pi Zero W, me një uebfaqe bazë e cila ju lejon të ndizni një kunj. Kjo do të thoshte që Pi 4 kryesor, i cili zakonisht është i ndezur dhe funksionon, mund të bëjë përpunimin, dhe më pas Pi 0 i vogël duhet të ndezë vetëm një kunj, duke i bërë gjërat pak më të komplikuara. E bëra këtë sepse i përshtatet konfigurimit tim, dhe gjithashtu ndjeva që Pi 0 mund të jetë pak i ngadalshëm për atë që do të bëjmë më vonë.
importoni RPi. GPIO si GPIO
koha e importit nga importi i shishes Flask, render_template, kërkesë, jsonify import os app = Flask (_ name_) p = GPIO.setmode (GPIO. BCM) për i në rang (0, 28): GPIO.setup (i, GPIO. OUT) @app.route ('/') def index (): kërkesa për kthim.remote_addr @app.route ("/off/") def turn_off (pin): GPIO.output (int (pin), GPIO. LOW) kthehu "Off" @app.route ("/off/all") def alloff (): për i në rang (0, 28): GPIO.output (i, GPIO. LOW) kthehu "off" @app.route ("/on/") def turn_on (pin): GPIO.output (int (pin), GPIO. HIGHT) kthehu "On" nëse _name_ == '_main_': app.run (debug = E vërtetë, host = '0.0. 0.0 ')
Mënyra se si funksionon kjo është se pret url -në e adresës IP të pi -së dhe më pas një on ose off dhe më pas numrin pin.
ruani këtë kod në drejtorinë shtëpiake të Raspberry Pi dhe emërtojeni atë "pin_website.py"
Ju do të duhet ta vendosni këtë që të funksionojë automatikisht, kështu që për ta bërë këtë, në llojin e terminalit: sudo nano /etc /profile
Në fund të këtij skedari, shtoni "python3 pin_website.py &"
"&" Është thelbësore, pasi e bën atë të funksionojë në sfond, dhe për këtë arsye lejon që boot të vazhdojë
Hapi 7: Si të merrni vendndodhjen
Duke përdorur IFTTT, mund të vendosni një shërbim në mënyrë që kur telefoni të hyjë në një vendndodhje të caktuar, të mund t'ju dërgojë me email, ose të dërgojë një adresë uebi, ose t'ju dërgojë mesazhe në telegram.
Hapi 8: Si funksionon e gjitha kjo
Konfigurimi që kam është një Server Pi, që pret faqen time të internetit, me përcjellje portesh dhe një DNS statike duke përdorur shërbimin e ofruar nga https://freedns.afraid.org/. Shumë nga kjo është mjaft komplekse, dhe ju duhet të keni një kuptim të përcjelljes së portit, unë mund të bëj një udhëzues se si ta bëni këtë pjesë një herë tjetër.
Një mënyrë tjetër që mund ta bëni është të përdorni telegramin për të marrë mesazhe në pi, ose ndoshta më e lehtë, është të krijoni një lexues emaili që lexon email -et dhe merr përditësimet e vendndodhjes përmes tij.
Unë nuk e kam provuar botin e Telegramit ose një lexues emaili, por ka shumë mësime atje që do t'ju tregojnë se si.
Këtu është kodi im Flask / Python i cili më pas kërkohet nga lidhësit e uebit duke përdorur IFTTT:
nga importi i balonës Flask, render_template, kërkesë, jsonify
import os nga dataetime import dataetime nga harta import * app = Flask (_ name_) l = 0 setup () @app.route ('/') def index (): kërkesë për kthim.remote_addr @app.route ('/mum/enter /') def mu (vendndodhja): mum.current_loc (vendndodhja) kthehu "Faleminderit Për Përditësimin, Mami!" @app.route ("/dad/enter/") def da (l): dad.current_loc (l) kthehu "Faleminderit për përditësimin, baba!" @app.route ("/child/enter/") def child_enter (l): me.current_loc (l) kthe "Hey, Me" @app.route ('/mum/exit/') def mume (vendndodhja): mum.offline (vendndodhja) kthehu "Faleminderit për përditësimin, nënë!" @app.route ("/dad/exit/") def dade (l): dad.offline (l) kthehu "Faleminderit për përditësimin, baba!" @app.route ("/child/exit/") def child_exit (l): me.offline (l) kthehu "Hej, Unë" @app.route ("/reset") def reddo (): setup () return "Rivendos!" nëse _name_ == '_main_': app.run (debug = E vërtetë, host = '0.0.0.0')
dhe map.py:
import http.client, urllib.request, urllib.parse, urllib.error, base64
import ast, json koha e importit 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 ("/dinamike/update.php? ZmFpOWlJQ29QczhiOW1iYWJoNVdVcG9HOjE5MTM2ODU2")) reply = conn.getresponse () conn = http.client. HTTPConnection ('192.168.1) (' 192.168.1) "GET", str ("/off/all")) reply = conn.getresponse () f = open ("pin", "w") f.write (str (-1)) f.close () f = hapur ("pind", "w") f.shkruaj (str (-1)) f.mbylli () f = hap ("pinm", "w") f.shkruaj (str (-1)) f.mbyl () mamaja e klasës: def current_loc (l): global last_loc locs = {"llansantffraid": 4, "oswestry": 5, "lynclys": 8, "home": 9, "shrewsbury": 11, "llanymynech": 13, "katër kryqe": 18, "llandrinio": 25, "welshpool": 27} f = hapur ("pin", "w") f.shkruaj (str (-1)) f.mbylli () kohën. fle (1) conn = http.client. HTTPConnection ('192.168.1.251:5000') lidh. kërko ("GET", str ("/off/") + str (last_loc)) përgjigje = conn.getrespons e () conn = http.client. HTTPConnection ('192.168.1.251:5000') conn.quest ("GET", str ("/on/") + str (locs [l])) answer = 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," katër kryqe ": 18," llandrinio ": 25," welshpool ": 27} conn = http.client. HTTPConnection ('192.168.1.251:5000') conn.quest (" GET ", str (" /off/") + str (last_loc)) reply = conn.getresponse () f = open (" pin "," w ") f.write (str (locs [l])) f. mbyll () os.system ("python3 flash.py &") babai i klasës: locs = {"welshpool": 3, "lynclys": 1, "home": 23, "shrewsbury": 0, "llanymynech": 6, "katër kryqe": 15, "llandrinio": 10, "welshpool": 24} def current_loc (l): global dlast_loc locs = {"welshpool": 3, "lynclys": 1, "home": 23, "shrewsbury": 0, " llanymynech ": 6," katër kryqe ": 15} f = hapur (" pind "," w ") f.shkruaj (str (-1)) f.mbylli () koha. fle (1) conn = http.client. HTTPConnection ('192.168.1.251:5000') kon. Kërkon t ("GET", str ("/off/") + str (dlast_loc)) përgjigje = conn.getresponse () conn = http.client. HTTPConnection ('192.168.1.251:5000') lidh. kërkesë ("GET", str ("/on/") + str (locs [l])) response = conn.getresponse () dlast_loc = locs [l] def offline (l): global dlast_loc locs = {"welshpool": 3, "lynclys ": 1," shtëpi ": 23," shrewsbury ": 0," llanymynech ": 6," katër kryqe ": 15," llandrinio ": 10} conn = http.client. HTTPConnection ('192.168.1.251:5000') conn.request ("GET", str ("/off/") + str (dlast_loc)) answer = conn.getresponse () f = open ("pind", "w") f.write (str (locs [l])) f.close () os.system ("python3 flashd.py &") klasa mua: def current_loc (l): global mlast_loc locs = {"home": 22, "school": 2, "oswestry": 14} f = hapur ("pinm", "w") f.shkruaj (str (-1)) f.mbyl () time.sleep (1) conn = http.client. HTTPConnection ('192.168.1.251:5000 ') conn.quest ("GET", str ("/off/") + str (mlast_loc)) answer = conn.getresponse () conn = http.client. HTTPConnection (' 192.168.1.251:5000 ') lidhje.kërkoj ("GET", str ("/on/") + str (nr cs [l])) answer = 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') konn.quest ("GET", str ("/off/") + str (mlast_loc)) respond = conn.getresponse () f = open ("pinm", "w") f.write (str (locs [l])) f.close () os.system ("python3 flashm.py &")
Hapi 9: Ndërtoni tuajin nga frymëzimi nga projekti im
Kështu që unë e di se hapi i mëparshëm do të jetë shumë i vështirë për tu kuptuar, kështu që unë do ta lë atë duke ju treguar se si të bëni hartën dhe të jeni në gjendje të keni një pi mjedër që ndez dhe fik LED -et. Tani ju duhet të krijoni një shkrim python që, duke përdorur IFTTT, ju dërgon email. Atëherë ju duhet të gjeni një kod të leximit të postës elektronike, i cili është mjaft i lehtë (google it). Pastaj pasi të keni lexuar një email dhe të gjeni vendndodhjen e një prindi, përdorni deklaratat 'nëse' për të gjetur se cilën pin të aktivizoni.
Në hartë, një dritë ndezëse do të thotë që ata sapo kanë lënë zonën
Mënyra për të ndezur LED -të në një pi tjetër nga python është si më poshtë:
import http.client, urllib.request, urllib.parse, urllib.error, base64
params = urllib.parse.urlencode ({}) conn = http.client. HTTPConnection ('192.168.1.251:5000') #ndryshoje këtë me adresën IP të hartës së mjedrës pi, kërkesë ("GET", str ("/off /2 ")) # kjo fik numrin pin 2 përgjigje = conn.getresponse () # kjo kërkon URL -në, dhe pastaj harta pi e lexon këtë dhe fik numrin pin 2
Në thelb, shpresoj se mund të përdorni atë që kam bërë me hartën time 3D si frymëzim për të bërë hartën tuaj të përcjelljes GPS.
Recommended:
Hyrje - Kthejeni një Raspberry Pi në një Server Gjurmimi GPS: 12 hapa
Hyrje - Kthejeni një Raspberry Pi në një Server Gjurmimi GPS: Në këtë udhëzues do t'ju tregoj se si të instaloni programin e ndjekjes së Traccar GPS në një Raspberry Pi i cili do të marrë të dhëna nga pajisjet e përputhshme në internet, duke regjistruar pozicionet e tyre në një hartë për kohë reale ndjekja, dhe gjithashtu ndjekja e riprodhimit.
Gjurmimi i rrugës GPS V2: 4 hapa (me fotografi)
Gjurmimi i Rrugës GPS V2: Projekti: Gjurmimi i Rrugës GPS V2 Data: Maj - Qershor 2020 PPRDITSIM Versioni i parë i këtij projekti, ndërsa funksiononte në parim, kishte një numër defektesh të cilat duheshin rregulluar. Së pari nuk më pëlqeu kutia, kështu që e zëvendësova me një tjetër. Së dyti th
Gjurmimi dhe gjurmimi për dyqanet e vogla: 9 hapa (me fotografi)
Gjurmimi dhe gjurmimi për dyqanet e vogla: Ky është një sistem i krijuar për dyqane të vogla që supozohet të montohet në biçikleta elektronike ose e-skutera për dërgesa me rreze të shkurtër, për shembull një furrë buke që dëshiron të ofrojë ëmbëlsira. Çfarë do të thotë Gjurmë dhe Gjurmë? Gjurmimi dhe gjurmimi është një sistem i përdorur nga ca
Gjurmimi GPS në kohë reale: 3 hapa
Gjurmimi GPS në kohë reale: Në këtë tutorial, ne do t'ju tregojmë se si të bëni ndjekjen e vendndodhjes në kohë reale duke përdorur një BerryGPS-GSM, një Raspberry Pi Zero dhe gjendjen fillestare. Ne do të dërgojmë gjatësinë, gjerësinë dhe shpejtësinë përmes 3G me BerryGPS-GSM në gjendjen fillestare
GPS BIKE OSE GJURMIMI I MAKINAVE NGA SMARTFONI: 9 hapa
GPS BIKE OSE GJATJA E AUTOMJETIT NGA SMARTPHONE: Përshëndetje, Mirë se vini në Creativity Buzz. Këtu po ju tregoj se si e ndiqni biçikletën ose makinën tuaj. Ju mund të gjurmoni vendndodhjen e drejtpërdrejtë të biçikletës duke përdorur këtë ide. Ju mund të gjurmoni çdo biçikletë duke përdorur këtë ide