![Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ. 6 քայլ Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ. 6 քայլ](https://i.howwhatproduce.com/images/002/image-5083-65-j.webp)
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48
![Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ](https://i.howwhatproduce.com/images/002/image-5083-66-j.webp)
![Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ](https://i.howwhatproduce.com/images/002/image-5083-67-j.webp)
![Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ Ակնարկ. Տնային զվարճանքի և անվտանգության համակարգ](https://i.howwhatproduce.com/images/002/image-5083-68-j.webp)
Դիմումի մասին
Այս IOT համակարգը տնային զվարճանքի և անվտանգության համակարգ է:
-
Անվտանգություն
- Հպեք RFID քարտին և մուտքագրմանը պահվում են Firebase- ում:
- Եթե լիազորված եք, կարող եք խաղաղ մուտք գործել, և նկարը վերցվում և վերբեռնվում է S3
- Եթե չարտոնված է, պաշտպանության բաժինը մտնում է, և LCD էկրանը կասի, որ դուք լիազորված չեք:
-
Պաշտպանություն
- Սեղմեք վահանակի կոճակը:
- Լազերային պտուտահաստոցները կհարձակվեն պատահականորեն և արագությամբ:
-
Ժամանց
- Եթե շարժումը հայտնաբերվի, խաղը կսկսվի:
- Օգտագործողը խաղը խաղալուց հետո հաշիվը պահվում է Firebase- ում:
- LDR- ի արժեքները կվերցվեն և դուրս կգան վահանակի վրա:
Այս ծրագիրը վերահսկելի է և տեսանելի է IBM Node-Red վեբ սերվերի միջոցով: Մենք օգտագործում ենք AWS և IBM ամպային ծառայությունները, և մենք օգտագործում էինք Firebase- ը որպես մեր տվյալների բազա:
Այն քայլերի ամփոփում, որոնք նկարագրվելու են
- Սարքավորման պահանջներ
- Անվտանգություն - Ինչպես ստեղծել անվտանգության համակարգ, որն օգտագործում է RFID մուտքագրում և պատկերի ճանաչման ծրագրակազմ
- Պաշտպանություն - Ինչպես ստեղծել լազերային պտուտահաստոց
- Entամանց - Ինչպես ստեղծել Simon -say խաղ
- IOT App Watson IBM Bluemix- ում - Ինչպես միացնել բոլոր համակարգերը մեկ վահանակի մեջ
Շարունակեք և մուտք գործեք pdf ֆայլ ՝ ավելի մանրամասն բացատրելու համար, թե ինչպես ստեղծել այս նախագիծը:
Քայլ 1: Սարքավորման պահանջ
Սա այն է, ինչ ձեզ հարկավոր կլինի
-
Անվտանգություն
- 1 Ազնվամորի Պի
- 1 LCD
- 1 RFID ընթերցող
- 1 PiCam
- 2 RFID քարտ/կոճակ
- X Իգական -> Արական թռիչքային մալուխներ
-
Պաշտպանություն
- 1 Ազնվամորի Պի
- 2 10 ㏀ Resistor (կոճակների համար)
- 2 միկրո սերվո
- 1 650 նմ լազերային հաղորդիչ մոդուլ
- 2 կոճակ
- 1 բզզոց
- 3 փոքր ռետինե ժապավեններ/մալուխային կապեր (ամրացման համար)
- X Իգական -> Արական թռիչքային մալուխներ
- X Կանոնավոր ցատկման մալուխներ
- 1 տրանզիստոր
- 1 կոնդենսատոր
-
Զվարճություններ
- 1 Ազնվամորի Պի
- 3 1 ㏀ դիմադրություն (LED- ների համար)
- 1 10㏀ դիմադրություն (LDR- ի համար)
- 3 LED (տարբեր գույներ)
- 3 կոճակ
- 1 LDR
- 1 LCD
- 1 Pir շարժման ցուցիչ
- X Իգական -> Արական թռիչքային մալուխներ
- X Կանոնավոր ցատկման մալուխներ
Քայլ 2: Անվտանգություն
![Անվտանգություն Անվտանգություն](https://i.howwhatproduce.com/images/002/image-5083-69-j.webp)
![Անվտանգություն Անվտանգություն](https://i.howwhatproduce.com/images/002/image-5083-70-j.webp)
![Անվտանգություն Անվտանգություն](https://i.howwhatproduce.com/images/002/image-5083-71-j.webp)
Անվտանգության համակարգի սարքավորումների ստեղծում
Միացրեք սխեմաները, ինչպես ցույց է տրված դիագրամում
Անվտանգության համակարգի ծրագրակազմի ստեղծում
- Կարգավորեք AWS- ը ՝ ստեղծելով բան
- Տեղադրեք AWS Python գրադարանը
- Տեղադրեք LCD գրադարան
- Տեղադրեք RFID գրադարանը
- Կարգավորել Firebase- ը
- Կարգավորել S3 պահեստը
- Տեղադրեք Boto- ն Raspberry Pi- ի վրա
- Տեղադրեք AWS ClI- ը Raspberry Pi- ի վրա
- Ստեղծեք AWS հավատարմագրեր
- Կարգավորել AWS- ը
- Վերբեռնեք security.py- ն RPi- ում
- Վերբեռնեք imagerecognition.py- ը RPi- ին
security.py- ն կոդ է, որը կարդալու է rfid մուտքերը և հայտնաբերելու է, արդյոք օգտվողը ներխուժող է, թե ոչ: Եթե օգտագործողը ճանաչվի, պատկերը կվերցվի և կբեռնվի s3- ում: Կոդը նաև հրապարակում է մի թեմայի aws MQTT- ում
Քայլ 3: Պաշտպանություն
![Պաշտպանություն Պաշտպանություն](https://i.howwhatproduce.com/images/002/image-5083-72-j.webp)
![Պաշտպանություն Պաշտպանություն](https://i.howwhatproduce.com/images/002/image-5083-73-j.webp)
![Պաշտպանություն Պաշտպանություն](https://i.howwhatproduce.com/images/002/image-5083-74-j.webp)
Լազերային պտուտահաստոց սարքավորումների ստեղծում
- Մենք ստեղծում ենք լազերային պտուտահաստոց ՝ օգտագործելով 2 սերվո և 1 լազերային մոդուլ
- Միացրեք սխեմաները, ինչպես ցույց է տրված դիագրամում
Լազերային պտուտահաստոց ծրագրակազմի ստեղծում
Ստորև բերված ծածկագիրը կստիպի լազերային պտուտահաստոցը կրակել պատահական ուղղություններով, պատահական պայթյուններով և արագությամբ:
laserturret.py
gpiozero ներմուծման LED- ից, Buzzer, Button, Servoimport ժամանակ ազդանշանի ներմուծման դադարից ներմուծման պատահական
#LED = LED (12)
#pir = MotionSensor (19, sample_rate = 5, queue_len = 1) buzzer_pin = Buzzer (17) attack = Button (5, pull_up = False) #reset = Button (6, pull_up = False) servo1 = Servo (18) servo2 = Սերվո (24)
def ledON ():
led.on () print («LED- ը միացված է») def ledOFF (): led.off () print («LED- ն անջատված է»)
def fire ():
տպել («տաք զենքեր») 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) կրակոց = 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, «B3» ՝ 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):
ժամանակ. քուն (երկարություն) վերադարձի ժամանակաշրջան = 1.0 / հաճախականություն #հաճախականության հետաձգումԱրժեքը = ժամանակահատվածը / 2 #հաշվել ալիքի կեսի ժամանակը num): #սկսեք մի օղակ 0 -ից մինչև buzzer_pin- ի վերը հաշվարկված փոփոխական «ցիկլեր»: () time.sleep (delayValue) buzzer_pin.off () time.sleep (delayValue) արժեքը
def խաղ (մեղեդի, տեմպ, դադար, տեմպ = 0.800):
i- ի միջակայքում (0, լեն (մեղեդի)). pauseBetweenNotes)
իսկ ճշմարիտ:
laserturret () ընդմիջում;
Քայլ 4: ertainամանց
![Ժամանց Ժամանց](https://i.howwhatproduce.com/images/002/image-5083-75-j.webp)
![Ժամանց Ժամանց](https://i.howwhatproduce.com/images/002/image-5083-76-j.webp)
![Ժամանց Ժամանց](https://i.howwhatproduce.com/images/002/image-5083-77-j.webp)
Theամանցի սարքավորումների ստեղծում
Մենք ստեղծում ենք Simon-say կոճակների խաղը, որը պետք է հետևել լուսադիոդների լուսավորության օրինակին և սեղմել համապատասխան կոճակները: Այն վերբեռնում է միավորներն ու ժամանակային նշանը firebase NoSQL տվյալների բազայում ՝ վահանակներում հետագա օգտագործման համար:
Միացրեք սխեմաները, ինչպես ցույց է տրված Fritzing դիագրամում:
Ertainամանցի ծրագրակազմի ստեղծում
entertainment.py
ներմուծման RPi. GPIO քանի որ GPIOimport Threading ներմուծման ժամանակ ներմուծման Պատահական ներմուծման OS Ներմուծման tweepy ից rpi_lcd Ներմուծման LCD ից subprocess Ներմուծման զանգի ժամանակի Ներմուծման քնից datetime Ներմուծման datetime-ից firebase ներմուծման firebase CONSUMER_KEY = 'h5Sis7TXdoUVncrpjSzGAvhBH' CONSUMER_SECRET = 'ZfDVxc4aTd9doGmBQO3HiSKKzxSTKT4C3g0B3AGx8eETCJm2rY' ACCESS_KEY = '988333099669901312- YDLEQN1weW2n1JP4lxJcFPppCsbvzQh 'ACCESS_SECRET =' K2IlUPur6jx7DO5S0HhhZW29H5AQFOvkMMevSsk9ZzwLk 'Auth = tweepy. OAuthHandler (CONSUMER_KEY, CONSUMER_SECRET) auth.secure = True auth.set_access_token (ACCESS_KEY, ACCESS_SECRET) API = tweepy. API (AUTH) firebase = firebase. FirebaseApplication (' https:// iotca2 -12f48.firebaseio.com ', Չկա) lcd = LCD () lcd.text (' Have fun! ', 1) lcd.text (' Good Luck! ', 2) քնել (1) # Կարմիր, դեղին, կանաչ ԼՈIGHՅՍԵՐ = [40, 38, 36] ԿՈUTՅԹՆԵՐ = [37, 33, 35] ESԱՆՈԹԱԳՐՈԹՅՈՆՆԵՐ = ["E3", "A4", "E4"] # արժեքներ, որոնք կարող եք փոխել, որոնք ազդում են խաղի արագության վրա = 0.5 # դրոշ, որոնք օգտագործվում են խաղը ազդանշանելու համար կարգավիճակը is_displaying_pattern = False is_won_curr ent_level = Կեղծ is_game_over = Սխալ # խաղի վիճակ current_level = 1 current_step_of_level = 0 pattern = def initialize_gpio (): GPIO.setmode (GPIO. BOARD) GPIO.setup (LIGHTS, GPIO. OUT, initial = GPIO. LOW) GPIO կարգավորում (BUTTONS, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) i in տիրույթում (3). GPIO.add_event_detect (BUTTONS , GPIO. FALLING, verify_player_selection) def verify_player_selection (channel_level_level, is_game_over եթե ոչ is_displaying_pattern and not is_won_current_level and not_came_over: flash_led_for_button (channel) if channel == BUTTONS [pattern [current_step_of_level]: current_step_of_level += 1 if current_step_level_vel_mevel 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 (): global is_won կուր rent_step_of_level is_won_current_level = False current_step_of_level = 0 next_color = random.randint (0, 2) pattern.append (next_color) def display_pattern_to_player (): global is_displaying_pattern is_displaying_pattern = inանապարհային ճշգրիտ ՝ GPIO.output (LIGHTS [pattern , GPIO. HIGH) time.sleep (speed) GPIO.output (LIGHTS [pattern , GPIO. LOW) time.sleep (speed) is_displaying_pattern = False def wait_for_player_to_repeat_pattern (), մինչդեռ ոչ is_won_current_level եւ ոչ is_game_over: time.sleep (0.1) def reset_board_for_new_game (): Global is_displaying_pattern, is_won_current_level, is_game_over գլոբալ current_level, current_step_of_level, օրինակ is_displaying_pattern = Կեղծ is_won_current_level = Կեղծ is_game_over = Կեղծ current_level = 1 current_step_of_level = 0 օրինակը = GPIO.output (LIGHTS, GPIO. LOW) def send_data (հաշիվ). այժմ ()) իսկ True: print (datestr) print (score) data = {'Date': datestr, 'Score': score} result = firebase.post ('/scores/', data) print (result) if score> 2: status = 'Ինչ -որ մեկը գոլ է խփել' +(փող (հաշիվ))+''+datestr+'!' api.update_status (status = status) break def start_game (): while True: add_new_color_to_pattern () display_pattern_to_player () wait_for_player_to_repeat_pattern () if_game_over: send_data (current_level - 1) print ("Game Over!").ֆորմատ (ընթացիկ_մակարդակ - 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 (): try: os.system ('cls' եթե os.name == 'nt 'else' clear ') print ("Begin new round! / n") initialize_gpio () start_game_monitor () վերջապես `GPIO.cleanup () if _name_ ==' _main_ ': main ()
Քայլ 5. IOT App Watson- ը IBM Bluemix- ում [մաս առաջին]
Կարգավորեք Blumix IoT ծառայությունը
- Կարգավորեք դարպասի սարքի տեսակը
- Կարգավորել Սարքը
Կատարեք 1 -ին և 2 -րդ քայլերը 3 անգամ: Մեկ RPi- ն նախատեսված է մեկ բաժնի համար (անվտանգություն/պաշտպանություն/ժամանց)
Կարգավորեք Node-Red- ը
Գործարկել հանգույց-կարմիր
հանգույց-կարմիր սկիզբ
- Գնացեք պալիտրա կառավարելու համար համբուրգերների ընտրացանկում (վերևի աջ)
-
Ներբեռնեք հետևյալ պալետները
- հանգույց-կարմիր-վահանակ
- node-red-contrib-firebase
- հանգույց-կարմիր-ներդրում-ibm-watson-iot
Քայլ 6. Հանգույցի կարմիր հոսքեր
![Հանգույցի կարմիր հոսքեր Հանգույցի կարմիր հոսքեր](https://i.howwhatproduce.com/images/002/image-5083-78-j.webp)
![Հանգույցի կարմիր հոսքեր Հանգույցի կարմիր հոսքեր](https://i.howwhatproduce.com/images/002/image-5083-79-j.webp)
![Հանգույցի կարմիր հոսքեր Հանգույցի կարմիր հոսքեր](https://i.howwhatproduce.com/images/002/image-5083-80-j.webp)
![Հանգույցի կարմիր հոսքեր Հանգույցի կարմիր հոսքեր](https://i.howwhatproduce.com/images/002/image-5083-81-j.webp)
Ներբեռնեք ֆայլերը և արտահանեք ձեր հանգույց-կարմիր:
Անվտանգության հանգույց-կարմիր
ոչ ոք
Պաշտպանության Rpi հանգույց-կարմիր
laserturret.txt
Entամանց Rpi Node-Red
- զվարճանքի rpi flow.txt
- ldr rpi հոսք. txt
IBM Bluemix Node-Red
Խորհուրդ ենք տալիս:
Տնային անվտանգության համակարգ ՝ 5 քայլ
![Տնային անվտանգության համակարգ ՝ 5 քայլ Տնային անվտանգության համակարգ ՝ 5 քայլ](https://i.howwhatproduce.com/images/010/image-27484-j.webp)
Տնային անվտանգության համակարգ. Ստեղծեք ձեր սեփական տան անվտանգության համակարգը `օգտագործելով Raspberry pi
PLC անվտանգության համար անլար անվտանգության կոճակ. 6 քայլ (նկարներով)
![PLC անվտանգության համար անլար անվտանգության կոճակ. 6 քայլ (նկարներով) PLC անվտանգության համար անլար անվտանգության կոճակ. 6 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-3817-11-j.webp)
PLC- ի անվտանգության համար անլար անվտանգության կոճակ. Այս նախագիծը IoT և (ի վերջո) ռոբոտաշինության օգտագործման հայեցակարգի իմ ապացույցն է `վտանգավոր արտադրական օբյեկտների անվտանգության լրացուցիչ շերտ ստեղծելու համար: Այս կոճակը կարող է օգտագործվել բազմաթիվ գործընթացներ սկսելու կամ դադարեցնելու համար, ներառյալ ազդանշանի վերահսկումը
Կանանց անվտանգության մեկ հպման անվտանգության համակարգ `3 քայլ
![Կանանց անվտանգության մեկ հպման անվտանգության համակարգ `3 քայլ Կանանց անվտանգության մեկ հպման անվտանգության համակարգ `3 քայլ](https://i.howwhatproduce.com/images/003/image-7133-2-j.webp)
Կանանց անվտանգության մեկ հպման անվտանգության համակարգ. Մեկ հպումով ազդանշան Կանանց անվտանգության համակարգ, որն օգտագործում է 8051 միկրո վերահսկիչ: Այսօրվա աշխարհում կանանց անվտանգությունը ամենակարևոր խնդիրն է հենց երկրում: Այսօր կանայք ենթարկվում են անհանգստության և անհանգստության և երբեմն, երբ անհրաժեշտ է շտապ օգնություն: Պարտադիր վայր չկա
Ինտերնետով միացված DSC տնային անվտանգության համակարգ. 22 քայլ
![Ինտերնետով միացված DSC տնային անվտանգության համակարգ. 22 քայլ Ինտերնետով միացված DSC տնային անվտանգության համակարգ. 22 քայլ](https://i.howwhatproduce.com/images/001/image-2411-t.webp)
Ինտերնետին միացված DSC Home Security System. Փոփոխեք գոյություն ունեցող DSC Home Security համակարգը `ինտերնետին միացված և ինքնամոնիտորինգի ենթարկվելու համար: Այս հրահանգը ենթադրում է, որ դուք ունեք աշխատող Raspberry Pi: Խնդրում ենք նկատի ունենալ, որ այս իրականացումը ունի հետևյալ թերությունները. Եթե գողը կտրում է գալիք DSL մալուխը
Super Wood զվարճանքի համակարգ. 9 քայլ (նկարներով)
![Super Wood զվարճանքի համակարգ. 9 քայլ (նկարներով) Super Wood զվարճանքի համակարգ. 9 քայլ (նկարներով)](https://i.howwhatproduce.com/images/003/image-6141-19-j.webp)
Super Wood ժամանցային համակարգ. Ես հպարտությամբ ներկայացնում եմ իմ լիովին աշխատող փայտե Super Nintendo ժամանցային համակարգերը: Նախքան իմ ձեռնարկը տեղադրելը, թե ինչպես կարելի է կառուցել փայտե Super Nintendo Gamepad, և այժմ ժամանակն է ձեզ ցույց տալ, թե ինչպես կառուցել վահանակը: Փայտե պատյանը պատրաստված է բազմաթիվ հատվածներից