Мазмұны:
- 1 -қадам: 3D картасын алу
- 2 -қадам: Картаны жарықдиодты енгізу үшін дайындау
- 3 -қадам: Жарық диодтарын салыңыз
- 4 -қадам: Жарықдиодты Raspberry Pi -ге қосыңыз
- 5 -қадам: Жарық диодтарын тексеріңіз
- 6 -қадам: Сұралған кезде жарық диодты қосу коды
- 7 -қадам: орналасқан жерді қалай алуға болады
- 8 -қадам: Мұның бәрі қалай жұмыс істейді
- 9 -қадам: Менің жобамнан шабыт алу арқылы өзіңізді құрыңыз
Бейне: GPS бақылау 3D картасы: 9 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл жоба 3D басып шығарылған 3D картасы, жолдары, өзендері мен қалалары бар, отбасы мүшелерінің орналасқан жерін көрсететін жарықдиодты шамдармен. Бұл баланың мектепте бар -жоғын немесе ата -анасының екеуінің орналасқан жерін көрсете алады. Біз сондай -ақ оны ата -аналардың үйге қай уақытта келетінін болжау үшін қолдана аламыз, осылайша түскі ас дұрыс уақытқа дайындалуы мүмкін. Бұл сонымен қатар отбасы мен достарына көрсету және көрсету үшін керемет жоба.
Сізге бұл нұсқаулықты жасау ұнайды немесе менің жасаған жобам туралы білгіңіз келеді деп сенемін
1 -қадам: 3D картасын алу
Сіздің аймағыңыздың 3D картасын алу үшін мен сізге картаны жасау процесінде сізге көмектесу үшін бөлек нұсқаулық жаздым. Нұсқаулыққа сілтеме мына жерде:
www.instructables.com/id/Making-a-3D-Print…
2 -қадам: Картаны жарықдиодты енгізу үшін дайындау
Енді сізде 3D картасы бар, жолдары, қалалары мен өзендері бар, бізге адамның картадан қайда екенін көрсету әдісі қажет. Мен екі түсті 3 мм RG светодиодтарын қолдандым, себебі картаның негізгі мақсаты-екі ата-ананың қайда екенін көрсету. Кейбір жерлерде мен үлкен баланың қайда екенін көрсетуге мүмкіндік беретін RGB светодиодын қолдандым. Raspberry Pi -де 28 түйреуіш шығаруға шектеу бар, сондықтан жарық диодтардың орналасуын ақылмен таңдаңыз. Мен олардың шамамен 24 -ін қолдандым, сондықтан сіз жақсы болуыңыз керек.
PLA бұрғылау үшін мен ағаштан жасалған бұрғылаудың жақсы жұмыс істейтінін таптым, мен ағашты қалай өңдейтін болсам, солай өңдедім.
Карта тым қалың жерлерде мен базалық қабатты үлкен бұрғымен, содан кейін жоғарыда көрінетін 3 мм бұрғымен дұрыс бұрғылайтынмын.
3 -қадам: Жарық диодтарын салыңыз
Енді бізде светодиодтар үшін тесіктер бар, біз оларды желімдей аламыз. Бұл үшін PVA немесе Superglue жақсы жұмыс істейді, мен PVA -ның айналасында жүгіріп, оны тығыздап бекітіп қойғанын, суперглюздің де өте жақсы жұмыс істейтінін байқадым. Светодиодтың әрқайсысында олар бірнеше мм -ге ғана көрінетініне көз жеткізіңіз, себебі жарық диодтары толығымен жабысқақ болып көрінеді. Артқы жағындағы аяқтар туралы алаңдамаңыз, біз оларды дәнекерленгеннен кейін бүктеп аламыз.
4 -қадам: Жарықдиодты Raspberry Pi -ге қосыңыз
Мен светодиодты Raspberry Pi-ге тікелей дәнекерледім, бірақ егер сізде алдын-ала дәнекерленген үстіңгі тақтасы бар болса немесе сіз pi-ді басқа нәрсеге қолдана білгіңіз келсе, онда мен әр жарық диодты қосқыш сымдарды қолдануды ұсынар едім, яғни Pi жойылады. Көріп отырсыздар, мен светодиодты дәнекерлегеннен кейін, аяқтарымды бүктеп қойдым, олар артқы жағына жабысып қалмады.
5 -қадам: Жарық диодтарын тексеріңіз
Барлық светодиодтар жұмыс істейтініне көз жеткізу үшін мен әрбір мүмкін істікшеден өтетін сценарийді жүргіздім және оларды бірте -бірте жарықтандырамын, ол ендіру батырмасын басқан кезде келесіге ауысады. Бұл маған қай істік нөмірі қай жерде жасалғанын, қайсысы өте пайдалы екенін жазуға мүмкіндік берді.
GPO ретінде RPi. GPIO импорттау
i ауқымындағы (0, 28) GPIO.setmode (GPIO. BCM) импорттау уақыты: i ауқымындағы (0, 28) GPIO.setup (i, GPIO. OUT): GPIO. шығысы (i, GPIO. HIGH) time.sleep (0.3) GPIO.output (i, GPIO. LOW) басып шығару («Бұл болды:» + str (i)) z = raw_input («Келесі?»)
Бұл орын алған кезде, мен мәтіндік файлға қай түйіннің қай жерде және қандай түспен жасағанын жазар едім. Мұны істеу керек, себебі бұл келесі қадамда өте пайдалы.
6 -қадам: Сұралған кезде жарық диодты қосу коды
Мен бұл жобаны қалай іске қосамын, бұл істікті қосуға мүмкіндік беретін негізгі веб -сайты бар Raspberry Pi Zero W. Бұл әдетте қосылатын және жұмыс істейтін негізгі Pi 4 өңдеуді жасай алатынын білдіреді, содан кейін кішкене Pi 0 істі сәл күрделірек етіп істікті қосуы керек. Мен мұны менің қондырғыма сәйкес келетіндіктен жасадым, сонымен қатар Pi 0 біз кейінірек жасайтын нәрсе үшін баяу болуы мүмкін екенін сездім.
GPO ретінде RPi. GPIO импорттау
колбадан импорттау уақыты Flask, render_template, request, jsonify import os app = Flask (_ name_) p = i ауқымындағы (0, 28) GPIO.setmode (GPIO. BCM): GPIO.setup (i, GPIO. OUT) @app.route ('/') def index (): return request.remote_addr @app.route («/off/») def turn_off (pin): GPIO.output (int (pin), GPIO. LOW) «Off» @app.route («/off/all») def alloff (): i ауқымындағы (0, 28): GPIO.output (i, GPIO. LOW) «өшіру» @app.route («/on/») def turn_on (pin): GPIO.output (int (pin), GPIO. HIGH) _name_ == '_main_' болса, «On» қайтарады: app.run (debug = True, host = '0.0. 0,0 ')
Бұл қалай жұмыс істейді, ол IP мекенжайының URL мекенжайын күтеді, содан кейін қосылады немесе өшеді, содан кейін пин нөмірі.
бұл кодты Raspberry Pi үй каталогында сақтаңыз және оны «pin_website.py» деп атаңыз
Сіз мұны автоматты түрде іске қосуды орнатуыңыз керек, ол үшін терминал түрінде: sudo nano /etc /profile
Бұл файлдың төменгі жағына «python3 pin_website.py &» қосыңыз
«&» Өте маңызды, себебі ол фонда жұмыс істейді, сондықтан жүктеуді жалғастыруға мүмкіндік береді
7 -қадам: орналасқан жерді қалай алуға болады
IFTTT көмегімен сіз телефонды белгілі бір жерге енгізгенде, ол сізге электрондық пошта жібере алатынын немесе веб -мекенжайды жібере алатынын немесе телеграмға хабар жіберетіндей етіп қызметті орната аласыз.
8 -қадам: Мұның бәрі қалай жұмыс істейді
Менде бар сервер - Pi, ол менің веб -сайтымды орналастырады, https://freedns.afraid.org/ ұсынған қызметті қолдана отырып, порт жіберу және тұрақты DNS. Мұның бәрі өте күрделі, және сіз порттарды жіберу туралы түсінікке ие болуыңыз керек, мен бұл бөлікті басқа уақытта қалай жасау керектігін түсіндіре аламын.
Мұны істеудің тағы бір тәсілі - пи -ге хабарлама алу үшін телеграмманы пайдалану, мүмкін, ең қарапайымы - бұл электрондық поштаны оқитын электрондық поштаны оқу құралы және ол арқылы орналасқан жер туралы жаңартуларды қабылдайды.
Мен Telegram ботын немесе электрондық поштаны оқу құралын қолданып көрмеппін, бірақ мұны қалай жасау керектігін көрсететін көптеген оқулықтар бар.
Міне, менің Flask / Python коды, оны IFTTT көмегімен webhooks сұрайды:
колбадан импорттаудан Flask, render_template, request, jsonify
датаны импорттау датадан картаны импорттау * app = Flask (_ name_) l = 0 setup () @app.route ('/') def index (): return request.remote_addr @app.route ('/mum/enter /') def mu (орналасу): mum.current_loc (орналасу) қайтару «Жаңартуға рахмет, мама!» @app.route («/dad/enter/») def da (l): dad.current_loc (l) қайтару «Жаңартуға рахмет, әке!» @app.route («/child/enter/») def child_enter (l): me.current_loc (l) «Hey, Me» қайтару @app.route ('/mum/exit/') def mume (орналасуы): mum.offline (орналасқан жері) «Жаңартуға рахмет, мама!» @app.route («/dad/exit/») def dade (l): dad.offline (l) «Жаңартуға рахмет, әке!» @app.route («/child/exit/») def child_exit (l): me.offline (l) «Hey, Me» қайтару @app.route («/reset») def redo (): setup () return «Қалпына келтіру!» егер _name_ == '_main_': app.run (отладка = Рас, хост = '0.0.0.0')
және map.py:
http.client, urllib.request, urllib.parse, urllib.error, base64 импорттау
ast, json импорттау уақыты импорттау ағыны импорттау os params = urllib.parse.urlencode ({}) last_loc = 0 dlast_loc = 0 mlast_loc = 0 def setup (): conn = http.client. HTTPSConnection ('ozodns.afraid.org')) Conn.request («GET», str («/dynamic/update.php? ZmFpOWlJQ29QczhiOW1iYWJoNVdVcG9HOjE5MTM2ODU2»)) answer = conn.getresponse () conn = http.client. HTTPConnection ('192.1000.1.21) «GET», str («/off/all»)) жауап = қосылу. Жауап ашық («pind», «w») f.write (str (-1)) f.close () f = open («pinm», «w») f.write (str (-1)) f.close () сынып мамасы: def current_loc (l): global last_loc locs = {«llansantffraid»: 4, «oswestry»: 5, «lynclys»: 8, «home»: 9, «shrewsbury»: 11, «llanymynech»: 13, «төрт крест»: 18, «llandrinio»: 25, «welshpool»: 27} f = open («pin», «w») f.write (str (-1)) f.close () уақыт. ұйқы (1) conn = http.client. HTTPConnection ('192.168.1.251:5000') conn.request («GET», str («/off/») + str (last_loc)) жауап = conn.getrespons e () conn = http.client. HTTPConnection ('192.168.1.251:5000') conn.request («GET», str («/on/») + str (locs [l])) жауап = 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,» төрт крест «: 18,» llandrinio «: 25,» welshpool «: 27} conn = http.client. HTTPConnection ('192.168.1.251:5000') conn.request (» GET «, str (») /off/«) + str (last_loc)) жауап = conn.getresponse () f = ашық (» түйреуіш «,» w «) f. жазу («python3 flash.py &») сынып әкесі: 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,» төрт крест «: 15} f = ашық (» 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)) жауап = қосылу. жауап, str («/on/») + str (locs [l])) жауап = қосылу «: 1,» үй «: 23,» shrewsbury «: 0,» llanymynech «: 6,» four crosses «: 15,» llandrinio «: 10} conn = http.client. HTTPConnection ('192.168.1.251:5000')) conn.request («GET», str («/off/») + str (dlast_loc)) жауап = conn.getresponse () f = ашық («pind», «w») f.write (str (locs [l])) f.close () os.system («python3 flashd.py &») мені сынып: def current_loc (l): global mlast_loc locs = {«үй»: 22, «мектеп»: 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)) жауап = conn.getresponse () conn = http.client. HTTPConnection (' 192.168.1.251:5000 ') қосылу («GET», str («/on/») + str (lo cs [l])) жауап = conn.getresponse () mlast_loc = locs [l] def offline (l): жаһандық dlast_loc locs = {«үй»: 22, «мектеп»: 2, «oswestry»: 14} қосылу = http.client. HTTPConnection ('192.168.1.251:5000') conn.request («GET», str («/off/») + str (mlast_loc)) жауап = conn.getresponse () f = ашық («пинм»), «w») f.write (str (locs [l])) f.close () os.system («python3 flashm.py &»)
9 -қадам: Менің жобамнан шабыт алу арқылы өзіңізді құрыңыз
Мен алдыңғы қадамды түсіну өте қиын болатынын білемін, сондықтан мен оны сізге картаны қалай жасау керектігін көрсетемін және светодиодты қосатын және өшіретін таңқурайға ие боламын. Енді сізге IFTTT көмегімен электрондық поштаны жіберетін питон сценарийін жасау қажет. Содан кейін сізге электрондық поштаны оқу керек, бұл өте оңай (google it). Содан кейін сіз электрондық поштаны оқып, ата -ананың орналасқан жерін тапқаннан кейін, «егер» операторын қолданып, қай істікті қосу керектігін табыңыз.
Картада жыпылықтайтын жарық олардың бұл аумақтан жаңа шыққанын білдіреді
Питоннан басқа пиодтағы жарықдиодты қосу әдісі төмендегідей:
http.client, urllib.request, urllib.parse, urllib.error, base64 импорттау
params = urllib.parse.urlencode ({}) conn = http.client. HTTPConnection ('192.168.1.251:5000') #мұны таңқурай pi картасының IP мекенжайымен өзгертіңіз conn.request («GET», str («/off») /2 «)) # бұл 2 -түйреуішті өшіреді жауап = conn.getresponse () # бұл URL сұрайды, содан кейін pi картасы осыны оқиды және 2 -ші істікшені өшіреді.
Негізінде, сіз менің 3D картаммен істегенімді GPS бақылау картасын жасау үшін шабыт ретінде пайдалана аласыз деп үміттенемін.
Ұсынылған:
Кіріспе - Raspberry Pi -ді GPS бақылау серверіне айналдырыңыз: 12 қадам
Кіріспе - Raspberry Pi -ді GPS қадағалау серверіне айналдырыңыз: Бұл нұсқаулықта мен Traccar GPS қадағалау бағдарламасын Raspberry Pi -ге қалай орнату керектігін көрсетемін, ол интернетте үйлесімді құрылғылардан деректерді қабылдайды, олардың орналасуын картаға нақты уақытта тіркейді. қадағалау, сонымен қатар ойнатуды қадағалау
ПХД: GPS және GSM негізіндегі көлікті бақылау жүйесі: 3 қадам
ПХД: GPS және GSM негізіндегі автокөліктерді бақылау жүйесі: GPS және GSM негізіндегі автокөліктерді бақылау жүйесі 30 маусым, 2016 ж., Инженерлік жобалар GPS және GSM негізіндегі автокөліктерді бақылау жүйесі жобасы Global Positioning System (GPS) мен жаһандық ұялы байланыс жүйесін (GSM) қолданады. бұл жобаны қосымша етеді
NodeMCU көмегімен IoT негізіндегі топырақ ылғалдылығын бақылау мен бақылау жүйесі: 6 қадам
NodeMCU көмегімен IoT негізіндегі топырақтағы ылғалдылықты бақылау мен бақылау жүйесі: Бұл оқулықта біз ESP8266 WiFi модулін, яғни NodeMCU көмегімен IoT негізіндегі топырақ ылғалдылығын бақылау мен бақылау жүйесін енгізетін боламыз. Бұл жобаға қажет компоненттер: ESP8266 WiFi модулі- Amazon (334/- INR) реле модулі- Amazon (130/- INR
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайырымдылық робот - Arduino: 9 қадам (суреттермен)
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайыршы робот - Arduino: Біз қайыршы робот жасамақпыз. Бұл робот тітіркендіруге немесе өтіп бара жатқан адамдардың назарын аударуға тырысады. Бұл олардың беттерін анықтап, оларға лазермен оқ атуға тырысады. Егер сіз роботқа тиын берсеңіз, ол ән айтып, би билейді. Роботқа қажет болады
GPS бақылау картасы үшін DeLorme Earthmate GPS LT-20-ды Google Earth-ке қалай қосуға болады: 5 қадам
GPS бақылау картасы үшін DeLorme Earthmate GPS LT-20-ды Google Earth-ке қалай қосуға болады: Мен сізге Google Earth Plus қолданбастан GPS құрылғысын әйгілі Google Earth бағдарламасына қалай қосу керектігін көрсетемін. Менде үлкен бюджет жоқ, сондықтан бұл мүмкіндігінше арзан болатынына кепілдік бере аламын