สารบัญ:
- ขั้นตอนที่ 1: สร้างอุปกรณ์ทาส
- ขั้นตอนที่ 2: การสร้างอุปกรณ์หลัก
- ขั้นตอนที่ 3: การกำหนดค่าอุปกรณ์หลักและทาส
- ขั้นตอนที่ 4: การทดสอบระบบ
- ขั้นตอนที่ 5: เว็บเซิร์ฟเวอร์
- ขั้นตอนที่ 6: ตัวอย่างเพื่อชี้แจงทั้งหมด
วีดีโอ: Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
โครงการนี้ช่วยให้เราสามารถจำลองการมีอยู่และตรวจจับการเคลื่อนไหวในบ้านของเรา
เราสามารถกำหนดค่าเครือข่ายของอุปกรณ์ที่ติดตั้งในห้องต่างๆ ในบ้านของเรา ซึ่งทั้งหมดนี้ควบคุมโดยอุปกรณ์หลัก
โปรเจ็กต์นี้รวมคุณสมบัติเหล่านี้ไว้ในอุปกรณ์เครื่องเดียว (ภาพที่ 1):
- เป็นเครื่องจำลองการแสดงตน: อุปกรณ์จะเปิดและปิดหลอดไฟหนึ่งหลอด (ภาพที่ 1) และใช้เครื่องส่งสัญญาณ IR (ภาพที่ 2) เพื่อส่งรหัสควบคุม IR 38 KHz ไปยังอุปกรณ์ควบคุม IR (ทีวี, VCR, หลอดไฟ, …)
- เป็นเครื่องตรวจจับความเคลื่อนไหว: อุปกรณ์มีเซ็นเซอร์ PIR เพื่อตรวจจับการเคลื่อนไหว (ภาพที่ 3)
ทั้งระบบถูกควบคุมโดยอุปกรณ์หลักที่ส่งสัญญาณไปยังอุปกรณ์รองอื่น ๆ ที่อยู่ในเครือข่ายเพื่อเปิดและปิดไฟและเพื่อเปิดใช้งานอุปกรณ์ IR ที่ควบคุมตามการจำลองการมีอยู่ตามกำหนดเวลา
คุณสมบัติหลักของอุปกรณ์หลักมีดังต่อไปนี้:
- มันใช้ลำดับของคำสั่งที่กำหนดเวลาไว้เพื่อควบคุมอุปกรณ์สเลฟแต่ละตัว ตัวอย่างเช่น ไฟในสถานีสเลฟ 1 จะเปิดทุกวันในช่วงเวลาสุ่มหรือสถานีสเลฟ 2 จะเปิดทีวีและจะเปลี่ยนช่องหลังจากช่วงระยะเวลาหนึ่ง
- รับสัญญาณจากสถานีสเลฟเมื่อตรวจพบการเคลื่อนไหวและส่งอีเมลถึงเรา
- มันกำหนดค่าเว็บเซิร์ฟเวอร์เพื่อควบคุมและอัปเดตทั้งระบบจากระยะไกลจาก Cloud
ฉันหวังว่าคุณจะชอบและเป็นประโยชน์สำหรับใครบางคน
ขั้นตอนที่ 1: สร้างอุปกรณ์ทาส
ในการสร้างอุปกรณ์สเลฟ เราต้องการสิ่งต่อไปนี้:
- กล่องไฟฟ้า
- ARDUINO NANO หรือไมโครคอนโทรลเลอร์ ARDUINO NANO ที่เข้ากันได้
- โปรโตบอร์ด 480
- รีเลย์
- เครื่องส่งสัญญาณ IR 38 KHz
- เซ็นเซอร์ PIR
- โมดูล nRF24L01 + เสาอากาศ
- อะแดปเตอร์สำหรับโมดูล nRF24L01
- แหล่งจ่ายไฟ 5V, 0.6 A
- ที่ใส่โคมไฟ
- หลอดไฟฟ้า
- สายเคเบิล
- เทอร์มินัลบล็อก
ขั้นตอนในการติดตั้งมีดังต่อไปนี้ (ดูภาพวาด Fritzing สำหรับการเชื่อมต่อพินแต่ละอัน):
- ภาพที่ 1: เปิดรูในกล่องไฟฟ้าสำหรับที่ใส่หลอดไฟ
- ภาพที่ 2: ติดตั้งโปรโตบอร์ด 480 ด้วยไมโครคอนโทรลเลอร์ NANO, เครื่องส่งสัญญาณ IR และแหล่งจ่ายไฟ
- ภาพที่ 3: เชื่อมต่อตัวนำเฟสของที่ยึดหลอดไฟกับขั้วต่อ NC ของรีเลย์และตัวนำที่เป็นกลางกับอินพุตที่เป็นกลางในแผงขั้วต่อ หลังจากนั้นให้เชื่อมต่อขั้วทั่วไปของรีเลย์กับตัวนำเฟสของอินพุตในแผงขั้วต่อ
- ภาพที่ 4: เชื่อมต่อตัวส่งสัญญาณ IR และเซ็นเซอร์ PIR กับไมโครคอนโทรลเลอร์ NANO ดูขั้นตอนที่ 3 เพื่อกำหนดค่ารหัส IR สำหรับอุปกรณ์ที่คุณต้องการควบคุม
- ภาพที่ 5: ติดตั้งอะแดปเตอร์ nRF24L01 นอกกล่องไฟฟ้า และเชื่อมต่อกับไมโครคอนโทรลเลอร์ NANO ดังที่คุณเห็นในภาพนี้ สายเคเบิลจะเข้าไปในกล่องไฟฟ้าผ่านรูที่ใช้เชื่อมต่อสายเคเบิลการเขียนโปรแกรม USB กับไมโครคอนโทรลเลอร์ NANO
ขั้นตอนที่ 2: การสร้างอุปกรณ์หลัก
ในการสร้างอุปกรณ์หลัก เราต้องการสิ่งต่อไปนี้:
- กล่องไฟฟ้า
- ARDUINO MEGA 2560 R3 หรือไมโครคอนโทรลเลอร์ ARDUINO MEGA 2560 R3 ที่เข้ากันได้
- WiFi NodeMCU Lua Amica V2 ESP8266 โมดูล
- RTC DS3231
- โปรโตบอร์ด 170
- รีเลย์
- เครื่องส่งสัญญาณ IR 38 KHz
- เซ็นเซอร์ PIR
- โมดูล nRF24L01 + เสาอากาศ
- อะแดปเตอร์สำหรับโมดูล nRF24L01
- แหล่งจ่ายไฟ 5V, 0.6 A
- ที่ใส่โคมไฟ
- หลอดไฟฟ้า
- สายเคเบิล
- เทอร์มินัลบล็อก
ขั้นตอนในการติดตั้งนั้นคล้ายกับขั้นตอนก่อนหน้ามาก เนื่องจากอุปกรณ์หลักนั้นเป็นอุปกรณ์รองที่มีคุณสมบัติมากกว่า (ดูภาพวาด Fritzing สำหรับการเชื่อมต่อพินแต่ละอัน):
- ภาพที่ 1: เปิดรูในกล่องไฟฟ้าสำหรับที่ใส่หลอดไฟ
- ภาพที่ 2 ภาพที่ 3: ติดตั้งโมดูล ESP8266 ในโปรโตบอร์ด 170 และวางไว้เหนือไมโครคอนโทรลเลอร์ MEGA 2560 ดังที่คุณเห็นในภาพ
- ภาพที่ 4: วางชิ้นไม้ลงในกล่องไฟฟ้า เหนือชิ้นไม้ ติดตั้งไมโครคอนโทรลเลอร์ MEGA 2560 ด้วย ESP8266, โมดูลนาฬิกา DS3231 และอะแดปเตอร์ nRF24L01
- ภาพที่ 5: ติดตั้งแหล่งจ่ายไฟและของจริง เชื่อมต่อตัวนำเฟสของที่ยึดหลอดไฟเข้ากับขั้ว NC ของรีเลย์ และตัวนำที่เป็นกลางกับอินพุตที่เป็นกลางในแผงขั้วต่อ หลังจากนั้นให้เชื่อมต่อขั้วทั่วไปของรีเลย์กับตัวนำเฟสของอินพุตในแผงขั้วต่อ
ขั้นตอนที่ 3: การกำหนดค่าอุปกรณ์หลักและทาส
ในการกำหนดค่าอุปกรณ์ คุณต้องทำตามขั้นตอนต่อไปนี้:
ขั้นตอนที่ 3.1 (ทั้งสองอุปกรณ์)
ติดตั้งไลบรารี IRremote, RF24Network, RF24, DS3231 และ Time ใน ARDUINO IDE ของคุณ
ขั้นตอนที่ 3.2 (สำหรับอุปกรณ์สเลฟเท่านั้น)
กำหนดค่าที่อยู่ในเครือข่าย เพียงมองหาโค้ดต่อไปนี้ในแบบร่าง "presence_slave.ino" และระบุที่อยู่ในรูปแบบฐานแปด ใช้เฉพาะที่อยู่ที่มากกว่า 0 เนื่องจากที่อยู่ 0 สงวนไว้สำหรับอุปกรณ์หลัก
const uint16_t this_node = 01; // ที่อยู่ของอุปกรณ์ทาสของเราในรูปแบบ Octal
โหลดภาพสเก็ตช์ "presence_slave.ino" ลงในไมโครคอนโทรลเลอร์
ขั้นตอนที่ 3.3 (สำหรับอุปกรณ์หลักเท่านั้น) (แนะนำ IR CONTROL CODES)
หากคุณกำลังจะใช้อุปกรณ์ที่ควบคุมโดย 38KHz IR ควบคุมรหัสเพื่อจำลองสถานะ คุณต้องรู้จักบางส่วน
มิฉะนั้น คุณต้องรับรหัสควบคุม IR จากอุปกรณ์ของคุณ
ในการทำเช่นนั้น คุณจะต้องมีตัวรับ IR 38KHz โหลดไมโครคอนโทรลเลอร์นาโนหนึ่งตัวในร่าง "ir_codes.ino" และเชื่อมต่อทุกอย่างดังที่คุณเห็นในภาพ 1
จากนั้น ชี้รีโมทคอนโทรลของคุณไปที่ตัวรับสัญญาณ IR กดปุ่มใดก็ได้ แล้วคุณจะเห็นสิ่งที่คล้ายกับในมอนิเตอร์แบบอนุกรมในจอภาพแบบอนุกรม:
(12 บิต) ถอดรหัส SONY: A90 (HEX), 101010010000 (BIN) // ปุ่ม POWER
(12 บิต) ถอดรหัส SONY: C10 (HEX), 110000010000 (BIN) // 4 ปุ่ม (12 บิต) ถอดรหัส SONY: 210 (HEX), 100,00010000 (BIN) // 5 ปุ่ม
ในกรณีนี้ รีโมทคอนโทรลใช้โปรโตคอล SONY IR และเมื่อเรากดปุ่มเปิด/ปิดบนรีโมทคอนโทรล เราจะได้รหัส IR "0xA90" ที่ความยาว 12 บิต หรือเมื่อเรากดปุ่ม 4 บนรีโมทคอนโทรล เราจะได้ IR รหัส "0xC10"
อย่างน้อยผมขอแนะนำให้มองหาปุ่มเปิดปิดและรหัสควบคุม IR หลายปุ่มเพื่อจำลองสถานะ
หลังจากที่คุณได้รับรหัส IR มาก่อนแล้ว คุณต้องแนะนำด้วยวิธีต่อไปนี้:
วิธีแรก
หากคุณได้กำหนดค่าเครือข่าย wifi ไว้ คุณสามารถทำได้โดยใช้หน้าเว็บ (ดูขั้นตอน: เว็บเซิร์ฟเวอร์)
วิธีที่สอง
มิฉะนั้น คุณต้องค้นหาโค้ดถัดไปในไฟล์ "ir_codes.ino" และอัปเดตข้อมูล ในโค้ดด้านล่าง คุณสามารถดูวิธีที่เราสามารถแนะนำข้อมูลที่ได้รับข้างต้นสำหรับอุปกรณ์หลักเท่านั้น (ที่อยู่ = 0)
/******************************************/
/******* รหัสควบคุม IR *****************/ /********************** **********************/ // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์หลัก (ที่อยู่ = 0) SONY, 12, 0xA90, 0xC10, 0x210, 0, 0, 0, 0, 0, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 1) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 2) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 3) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 4) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /************ ***************************************/ /************ สิ้นสุดรหัสควบคุม IR ** ************/ /****************************************** *********/
ร่างได้รับการกำหนดค่าให้ทำงานร่วมกับโปรโตคอล IR ต่อไปนี้:
- NEC
- SONY
- RC5
- RC6
- LG
- JVC
- WHYNTER
- ซัมซุง
- คม
- จาน
- เดนอน
- LEGO_PF
ในไฟล์ "ir_codes.ino" คุณจะพบรหัสควบคุม IR สำหรับโปรโตคอล SAMSUNG และ SONY
/***************************************************************************/
// IR_PROTOCOLS และรหัสบางส่วน // (SAMSUNG, number_of_bits, ปุ่ม POWER, ปุ่ม 1, 2, 3) // SAMSUNG, 32, 0xE0E010EF, 0xE0E020DF, 0xE0E0609F, 0xE0E0A05F // (SONY, number_of_bits, ปุ่ม POWER, ปุ่ม 1, 2, 3, 4, 5, 6, 7, 8, 9, 0) // SONY, 12, 0xA90, 0x010, 0x810, 0x410, 0xC10, 0x210, 0xA10, 0x610, 0xE10, 0x110, 0x910 /***** ******************************************************** *******************/
สำคัญ: รหัสควบคุม IR แรกที่นำมาใช้จะต้องเป็นรหัสควบคุม IR เพื่อปิดอุปกรณ์ ต้นแบบจะส่งไปยังทาสเมื่อไม่มีการดำเนินการใด ๆ ที่วางแผนไว้สำหรับอุปกรณ์นั้น
หากมีผู้รู้หรือบางคนได้รับรหัสควบคุม IR ของโปรโตคอลบางตัวที่ระบุไว้ข้างต้น โปรดโพสต์ความคิดเห็นในคำแนะนำนี้พร้อมข้อมูลต่อไปนี้: รหัสโปรโตคอล ความยาวของโปรโตคอล และรหัสควบคุม IR
ขั้นตอนที่ 3.4 (สำหรับอุปกรณ์หลักเท่านั้น) (แนะนำการวางแผนการจำลองการมีอยู่)
คุณสามารถแนะนำการวางแผนการจำลองการมีอยู่ได้ด้วยวิธีต่อไปนี้:
วิธีแรก
หากคุณได้กำหนดค่าเครือข่าย wifi ไว้ คุณสามารถทำได้โดยใช้หน้าเว็บ (ดูขั้นตอน: เว็บเซิร์ฟเวอร์)
วิธีที่สอง
คุณต้องค้นหารหัสถัดไปในไฟล์ "ir_codes.ino" และอัปเดตข้อมูล
รูปแบบการวางแผนการจำลองการมีอยู่มีดังต่อไปนี้:
(hour_init_interval1), (hour_end_interval1), (hour_init_interval2), (hour_end_interval2), (min_delay_ir), (max_delay_ir), (min_delay_light), (max_delay_light)
/************ การวางแผนจำลองการแสดงตน ************/
7, 8, 17, 3, 5, 60, 10, 40, // อุปกรณ์หลัก (ที่อยู่ = 0) 0, 0, 17, 23, 3, 30, 5, 10, // อุปกรณ์รอง (ที่อยู่ = 1) 0, 0, 0, 0, 0, 0, 0, 0, // อุปกรณ์สเลฟ (ที่อยู่ = 2) 0, 0, 0, 0, 0, 0, 0, 0, // อุปกรณ์สเลฟ (ที่อยู่ = 3) 0, 0, 0, 0, 0, 0, 0, 0 // อุปกรณ์สเลฟ (ที่อยู่ = 4) /************ END PRESENCE SIMULATOR ********** *******/
ในตัวอย่างข้างต้น การวางแผนการจำลองการมีอยู่สำหรับอุปกรณ์หลักมีดังต่อไปนี้:
- (hour_init_interval1 = 7) การจำลองช่วงเวลาแรกจะเริ่มเวลา 07:00 น. ทุกวัน
- (hour_end_interval1 = 8) การจำลองช่วงเวลาแรกจะสิ้นสุดเวลา 8.00 น. ของวันเดียวกัน
- (hour_init_interval2 = 17) การจำลองช่วงที่สองจะเริ่มเวลา 17:00 น. ทุกวัน
- (hour_end_interval2 = 3) การจำลองช่วงที่สองจะสิ้นสุดในเวลา 03:00 น. ของวันถัดไป
- (min_delay_ir = 5) (max_delay_ir = 60) เวลาหน่วงเป็นนาทีระหว่างการสุ่มส่งรหัสควบคุม IR เป็นตัวเลขสุ่มระหว่าง 5 ถึง 60
- (min_delay_light = 10) (max_delay_light = 40) เวลาหน่วงเป็นนาทีระหว่างการเปิดและปิดสวิตช์ไฟเป็นตัวเลขสุ่มระหว่าง 10 ถึง 40
และการวางแผนการจำลองการมีอยู่สำหรับอุปกรณ์สเลฟที่มีที่อยู่ 2 มีดังต่อไปนี้:
-
(hour_init_interval1
= 0) ไม่มีการจำลองช่วงเวลาแรกที่กำหนดไว้
- (hour_end_interval1 = 0) ไม่มีการจำลองช่วงเวลาแรกที่กำหนดไว้
- (hour_init_interval2 = 17) การจำลองจะเริ่มเวลา 17:00 น. ทุกวัน
- (hour_end_interval2 = 23) การจำลองจะสิ้นสุดเวลา 23:00 น. ในวันเดียวกัน
(min_delay_ir = 3)
(max_delay_ir
= 30) เวลาหน่วงเป็นนาทีระหว่างการสุ่มส่งรหัสควบคุม IR เป็นตัวเลขสุ่มระหว่าง 3 ถึง 30
(min_delay_light = 5)
(max_delay_light
= 10) เวลาหน่วงเป็นนาทีระหว่างการเปิดและปิดสวิตช์ไฟเป็นตัวเลขสุ่มระหว่าง 5 ถึง 10
ขั้นตอนที่ 3.5 (สำหรับอุปกรณ์หลักเท่านั้น) (การกำหนดค่านาฬิกาตามเวลาจริง)
กุญแจสำคัญประการหนึ่งของ proyect นี้คือเวลา เราจำเป็นต้องตั้งเวลาของ ARDUINO เมื่อสเก็ตช์เริ่มทำงาน ในการทำเช่นนั้น เราจำเป็นต้องมีโมดูลนาฬิกาตามเวลาจริง โมดูลนาฬิกาหนึ่งโมดูลคือ DS3231 ซึ่งรองรับเครื่องชาร์จแบตเตอรี่สำรอง ซึ่งสามารถใช้ได้เว้นแต่จะเชื่อมต่อกับไมโครคอนโทรลเลอร์ด้วยสายข้อมูลสามเส้นโดยใช้โปรโตคอล I2C
ก่อนหน้าที่จะใช้ DS3231 คุณต้องตั้งเวลาในโมดูลนี้ ในการทำเช่นนั้น คุณต้องเรียกใช้สเก็ตช์ "DS3231_set.ino" ในอุปกรณ์หลัก
ขั้นตอนที่ 3.6 (สำหรับอุปกรณ์หลักเท่านั้น) (การกำหนดค่าโมดูล ESP8266)
สเก็ตช์ที่ทำงานในโมดูลนี้พยายามเชื่อมต่อกับเครือข่าย wifi ในพื้นที่ของคุณและกำหนดค่าเว็บเซิร์ฟเวอร์
ดังนั้นเราจึงจำเป็นต้องอัปเดตข้อมูลต่อไปนี้ในแบบร่าง "presence_web.ino" เพื่อเข้าถึงเครือข่าย wifi ในพื้นที่ของคุณและกำหนดค่าที่อยู่อีเมล Gmail จากตำแหน่งที่ ESP8266 จะส่งการเคลื่อนไหวที่ตรวจพบโดยอุปกรณ์ทั้งหมดในเครือข่าย และที่อยู่อีเมลที่คุณต้องการรับการแจ้งเตือน (คำสั่ง ESP8266 Gmail Sender)
const char* ssid = "ssid ของเครือข่าย wifi ในพื้นที่ของคุณ";
const char* password = "รหัสผ่านของเครือข่าย wifi ในพื้นที่ของคุณ"; const char* to_email = "อีเมลที่คุณต้องการรับการแจ้งเตือนการตรวจจับการเคลื่อนไหว"; เซิร์ฟเวอร์ WiFiServer(80); // พอร์ตที่ใช้ในการฟัง
และข้อมูลต่อไปนี้ในแบบร่าง "Gsender.h"
const char* EMAILBASE64_LOGIN = "*** เข้าสู่ระบบ Gmail ของคุณเข้ารหัสใน BASE64 ***";
const char* EMAILBASE64_PASSWORD = "*** รหัสผ่าน Gmail ของคุณเข้ารหัสใน BASE64 ***"; const char* FROM = "*** ที่อยู่ Gmail ของคุณ ***";
สำคัญ: รหัสนี้ใช้ไม่ได้กับแกน ESP8266 สำหรับ Arduino เวอร์ชัน 2.5.0 สำหรับโซลูชันชั่วคราว ให้ใช้เวอร์ชันหลัก 2.4.2
ขั้นตอนที่ 3.7 (สำหรับอุปกรณ์หลักเท่านั้น)
หลังจากทำตามขั้นตอนที่ 3.3, 3.4, 3.5 และ 3.6 แล้ว ให้โหลดภาพร่าง "presence_master.ino" ในไมโครคอนโทรลเลอร์ NANO และร่าง "presence_web.ino" ในโมดูล ESP8266
ขั้นตอนที่ 4: การทดสอบระบบ
เพื่อทดสอบว่าทุกอย่างทำงานได้ตามที่เราต้องการหรือไม่ แบบร่าง "presence_master.ino" สามารถทำงานในโหมดทดสอบได้
คุณสามารถทดสอบอุปกรณ์เฉพาะได้สองวิธี:
วิธีแรก: หากคุณไม่ได้ใช้เครือข่าย wifi คุณต้องค้นหารหัสถัดไปในไฟล์ "presence_master.ino" เปลี่ยนเป็น "จริง" ค่าเริ่มต้นสำหรับตัวแปร "bool_test_activated" และอัปเดตที่อยู่ของตัวแปรหนึ่ง อุปกรณ์เพื่อทดสอบในบรรทัดโค้ดถัดไปและโหลดสเก็ตช์ลงในไมโครคอนโทรลเลอร์ ARDUINO ในอุปกรณ์หลัก
bool_test_activated บูลีน = เท็จ; // เปลี่ยนเป็นโหมดทดสอบ init จริง
int device_to_test = 0; // ที่อยู่อุปกรณ์สเลฟที่จะทดสอบ
อย่าลืมเปลี่ยนค่าเป็นเท็จเมื่อคุณต้องการออกจากโหมดการทดสอบและโหลดภาพร่างใหม่
วิธีที่สอง: หากคุณใช้เครือข่าย wifi คุณสามารถใช้หน้าเว็บเพื่อเปิดใช้งานโหมดทดสอบได้ ดูขั้นตอน "เว็บเซิร์ฟเวอร์"
หากอุปกรณ์ที่จะทดสอบจะส่งรหัสควบคุม IR ให้วางอุปกรณ์หลักหรืออุปกรณ์รองไว้หน้าอุปกรณ์ควบคุม IR (ทีวี วิทยุ …)
โหมดนี้ทำงานในลักษณะต่อไปนี้:
- ทดสอบแสง ไฟของอุปกรณ์เฉพาะต้องเปิดและปิดทุกๆ 10 วินาที
- การทดสอบรหัส IR ภาพสเก็ตช์จะสุ่มเลือกรหัส IR ที่แนะนำก่อนหน้านี้ และจะส่งไปยังอุปกรณ์ควบคุม IR ทุก 10 วินาที ดังนั้นคุณต้องทดสอบว่าอุปกรณ์นั้นกำลังดำเนินการตามรหัส IR ที่ได้รับหรือไม่
- การทดสอบเครื่องตรวจจับการเคลื่อนไหว หากอุปกรณ์ตรวจพบการเคลื่อนไหวที่ด้านหน้าเซ็นเซอร์ PIR จะส่งสัญญาณไปยังอุปกรณ์หลักและไฟจะต้องเริ่มกะพริบหลายครั้ง
ในวิดีโอที่ส่วนท้ายของคำแนะนำนี้ คุณสามารถดูโหมดการทดสอบที่ทำงานอยู่
ขั้นตอนที่ 5: เว็บเซิร์ฟเวอร์
เพื่อควบคุมระบบและทดสอบว่าทุกอย่างทำงานอย่างถูกต้องหรือไม่ โมดูล ESP8266 จะถูกกำหนดค่าเป็นเว็บเซิร์ฟเวอร์ คุณไม่จำเป็นต้องมีซอฟต์แวร์เพิ่มเติมอื่นใดเพื่อเข้าถึงเครือข่ายจากระยะไกล เพียงพิมพ์ IP ของเราเตอร์ของคุณในเว็บเบราว์เซอร์ ในเราเตอร์ของคุณ คุณได้กำหนดค่าการส่งต่อพอร์ตก่อนหน้านี้เพื่อเข้าถึงโมดูล ESP8266 โดยใช้ IP ในพื้นที่คงที่ที่คุณกำหนดค่าไว้
โมดูลนี้เชื่อมต่อกับไมโครคอนโทรลเลอร์ ARDUINO โดยใช้โปรโตคอล I2C
คุณสามารถดูหน้าเว็บเริ่มต้นในภาพที่ 1:
-
ส่วนสถานะระบบแสดงข้อมูลเกี่ยวกับระบบให้เราทราบ:
- วันที่และเวลาของระบบ สำคัญมากที่วันและเวลาต้องตรงเวลา
- สถานะของโปรแกรมจำลองการแสดงตน (เปิดใช้งานหรือปิดใช้งาน) วันที่และเวลาของการดำเนินการแสดงสถานะล่าสุด และที่อยู่ของอุปกรณ์ที่ดำเนินการดังกล่าว (ภาพที่ 2)
- สถานะของตัวตรวจจับการเคลื่อนไหว (เปิดใช้งานหรือปิดใช้งาน) และประวัติของการตรวจจับการเคลื่อนไหวตามอุปกรณ์: ตัวนับและวันที่และเวลาของการตรวจจับการเคลื่อนไหวล่าสุด (ภาพที่ 3) ในภาพนี้เราจะเห็นว่าในอุปกรณ์ที่มีที่อยู่ 1 ได้รับการตรวจพบ 1 เคลื่อนไหวและล่าสุดคือ 16:50:34
-
ส่วนคำสั่งอนุญาตให้เราทำสิ่งต่อไปนี้:
- เพื่อเปิดใช้งานโปรแกรมจำลองการแสดงตน
- เพื่อเปิดใช้งานเครื่องตรวจจับการเคลื่อนไหว
- การเลือกอุปกรณ์ที่จะเริ่มต้นและหยุดการทดสอบ (ภาพที่ 4)
-
ส่วนคำสั่ง PRESENCE อนุญาตให้เราทำสิ่งต่อไปนี้:
เพื่อแนะนำหรืออัปเดตการวางแผนการจำลองการมีอยู่สำหรับอุปกรณ์เฉพาะ ในรูปภาพ 5 คุณสามารถดูวิธีอัปเดตการวางแผนการจำลองการมีอยู่สำหรับอุปกรณ์ที่อยู่ 1 รูปแบบสตริงมีดังต่อไปนี้: (addr_device), (hour_init1), (end_init1), (hour_init2), (end_init2), (min_delay_ir), (max_delay_ir), (min_delay_light), (max_delay_light) ตัวเลขทั้งหมดเป็นตัวเลขจำนวนเต็ม หากคุณได้แนะนำสตริงที่ถูกต้อง คุณจะเห็นการวางแผนการจำลองการมีอยู่ใหม่ก่อนข้อความ "LAST" มิฉะนั้น คุณจะเห็นข้อความ "LAST: NOT VALID"
-
ส่วนคำสั่ง IR CODE อนุญาตให้เราทำสิ่งต่อไปนี้:
เพื่อแนะนำหรืออัปเดตรหัสควบคุม IR สำหรับอุปกรณ์เฉพาะ ในรูปภาพ 6 คุณสามารถดูวิธีอัปเดตหรือแนะนำรหัสควบคุม IR ใหม่สำหรับอุปกรณ์ที่อยู่ 1 รูปแบบสตริงมีดังต่อไปนี้: (addr_device), (IR_protocol), (protocol_bits_length), (index_IR_control_code), (IR_control_code) (IR_protocol) เป็นสตริงที่คำนึงถึงขนาดตัวพิมพ์ที่ยอมรับเฉพาะค่าถัดไป (SONY, NEC, RC5, RC6, LG, JVC, WHYNTER, SAMSUNG, DISH, DENON, SHARP, LEGO_PF) และ (IR_control_code) เป็นเลขฐานสิบหก เนื่องจากระบบได้รับการกำหนดค่าให้จัดเก็บรหัสควบคุม IR 10 รหัส (index_IR_control_code) จึงเป็นตัวเลขจำนวนเต็มระหว่าง 1 ถึง 10 เช่นเคย หากคุณได้แนะนำรูปแบบสตริงที่ถูกต้อง คุณจะเห็นรหัสควบคุม IR ใหม่ก่อนข้อความ "LAST" มิฉะนั้น คุณจะเห็นข้อความ "LAST: NOT VALID"
หากต้องการเข้าถึงหน้าเว็บนี้จากเครือข่าย wifi ในพื้นที่ของคุณ เพียงพิมพ์ IP ที่เราเตอร์ของคุณกำหนดให้กับ ESP8266 ในเว็บเบราว์เซอร์ ในภาพทั้งหมดคุณจะเห็นว่า IP ที่กำหนดโดยเราเตอร์ของฉันคือ 192.168.43.120
ในการเข้าถึงจากระยะไกลนอกเครือข่าย wifi ในพื้นที่ของคุณ คุณต้องกำหนดค่าพอร์ตที่คุณจะใช้เพื่อฟังข้อมูลขาเข้าและเปลี่ยนเส้นทางไปยัง ESP8266 ในเครือข่ายท้องถิ่นของคุณในเราเตอร์ของคุณ หลังจากนั้นเพียงพิมพ์ IP ของเราเตอร์ของคุณในเว็บเบราว์เซอร์
ขั้นตอนที่ 6: ตัวอย่างเพื่อชี้แจงทั้งหมด
ฉันได้ออกแบบตัวอย่างเฉพาะเพื่อชี้แจงทั้งหมด
ฉันได้สร้างอุปกรณ์ดังต่อไปนี้ (ภาพที่ 2)
- อุปกรณ์ควบคุม IR หนึ่งตัวโดยใช้ไมโครคอนโทรลเลอร์ NANO, RGB นำภายในลูกปิงปองและโมดูลตัวรับสัญญาณ IR หนึ่งชุด (ภาพที่ 1) เมื่อเรากดปุ่มควบคุมจาก 1 ถึง 7 ของรีโมท IR ลูกปิงปองจะเปลี่ยนสี
- อุปกรณ์หลัก (ที่อยู่ 0)
- อุปกรณ์ทาสหนึ่งเครื่อง (ที่อยู่ 1)
จากทั้งหมดที่กล่าวมา เราจะทดสอบคุณสมบัติทั้งหมดของโครงการ การวางแผนการจำลองการมีอยู่อาจเป็น:
- ลูกบอลที่ควบคุมโดยเครื่องทาสจะเปลี่ยนสีตั้งแต่เวลา 17:00 น. ถึง 23:00 น. และในช่วงเช้าระหว่างเวลา 07:00 น. ถึง 08:00 น. ทุกๆ ช่วงเวลาสุ่มระหว่าง 1 ถึง 1 นาที
- ไฟที่ควบคุมโดยอุปกรณ์สเลฟจะเปิดและปิดตั้งแต่เวลา 17:00 น. ถึง 23:00 น. และในตอนเช้าตั้งแต่ 07:00 น. ถึง 08:00 น. ทุก ๆ ช่วงเวลาสุ่มระหว่าง 1 ถึง 2
- ไฟที่ควบคุมโดยอุปกรณ์หลักจะเปิดและปิดตั้งแต่ 16:00 น. ถึง 01.00 น. ของวันถัดไป ทุก ๆ ช่วงเวลาสุ่มระหว่าง 1 ถึง 2
หลังจากดำเนินการร่าง "ir_codes.ino" เราพบว่าโปรโตคอล IR ที่ใช้โดยรีโมท IR คือ "NEC" ความยาวของรหัส IR คือ 32 บิตและรหัสควบคุม IR สำหรับปุ่มระหว่าง 1 ถึง 7 ในรูปแบบเลขฐานสิบหก เป็น:
ปุ่ม 1 = FF30CF
ปุ่ม 2 = FF18E7
ปุ่ม 3 = FF7A85
ปุ่ม 4 = FF10EF
ปุ่ม 5 = FF38C7
ปุ่ม 6 = FF5AA5
ปุ่ม 7 = FF42BD
คุณสามารถกำหนดค่าระบบได้สองวิธี:
วิธีแรก: ใช้หน้าเว็บ (ดูวิดีโอท้ายคำแนะนำนี้)
วิธีที่สอง: อัปเดตไฟล์ "ir_codes.ino" และอัปโหลดหลังจาก:
/******************************************/
/******* รหัสควบคุม IR *****************/ /********************** **********************/ // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์หลัก (ที่อยู่ = 0) NEC, 32, 0xFF30CF, 0xFF18E7, 0xFF7A85, 0xFF10EF, 0xFF38C7, 0xFF5AA5, 0xFF42BD, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 1) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 2) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 3) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // protocol_id, number_of_bits, 10 รหัสควบคุม IR สำหรับอุปกรณ์สเลฟ (ที่อยู่ = 4) UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /************ ***************************************/ /************ สิ้นสุดรหัสควบคุม IR ** ************/ /****************************************** *********/
/************ การวางแผนจำลองการแสดงตน ************/
0, 0, 16, 1, 0, 0, 1, 2, // อุปกรณ์หลัก (ที่อยู่ = 0) 7, 8, 17, 23, 1, 1, 1, 2, // อุปกรณ์รอง (ที่อยู่ = 1) RGB ball 0, 0, 0, 0, 0, 0, 0, 0, // อุปกรณ์สเลฟ (ที่อยู่ = 2) 0, 0, 0, 0, 0, 0, 0, 0, // อุปกรณ์สเลฟ (ที่อยู่ = 3) 0, 0, 0, 0, 0, 0, 0, 0 // อุปกรณ์สเลฟ (ที่อยู่ = 4) /************ END PRESENCE SIMULATOR ******** ************/
แนะนำ:
Zigbee Bed Presence Detector: 8 ขั้นตอน
Zigbee Bed Presence Detector: ตอนนี้ฉันกำลังมองหาวิธีที่จะตรวจจับเมื่อเราอยู่บนเตียง นี้สำหรับการใช้ข้อมูลนี้เป็น Homeassistant ด้วยข้อมูลนี้ ฉันสามารถสร้างระบบอัตโนมัติสำหรับการปิดไฟในตอนกลางคืน หรือเช่น เปิดใช้งานระบบเตือนภัยในบ้านของฉัน
DIY RACING GAME SIMULATOR -- F1 SIMULATOR: 5 ขั้นตอน
DIY RACING GAME SIMULATOR || F1 SIMULATOR: สวัสดีทุกคน ยินดีต้อนรับสู่ช่องของฉัน วันนี้ฉันจะแสดงให้คุณเห็น วิธีสร้าง "Racing Game Simulator" ด้วยความช่วยเหลือของ Arduino UNO นี่ไม่ใช่บล็อกของบิลด์ เป็นเพียงภาพรวมและทดสอบตัวจำลอง สร้างบล็อกที่สมบูรณ์เร็ว ๆ นี้
Car Simulator Arduino Pedals: 7 ขั้นตอน (พร้อมรูปภาพ)
Car Simulator Arduino Pedals: ฉันมีโครงการที่กำลังจะสร้างเครื่องจำลองรถยนต์และเป้าหมายหนึ่งคือการได้รับความรู้สึกเหมือนนั่งอยู่ในรถแข่งจริง ด้วยคำแนะนำนี้ ฉันจะอธิบายวิธีที่ฉันสร้างคันเหยียบสำหรับเครื่องจำลองรถของฉัน แน่นอนคุณสามารถซื้อของแบบนี้ได้ แต่ฉันต้องการ
วิธีเชื่อมต่อ FlySky Transmitter กับ PC Simulator (ClearView RC Simulator) -- ไม่มีสายเคเบิล: 6 ขั้นตอน
วิธีเชื่อมต่อ FlySky Transmitter กับ PC Simulator (ClearView RC Simulator) || ไม่มีสายเคเบิล: คำแนะนำในการเชื่อมต่อ FlySky I6 กับคอมพิวเตอร์เพื่อจำลองการบินสำหรับผู้เริ่มต้นเครื่องบินปีก การเชื่อมต่อการจำลองการบินโดยใช้ Flysky I6 และ Arduino ไม่จำเป็นต้องใช้สายเคเบิลจำลอง
Bed Presence Sensor พร้อม SONOFF: 8 ขั้นตอน (พร้อมรูปภาพ)
Bed Presence Sensor พร้อม SONOFF: ยินดีต้อนรับสู่บทช่วยสอนนี้ ! ข้อกำหนดเบื้องต้น คุณต้องมีความรู้เกี่ยวกับ sonoff และ tasmota บ้าง หากคุณไม่เคยแสดง sonoff กับ tasmota คุณควรเรียนรู้ที่จะทำมันก่อนแล้วจึงมีเพียงคุณเท่านั้นที่สามารถสร้างมันได้ ถ้าคุณไม่รู้จัก sonof