สารบัญ:

Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย: 6 ขั้นตอน (พร้อมรูปภาพ)
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: EP1 e-learning การบริหารความปลอดภัยรถยก 2024, พฤศจิกายน
Anonim
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย
Home Presence Simulator และอุปกรณ์ควบคุมความปลอดภัย

โครงการนี้ช่วยให้เราสามารถจำลองการมีอยู่และตรวจจับการเคลื่อนไหวในบ้านของเรา

เราสามารถกำหนดค่าเครือข่ายของอุปกรณ์ที่ติดตั้งในห้องต่างๆ ในบ้านของเรา ซึ่งทั้งหมดนี้ควบคุมโดยอุปกรณ์หลัก

โปรเจ็กต์นี้รวมคุณสมบัติเหล่านี้ไว้ในอุปกรณ์เครื่องเดียว (ภาพที่ 1):

  1. เป็นเครื่องจำลองการแสดงตน: อุปกรณ์จะเปิดและปิดหลอดไฟหนึ่งหลอด (ภาพที่ 1) และใช้เครื่องส่งสัญญาณ IR (ภาพที่ 2) เพื่อส่งรหัสควบคุม IR 38 KHz ไปยังอุปกรณ์ควบคุม IR (ทีวี, VCR, หลอดไฟ, …)
  2. เป็นเครื่องตรวจจับความเคลื่อนไหว: อุปกรณ์มีเซ็นเซอร์ PIR เพื่อตรวจจับการเคลื่อนไหว (ภาพที่ 3)

ทั้งระบบถูกควบคุมโดยอุปกรณ์หลักที่ส่งสัญญาณไปยังอุปกรณ์รองอื่น ๆ ที่อยู่ในเครือข่ายเพื่อเปิดและปิดไฟและเพื่อเปิดใช้งานอุปกรณ์ IR ที่ควบคุมตามการจำลองการมีอยู่ตามกำหนดเวลา

คุณสมบัติหลักของอุปกรณ์หลักมีดังต่อไปนี้:

  • มันใช้ลำดับของคำสั่งที่กำหนดเวลาไว้เพื่อควบคุมอุปกรณ์สเลฟแต่ละตัว ตัวอย่างเช่น ไฟในสถานีสเลฟ 1 จะเปิดทุกวันในช่วงเวลาสุ่มหรือสถานีสเลฟ 2 จะเปิดทีวีและจะเปลี่ยนช่องหลังจากช่วงระยะเวลาหนึ่ง
  • รับสัญญาณจากสถานีสเลฟเมื่อตรวจพบการเคลื่อนไหวและส่งอีเมลถึงเรา
  • มันกำหนดค่าเว็บเซิร์ฟเวอร์เพื่อควบคุมและอัปเดตทั้งระบบจากระยะไกลจาก Cloud

ฉันหวังว่าคุณจะชอบและเป็นประโยชน์สำหรับใครบางคน

ขั้นตอนที่ 1: สร้างอุปกรณ์ทาส

การสร้างอุปกรณ์ทาส
การสร้างอุปกรณ์ทาส
การสร้างอุปกรณ์ทาส
การสร้างอุปกรณ์ทาส
การสร้างอุปกรณ์ทาส
การสร้างอุปกรณ์ทาส

ในการสร้างอุปกรณ์สเลฟ เราต้องการสิ่งต่อไปนี้:

  • กล่องไฟฟ้า
  • ARDUINO NANO หรือไมโครคอนโทรลเลอร์ ARDUINO NANO ที่เข้ากันได้
  • โปรโตบอร์ด 480
  • รีเลย์
  • เครื่องส่งสัญญาณ IR 38 KHz
  • เซ็นเซอร์ PIR
  • โมดูล nRF24L01 + เสาอากาศ
  • อะแดปเตอร์สำหรับโมดูล nRF24L01
  • แหล่งจ่ายไฟ 5V, 0.6 A
  • ที่ใส่โคมไฟ
  • หลอดไฟฟ้า
  • สายเคเบิล
  • เทอร์มินัลบล็อก

ขั้นตอนในการติดตั้งมีดังต่อไปนี้ (ดูภาพวาด Fritzing สำหรับการเชื่อมต่อพินแต่ละอัน):

  1. ภาพที่ 1: เปิดรูในกล่องไฟฟ้าสำหรับที่ใส่หลอดไฟ
  2. ภาพที่ 2: ติดตั้งโปรโตบอร์ด 480 ด้วยไมโครคอนโทรลเลอร์ NANO, เครื่องส่งสัญญาณ IR และแหล่งจ่ายไฟ
  3. ภาพที่ 3: เชื่อมต่อตัวนำเฟสของที่ยึดหลอดไฟกับขั้วต่อ NC ของรีเลย์และตัวนำที่เป็นกลางกับอินพุตที่เป็นกลางในแผงขั้วต่อ หลังจากนั้นให้เชื่อมต่อขั้วทั่วไปของรีเลย์กับตัวนำเฟสของอินพุตในแผงขั้วต่อ
  4. ภาพที่ 4: เชื่อมต่อตัวส่งสัญญาณ IR และเซ็นเซอร์ PIR กับไมโครคอนโทรลเลอร์ NANO ดูขั้นตอนที่ 3 เพื่อกำหนดค่ารหัส IR สำหรับอุปกรณ์ที่คุณต้องการควบคุม
  5. ภาพที่ 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: การกำหนดค่าอุปกรณ์หลักและทาส

การกำหนดค่า Master และ Slave Devices
การกำหนดค่า Master และ Slave Devices

ในการกำหนดค่าอุปกรณ์ คุณต้องทำตามขั้นตอนต่อไปนี้:

ขั้นตอนที่ 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: ตัวอย่างเพื่อชี้แจงทั้งหมด

Image
Image
ตัวอย่างเพื่อชี้แจงทั้งหมด
ตัวอย่างเพื่อชี้แจงทั้งหมด

ฉันได้ออกแบบตัวอย่างเฉพาะเพื่อชี้แจงทั้งหมด

ฉันได้สร้างอุปกรณ์ดังต่อไปนี้ (ภาพที่ 2)

  • อุปกรณ์ควบคุม IR หนึ่งตัวโดยใช้ไมโครคอนโทรลเลอร์ NANO, RGB นำภายในลูกปิงปองและโมดูลตัวรับสัญญาณ IR หนึ่งชุด (ภาพที่ 1) เมื่อเรากดปุ่มควบคุมจาก 1 ถึง 7 ของรีโมท IR ลูกปิงปองจะเปลี่ยนสี
  • อุปกรณ์หลัก (ที่อยู่ 0)
  • อุปกรณ์ทาสหนึ่งเครื่อง (ที่อยู่ 1)

จากทั้งหมดที่กล่าวมา เราจะทดสอบคุณสมบัติทั้งหมดของโครงการ การวางแผนการจำลองการมีอยู่อาจเป็น:

  1. ลูกบอลที่ควบคุมโดยเครื่องทาสจะเปลี่ยนสีตั้งแต่เวลา 17:00 น. ถึง 23:00 น. และในช่วงเช้าระหว่างเวลา 07:00 น. ถึง 08:00 น. ทุกๆ ช่วงเวลาสุ่มระหว่าง 1 ถึง 1 นาที
  2. ไฟที่ควบคุมโดยอุปกรณ์สเลฟจะเปิดและปิดตั้งแต่เวลา 17:00 น. ถึง 23:00 น. และในตอนเช้าตั้งแต่ 07:00 น. ถึง 08:00 น. ทุก ๆ ช่วงเวลาสุ่มระหว่าง 1 ถึง 2
  3. ไฟที่ควบคุมโดยอุปกรณ์หลักจะเปิดและปิดตั้งแต่ 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 ******** ************/

แนะนำ: