Talaan ng mga Nilalaman:
- Hakbang 1: Kinakailangan sa Hardware
- Hakbang 2: Seguridad
- Hakbang 3: Depensa
- Hakbang 4: Aliwan
- Hakbang 5: IOT App Watson sa IBM Bluemix [Bahagi One]
- Hakbang 6: Node Red Flows
Video: Pangkalahatang-ideya: Home Entertainment at Security System: 6 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Tungkol sa Application
Ang sistemang IOT na ito ay isang Home Entertainment at Security System.
-
Seguridad
- I-tap ang RFID Card at ang pag-input ay nai-save sa Firebase.
- Kung pinahintulutan, maaari kang magpasok ng payapa at ang larawan ay kinunan at na-upload sa S3
- Kung hindi pinahintulutan, ang seksyon ng pagtatanggol ay papasok at sasabihin ng isang LCD Screen na hindi ka pinahintulutan.
-
Pagtatanggol
- Pindutin ang pindutan sa dashboard.
- Pag-atake ng Laser Turrets sa random na pagsabog at bilis.
-
Aliwan
- Kung nakita ang paggalaw, magsisimula ang laro.
- Matapos i-play ng gumagamit ang laro, ang marka ay nai-save sa Firebase.
- Kukuha ang mga halaga ng LDR at output sa dashboard.
Ang application na ito ay makokontrol at nakikita sa pamamagitan ng IBM Node-Red web server. Ginagamit namin ang AWS at IBM Cloud Services at ginamit namin ang Firebase bilang aming database.
Buod ng mga hakbang na ilalarawan
- Mga Kinakailangan sa Hardware
- Seguridad - Paano lumikha ng isang sistema ng seguridad na gumagamit ng RFID input at isang software ng pagkilala sa imahe
- Depensa - Paano lumikha ng isang laser toresilya
- Aliwan - Paano lumikha ng isang Simon-sabi na laro
- IOT App Watson sa IBM Bluemix - Paano isasama ang lahat ng mga system sa isang dashboard
Sige at i-access ang file ng pdf para sa isang mas detalyadong paliwanag sa kung paano lumikha ng proyektong ito.
Hakbang 1: Kinakailangan sa Hardware
Ito ang kakailanganin mo
-
Seguridad
- 1 Raspberry Pi
- 1 LCD
- 1 RFID Reader
- 1 PiCam
- 2 Mga RFID Card / Pindutan
- X Babae -> Mga kable ng jumper na lalaki
-
Pagtatanggol
- 1 Raspberry Pi
- 2 10 ㏀ Resistor (para sa Mga Pindutan)
- 2 Micro Servo
- 1 650nm Laser Transmitter Module
- 2 Pindutan ng Push
- 1 Buzzer
- 3 Maliit na Mga Rubber Bands / Cable Ties (para sa pag-aayos)
- X Babae -> Mga kable ng jumper na lalaki
- X Regular na Mga Cables ng Tumalon
- 1 Transistor
- 1 Kapasitor
-
Mga Aliwan
- 1 Raspberry Pi
- 3 1 ㏀ Resistor (para sa LEDs)
- 1 10㏀ Resistor (para sa LDR)
- 3 LEDs (Iba't ibang Kulay)
- 3 Mga Pindutan
- 1 LDR
- 1 LCD
- 1 Sensor ng Pir Motion
- X Babae -> Mga kable ng jumper na lalaki
- X Regular na Mga Cables ng Tumalon
Hakbang 2: Seguridad
Lumilikha ng hardware system ng seguridad
Ikonekta ang mga circuit na tulad ng ipinakita sa fritzing diagram
Lumilikha ng software ng system ng seguridad
- I-configure ang AWS sa pamamagitan ng paglikha ng isang bagay
- I-install ang AWS Python Library
- I-install ang LCD Library
- I-install ang RFID Library
- I-setup ang Firebase
- I-setup ang Storage ng S3
- I-install ang Boto sa Raspberry Pi
- I-install ang AWS ClI sa Raspberry Pi
- Lumikha ng Mga Kredensyang AWS
- I-configure ang AWS
- Mag-upload ng security.py sa RPi
- Mag-upload ng imagerecognition.py sa RPi
Ang security.py ay isang code na makakabasa ng mga input ng rfid at matutukoy kung ang isang gumagamit ay isang nanghihimasok o hindi. Kung kinikilala ang gumagamit, isang imahe ay kukuha at mai-upload sa s3. Nag-publish din ang code sa isang paksa sa aws MQTT
Hakbang 3: Depensa
Lumilikha ng laser turret Hardware
- Lumilikha kami ng laser turret sa pamamagitan ng paggamit ng 2 servos at 1 Laser Module
- Ikonekta ang mga circuit na tulad ng ipinakita sa fritzing diagram
Paglikha ng laser turret Software
Ang code sa ibaba ay gagawin ang shoot ng laser turret sa mga random na direksyon, sa mga random na pagsabog at bilis
laserturret.py
mula sa gpiozero import LED, Buzzer, Button, Servoimport oras mula sa pag-import ng signal i-pause ang pag-import ng random
#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 = Servo (24)
def ledON ():
led.on () print ("LED is on") def ledOFF (): led.off () print ("LED is off")
def fire ():
i-print ("mainit na sandata") buzzer_pin.on () time.s Sleep (0.1) buzzer_pin.off ()
def laserturret ():
timeBetweenBurst = random.uniform (0.2, 1) timeBet AntaraShots = 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.s Sleep (0.1) shot = 0 detail = [timeBet AntaraBurst, timeBet AntaraShots, servo1.value, servo2.value, numShots] print (detail) habang kinunan <numshots: shot + = "1" servo1.value = "servo1start" servo2.value = "servo2start" servo1start = "servo1change" servo2start = "servo2change" fire () = "" time.s Sleep (timebetweenshots) = "" time.s Sleep (timebetantaraburst)
mga tala = {
'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 (dalas, haba): # likhain ang pagpapaandar na "buzz" at pakainin ang pitch at tagal)
kung (dalas == 0):
oras. tulog (haba) panahon ng pagbabalik = 1.0 / dalas #frequency pagkaantalaValue = panahon / 2 #husayin ang oras para sa kalahati ng alon numCycle = int (haba * dalas) #num ng mga alon = duratime x freq para sa ako sa saklaw (numCycle): #start isang loop mula 0 hanggang sa variable na "mga pag-ikot" na kinakalkula sa itaas buzzer_pin.on () time.s Sleep (delayValue) buzzer_pin.off () time.s Sleep (delayValue)
def play (himig, tempo, pag-pause, bilis = 0.800):
para sa ako sa saklaw (0, len (himig)): # Patugtugin ang tala ng kantaDurong = tulin / tempo buzz (himig , noteDuration) # Baguhin ang dalas kasama ang tala ng pause ng pauseBet AntaraNotes = noteDuration * pause time.sulog (i-pauseBet pagitanNotes)
habang Totoo:
laserturret () masira;
Hakbang 4: Aliwan
Paglikha ng entertainment Hardware
Lumilikha kami ng Simon-sabi na laro ng pindutan, na kailangan mong sundin ang pattern ng pag-iilaw ng mga LED at pindutin ang mga kaukulang pindutan. Nag-a-upload ito ng mga marka at timestamp sa firebase NoSQL database para sa karagdagang paggamit sa mga dashboard.
Ikonekta ang mga circuit na tulad ng ipinapakita sa diagram ng Fritzing.
Paglikha ng Entertainment Software
entertainment.py
import RPi. GPIO bilang GPIOimport threading import time import random import os import tweepy mula rpi_lcd import LCD mula sa subprocess import tawag sa pana-import na pagtulog mula datetime import datetime mula Firebase import 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 ', Wala) lcd = LCD () lcd.text (' Have fun! ', 1) lcd.text (' Good Luck! ', 2) pagtulog (1) # Pula, Dilaw, Green LIGHTTS = [40, 38, 36] BUTTONS = [37, 33, 35] TANDAAN = ["E3", "A4", "E4"] # na mga halaga na mababago mo na nakakaapekto sa bilis ng pag-play ng laro = 0.5 # mga watawat na ginamit upang hudyat ng laro status is_displaying_pattern = Maling ay_won_curr ent_level = Maling is_game_over = Maling # laro estado kasalukuyang_level = 1 kasalukuyang_step_of_level = 0 pattern = def initialize_gpio (): GPIO.setmode (GPIO. BOARD) GPIO.setup (LIGHTTS, GPIO. OUT, paunang = GPIO. LOW) GPIO. setup (BUTTONS, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) para sa i sa saklaw (3): GPIO.add_event_detect (BUTTONS , GPIO. FALLING, verify_player_selection) def verify_player_selection (channel): global current_step_of_level, current_velent, current_velent is_game_over kung hindi ay_displaying_pattern at hindi is_won_current_level at hindi is_game_over: flash_led_for_button (channel) kung channel == BUTTONS [pattern [current_step_of_level]: current_step_of_level + = 1 kung current_step_of_level> = current_level: = currentle + = 1 flash_led_for_button (button_channel): led = LIGHTTS [BUTTONS.index (button_channel)] GPIO.output (led, GPIO. HIGH) time.s Sleep (0.4) GPIO.output (led, GPIO. LOW) def add_new_color_to_pattern (): global is_won_current_level cur rent_step_of_level is_won_current_level = Maling kasalukuyang_step_of_level = 0 susunod_color = random.randint (0, 2) pattern.append (next_color) def display_pattern_to_player (): pandaigdigan is_displaying_pattern is_displaying_pattern = True GPIO.outvel. LoveTS): GPIO.output (LIGHTTS [pattern , GPIO. HIGH) time.s Sleep (speed) GPIO.output (LIGHTTS [pattern , GPIO. LOW) time.s Sleep (speed) is_displaying_pattern = Fal def def wait_for_player_to_repeat_pattern (): habang hindi is_won_current_level at hindi is_game_over: time.s Sleep (0.1) def reset_board_for_new_game (): pandaigdigan ay_displaying_pattern, is_won_current_level, is_game_over global current_level, current_step_of_level, pattern is_displaying_pattern_ Faltern_current = False GPIO.output (LIGHTTS, GPIO. LOW) def send_data (iskor): lcd.text ('Katapusan ng laro,', 1) lcd.text ('Magkita tayo!', 2) datestr = str (datime. ngayon ()) habang Tama: print (datestr) print (score) data = {'Date': datestr, 'Score': score} resulta = firebase.post ('/ iskor /', data) i-print (resulta) kung iskor> 2: status = 'May nakapuntos' + (str (iskor)) + 'sa' + datestr + '!' api.update_status (status = status) break def start_game (): habang True: add_new_color_to_pattern () display_pattern_to_player () wait_for_player_to_repeat_pattern () kung is_game_over: send_data (current_level - 1) print ("Game Over! score n"}.format (current_level - 1)) sleep (2) print ("Salamat sa pag-play! / n") lcd.text ('', 1) lcd.text ('', 2) break time. sleep (2) def start_game_monitor (): t = threading. Thread (target = start_game) t.daemon = True t.start () t.join () def main (): try: os.system ('cls' if os.name == 'nt 'else' clear ') print ("Start new round! / n") initialize_gpio () start_game_monitor () sa wakas: GPIO.cleanup () kung _name_ ==' _main_ ': main ()
Hakbang 5: IOT App Watson sa IBM Bluemix [Bahagi One]
I-set up ang Serbisyo ng Blumix IoT
- Mag-set up ng isang Uri ng Device ng Gateway
- Mag-set up ng isang Device
Gawin ang mga hakbang 1 at 2 nang 3 beses. Ang isang RPi ay para sa isang seksyon (Seguridad / Depensa / Aliwan)
I-set up ang Node-Red
Patakbuhin ang node-red
node-red na pagsisimula
- Pumunta upang pamahalaan ang palette sa menu ng hamburger (kanang bahagi sa itaas)
-
I-download ang mga sumusunod na palyet
- node-red-dashboard
- node-red-contrib-firebase
- node-red-contrib-ibm-watson-iot
Hakbang 6: Node Red Flows
I-download ang mga file at i-export sa iyong node-red.
Security Node-Red
wala
Defense Rpi Node-Red
laserturret.txt
Aliwan Rpi Node-Red
- entertainment rpi flow.txt
- ldr rpi flow.txt
IBM Bluemix Node-Red
Inirerekumendang:
Wooden Super Nintendo Entertainment System (SNES): 11 Mga Hakbang
Wooden Super Nintendo Entertainment System (SNES): Sa isang maker-faire sa Vienna, mas masarap akong madapa sa isang kahoy na Super Nintendo Entertainment System (SNES). Naglalaro ako dati ng gayong game console kasama ang aking kuya noong bata ako. Tulad ng pagkilala ko na naging adik muli sa Super Mario
Gumawa ng Iyong Sariling GPS SMS Security Security System: 5 Hakbang (na may Mga Larawan)
Gawin ang Iyong Sariling Sistema ng Pagsubaybay sa Security ng GPS SMS: Sa proyektong ito ipapakita ko sa iyo kung paano pagsamahin ang isang module na SIM5320 3G sa isang Arduino at isang piezoelectric transducer bilang isang shock sensor upang lumikha ng isang sistema ng pagsubaybay sa seguridad na magpapadala sa iyo ng lokasyon ng iyong mahalagang sasakyan sa pamamagitan ng SMS kapag
Electronic Security Controlled Security System: 5 Hakbang
Sistema ng Seguridad na Kinokontrol ng Elektronikong Mata: Hey guys! Sa proyektong ito, makikita natin ang isang simpleng aplikasyon sa Home Security na tinatawag na Electronic Eye Controlled Security System na gumagamit ng LDR bilang pangunahing sensor at ilang iba pang mga bahagi. Ang electronic eye ay tinatawag ding magic eye. Bilang isang awtomatiko ay isang umusbong
Super Wood Entertainment System: 9 Mga Hakbang (na may Mga Larawan)
Super Wood Entertainment System: Ipinagmamalaki kong ipinakita ang aking buong gumaganang kahoy na Super Nintendo Entertainment Systems. Bago ko nai-post ang aking manu-manong kung paano bumuo ng isang kahoy na Super Nintendo Gamepad at oras na upang ipakita sa iyo kung paano bumuo ng console. Ang kaso na gawa sa kahoy ay gawa sa maraming s
Nintendo Entertainment System Cartridge Clock: 7 Hakbang (na may Mga Larawan)
Nintendo Entertainment System Cartridge Clock: Habang pabalik ang aking kaibigan na si Carolyn Main ay gumawa ng ilang mga NES cartridge na orasan para sa mga kaibigan para sa Pasko. Umiling sila. Ang kagila-gilalas ng NES Cartridge Clock ay dapat na kumalat sa buong mga lupain. Ngayon, maaari kang mag-online at bumili ng isa … NGUNIT: 1) Alam nating lahat ang makin