ዝርዝር ሁኔታ:

የጂፒኤስ መከታተያ 3 ዲ ካርታ 9 ደረጃዎች
የጂፒኤስ መከታተያ 3 ዲ ካርታ 9 ደረጃዎች

ቪዲዮ: የጂፒኤስ መከታተያ 3 ዲ ካርታ 9 ደረጃዎች

ቪዲዮ: የጂፒኤስ መከታተያ 3 ዲ ካርታ 9 ደረጃዎች
ቪዲዮ: ዩኒሳይክል መንዳት 2024, ሀምሌ
Anonim
የጂፒኤስ መከታተያ 3 ዲ ካርታ
የጂፒኤስ መከታተያ 3 ዲ ካርታ
የጂፒኤስ መከታተያ 3 ዲ ካርታ
የጂፒኤስ መከታተያ 3 ዲ ካርታ

ይህ ፕሮጀክት የቤተሰብ አባላትን ቦታ ለማሳየት በመንገዶች ፣ በወንዞች እና በከተሞች ፣ በ LED ቢኮኖች አማካኝነት 3 ዲ የታተመ 3 ዲ ካርታ ነው። አንድ ልጅ በትምህርት ቤት መሆን አለመሆኑን ፣ ወይም የሁለቱም ወላጆች ሥፍራ ብቻ ሊያሳይ ይችላል። እንዲሁም እራት ለትክክለኛው ጊዜ እንዲደረግ ወላጆቹ ወደ ቤት የሚመለሱበትን ጊዜ ለመተንበይም ልንጠቀምበት እንችላለን። እንዲሁም ለቤተሰብ እና ለጓደኞች ለማሳየት እና ለማሳየት በአጠቃላይ አሪፍ ፕሮጀክት ነው።

ይህንን አስተማሪነት በመሥራት ይደሰታሉ ወይም ስለሠራሁት ፕሮጀክት በማወቅ ይደሰታሉ ብዬ ተስፋ አደርጋለሁ

ደረጃ 1 ፦ 3 ዲ ካርታ ማግኘት

የአካባቢያችሁን 3 ዲ ካርታ ለማግኘት ፣ አንዱን በማድረጉ ሂደት እርስዎን ለመምራት የሚረዳ የተለየ መመሪያ ጽፌያለሁ። ከአስተማሪው ጋር ያለው አገናኝ እዚህ አለ

www.instructables.com/id/Making-a-3D-Print…

ደረጃ 2 - ለ LED ማስገቢያዎች ካርታውን ማዘጋጀት

አሁን የ 3 ዲ ካርታ አለዎት ፣ በመንገዶች ፣ በከተሞች እና በወንዞች ፣ አንድ ሰው በካርታው ላይ የት እንዳለ የሚጠቁምበት መንገድ እንፈልጋለን። እኔ ባለ ሁለት-ቀለም 3 ሚሜ አርጂ ኤልኢዲዎችን እጠቀም ነበር ፣ ምክንያቱም የካርታው ዋና ዓላማ ሁለቱ ወላጆች የት እንዳሉ ለማሳየት ነው። በዕድሜ ትልቁ ልጅ ያለበትን ለማሳየት በተወሰኑ ቦታዎች ላይ አርጂቢ ኤልዲ (LED) ተጠቀምኩ። በ Raspberry Pi ላይ ለማምረት የ 28 ፒኖች ገደብ አለ ፣ ስለሆነም የ LEDs ሥፍራዎችን በጥበብ ይምረጡ። እኔ ወደ 24 የሚጠጉትን ተጠቅሜ አበቃሁ ፣ ስለዚህ ደህና መሆን አለብዎት።

PLA ን ለመቦርቦር ፣ መደበኛ የእንጨት መሰርሰሪያ ቢት በጥሩ ሁኔታ ሲሠራ አገኘሁ ፣ እና እኔ እንደ እንጨት እንደማከም አድርጌያለሁ።

ካርታው በጣም ወፍራም በነበረባቸው ቦታዎች ፣ የመሠረቱን ንብርብር በትላልቅ ቁፋሮ ቢት ፣ ከዚያም የሚታየው የላይኛው ንብርብር ከትክክለኛው የ 3 ሚሜ ቁፋሮ ቢት ጋር አወጣለሁ።

ደረጃ 3: ኤልኢዲዎቹን ያስገቡ

ኤልኢዲዎቹን ያስገቡ
ኤልኢዲዎቹን ያስገቡ

አሁን ለኤልዲዎቹ የሚቀመጡበት ቀዳዳዎች ስላሉን ፣ እኛ ውስጥ ማጣበቅ እንችላለን። PVA ወይም Superglue ለዚህ በጥሩ ሁኔታ ይሠራል ፣ PVA በቦታው ላይ በማሸጉ ዙሪያውን እንደሮጠ አገኘሁ ፣ እና superglue እንዲሁ በጥሩ ሁኔታ ሰርቷል። በእያንዲንደ ኤል.ዲ. (LED) ሊይ በሚታይ ጎን ሊይ በጥቂት ሚሊ ሜትር ብቻ ሊጣበቁ ይችሊለ። በጀርባው ላይ ስለ እግሮች አይጨነቁ ፣ አንዴ ከተሸጡ በኋላ እነዚህን ማጠፍ እንችላለን።

ደረጃ 4: ኤልዲዎቹን ከ Raspberry Pi ጋር ያገናኙ

እኔ በቀጥታ LEDs ን ወደ Raspberry Pi ሸጥኳቸው ፣ ሆኖም ፣ እርስዎ ቀድሞ የተሸጠ የራስጌ ካለዎት ፣ ወይም ፒን ለሌላ ነገር ለመጠቀም መቻል ከፈለጉ ፣ ከዚያ ለእያንዳንዱ ኤልዲኤም የመዝለያ ሽቦዎችን እንዲጠቀሙ ሀሳብ አቀርባለሁ ፣ ያ ማለት ፒ ሊወገድ የሚችል ነው። አንዴ ኤልዲውን ከሸጥኩ በኋላ ጀርባው ላይ እንዳይጣበቁ እግሮቼን ወደ ታች አጣጥፌ እንደነበረ ማየት ይችላሉ።

ደረጃ 5: ኤልኢዲዎቹን ይፈትሹ

ኤልዲዎቹን ይፈትሹ
ኤልዲዎቹን ይፈትሹ

ሁሉም ኤልኢዲዎች እየሠሩ መሆናቸውን ለማረጋገጥ ፣ እያንዳንዱን በሚቻል ፒን ውስጥ የሚያልፍ ስክሪፕት ሮጥኩ ፣ እና አንድ በአንድ ያበራልኋቸው ፣ ይህም እኔ ጠቅ ስገባ በሚቀጥለው ወደ ላይ ይወጣል። ይህ የትኛውን የፒን ቁጥር በጣም ጠቃሚ እንደሆነ የገባበትን ቦታ እንዳስተውል አስችሎኛል።

RPi. GPIO ን እንደ GPIO ያስመጡ

የማስመጣት ጊዜ GPIO.setmode (GPIO. BCM) በክልል ውስጥ (0 ፣ 28) ፦ GPIO.setup (i ፣ GPIO. OUT) በክልል ውስጥ ለ (0 ፣ 28) ፦ GPIO.output (i ፣ GPIO. HIGH) time.sleep (0.3) GPIO.output (i, GPIO. LOW) ህትመት ("ያ ነበር:" + str (i)) z = raw_input ("ቀጣይ?")

ይህ በሚሆንበት ጊዜ ፣ የትኛው ፒን የትኛው ቦታ እና የትኛው ቀለም እንዳደረገ የጽሑፍ ፋይል ላይ እመለከተዋለሁ። በሚቀጥለው ደረጃ በጣም ጠቃሚ ስለሆነ ይህንን ማድረግ ያስፈልግዎታል።

ደረጃ 6: ሲጠየቁ LED ን ለማብራት ኮድ

ይህንን ፕሮጀክት የሠራሁበት መንገድ ፒን ለማብራት የሚያስችል መሠረታዊ ድር ጣቢያ ያለው አንድ Raspberry Pi Zero W ን ያካትታል። ይህ ማለት ብዙውን ጊዜ የሚበራ እና እየሮጠ ያለው ዋናው ፒ 4 ማቀነባበሪያውን ሊያከናውን ይችላል ፣ ከዚያ ትንሹ ፒ 0 ፒን ብቻ ማብራት አለበት ፣ ይህም ነገሮችን ትንሽ የበለጠ የተወሳሰበ ያደርገዋል። ይህንን ያደረግሁት ለቅንብሬቼ የሚስማማ ስለሆነ ፣ እና ደግሞ Pi 0 በኋላ ምን እንደምናደርግ ትንሽ ሊዘገይ እንደሚችል ተሰማኝ።

RPi. GPIO ን እንደ GPIO ያስመጡ

የማስመጣት ጊዜን ከ flask ማስመጣት Flask ፣ render_template ፣ ጥያቄ ፣ jsonify ማስመጣት os መተግበሪያ = Flask (_ name_) p = GPIO.setmode (GPIO. BCM) ለክልል (0 ፣ 28) ፦ GPIO.setup (i ፣ GPIO። OUT) @app.route ('/') def index (): መመለስ request.remote_addr @app.route ("/off/") def turn_off (pin): GPIO.output (int (pin), GPIO. LOW) "ጠፍቷል" @app.route ("/ጠፍቷል/ሁሉም") def alloff (): በክልል ውስጥ (0, 28): GPIO.output (i, GPIO. LOW) "ጠፍቷል" @app.route ("/አብራ/") def turn_on (pin): GPIO.output (int (pin) ፣ GPIO. HIGH) _name_ == '_main_': app.run (አርም = እውነት ፣ አስተናጋጅ = '0.0. 0.0 ')

ይህ የሚሠራበት መንገድ የፒ አይ ፒ አድራሻውን ዩአርኤል ይጠብቃል እና ከዚያ ያበራል ወይም ያጥፉ እና ከዚያ የፒን ቁጥሩን ይጠብቃል።

ይህንን ኮድ በ Raspberry Pi የቤት ማውጫ ውስጥ ያስቀምጡ እና “pin_website.py” ብለው ይሰይሙት

ይህንን ለማድረግ በራስ -ሰር እንዲሠራ ማቀናበር ያስፈልግዎታል ፣ ስለዚህ ይህንን ለማድረግ በተርሚናል ዓይነት ውስጥ- sudo nano /etc /profile

በዚህ ፋይል ግርጌ ላይ «python3 pin_website.py &» ን ያክሉ

በጀርባው ውስጥ እንዲሠራ ስለሚያደርግ “&” አስፈላጊ ነው ፣ እና ስለዚህ ማስነሳት እንዲቀጥል ያስችለዋል

ደረጃ 7 - ቦታን እንዴት እንደሚቀበሉ

አካባቢን እንዴት እንደሚቀበሉ
አካባቢን እንዴት እንደሚቀበሉ

IFTTT ን በመጠቀም ስልኩ ወደ አንድ ቦታ ሲገባ ኢሜል ሊልክልዎ ፣ ወይም የድር አድራሻ መላክ ወይም በቴሌግራም መላክ እንዲችል አገልግሎትን ማቀናበር ይችላሉ።

ደረጃ 8: ይህ ሁሉ እንዴት እንደሚሰራ

ያለኝ ቅንብር በ https://freedns.afraid.org/ የተሰጠውን አገልግሎት በመጠቀም ወደብ ማስተላለፍ እና የማይንቀሳቀስ ዲ ኤን ኤስ የእኔን ድር ጣቢያ የሚያስተናግድ አገልጋይ ፒ ነው። ብዙ ይህ በጣም የተወሳሰበ ነው ፣ እና ስለ ወደብ ማስተላለፍ ግንዛቤ ሊኖርዎት ይገባል ፣ ይህንን ክፍል በሌላ ጊዜ እንዴት ማድረግ እንደሚቻል መመሪያ እሰጥ ይሆናል።

እርስዎ ሊያደርጉት የሚችሉበት ሌላው መንገድ ወደ ፒኢ መልእክቶችን ለማግኘት ቴሌግራምን መጠቀም ፣ ወይም በጣም ቀላሉ ፣ ኢሜሎቹን የሚያነብ እና በዚያ በኩል የአካባቢ ዝመናዎችን የሚቀበል የኢሜል አንባቢ ማዘጋጀት ነው።

የቴሌግራምን ቦት ወይም የኢሜል አንባቢን አልሞከርኩም ፣ ግን እንዴት ማድረግ እንደሚችሉ የሚያሳዩ ብዙ ትምህርቶች አሉ።

IFTTT ን በመጠቀም በድር ድርጣቢያዎች የሚጠየቀው የእኔ የፍላሽ / ፓይዘን ኮድ እዚህ አለ።

ከ flask ማስመጣት Flask ፣ render_template ፣ መጠየቅ ፣ 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/መውጣት/') def mume (ቦታ): mum.offline (ቦታ) ይመለሳል "ለዝማኔው አመሰግናለሁ ፣ እማዬ!" @app.route ("/dad/መውጣት/") def dade (l): dad.offline (l) መመለስ "ለዝማኔው አመሰግናለሁ ፣ አባዬ!" @app.route ("/ልጅ/መውጫ/") def child_exit (l): me.offline (l) "Hey, Me" @app.route ("/reset") def redo (): ማዋቀር () መመለስ "ዳግም አስጀምር!" _name_ == '_main_': app.run (አርም = እውነት ፣ አስተናጋጅ = '0.0.0.0')

እና map.py:

http.client ፣ urllib.request ፣ urllib.parse ፣ urllib.error ፣ base64 ያስመጡ

አስት አስመጣ ፣ json የማስመጣት ጊዜ የማስመጣት ክር የማስመጣት 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 ("/ተለዋዋጭ/update.php? ZmFpOWlJQ29QczhiOW1iYWJoNVdVcG9HOjE5MTM2ODU2")) ምላሽ = conn.getresponse () conn = http.client. HTTPConnection ('192.168.1.2 (192.168.1.2) "GET" ፣ str ("/off/all")) ምላሽ = conn.getresponse () f = open ("pin" ፣ "w") f.write (str (-1)) f.close () f = ክፍት ("pind", "w") f.write (str (-1)) f.close () f = open ("pinm", "w") f.write (str (-1)) f.lose () class mum: 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 ሠ () 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 (" /ጠፍቷል " ("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): 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. HTTPC ግንኙነት ('192.168.1.251:5000') conn.reques t ("GET" ፣ str ("/off/") + str (dlast_loc)) ምላሽ = 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): dlast_loc locs = {"welshpool": 3, "lynclys ": 1," ቤት ": 23," shrewsbury ": 0," llanymynech ": 6," አራት መስቀሎች ": 15," llandrinio ": 10} conn = http.client. HTTPConnection ('192.168.1.251:5000') conn.request ("GET" ፣ str ("/off/") + str (dlast_loc)) ምላሽ = conn.getresponse () f = open ("pind", "w") f.write (str (locs [l])) f.close () os.system ("python3 flashd.py &") class me: def current_loc (l): mlast_loc locs = {"home": 22, "school": 2, "oswestry"): 14} ረ = ክፍት ("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 ') conn.request (“ያግኙ” ፣ str (“/on/”) + str (እነሆ cs [l])) ምላሽ = conn.getresponse () mlast_loc = locs [l] def offline (l): dlast_loc locs = {"home": 22, "school": 2, "oswestry": 14} conn = http. ደንበኛ, "ወ") f. ጻፍ (str (locs [l])) f.close () os.system ("python3 flashm.py &")

ደረጃ 9: ከፕሮጀክትዎ ላይ ከመነሳሳት የራስዎን ይገንቡ

ስለዚህ የቀደመው ደረጃ ለመረዳት በጣም ከባድ እንደሚሆን አውቃለሁ ፣ ስለዚህ ካርታውን እንዴት እንደሚያደርጉት በማሳየት እና ኤልኢዲዎችን የሚያበራ እና የሚያጠፋ የራስቤሪ ፓይ እንዲኖረኝ እተወዋለሁ። አሁን ፣ IFTTT ን በመጠቀም ፣ ኢሜል የሚልክልዎ የፓይዘን ስክሪፕት መፍጠር ያስፈልግዎታል። ከዚያ በጣም ቀላል የሆነውን የኢሜል ንባብ ቁራጭ ማግኘት ያስፈልግዎታል (ጉግል)። ከዚያ አንዴ ኢሜልን ካነበቡ እና የወላጅ ቦታን ካገኙ ፣ የትኛውን ፒን ማብራት እንዳለብዎ ‹if› የሚለውን መግለጫ ይጠቀሙ።

በካርታው ላይ ፣ የሚያብለጨልጭ ብርሃን ማለት አካባቢውን ለቀው ወጥተዋል ማለት ነው

በሌላ ፓይ ላይ ኤልኢዲዎችን ከፓይዘን የማብራት መንገድ እንደሚከተለው ነው

http.client ፣ urllib.request ፣ urllib.parse ፣ urllib.error ፣ base64 ያስመጡ

params = urllib.parse.urlencode ({}) conn = http.client. HTTPConnection ('192.168.1.251:5000') #ይህን ከ raspberry pi ካርታ IP አድራሻ conn.request ("GET", str ("/off) /2”)) # ይህ የፒን ቁጥር 2 ምላሽ = conn.getresponse () # ይህ ዩአርኤሉን ይጠይቃል ፣ እና ከዚያ ካርታው ፒ ይህንን ያነባል እና የፒን ቁጥር 2 ን ያጠፋል

በመሠረቱ ፣ እኔ በ 3 ዲ ካርታዬ ያደረግሁትን የራስዎን የጂፒኤስ መከታተያ ካርታ ለመሥራት እንደ መነሳሻ አድርገው ሊጠቀሙበት እንደሚችሉ ተስፋ አደርጋለሁ።

የሚመከር: