Агуулгын хүснэгт:

Тойм: Гэрийн зугаа цэнгэл, аюулгүй байдлын систем: 6 алхам
Тойм: Гэрийн зугаа цэнгэл, аюулгүй байдлын систем: 6 алхам

Видео: Тойм: Гэрийн зугаа цэнгэл, аюулгүй байдлын систем: 6 алхам

Видео: Тойм: Гэрийн зугаа цэнгэл, аюулгүй байдлын систем: 6 алхам
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Арваннэгдүгээр
Anonim
Тойм: Гэрийн зугаа цэнгэл, аюулгүй байдлын систем
Тойм: Гэрийн зугаа цэнгэл, аюулгүй байдлын систем
Тойм: Гэрийн зугаа цэнгэл ба аюулгүй байдлын систем
Тойм: Гэрийн зугаа цэнгэл ба аюулгүй байдлын систем
Тойм: Гэрийн зугаа цэнгэл ба аюулгүй байдлын систем
Тойм: Гэрийн зугаа цэнгэл ба аюулгүй байдлын систем

Програмын тухай

Энэхүү IOT систем нь гэрийн зугаа цэнгэл, аюулгүй байдлын систем юм.

  1. Аюулгүй байдал

    1. RFID карт дээр дарж оролтыг Firebase -д хадгална.
    2. Зөвшөөрөгдсөн бол та тайван байдлаар оруулах боломжтой бөгөөд зургийг авч S3 дээр байршуулна уу
    3. Хэрэв зөвшөөрөлгүй бол хамгаалалтын хэсэг орж ирэх бөгөөд LCD дэлгэц таныг эрхгүй гэж хэлэх болно.
  2. Хамгаалалт

    1. Хяналтын самбар дээрх товчлуурыг дарна уу.
    2. Лазер цамхаг санамсаргүй тэсрэлт, хурдтайгаар дайрах болно.
  3. Үзвэр үйлчилгээ

    1. Хэрэв хөдөлгөөн илэрсэн бол тоглоом эхэлнэ.
    2. Хэрэглэгч тоглоом тоглосны дараа оноо Firebase -д хадгалагдана.
    3. LDR утгыг авч хяналтын самбарт гаргана.

Энэ програмыг IBM Node-Red вэб серверээр дамжуулан хянах боломжтой. Бид AWS болон IBM Cloud Services -ийг ашигладаг бөгөөд Firebase -ийг мэдээллийн сан болгон ашигладаг.

Тайлбарлах алхамуудын хураангуй

  • Тоног төхөөрөмжийн шаардлага
  • Аюулгүй байдал - RFID оролт, дүрс таних програм хангамжийг ашигладаг хамгаалалтын системийг хэрхэн бий болгох вэ
  • Хамгаалалт - Лазер цамхаг хэрхэн бүтээх вэ
  • Үзвэр үйлчилгээ - Саймон хэлдэг тоглоомыг хэрхэн бүтээх вэ
  • IBM Bluemix дээрх IOT App Watson - Бүх системийг нэг хяналтын самбарт хэрхэн нэгтгэх вэ

Үргэлжлүүлэн pdf файл руу орж энэ төслийг хэрхэн бүтээх талаар илүү дэлгэрэнгүй тайлбар аваарай.

Алхам 1: Тоног төхөөрөмжийн шаардлага

Энэ бол танд хэрэгтэй зүйл юм

  1. Аюулгүй байдал

    • 1 Raspberry Pi
    • 1 LCD
    • 1 RFID уншигч
    • 1 PiCam
    • 2 RFID карт/товчлуур
    • X Эмэгтэй -> Эр холбогч кабель
  2. Хамгаалалт

    • 1 Raspberry Pi
    • 2 10, резистор (товчлууруудын хувьд)
    • 2 бичил servo
    • 1 650nm лазер дамжуулагч модуль
    • 2 Товчлуур
    • 1 дуугаралт
    • 3 жижиг резинэн тууз/кабелийн бэхэлгээ (бэхлэх зориулалттай)
    • X Эмэгтэй -> Эр холбогч кабель
    • X тогтмол үсрэх кабель
    • 1 Транзистор
    • 1 конденсатор
  3. Зугаа цэнгэл

    • 1 Raspberry Pi
    • 3 1, резистор (LED -ийн хувьд)
    • 1 10㏀ резистор (LDR -ийн хувьд)
    • 3 LED (өөр өөр өнгө)
    • 3 товчлуур
    • 1 LDR
    • 1 LCD
    • 1 Pir хөдөлгөөн мэдрэгч
    • X Эмэгтэй -> Эр холбогч кабель
    • X тогтмол үсрэх кабель

Алхам 2: Аюулгүй байдал

Аюулгүй байдал
Аюулгүй байдал
Аюулгүй байдал
Аюулгүй байдал
Аюулгүй байдал
Аюулгүй байдал

Аюулгүй байдлын системийн техник хангамжийг бий болгох

Fritzing диаграммд үзүүлсэн шиг хэлхээг холбоно уу

Аюулгүй байдлын системийн програм хангамжийг бий болгох

  1. Аливаа зүйлийг үүсгэх замаар AWS -ийг тохируулна уу
  2. AWS Python номын санг суулгана уу
  3. LCD номын санг суулгах
  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 servo болон 1 лазер модулийг ашиглан бүтээдэг
  2. Fritzing диаграммд үзүүлсэн шиг хэлхээг холбоно уу

Лазер цамхаг програм хангамжийг бий болгох

Доорх код нь лазер цамхагийг санамсаргүй чиглэлд, санамсаргүй тэсрэлт, хурдаар буудуулах болно

laserturret.py

gpiozero импортын LED -ээс, Buzzer, Button, Servoimport -аас дохио импортлох түр зогсоох импорт

#LED = 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 = Серво (24)

def ledON ():

led.on () хэвлэх ("LED асаалттай") def ledOFF (): led.off () хэвлэх ("LED унтарсан")

def гал ():

хэвлэх ("зэвсэг халуун") 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" гал () = "" time.sleep (timebetweenshots) = "" time.sleep (timebetween theburst)

тэмдэглэл = {

'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 = period / 2 #долгионы тэн хагасыг тооцоолох мөчлөг = мөчлөг (int * урт)): #-аас дээш давталтыг эхлүүлэх buzzer_pin.on () time.sleep (delayValue) buzzer_pin.off () time.sleep (delayValue)

def тоглох (аялгуу, хэмнэл, завсарлага, хурд = 0.800):

for i for range (0, len (melody)): # Play song noteDuration = pace/tempo buzz (melody , noteDuration) # Дууны тэмдэглэлийн дагуу давтамжийг өөрчлөх pauseBetweenNotes = noteDuration * түр зогсоох хугацаа. унтах (Тэмдэглэл хоорондын завсарлага)

үнэн байхад:

laserturret () завсарлага;

Алхам 4: Үзвэр үйлчилгээ

Үзвэр үйлчилгээ
Үзвэр үйлчилгээ
Үзвэр үйлчилгээ
Үзвэр үйлчилгээ
Үзвэр үйлчилгээ
Үзвэр үйлчилгээ

Зугаа цэнгэлийн тоног төхөөрөмжийг бий болгох

Бид Саймон хэлдэг товчлуурын тоглоомыг бүтээдэг бөгөөд үүнийг LED гэрэлтүүлгийн загварыг дагаж, холбогдох товчлууруудыг дарах ёстой. Хяналтын самбарт цаашид ашиглахын тулд оноо, цагийн тэмдгийг firebase NoSQL мэдээллийн санд байршуулдаг.

Fritzing диаграммд үзүүлсэн шиг хэлхээг холбоно уу.

Зугаа цэнгэлийн програм хангамжийг бий болгох

зугаа цэнгэл.py

импортын RPi. GPIO GPIOimport урсгалт импортын цаг импортын санамсаргүй импортын OS импортын firebase импортын firebase CONSUMER_KEY-аас = 'h5Sis7TXdoUVncrpjSzGAvhBH' CONSUMER_SECRET = 'ZfDVxc4aTd9doGmBQO3HiSKKzxSTKT4C3g0B3AGx8eETCJm2rY' ACCESS_KEY = 'ОгнооЦаг импортын ОгнооЦаг-аас цаг импортын нойрноосоо subprocess импортын дуудлага ирсэн rpi_lcd импортын LCD дэлгэц нь tweepy гэж 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 (AUTH) firebase = firebase. FirebaseApplication ('HTTPS: // iotca2 -12f48.firebaseio.com ', Байхгүй) lcd = LCD () lcd.text (' Сайхан амраарай! ', 1) lcd.text (' Амжилт хүсье! ', 2) унтах (1) # Улаан, Шар, НОГООН гэрэл = [40, 38, 36] BUTTONS = [37, 33, 35] ТАЙЛБАР = ["E3", "A4", "E4"] тоглоомын хурданд нөлөөлөх # утгыг өөрчилж болно = тоглоомонд дохио өгөхөд ашигладаг 0.5 # туг. status is_displaying_pattern = Хуурамч is_won_curr ent_level = False 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. i (3) дахь i -ийн тохиргоо (BUTTONS, GPIO. IN, pull_up_down = GPIO. PUD_DOWN): GPIO.add_event_detect (BUTTONS , GPIO. FALLING, verify_player_selection) def verify_player_selection (channel): global current_step_le_level_level_level_level is_game_over биш бол_загварын_хэсэг биш бөгөөд одоогийн байдлаараа биш юм_онцогт_болсон байна: flash_led_for_button 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_displayINGOO: 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 (): дэлхийн 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 (оноо): lcd.text ('Тоглоомын төгсгөл,', 1) lcd.text ('Удахгүй уулзъя!', 2) datestr = str (datetime. now ()) байхад True: хэвлэх (datestr) хэвлэх (оноо) өгөгдөл = {'Огноо': datestr, 'Оноо': оноо} үр дүн = firebase.post ('/оноо/', өгөгдөл) хэвлэх (үр дүн) бол оноо> 2: байдал = 'Хэн нэгэн оноо авсан' +(str (оноо))+'дээр'+datestr+'!' api.update_status (status = status) break 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 -!) хэвлэх ("Тоглоомын түвшин!").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 (): try: os.system (os.name == 'nt бол' cls ' 'else' clear ') хэвлэх ("Шинэ тойрог эхэл! / n") initialize_gpio () start_game_monitor () эцэст нь: GPIO.cleanup () хэрэв _name_ ==' _main_ ': main ()

Алхам 5: IBM Bluemix дээрх IOT App Watson [Нэгдүгээр хэсэг]

Blumix IoT үйлчилгээг тохируулна уу

  1. Гарцын төхөөрөмжийн төрлийг тохируулна уу
  2. Төхөөрөмж тохируулах

1 ба 2 -р алхамуудыг 3 удаа хий. Нэг RPi нь нэг хэсэгт зориулагдсан (Аюулгүй байдал/Батлан хамгаалах/Үзвэр үйлчилгээ)

Node-Red-ийг тохируулна уу

Зангилааны улаан өнгийг ажиллуулна уу

зангилааны улаан эхлэл

  1. Гамбургерын цэс дэх палитрыг удирдахын тулд баруун дээд буланд очно уу.
  2. Дараах тавиурыг татаж аваарай

    1. зангилааны улаан самбар
    2. зангилаа-улаан-хувь нэмэр оруулах галын бааз
    3. зангилаа-улаан-хувь нэмэр оруулах-ибм-ватсон-иот

Алхам 6: Улаан зангилаа зангилаа

Улаан зангилаа зангилаа
Улаан зангилаа зангилаа
Улаан зангилаа зангилаа
Улаан зангилаа зангилаа
Улаан зангилаа зангилаа
Улаан зангилаа зангилаа
Улаан зангилаа зангилаа
Улаан зангилаа зангилаа

Файлуудыг татаж аваад улаан цэг рүү экспортло.

Аюулгүй байдлын зангилаа-Улаан

аль нь ч биш

Хамгаалалтын Rpi зангилаа-Улаан

laserturret.txt

Үзвэр үйлчилгээ Rpi Node-Red

  • зугаа цэнгэл rpi урсгал.txt
  • ldr rpi урсгал.txt

IBM Bluemix Node-Red

Зөвлөмж болгож буй: