Orodha ya maudhui:
- Hatua ya 1: Kupata Ramani ya 3D
- Hatua ya 2: Kuandaa Ramani ya Kuingiza LED
- Hatua ya 3: Ingiza LED
- Hatua ya 4: Unganisha LED kwenye Raspberry Pi
- Hatua ya 5: Jaribu LEDs
- Hatua ya 6: Nambari ya Kuwasha LED Inapoombwa
- Hatua ya 7: Jinsi ya Kupokea Mahali
- Hatua ya 8: Jinsi Hii Inavyofanya Kazi
- Hatua ya 9: Jenga Yako mwenyewe Kutoka kwa Uvuvio Kwenye Mradi Wangu
Video: Ufuatiliaji wa GPS Ramani ya 3D: Hatua 9
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Mradi huu ni ramani ya 3D iliyochapishwa ya 3D, na barabara, mito na miji, na taa za LED kuonyesha eneo la washiriki wa familia. Inaweza kuonyesha ikiwa mtoto yuko shuleni au la, au tu eneo la wazazi wote wawili. Tunaweza pia kuitumia kutabiri ni wakati gani wazazi hufika nyumbani, ili chakula cha jioni kiweze kufanywa kwa wakati unaofaa. Pia ni mradi tu mzuri kwa jumla kuonyesha na kuonyesha kwa familia na marafiki.
Natumahi unafurahiya kuifanya hii iwe yenye Agizo, au kufurahiya kujua juu ya mradi ambao nimefanya
Hatua ya 1: Kupata Ramani ya 3D
Ili kupata ramani ya 3D ya eneo lako, nimeandika tofauti inayoweza kufundishwa kukusaidia kupitia mchakato wa kutengeneza moja. Kiungo cha anayefundishwa ni hapa:
www.instructables.com/id/Making-a-3D-Print ……
Hatua ya 2: Kuandaa Ramani ya Kuingiza LED
Sasa kwa kuwa una ramani ya 3D, na barabara, miji na mito, tunahitaji njia ya kuonyesha mahali mtu yuko kwenye ramani. Nilitumia LED zenye rangi mbili-3mm RG, kwa sababu kusudi kuu la ramani ni kuonyesha mahali wazazi wawili walipo. Katika maeneo fulani nilitumia RGB LED, kuniruhusu kuonyesha ambapo mtoto mkubwa alikuwa. Kuna kikomo cha pini 28 kwa pato kwenye Raspberry Pi, kwa hivyo chagua maeneo ya LED kwa busara. Niliishia kutumia karibu 24 kati yao, kwa hivyo unapaswa kuwa sawa.
Ili kuchimba PLA, nilipata kuchimba visima vya kawaida vya kuni vilifanya kazi vizuri, na nilitibu ni kama vile ningeweza kutibu kuni.
Katika maeneo, ambapo ramani ilikuwa nene sana, ningechimba safu ya msingi na biti kubwa ya kuchimba visima, na kisha safu inayoonekana hapo juu na kipenyo sahihi cha 3mm.
Hatua ya 3: Ingiza LED
Sasa kwa kuwa tuna mashimo ya taa za LED kukaa, Tunaweza kuziunganisha. PVA au Superglue inafanya kazi vizuri kwa hili, niligundua kuwa PVA iliizunguka kuiziba mahali, na superglue pia ilifanya kazi vizuri sana. Hakikisha kwamba kwa kila LED, zinashikilia tu upande unaoonekana na mm chache, Kwa sababu kuwa na taa za LED zinaonekana kuwa mbaya. Usijali juu ya miguu nyuma, tunaweza kuikunja mara tu itakapouzwa.
Hatua ya 4: Unganisha LED kwenye Raspberry Pi
Niliuza LED moja kwa moja kwa Raspberry Pi, hata hivyo, ikiwa unayo na kichwa kilichouzwa kabla, au unataka kutumia pi kwa kitu kingine, basi ningependekeza kutumia waya za kuruka kwa kila LED, ikimaanisha kuwa Pi inaondolewa. Unaweza kuona kwamba mara tu nilipokuwa nimeuza LED, nilikunja miguu chini ili wasishike nyuma.
Hatua ya 5: Jaribu LEDs
Ili kuhakikisha kuwa LED zote zinafanya kazi, nilitumia maandishi ambayo hupitia kila pini inayowezekana, na kuwasha, moja kwa wakati, ambayo, inapita kwenye inayofuata wakati ninabofya ingiza. Hii iliniruhusu kutambua ni nambari gani ya pini iliyofanya eneo lipi, ambalo lilikuja muhimu sana.
kuagiza RPi. GPIO kama GPIO
wakati wa kuagiza GPIO.setmode (GPIO. BCM) kwa i katika anuwai (0, 28): GPIO.setup (i, GPIO. OUT) kwa i katika anuwai (0, 28): GPIO.output (i, GPIO. HIGH) muda. lala (0.3) GPIO.pato (i, GPIO. LOW) chapa ("Hiyo Ilikuwa:" + str (i)) z = mbichi_kuingiza ("Ifuatayo?")
Wakati hii ilikuwa ikitokea, ningeandika chini kwenye faili ya maandishi ambayo pini ilifanya mahali na rangi gani. Unahitaji kufanya hivyo, kwani ni muhimu sana katika hatua inayofuata.
Hatua ya 6: Nambari ya Kuwasha LED Inapoombwa
Njia ambayo nimefanya mradi huu inahusisha Raspberry Pi Zero W moja, na wavuti ya msingi ambayo hukuruhusu kuwasha pini. Hii ilimaanisha kuwa Pi 4 kuu, ambayo kawaida huwashwa, na inaendesha, inaweza kufanya usindikaji, halafu Pi 0 kidogo inabidi tu kuwasha pini, na kufanya mambo kuwa ngumu zaidi. Nilifanya hivi kwa sababu inafaa usanidi wangu, na pia nilihisi Pi 0 inaweza kuwa polepole kwa kile tutakachokuwa tukifanya baadaye.
kuagiza RPi. GPIO kama GPIO
ingiza wakati kutoka kwa chupa ya kuingiza chupa, render_template, ombi, jsonify import os app = Flask (_ name_) p = GPIO.setmode (GPIO. BCM) kwa i katika masafa (0, 28): GPIO.setup (i, GPIO. OUT) @ app.route ('/') def index (): ombi la kurudi.remote_addr @ app.route ("/ off /") def turn_off (pin): GPIO.output (int (pin), GPIO. LOW) rudisha "Zima" @ app.route ("/ off / all") def alloff (): kwa i katika anuwai (0, 28): GPIO.output (i, GPIO. LOW) rudisha "off" @ app.route ("/ on /") def turn_on (pin): GPIO.output (int (pin), GPIO. HIGH) kurudi "On" ikiwa _name_ == '_main_': app.run (debug = True, host = '0.0. 0.0 ')
Njia ambayo hii inafanya kazi ni kusubiri url ya anwani ya IP ya pi na kisha kuwasha au kuzima na kisha nambari ya pini.
hifadhi nambari hii kwenye saraka ya nyumbani ya Raspberry Pi, na uipe jina "pin_website.py"
Utahitaji kuweka hii kuendesha kiatomati, kwa hivyo kufanya hivyo, katika aina ya wastaafu: Sudo nano / etc / profile
Chini ya faili hii, ongeza "python3 pin_website.py &"
"&" Ni muhimu, kwani inafanya kukimbia nyuma, na kwa hivyo inaruhusu buti kuendelea
Hatua ya 7: Jinsi ya Kupokea Mahali
Kutumia IFTTT, unaweza kuanzisha huduma ili wakati simu itaingia mahali fulani, inaweza kukutumia barua pepe, au kuweka anwani ya wavuti, au kukutumia ujumbe kwenye telegram.
Hatua ya 8: Jinsi Hii Inavyofanya Kazi
Usanidi ninao Server Pi, mwenyeji wa wavuti yangu, na usambazaji wa bandari na DNS tuli kutumia huduma iliyotolewa na https://freedns.afraid.org/. Mengi ya haya ni ngumu sana, na unahitaji kuwa na uelewa wa usambazaji wa bandari, naweza kufundisha jinsi ya kufanya sehemu hii wakati mwingine.
Njia nyingine unayoweza kufanya ni kutumia telegram kupata ujumbe kwa pi, au labda rahisi zaidi, ni kuweka msomaji wa barua pepe anayesoma barua pepe na kupokea sasisho za eneo kupitia hiyo.
Sijajaribu bot ya Telegram au msomaji wa barua pepe, lakini kuna mafunzo mengi huko nje ambayo yatakuonyesha jinsi ya.
Hapa kuna nambari yangu ya Flask / Python ambayo inaombwa na webhooks kutumia IFTTT:
kutoka Flask kuagiza Flask, render_template, ombi, jsonify
kuagiza os kutoka wakati wa kuingiza wakati wa wakati kutoka kwa kuagiza ramani * app = Flask (_ name_) l = 0 setup () @ app.route ('/') def index (): return request.remote_addr @ app.route ('/ mum / enter / ') def mu (eneo): mum.current_loc (eneo) kurudi "Asante kwa Sasisho, Mama!" @ app.route ("/ dad / enter /") def da (l): dad.current_loc (l) kurudi "Asante Kwa Sasisho, Baba!" @ app.route ("/ mtoto / ingia /") def child_enter (l): me.current_loc (l) kurudi "Hey, Me" @ app.route ('/ mum / exit /') def mume (eneo): mum.offline (eneo) kurudi "Asante kwa Sasisho, Mama!" @ app.route ("/ baba / toka /") def dade (l): dad.offline (l) kurudi "Asante Kwa Sasisho, Baba!" @ app.route ("/ mtoto / toka /") def child_exit (l): me.offline (l) kurudi "Hey, Me" @ app.route ("/ reset") def redo (): setup () kurudi "Weka upya!" ikiwa _name_ == '_main_': app.run (debug = True, host = '0.0.0.0')
na map.py:
kuagiza http.client, urllib.request, urllib.parse, urllib.error, base64
kuagiza ast, json kuagiza muda kuagiza kuagiza thread os os params = urllib.parse.urlencode ({}) last_loc = 0 dlast_loc = 0 mlast_loc = 0 def setup (): conn = http.client. HTTPSConnection ('freedns.afraid.org' ombi. "GET", str ("/ off / all")) response = conn.getresponse () f = open ("pin", "w") f.andika (str (-1)) f.close () f = fungua ("pind", "w") f.andika (str (-1)) f.close () f = open ("pinm", "w") f.write (str (-1)) f. karibu () mama mum: def current_loc (l): global last_loc locs = {"llansantffraid": 4, "oswestry": 5, "lynclys": 8, "home": 9, "shrewsbury": 11, "llanymynech": 13, "misalaba minne": 18, "llandrinio": 25, "welshpool": 27} f = fungua ("pini", "w") f.andika (str (-1)) f. karibu () wakati. lala (1) conn = http.client. HTTPConnection ('192.168.1.251:5000') e () conn = http.client.) last_loc = locs [l] def offline (l): global last_loc locs = {"llansantffraid": 4, "oswestry": 5, "lynclys": 8, "home": 9, "shrewsbury": 11, "llanymynech ": 13," misalaba minne ": 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. andika (str (locs [l])) f. ("python3 flash.py &") baba wa darasa: locs = {"welshpool": 3, "lynclys": 1, "home": 23, "shrewsbury": 0, "llanymynech": 6, "misalaba minne": 15, "llandrinio": 10, "welshpool": 24} def current_loc (l): global dlast_loc locs = {"welshpool": 3, "lynclys": 1, "home": 23, "shrewsbury": 0, " llanymynech ": 6," misalaba minne ": 15} f = fungua (" pind "," w ") f. andika (str (-1)) f. karibu () time.sleep (1) conn = http. Uunganisho wa HTTP ('192.168.1.251:5000') maoni t ("GET", str ("/ off /") + str (dlast_loc)) response = conn.getresponse () conn = http.client. HTTPConnection ('192.168.1.251:5000') ombi la "conn.", str ("/ on /") + str (locs [l])) response = conn.getresponse () dlast_loc = locs [l] def offline (l): global dlast_loc locs = {"welshpool": 3, "lynclys ": 1," nyumbani ": 23," shrewsbury ": 0," llanymynech ": 6," misalaba minne ": 15," llandrinio ": 10} conn = http.client. HTTPConnection ('192.168.1.251:5000' ombi la ombi ("GET", str ("/ off /") + str (dlast_loc)) response = conn.getresponse () f = open ("pind", "w") f. l])) f.close () os.system ("python3 flashd.py &") darasa mimi: def current_loc (l): global mlast_loc locs = {"home": 22, "school": 2, "oswestry": 14} f = fungua ("pinm", "w") f. Andika (str (-1)) f.close () time.sleep (1) conn = http.client. HTTPConnection ('192.168.1.251:5000 ombi la conn.request ("GET", str ("/ off /") + str (mlast_loc)) response = conn.getresponse () conn = http.client. HTTPConnection ('192.168.1.251:5000') ("GET", str ("/ on /") + str (tazama cs [l])) response = http.client. HTTPConnection ('192.168.1.251:5000') conn.request ("GET", str ("/ off /") + str (mlast_loc)) response = conn., "w") f. andika (str (locs [l])) f.close () os.system ("python3 flashm.py &")
Hatua ya 9: Jenga Yako mwenyewe Kutoka kwa Uvuvio Kwenye Mradi Wangu
Kwa hivyo najua kuwa hatua ya awali itakuwa ngumu sana kuelewa, kwa hivyo nitaiacha kama kukuonyesha jinsi ya kutengeneza ramani, na kuweza kuwa na pi ya rasipiberi ambayo inawasha na kuzima taa za taa. Sasa unahitaji kuunda hati ya chatu ambayo, kwa kutumia IFTTT, hukutumia barua pepe. Kisha unahitaji kupata kipande cha nambari ya kusoma ya barua pepe, ambayo ni rahisi sana (google it). Halafu ukishasoma barua pepe na kupata eneo la mzazi, tumia taarifa za 'ikiwa' kupata kipini cha kuwasha.
Kwenye ramani, taa inayowaka inamaanisha kuwa wameondoka tu eneo hilo
Njia ya kuwasha LED kwenye pi nyingine kutoka kwa chatu ni kama ilivyo hapo chini:
kuagiza http.client, urllib.request, urllib.parse, urllib.error, base64
params = urllib.parse.urlencode ({}) conn = http.client. HTTPConnection ('192.168.1.251:5000') #badilisha hii na ramani ya rasipberry pi anwani ya IP conn.request ("GET", str ("/ off) / 2 ")) # hii inazima pini nambari 2 majibu = conn.getresponse () # hii inauliza URL, halafu ramani pi inasoma hii na kuzima namba ya siri 2
Kimsingi, natumahi unaweza kutumia kile nilichofanya na ramani yangu ya 3D kama msukumo wa kutengeneza ramani yako ya ufuatiliaji wa GPS.
Ilipendekeza:
Ufuatiliaji wa Nguo / Ufuatiliaji wa Kavu na ESP8266 & Sensor ya Kuongeza kasi: Hatua 6
Ufuatiliaji wa Nguo / Kavu ya Ufuatiliaji na ESP8266 & Sensor ya Kuongeza kasi: Washa nguo / dryer iko kwenye basement, na wewe, kama sheria, weka lundo la nguo ndani yake na baada ya hapo, unashiriki katika kazi yako nyingine ya nyumba. Unapuuza mavazi ambayo yalibaki yamejaa na kufyonza kwenye basement kwenye mashine yako
Tengeneza Kitabu cha Ramani Kutumia Ramani za Google: Hatua 17 (na Picha)
Tengeneza Kitabu cha Ramani Kutumia Ramani za Google: Siku nyingine nilikuwa nikitafuta duka la vitabu kwa Mwongozo wa Mtaa wa Kaunti ya DuPage, IL kwani rafiki yangu wa kike anaishi hapo na anahitaji ramani ya barabara ya kina. Kwa bahati mbaya, moja tu ambayo walikuwa nayo ambayo ilikuwa karibu ilikuwa moja ya Kaunti ya Cook (kama hii o
Ufuatiliaji wa faragha umechukuliwa kutoka kwa Ufuatiliaji wa zamani wa LCD: Hatua 7 (na Picha)
Ufuatiliaji wa faragha umedukuliwa Kutoka kwa Ufuatiliaji wa Zamani wa LCD: Mwishowe unaweza kufanya kitu na mfuatiliaji huyo wa zamani wa LCD ulio na karakana. Unaweza kuibadilisha kuwa mfuatiliaji wa faragha! Inaonekana kuwa nyeupe kwa kila mtu isipokuwa wewe, kwa sababu umevaa " uchawi " glasi! Unachotakiwa kuwa nacho ni pa
Ufuatiliaji wa Chassis ya Ufuatiliaji wa Kijijini cha Rugged: Hatua 7 (na Picha)
Ufuatiliaji wa Chassis Remote Tracked Bot: Utangulizi: Kwa hivyo huu ulikuwa mradi ambao mwanzoni nilitaka kuanza na kukamilisha nyuma mnamo 2016, hata hivyo kwa sababu ya kazi na wingi wa vitu vingine nimeweza tu kuanza na kukamilisha mradi huu katika mwaka mpya 2018! Ilichukua kama wee 3
Jinsi ya Kuunganisha DeLorme Earthmate GPS LT-20 kwa Google Earth yako kwa Ramani nzuri ya Ufuatiliaji wa GPS
Jinsi ya Kuunganisha DeLorme Earthmate GPS LT-20 kwa Google Earth yako kwa Ramani nzuri ya Ufuatiliaji wa GPS. Nitaonyesha jinsi ya kuunganisha kifaa cha GPS kwenye mpango maarufu wa Google Earth, bila kutumia Google Earth Plus. Sina bajeti kubwa kwa hivyo ninaweza kuhakikisha kuwa hii itakuwa rahisi iwezekanavyo