Агуулгын хүснэгт:
- Алхам 1: Тоног төхөөрөмжийн шаардлага
- Алхам 2: Аюулгүй байдал
- Алхам 3: Хамгаалалт
- Алхам 4: Үзвэр үйлчилгээ
- Алхам 5: IBM Bluemix дээрх IOT App Watson [Нэгдүгээр хэсэг]
- Алхам 6: Улаан зангилаа зангилаа
Видео: Тойм: Гэрийн зугаа цэнгэл, аюулгүй байдлын систем: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Програмын тухай
Энэхүү IOT систем нь гэрийн зугаа цэнгэл, аюулгүй байдлын систем юм.
-
Аюулгүй байдал
- RFID карт дээр дарж оролтыг Firebase -д хадгална.
- Зөвшөөрөгдсөн бол та тайван байдлаар оруулах боломжтой бөгөөд зургийг авч S3 дээр байршуулна уу
- Хэрэв зөвшөөрөлгүй бол хамгаалалтын хэсэг орж ирэх бөгөөд LCD дэлгэц таныг эрхгүй гэж хэлэх болно.
-
Хамгаалалт
- Хяналтын самбар дээрх товчлуурыг дарна уу.
- Лазер цамхаг санамсаргүй тэсрэлт, хурдтайгаар дайрах болно.
-
Үзвэр үйлчилгээ
- Хэрэв хөдөлгөөн илэрсэн бол тоглоом эхэлнэ.
- Хэрэглэгч тоглоом тоглосны дараа оноо Firebase -д хадгалагдана.
- LDR утгыг авч хяналтын самбарт гаргана.
Энэ програмыг IBM Node-Red вэб серверээр дамжуулан хянах боломжтой. Бид AWS болон IBM Cloud Services -ийг ашигладаг бөгөөд Firebase -ийг мэдээллийн сан болгон ашигладаг.
Тайлбарлах алхамуудын хураангуй
- Тоног төхөөрөмжийн шаардлага
- Аюулгүй байдал - RFID оролт, дүрс таних програм хангамжийг ашигладаг хамгаалалтын системийг хэрхэн бий болгох вэ
- Хамгаалалт - Лазер цамхаг хэрхэн бүтээх вэ
- Үзвэр үйлчилгээ - Саймон хэлдэг тоглоомыг хэрхэн бүтээх вэ
- IBM Bluemix дээрх IOT App Watson - Бүх системийг нэг хяналтын самбарт хэрхэн нэгтгэх вэ
Үргэлжлүүлэн pdf файл руу орж энэ төслийг хэрхэн бүтээх талаар илүү дэлгэрэнгүй тайлбар аваарай.
Алхам 1: Тоног төхөөрөмжийн шаардлага
Энэ бол танд хэрэгтэй зүйл юм
-
Аюулгүй байдал
- 1 Raspberry Pi
- 1 LCD
- 1 RFID уншигч
- 1 PiCam
- 2 RFID карт/товчлуур
- X Эмэгтэй -> Эр холбогч кабель
-
Хамгаалалт
- 1 Raspberry Pi
- 2 10, резистор (товчлууруудын хувьд)
- 2 бичил servo
- 1 650nm лазер дамжуулагч модуль
- 2 Товчлуур
- 1 дуугаралт
- 3 жижиг резинэн тууз/кабелийн бэхэлгээ (бэхлэх зориулалттай)
- X Эмэгтэй -> Эр холбогч кабель
- X тогтмол үсрэх кабель
- 1 Транзистор
- 1 конденсатор
-
Зугаа цэнгэл
- 1 Raspberry Pi
- 3 1, резистор (LED -ийн хувьд)
- 1 10㏀ резистор (LDR -ийн хувьд)
- 3 LED (өөр өөр өнгө)
- 3 товчлуур
- 1 LDR
- 1 LCD
- 1 Pir хөдөлгөөн мэдрэгч
- X Эмэгтэй -> Эр холбогч кабель
- X тогтмол үсрэх кабель
Алхам 2: Аюулгүй байдал
Аюулгүй байдлын системийн техник хангамжийг бий болгох
Fritzing диаграммд үзүүлсэн шиг хэлхээг холбоно уу
Аюулгүй байдлын системийн програм хангамжийг бий болгох
- Аливаа зүйлийг үүсгэх замаар AWS -ийг тохируулна уу
- AWS Python номын санг суулгана уу
- LCD номын санг суулгах
- RFID номын санг суулгах
- Firebase -ийг тохируулах
- S3 хадгалах санг тохируулах
- Raspberry Pi дээр Boto суулгаарай
- Raspberry Pi дээр AWS ClI суулгана уу
- AWS итгэмжлэл үүсгэх
- AWS -ийг тохируулах
- Security.py файлыг RPi руу байршуулах
- Imagerecognition.py файлыг RPi руу байршуулах
security.py бол rfid оролтыг уншиж, хэрэглэгч халдагч мөн эсэхийг илрүүлэх код юм. Хэрэв хэрэглэгч танигдсан бол зураг аваад s3 дээр байршуулна. Код нь мөн aws MQTT дээр сэдвийг нийтэлдэг
Алхам 3: Хамгаалалт
Лазер цамхаг тоног төхөөрөмжийг бий болгох
- Бид лазер цамхагийг 2 servo болон 1 лазер модулийг ашиглан бүтээдэг
- 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 -р алхамуудыг 3 удаа хий. Нэг RPi нь нэг хэсэгт зориулагдсан (Аюулгүй байдал/Батлан хамгаалах/Үзвэр үйлчилгээ)
Node-Red-ийг тохируулна уу
Зангилааны улаан өнгийг ажиллуулна уу
зангилааны улаан эхлэл
- Гамбургерын цэс дэх палитрыг удирдахын тулд баруун дээд буланд очно уу.
-
Дараах тавиурыг татаж аваарай
- зангилааны улаан самбар
- зангилаа-улаан-хувь нэмэр оруулах галын бааз
- зангилаа-улаан-хувь нэмэр оруулах-ибм-ватсон-иот
Алхам 6: Улаан зангилаа зангилаа
Файлуудыг татаж аваад улаан цэг рүү экспортло.
Аюулгүй байдлын зангилаа-Улаан
аль нь ч биш
Хамгаалалтын Rpi зангилаа-Улаан
laserturret.txt
Үзвэр үйлчилгээ Rpi Node-Red
- зугаа цэнгэл rpi урсгал.txt
- ldr rpi урсгал.txt
IBM Bluemix Node-Red
Зөвлөмж болгож буй:
IOT гэрийн аюулгүй байдлын систем: 3 алхам
IOT гэрийн аюулгүй байдлын систем: Хамгийн ашигтай IoT програмуудын нэг бол гэрийн аюулгүй байдал юм. Хулгайч танай гэрт нэвтрэх гэж байхад таны камерын утсыг хайчилж байна гэж төсөөлөөд үз дээ, хэрэв таны хамгаалалтын систем утасгүй, ухаалаг байвал энэ нь болохгүй
Гэрийн аюулгүй байдлын систем: 5 алхам
Гэрийн аюулгүй байдлын систем: Raspberry pi ашиглан гэрийнхээ аюулгүй байдлын системийг өөрөө хий
PLC аюулгүй байдлын утасгүй аюулгүй байдлын товчлуур: 6 алхам (зурагтай)
PLC -ийн аюулгүй байдлын утасгүй аюулгүй байдлын товчлуур: Энэхүү төсөл нь аюултай үйлдвэрлэлийн байгууламжийн аюулгүй байдлын нэмэлт давхаргыг бий болгохын тулд IoT болон (эцэст нь) робот техникийг ашиглах талаархи миний ойлголтын нотолгоо юм. Энэ товчлуурыг ашиглан дохиог хянах зэрэг олон процессыг эхлүүлэх эсвэл зогсоох боломжтой
One Touch Эмэгтэйчүүдийн аюулгүй байдлын аюулгүй байдлын систем: 3 алхам
Эмэгтэйчүүдийн аюулгүй байдлын нэг мэдрэгчтэй систем: Нэг мэдрэгчтэй дохиолол 8051 микро хянагч ашигладаг эмэгтэйчүүдийн аюулгүй байдлын систем Өнөөгийн ертөнцөд эмэгтэйчүүдийн аюулгүй байдал нь тухайн улсын хамгийн чухал асуудал болоод байна. Өнөөдөр эмэгтэйчүүдийг дарамталж, зовоодог, заримдаа яаралтай тусламж хэрэгтэй болдог. Шаардлагатай байршил байхгүй байна
Arduino гэрийн аюулгүй байдлын систем: 7 алхам (зурагтай)
Arduino гэрийн аюулгүй байдлын систем: Энэ бол Arduino Mega 2560 -ийг ашигладаг гэрийн хамгаалалтын систем бөгөөд систем идэвхжсэн үед ямар нэгэн хаалга онгойлгох эсвэл өрөөнд хөдөлгөөн мэдрэгдэх болно. Энэ бол их сургуулийн сүүлийн курсын оюутнуудад зориулсан сайхан төсөл юм. Та үүнийг шинэчилж болно