![Обзор: Үйдүн көңүл ачуу жана коопсуздук системасы: 6 кадам Обзор: Үйдүн көңүл ачуу жана коопсуздук системасы: 6 кадам](https://i.howwhatproduce.com/images/002/image-5083-65-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:52
![Обзор: Үйдүн көңүл ачуу жана коопсуздук системасы Обзор: Үйдүн көңүл ачуу жана коопсуздук системасы](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кө жүктөлөт
- Уруксатсыз болсо, коргонуу бөлүмү кирип, ЖК экраны сизге уруксат берилбегенин айтат.
-
Коргоо
- Куралдар тактасындагы баскычты басыңыз.
- Лазердик турреттер туш келди жарылуу жана ылдамдыкта чабуул жасашат.
-
Көңүл ачуу
- Эгерде кыймыл аныкталса, оюн башталат.
- Колдонуучу оюнду ойногондон кийин, упай Firebaseге сакталат.
- LDR баалуулуктары алынат жана панелде чыгарылат.
Бул колдонмо көзөмөлгө алынат жана IBM Node-Red веб-сервери аркылуу каралат. Биз AWS жана IBM Cloud Services кызматтарын колдонобуз жана Firebase'ди маалымат базабыз катары колдондук.
Сүрөттөлө турган кадамдардын кыскача баяны
- Аппараттык талаптар
- Коопсуздук - RFID киргизүү жана сүрөт таануу программасын колдонгон коопсуздук системасын кантип түзүү керек
- Коргоо - Лазердик мунараны кантип түзүү керек
- Көңүл ачуу - Симон айткандай оюнду кантип түзүү керек
- IBM Bluemixтеги IOT App Watson - Бардык тутумдарды бир тактага кантип бириктирүү керек
Бул долбоорду кантип түзүү жөнүндө кененирээк түшүндүрмө алуу үчүн pdf файлына өтүңүз.
1 -кадам: Аппараттык талап
Бул сизге керек болот
-
Коопсуздук
- 1 Raspberry Pi
- 1 ЖК
- 1 RFID окуу куралы
- 1 PiCam
- 2 RFID карталары/баскычтары
- X Аял -> Эркек секирүүчү кабелдер
-
Коргоо
- 1 Raspberry Pi
- 2 10 ㏀ Резистор (баскычтар үчүн)
- 2 Micro Servo
- 1 650nm лазердик өткөргүч модулу
- 2 баскыч
- 1 Buzzer
- 3 Кичинекей резина топтору/Кабелдик байланыштар (оңдоо үчүн)
- X Аял -> Эркек секирүүчү кабелдер
- X үзгүлтүксүз секирүү кабелдери
- 1 Транзистор
- 1 Конденсатор
-
Көңүл ачуулар
- 1 Raspberry Pi
- 3 1 ㏀ Резистор (LED үчүн)
- 1 10㏀ резистор (LDR үчүн)
- 3 LED (ар кандай түстөр)
- 3 баскычтар
- 1 LDR
- 1 ЖК
- 1 Pir Motion Sensor
- 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 сактагычын орнотуу
- Ботону 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 импорттук светодиодунан, Buzzer, Button, Servoimport time from signal import пауза импорттук туш келди
#жарык = LED (12)
#pir = MotionSensor (19, sample_rate = 5, queue_len = 1) buzzer_pin = Buzzer (17) чабуул = Button (5, pull_up = False) #reset = Button (6, pull_up = False) servo1 = Servo (18) servo2 = Servo (24)
def ledON ():
led.on () басып чыгаруу ("LED күйүк") def ledOFF (): led.off () басып чыгаруу ("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) shot = 0 маалымат = [timeBetweenBurst, timeBetweenShots, servo1.value, servo2.value, numShots] басып чыгаруу (детал) атылганда <numshots: shot+= "1" servo1.value = "servo1start" servo2.value = "servo2start" servo1start = "servo1change" servo2start = "servo2change" от () = "" time.sleep (timebetweenshots) = "" time.sleep (timebetweenburburst)
ноталар = {
'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):
time.sleep (узундук) кайтып келүү мезгили = 1.0 / жыштык #жыштыктын кечиктирилиши Value = мезгил / 2 #толкундун жарымына убакытты эсептөө циклдар): #0дөн циклди баштаңыз, buzzer_pin.on () time.sleep (delayValue) buzzer_pin.off () time.sleep (delayValue)
def ойноо (обон, темп, пауза, темп = 0.800):
i үчүн диапазондо (0, лен (обон)): # Play song noteDuration = темп/темп buzz (melody , noteDuration) # Ыр нотасынын жыштыгын өзгөртүү pauseBetweenNotes = noteDuration * тыным убактысы.уйку (тыныгуу арасында Notes)
чын болсо:
laserturret () тыныгуу;
4 -кадам: Көңүл ачуу
![Көңүл ачуу Көңүл ачуу](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)
Оюн -зоок жабдууларын түзүү
Биз Саймон айткандай баскыч оюнун түзөбүз, аны жарык берүүчү LEDлердин үлгүсүнө ылайыктап, тиешелүү баскычтарды басуу керек. Ал такталарды андан ары колдонуу үчүн упайларды жана убакыт белгисин Firebase NoSQL маалымат базасына жүктөйт.
Fritzing диаграммасында көрсөтүлгөн схемаларды туташтырыңыз.
Көңүл ачуучу программаны түзүү
көңүл ачуу.py
импорттук RPi. GPIO GPIOimport Threading импорттук убакыт импорттук кокустук импорттук OS импорттук rpi_lcd импорттук subprocess импорттук убакыт импорттук Firebase тартып DateTime импорттук DATETIME тартып уктап импорттук тартып чалуудан ЖКнын Firebase тартып tweepy CONSUMER_KEY катары = 'h5Sis7TXdoUVncrpjSzGAvhBH' CONSUMER_SECRET = 'ZfDVxc4aTd9doGmBQO3HiSKKzxSTKT4C3g0B3AGx8eETCJm2rY' ACCESS_KEY = '988333099669901312- YDLEQN1weW2n1JP4lxJcFPppCsbvzQh 'ACCESS_SECRET =' K2IlUPur6jx7DO5S0HhhZW29H5AQFOvkMMevSsk9ZzwLk 'уруксаттын = tweepy. OAuthHandler (CONSUMER_KEY, CONSUMER_SECRET) auth.secure = True auth.set_access_token (ACCESS_KEY, ACCESS_SECRET) API = tweepy. API (уруксаттын) Firebase = firebase. FirebaseApplication (' HTTPS: // iotca2 -12f48.firebaseio.com ', None) lcd = LCD () lcd.text (' Бактылуу болгула! ', 1) lcd.text (' Ийгиликтер! ', 2) уйку (1) # Кызыл, Сары, Жашыл ЖАРЫКТАР = [40, 38, 36] ТҮЙМӨЛӨР = [37, 33, 35] ЭСКЕРТҮҮЛӨР = ["E3", "A4", "E4"] # баалуулуктарды өзгөртүүгө болот, бул оюндун ылдамдыгына таасирин тийгизет = 0.5 # желектер оюнга сигнал берүү үчүн колдонулат status is_displaying_pattern = False is_won_curr ent_level = False is_game_over = False # game state 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 үчүн диапазондо (3): GPIO.add_event_detect (BUTTONS , GPIO. FALLING, verify_player_selection) def verify_player_selection (channel): global current_step_le_level_level_level is_game_over is not_displaying_pattern and is_won_current_level and not_game_over: flash_led_for_button (channel) if channel == BUTTONS [pattern [current_step_of_level]: current_step_of_level += 1 if current_step_level_level_level_level_level_level 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 cur 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_displayOTH: 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) Постту reset_board_for_new_game (): дүйнөлүк is_displaying_pattern, is_won_current_level, is_game_over дүйнөлүк current_level, current_step_of_level, узор is_displaying_pattern = False is_won_current_level = False is_game_over = False current_level = 1 current_step_of_level = 0 үлгү = GPIO.output (LIGHTS, GPIO. LOW) def send_data (score): lcd.text ('Оюндун аягы,', 1) lcd.text ('Жакында көрүшөбүз!', 2) datestr = str (datetime. now ()) True: басып чыгаруу (datestr) print (score) data = {'Date': datestr, 'Score': score} result = firebase.post ('/scores/', data) print (result) if score> 2: status = 'Кимдир бирөө утту' +(str (score))+'on'+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 is_game_over: send_data (current_level -!) "n!").format (current_level - 1)) sleep (2) print ("Ойногонуңуз үчүн рахмат! / 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 ("Жаңы раундду баштаңыз! / n") initialize_gpio () start_game_monitor () акыры: GPIO.cleanup () if _name_ ==' _main_ ': main ()
5 -кадам: IBM Bluemixте IOT App Watson [Биринчи бөлүк]
Blumix IoT кызматын орнотуңуз
- Шлюз түзмөгүнүн түрүн орнотуңуз
- Түзмөктү орнотуу
1 жана 2 -кадамдарды 3 жолу жасаңыз. Бир RPi бир бөлүм үчүн (Коопсуздук/Коргоо/Көңүл ачуу)
Node-Red'ди орнотуңуз
Түйүн-кызыл чуркаңыз
түйүн-кызыл башталышы
- Гамбургер менюсундагы палитраны башкарууга өтүңүз (жогорку оң)
-
Төмөнкү палеттерди жүктөп алыңыз
- түйүн-кызыл-тактасы
- түйүн-кызыл-салым-өрт базасы
- түйүн-кызыл-салым-ибм-ватсон-иот
6 -кадам: Node Red Flows
![Node Red Flows Node Red Flows](https://i.howwhatproduce.com/images/002/image-5083-78-j.webp)
![Node Red Flows Node Red Flows](https://i.howwhatproduce.com/images/002/image-5083-79-j.webp)
![Node Red Flows Node Red Flows](https://i.howwhatproduce.com/images/002/image-5083-80-j.webp)
![Node Red Flows Node Red Flows](https://i.howwhatproduce.com/images/002/image-5083-81-j.webp)
Файлдарды жүктөп алып, кызыл түйүнгө экспорттоңуз.
Коопсуздук түйүнү-Кызыл
эч ким
Коргоо Rpi Node-Red
laserturret.txt
Көңүл ачуу Rpi Node-Red
- көңүл ачуу rpi агымы.txt
- ldr rpi flow.txt
IBM Bluemix Node-Red
Сунушталууда:
NVIDIA JetBot менен окууну өткөрүп берүү - трафик конустары менен көңүл ачуу: 6 кадам
![NVIDIA JetBot менен окууну өткөрүп берүү - трафик конустары менен көңүл ачуу: 6 кадам NVIDIA JetBot менен окууну өткөрүп берүү - трафик конустары менен көңүл ачуу: 6 кадам](https://i.howwhatproduce.com/images/002/image-4961-11-j.webp)
NVIDIA JetBot менен окууну өткөрүп берүү-трафик конустары менен көңүлдүү: камераңызды жана заманбап терең үйрөнүү моделин колдонуп, роботторго трафик конусунун лабиринтинде жолду табууну үйрөтүңүз
OLED дисплейи жана Arduino менен көңүл ачуу: 12 кадам (сүрөттөр менен)
![OLED дисплейи жана Arduino менен көңүл ачуу: 12 кадам (сүрөттөр менен) OLED дисплейи жана Arduino менен көңүл ачуу: 12 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/005/image-12457-j.webp)
OLED Display жана Arduino менен көңүл ачуу: OLED дисплей технологиясы жөнүндө сөзсүз укканыңызга ишенем. Бул салыштырмалуу жаңы жана эски ЖК технологиясына караганда жакшыраак сапатты сунуштайт. Бул үйрөткүчтө биз эң кеңири таралган бирдиктүү маалыматты көрсөтүү үчүн керектүү кадамдарды карап чыгууну каалайбыз
One Touch Аялдардын Коопсуздук Коопсуздук Системасы: 3 кадам
![One Touch Аялдардын Коопсуздук Коопсуздук Системасы: 3 кадам One Touch Аялдардын Коопсуздук Коопсуздук Системасы: 3 кадам](https://i.howwhatproduce.com/images/003/image-7133-2-j.webp)
One Touch Аялдардын Коопсуздук Коопсуздук Системасы: 8051 микро контроллерин колдонгон аялдардын коопсуздук системасы Бүгүнкү дүйнөдө Аялдардын коопсуздугу - бул өлкөдө эң маанилүү маселе. Бүгүнкү күндө аялдар кысымга алынып, кээде шашылыш жардамга муктаж болуп калышат. Керектүү жери жок
Жеткиликтүүлүк же көңүл ачуу үчүн био-адаптивдүү медиа контроллери: 7 кадам
![Жеткиликтүүлүк же көңүл ачуу үчүн био-адаптивдүү медиа контроллери: 7 кадам Жеткиликтүүлүк же көңүл ачуу үчүн био-адаптивдүү медиа контроллери: 7 кадам](https://i.howwhatproduce.com/images/005/image-13125-8-j.webp)
Жеткиликтүүлүк же көңүл ачуу үчүн био-адаптивдүү медиа контроллери: Бул көрсөтмөдөн сиз мен иштеп чыккан ачык булак системасы сыяктуу Arduino аркылуу био-оптималдаштырылган медиа контроллерди кантип курууну үйрөнөсүз. Кошумча тез түшүндүрмө алуу үчүн шилтемеленген видеону көрүңүз. Эгерде сиз аны куруп, андан ары тестирлөөнү өткөрсөңүз
Ардуино менен кантип көңүл ачуу керек (жана процессте геик болуу): 12 кадам
![Ардуино менен кантип көңүл ачуу керек (жана процессте геик болуу): 12 кадам Ардуино менен кантип көңүл ачуу керек (жана процессте геик болуу): 12 кадам](https://i.howwhatproduce.com/images/002/image-5647-112-j.webp)
Arduino менен кантип көңүл ачуу керек (жана процессте геик болуу): Сиз геик картаңызды тапкыңыз келеби - pronto? Баштайлы! Бул колдонмо сизди ачык булак Arduino иштеп чыгуу жана прототиптөө платформасын колдонуу менен караңгы тарапка карай жолго баштайт. Бул сизди микроконтроллерлер менен тааныштырат, баштаңыз