ዝርዝር ሁኔታ:

አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት 6 ደረጃዎች
አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት 6 ደረጃዎች

ቪዲዮ: አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት 6 ደረጃዎች

ቪዲዮ: አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት 6 ደረጃዎች
ቪዲዮ: ከወሲብ በፊት ይህን ከጠጣህ አለቀላት ! | ማለቂያ ለሌለው የወሲብ ብቃት | 2024, ሰኔ
Anonim
አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት
አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት
አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት
አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት
አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት
አጠቃላይ እይታ የቤት መዝናኛ እና ደህንነት ስርዓት

ስለ ማመልከቻው

ይህ የ IOT ስርዓት የቤት መዝናኛ እና ደህንነት ስርዓት ነው።

  1. ደህንነት

    1. የ RFID ካርድ መታ ያድርጉ እና ግብዓት ወደ Firebase ይቀመጣሉ።
    2. ከተፈቀደ በሰላም መግባት ይችላሉ እና ስዕሉ ተወስዶ ወደ S3 ተሰቅሏል
    3. ያልተፈቀደ ከሆነ ፣ የመከላከያ ክፍል ይመጣል እና ኤልሲዲ ማያ ገጽ እርስዎ ፈቃድ አልሰጡም ይላል።
  2. መከላከያ

    1. በዳሽቦርዱ ላይ አዝራሩን ይጫኑ።
    2. ሌዘር ቱሬቶች በዘፈቀደ ፍንዳታ እና ፍጥነት ያጠቃሉ።
  3. መዝናኛ

    1. እንቅስቃሴ ከተገኘ ጨዋታው ይጀምራል።
    2. ተጠቃሚው ጨዋታውን ከተጫወተ በኋላ ውጤቱ ወደ Firebase ይቀመጣል።
    3. የ LDR እሴቶች ተወስደው በዳሽቦርዱ ላይ ይወጣሉ።

ይህ መተግበሪያ በ IBM መስቀለኛ-ቀይ የድር አገልጋይ በኩል ሊቆጣጠር የሚችል እና ሊታይ የሚችል ነው። እኛ AWS እና IBM የደመና አገልግሎቶችን እንጠቀማለን እና Firebase ን እንደ የውሂብ ጎታችን እንጠቀም ነበር።

የሚገለጹትን ደረጃዎች ማጠቃለያ

  • የሃርድዌር መስፈርቶች
  • ደህንነት - የ RFID ግቤትን እና የምስል ማወቂያ ሶፍትዌርን የሚጠቀም የደህንነት ስርዓት እንዴት እንደሚፈጠር
  • መከላከያ - የሌዘር ተርባይን እንዴት እንደሚፈጥር
  • መዝናኛ - ስምዖን -ይላል ጨዋታን እንዴት መፍጠር እንደሚቻል
  • የ IOT መተግበሪያ ዋትሰን በ IBM Bluemix ላይ - ሁሉንም ስርዓቶች ወደ አንድ ዳሽቦርድ እንዴት ማዋሃድ እንደሚቻል

ይቀጥሉ እና ይህንን ፕሮጀክት እንዴት መፍጠር እንደሚቻል የበለጠ ዝርዝር ማብራሪያ ለማግኘት የፒዲኤፍ ፋይሉን ይድረሱ።

ደረጃ 1 የሃርድዌር አስፈላጊነት

የሚያስፈልግዎት ይህ ነው

  1. ደህንነት

    • 1 Raspberry Pi
    • 1 ኤልሲዲ
    • 1 RFID አንባቢ
    • 1 PiCam
    • 2 የ RFID ካርዶች/አዝራሮች
    • X ሴት -> ወንድ ዝላይ ገመዶች
  2. መከላከያ

    • 1 Raspberry Pi
    • 2 10 ㏀ ተከላካይ (ለአዝራሮች)
    • 2 ማይክሮ ሰርቮ
    • 1 650nm Laser አስተላላፊ ሞዱል
    • 2 የግፊት አዝራር
    • 1 ጫጫታ
    • 3 ትናንሽ የጎማ ባንዶች/የኬብል ማሰሪያዎች (ለማስተካከል)
    • X ሴት -> ወንድ ዝላይ ገመዶች
    • X መደበኛ ዝላይ ኬብሎች
    • 1 ትራንዚስተር
    • 1 አቅም (Capacitor)
  3. መዝናኛዎች

    • 1 Raspberry Pi
    • 3 1 ㏀ Resistor (ለ LEDs)
    • 1 10㏀ Resistor (ለ LDR)
    • 3 ኤልኢዲዎች (የተለያዩ ቀለሞች)
    • 3 አዝራሮች
    • 1 ኤልዲአር
    • 1 ኤልሲዲ
    • 1 ፒር እንቅስቃሴ ዳሳሽ
    • X ሴት -> ወንድ ዝላይ ገመዶች
    • X መደበኛ ዝላይ ኬብሎች

ደረጃ 2 - ደህንነት

ደህንነት
ደህንነት
ደህንነት
ደህንነት
ደህንነት
ደህንነት

የደህንነት ስርዓት ሃርድዌር መፍጠር

በ fritzing ዲያግራም ላይ እንደሚታየው ወረዳዎቹን ያገናኙ

የደህንነት ስርዓት ሶፍትዌርን መፍጠር

  1. አንድ ነገር በመፍጠር AWS ን ያዋቅሩ
  2. AWS Python ቤተ -መጽሐፍትን ይጫኑ
  3. ኤልሲዲ ቤተ -መጽሐፍትን ይጫኑ
  4. የ RFID ቤተ -መጽሐፍትን ይጫኑ
  5. Firebase ን ያዋቅሩ
  6. S3 ማከማቻን ያዋቅሩ
  7. Raspberry Pi ላይ Boto ን ይጫኑ
  8. Raspberry Pi ላይ AWS ClI ን ይጫኑ
  9. የ AWS ምስክርነቶችን ይፍጠሩ
  10. AWS ን ያዋቅሩ
  11. Security.py ን ወደ RPi ይስቀሉ
  12. Imagerecognition.py ን ወደ RPi ይስቀሉ

security.py የ rfid ግብዓቶችን የሚያነብ እና ተጠቃሚው ጠላፊ መሆኑን ወይም አለመሆኑን የሚለይ ኮድ ነው። ተጠቃሚው ከታወቀ ፣ አንድ ምስል ተወስዶ ወደ s3 ይሰቀላል። ኮዱ እንዲሁ በ aws MQTT ውስጥ ወደ አንድ ርዕስ ያትማል

ደረጃ 3 መከላከያ

መከላከያ
መከላከያ
መከላከያ
መከላከያ
መከላከያ
መከላከያ

የሌዘር ተርባይን ሃርድዌር መፍጠር

  1. 2 servos እና 1 Laser Module ን በመጠቀም የሌዘር ተርባይን እንፈጥራለን
  2. በ fritzing ዲያግራም ላይ እንደሚታየው ወረዳዎቹን ያገናኙ

የሌዘር ተርባይን ሶፍትዌር መፍጠር

ከዚህ በታች ያለው ኮድ የሌዘር ተርባይን በዘፈቀደ አቅጣጫዎች ፣ በዘፈቀደ ፍንዳታ እና ፍጥነት እንዲነሳ ያደርገዋል።

laserturret.py

ከ gpiozero ማስመጣት LED ፣ Buzzer ፣ Button ፣ Servoimport ጊዜ ከምልክት ማስመጣት ለአፍታ ማስመጣት በዘፈቀደ

#የታዘዘ = LED (12)

#pir = MotionSensor (19 ፣ sample_rate = 5 ፣ queue_len = 1) buzzer_pin = Buzzer (17) ጥቃት = አዝራር (5 ፣ pull_up = ሐሰት) #ዳግም አስጀምር = አዝራር (6 ፣ pull_up = False) servo1 = Servo (18) servo2 = ሰርቮ (24)

def ledON ():

led.on () ህትመት ("LED is on") def ledOFF (): led.off () print ("LED is off")

የእሳት አደጋ ()

ማተም ("የጦር መሳሪያዎች ትኩስ") buzzer_pin.on () time.sleep (0.1) buzzer_pin.off ()

def laserturret ():

timeBetweenBurst = random.uniform (0.2, 1) timeBetweenShots = random.uniform (0.05, 0.2) servo1start = random.randrange (-1, 1) servo1end = random.randrange (-1, 1) servo2start = random.randrange (-1, 1) servo2end = random.randrange (-1, 1) numShots = random.randrange (5, 20) servo1change = (servo1end - servo1start)/numShots servo2change = (servo2end - servo2start)/numShots servo1.value = servo1start servo2.value = servo2start time.sleep (0.1) shot = 0 ዝርዝር = [timeBetweenBurst ፣ timeBetweenShots ፣ servo1.value ፣ servo2.value ፣ numShots] ህትመት (ዝርዝር) <numshots: shot+= "1" servo1.value = "servo1start" servo2.value = "servo2start" servo1start = "servo1change" servo2start = "servo2change" fire () = "" time.sleep (timebetweenshots) = "" time.sleep (timebetweenburst)

ማስታወሻዎች = {

'B0': 31, 'C1': 33, 'CS1': 35, 'D1': 37, 'DS1': 39, 'EB1': 39, 'E1': 41, 'F1': 44, 'FS1 ': 46 ፣' G1 ': 49 ፣' GS1 ': 52 ፣' A1 ': 55 ፣' AS1 ': 58 ፣' BB1 ': 58 ፣' B1 ': 62 ፣' C2 ': 65 ፣' CS2 '፦ 69 ፣ 'D2': 73 ፣ 'DS2': 78 ፣ 'EB2': 78 ፣ 'E2': 82 ፣ 'F2': 87 ፣ 'FS2': 93 ፣ 'G2': 98 ፣ 'GS2': 104 ፣ 'A2': 110 ፣ 'AS2': 117 ፣ 'BB2': 123 ፣ 'B2': 123 ፣ 'C3': 131 ፣ 'CS3': 139 ፣ 'D3': 147 ፣ 'DS3': 156 ፣ 'EB3 ': 156,' E3 ': 165,' F3 ': 175,' FS3 ': 185,' G3 ': 196,' GS3 ': 208,' A3 ': 220,' AS3 ': 233,' BB3 ': 233 ፣ 'ቢ 3': 247 ፣ 'C4': 262 ፣ 'CS4': 277 ፣ 'D4': 294 ፣ 'DS4': 311 ፣ 'EB4': 311 ፣ 'E4': 330 ፣ 'F4': 349 ፣ 'FS4': 370 ፣ 'G4': 392 ፣ 'GS4': 415 ፣ 'A4': 440 ፣ 'AS4': 466 ፣ 'BB4': 466 ፣ 'B4': 494 ፣ 'C5': 523 ፣ 'CS5 ': 554,' D5 ': 587,' DS5 ': 622,' EB5 ': 622,' E5 ': 659,' F5 ': 698,' FS5 ': 740,' G5 ': 784,' GS5 ': 831 ፣ 'A5': 880 ፣ 'AS5': 932 ፣ 'BB5': 932 ፣ 'B5': 988 ፣ 'C6': 1047 ፣ 'CS6': 1109 ፣ 'D6': 1175 ፣ 'DS6': 1245 ፣ 'EB6': 1245 ፣ 'E6': 1319, 'F6': 1397, 'FS6': 1480, 'G6': 1568, 'GS6': 1661, 'A 6 ': 1760 ፣' AS6 ': 1865 ፣' BB6 ': 1865 ፣' B6 ': 1976 ፣' C7 ': 2093 ፣' CS7 ': 2217 ፣' D7 ': 2349 ፣' DS7 ': 2489 ፣' EB7 ': 2489 ፣ 'E7': 2637 ፣ 'F7': 2794 ፣ 'FS7': 2960 ፣ 'G7': 3136 ፣ 'GS7': 3322 ፣ 'A7': 3520 ፣ 'AS7': 3729 ፣ 'BB7': 3729 ፣ 'B7': 3951 ፣ 'C8': 4186 ፣ 'CS8': 4435 ፣ 'D8': 4699 ፣ 'DS8': 4978}

def buzz (ድግግሞሽ ፣ ርዝመት) #ተግባሩን “buzz” ይፍጠሩ እና ድምፁን እና ቆይታውን ይመግቡት)

ከሆነ (ድግግሞሽ == 0):

time.s እንቅልፍ (ርዝመት) የመመለሻ ጊዜ = 1.0 / ድግግሞሽ #ድግግሞሽ መዘግየት እሴት = ጊዜ / 2 #የግማሹን ሞገድ numCycles = int (ርዝመት * ድግግሞሽ) #ማዕበሎች ቁጥር = የጊዜ ገደብ x ፍሪክ ለ እኔ በክልል (numCycles)): #ከ 0 ወደ አንድ ተለዋዋጭ ዙር (ዑደት) ከ buzzer_pin.on () time.sleep (delayValue) buzzer_pin.off () time.sleep (delayValue)

def ጨዋታ (ዜማ ፣ ጊዜያዊ ፣ ለአፍታ ፣ ፍጥነት = 0.800)

ለ እኔ በክልል (0 ፣ ሌን (ዜማ)) ፦ # የዘፈን ማስታወሻ አጫውት መጠን = ፍጥነት/ቴምፕ buzz (ዜማ ፣ የማስታወሻ ጊዜ) # በዘፈኑ ማስታወሻ ቆም ይበሉ ድግግሞሹን ይለውጡ ቢትዌን ኖቶች = ማስታወሻ ጊዜ * ለአፍታ ቆም። ለአፍታ አቁም

እውነት እያለ ፦

laserturret () እረፍት;

ደረጃ 4 መዝናኛ

መዝናኛ
መዝናኛ
መዝናኛ
መዝናኛ
መዝናኛ
መዝናኛ

የመዝናኛ ሃርድዌር መፍጠር

የ LEDs ማብራት ዘይቤን መከተል እና ተጓዳኝ ቁልፎችን መጫን ያለብዎትን የ Simon-say አዝራር ጨዋታ እንፈጥራለን። በዳሽቦርዶች ውስጥ ለቀጣይ አጠቃቀም ነጥቦችን እና የጊዜ ማህተምን ወደ firebase NoSQL የውሂብ ጎታ ይሰቅላል።

በ Fritzing ዲያግራም ውስጥ እንደሚታየው ወረዳዎቹን ያገናኙ።

የመዝናኛ ሶፍትዌርን መፍጠር

መዝናኛ.ፒ

ማስመጣት RPi. GPIO = 'h5Sis7TXdoUVncrpjSzGAvhBH' CONSUMER_SECRET = 'ZfDVxc4aTd9doGmBQO3HiSKKzxSTKT4C3g0B3AGx8eETCJm2rY' ACCESS_KEY = 'firebase ማስመጣት firebase CONSUMER_KEY ከ DATETIME ማስመጣት ከ DATETIME ጊዜ ማስመጣት ከእንቅልፉ subprocess ማስመጣት ጥሪ ከ rpi_lcd ማስመጣት LCD ከ GPIOimport ተከታታይ ማስመጣት ጊዜ ማስመጣት የዘፈቀደ ማስመጣት OS ማስመጣት tweepy እንደ 988333099669901312- YDLEQN1weW2n1JP4lxJcFPppCsbvzQh 'ACCESS_SECRET =' K2IlUPur6jx7DO5S0HhhZW29H5AQFOvkMMevSsk9ZzwLk 'ማረጋገጫ = tweepy. OAuthHandler (CONSUMER_KEY, CONSUMER_SECRET) auth.secure = እውነተኛ auth.set_access_token (ACCESS_KEY, ACCESS_SECRET) ኤ ፒ = tweepy. API (ማረጋገጫ) firebase = firebase. FirebaseApplication («https:// iotca2 -12f48.firebaseio.com '፣ የለም) lcd = LCD () lcd.text (' ይዝናኑ! '፣ 1) lcd.text (' መልካም ዕድል! ', 2) እንቅልፍ (1) # ቀይ ፣ ቢጫ ፣ አረንጓዴ መብራቶች = [40, 38, 36] አዝራሮች = [37, 33, 35] ማስታወሻዎች = ["E3" ፣ "A4" ፣ "E4"] በጨዋታ ጨዋታ ፍጥነት ላይ ተጽዕኖ ሊያሳርፉ የሚችሏቸው # እሴቶች = 0.5 # ባንዲራዎች ጨዋታን ለማመልከት ያገለግላሉ ሁኔታ is_displaying_pattern = ሐሰት is_won_curr ent_level = ውሸት_ጨዋታ_ላይ = የውሸት # የጨዋታ ሁኔታ current_level = 1 current_step_of_level = 0 pattern = def initialize_gpio (): GPIO.setmode (GPIO. BOARD) GPIO.setup (LIGHTS ፣ GPIO. OUT ፣ የመጀመሪያ = GPIO. LOW) GPIO። በክልል ውስጥ (BUTTONS ፣ GPIO. IN ፣ pull_up_down = GPIO. PUD_DOWN): GPIO.add_event_detect (BUTTONS ፣ GPIO. FALLING ፣ confirm_player_selection) def confirm_player_selection (channel): international current_velle ካልሆነ_ጨዋታ_ወደቀ_አያሳይም_ፓተርን እና አይደለም_won_current_level እና አይደለም_ጨዋታ_በላይ ፦ flash_led_for_button (ሰርጥ) ሰርጥ ከሆነ == BUTTONS [ስርዓተ -ጥለት [የአሁኑ_እጥፍ_ፍሌቨል]: የአሁኑ_የእግዜር_ደረጃ += 1 የአሁኑ_እውነት_አሁን flash_led_for_button (button_channel): led = LIGHTS [BUTTONS.index (button_channel)] GPIO.output (led, GPIO. HIGH) time.sleep (0.4) GPIO.output (led, GPIO. LOW) def add_new_color_to_pattern (): ዓለም አቀፋዊ ከር የደረጃ_level is_won_current_level = የውሸት current_step_of_level = 0 next_color = random.randint (0, 2) pattern.append (next_color) def display_pattern_to_player (): ግሎባል is_displaying_pattern is_displaying_pattern = True GPIO.: GPIO.output (LIGHTS [pattern ፣ GPIO. HIGH) time.sleep (speed) GPIO.output (LIGHTS [pattern ፣ GPIO. LOW) time.sleep (speed) is_displaying_pattern = የውሸት def wait_for_player_to_repeat_pattern (): ባይሆንም_ወደ_ወቅታዊ_ክልል እና አይደለም_ጨዋታ_አሸናፊነት -ጊዜ_እንቅልፍ (0.1) def reset_board_for_new_game (): ግሎባል is_displaying_pattern ፣ is_won_current_level ፣ is_game_over global current_level ፣ current_step_of_level ፣ pattern isstep_le_se_sele_se_se_se_se_se_se_se_se_se_se_se_se_se_se_se_se_se GPIO.output (LIGHTS ፣ GPIO. LOW) def send_data (ውጤት) lcd.text ('የጨዋታው መጨረሻ' ፣ 1) lcd.text ('በቅርቡ እንገናኝ!', 2) datestr = str (datetime)። አሁን ()) እውነት እያለ - ማተም (datestr) የህትመት (ውጤት) ውሂብ = {'ቀን': datestr ፣ 'score': score} result = firebase.post ('/scores/', data) print (result) score> 2: status = 'አንድ ሰው አስቆጥሯል' +(str (ውጤት))+'በ'+datestr+'!' api.update_status (status = status) break def start_game (): እውነት ሆኖ ሳለ add_new_color_to_pattern () display_pattern_to_player ()_ጨዋታ_በላይ_ይጠብቅ_ጨዋታ_ከዚህ በላይ ከሆነ - send_data (የአሁኑ_አንድ ደረጃ - 1) ማተም ("ጨዋታ በላይ! / n").format (current_level - 1)) እንቅልፍ (2) ህትመት ("ስለተጫወቱ እናመሰግናለን! / n") lcd.text ('', 1) lcd.text ('', 2) የእረፍት ጊዜ። እንቅልፍ (2) def start_game_monitor (): t = threading. Thread (target = start_game) t.daemon = True t.start () t.join () def main (): ይሞክሩት: 'ሌላ' ግልፅ ') ህትመት ("አዲስ ዙር ጀምር! / n") initialize_gpio () start_game_monitor () በመጨረሻም: GPIO.cleanup () _name_ ==' _main_ ': main ()

ደረጃ 5: IOT መተግበሪያ ዋትሰን በ IBM Bluemix ላይ [ክፍል አንድ]

Blumix IoT አገልግሎትን ያዋቅሩ

  1. የጌትዌይ መሣሪያ ዓይነት ያዘጋጁ
  2. መሣሪያ ያዘጋጁ

ለ 1 ጊዜ እርምጃዎችን 1 እና 2 ያድርጉ። አንድ RPi ለአንድ ክፍል (ደህንነት/መከላከያ/መዝናኛ) ነው

መስቀለኛ-ቀይ ያዘጋጁ

መስቀለኛ-ቀይ አሂድ

መስቀለኛ-ቀይ ጅምር

  1. በሃምበርገር ምናሌ (ከላይ በስተቀኝ) ውስጥ ቤተ -ስዕል ለማቀናበር ይሂዱ
  2. የሚከተሉትን ፓልቴሎች ያውርዱ

    1. መስቀለኛ-ቀይ-ዳሽቦርድ
    2. መስቀለኛ-ቀይ-አስተዋፅኦ-የእሳት ቃጠሎ
    3. መስቀለኛ-ቀይ-አስተዋፅኦ- ibm-watson-iot

ደረጃ 6: መስቀለኛ ቀይ ፍሰቶች

መስቀለኛ ቀይ ፍሰቶች
መስቀለኛ ቀይ ፍሰቶች
መስቀለኛ ቀይ ፍሰቶች
መስቀለኛ ቀይ ፍሰቶች
መስቀለኛ ቀይ ፍሰቶች
መስቀለኛ ቀይ ፍሰቶች
መስቀለኛ ቀይ ፍሰቶች
መስቀለኛ ቀይ ፍሰቶች

ፋይሎቹን ያውርዱ እና ወደ መስቀለኛ-ቀይዎ ይላኩ።

የደህንነት መስቀለኛ-ቀይ

የለም

መከላከያ አርፒ ኖድ-ቀይ

laserturret.txt

መዝናኛ Rpi መስቀለኛ-ቀይ

  • መዝናኛ rpi flow.txt
  • ldr rpi flow.txt

IBM Bluemix መስቀለኛ-ቀይ

የሚመከር: