สารบัญ:

เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย: 5 ขั้นตอน (พร้อมรูปภาพ)
เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DHT22 ควบคุมอุณหภูมิ ด้วย DHT22 ในการควบคุม อุปกรณ์อื่นๆที่ต้องการ (Arduino EP.34) 2024, กรกฎาคม
Anonim
เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย
เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย
เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย
เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย
เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย
เครือข่ายสถานีเซ็นเซอร์สำหรับการควบคุมแสงสว่างและความปลอดภัย

ด้วยเครือข่ายสถานีเซ็นเซอร์ที่กำหนดค่าในโหมดมาสเตอร์/สเลฟ คุณจะสามารถควบคุมแสงและความปลอดภัยในบ้านของคุณได้ สถานีเซ็นเซอร์เหล่านี้ (Node01, Node02 ในโครงการนี้) เชื่อมต่อกับสถานีหลัก (Node00) ที่เชื่อมต่อกับเครือข่าย wifi ในพื้นที่ของคุณ ฉันได้ติดตั้ง Node01 ในห้องเก็บของและ Node02 ในโรงรถเพื่อควบคุมแสงและการเคลื่อนไหว มีการติดตั้งสถานีหลักในห้องรับประทานอาหารของเราที่เชื่อมต่อกับเราเตอร์ไร้สายของเรา ฉันได้ติดตั้งกริ่งในโรงรถและออดเล็กๆ น้อยๆ ในสถานีมาสเตอร์เพื่อให้ส่งเสียงเมื่อสถานีเซ็นเซอร์บางแห่งในเครือข่ายตรวจพบการเคลื่อนไหว

คุณสมบัติหลักของเครือข่ายคือ:

  • เป็นไปได้ที่จะกำหนดค่าเครือข่ายที่มีสถานีเซ็นเซอร์มากกว่าสองสถานี (สถานีทาส) (Node01, Node02, Node03, ….)
  • เนื่องจากการใช้เครื่องรับส่งสัญญาณไร้สายพร้อมเสาอากาศทำให้เครือข่ายสามารถครอบคลุมพื้นที่ได้กว้าง
  • คุณสามารถควบคุมเครือข่ายทั้งหมดได้จากโทรศัพท์มือถือ
  • ส่งอีเมล (บัญชี Gmail) เมื่อตรวจพบการเคลื่อนไหวและเปิดใช้งานโหมดการเตือน ดังนั้นหากคุณเปิดใช้งานการแจ้งเตือนแบบพุชของ Gmail ในมือถือของคุณ คุณจะทราบเมื่อตรวจพบการเคลื่อนไหวในเครือข่ายของคุณ

เพื่อวัตถุประสงค์ภายในประเทศ:

  • เปิดไฟเมื่อตรวจพบการเคลื่อนไหว / เปิดไฟเสมอ (สำหรับเครือข่ายทั้งหมดหรือสำหรับแต่ละสถานีรอง)
  • เปลี่ยนเวลาเป็นนาทีที่ไฟจะติดหลังจากตรวจพบการเคลื่อนไหวของสถานีสเลฟแต่ละสถานี

เพื่อความปลอดภัย:

  • เปิดและปิดโหมดการเตือน
  • แต่ละสเตชั่นสเลฟสามารถส่งสัญญาณไปยังสเตชั่นมาสเตอร์ (Node00) เมื่อเปิดใช้งานโหมดการเตือนและตรวจพบการเคลื่อนไหว
  • สถานีมาสเตอร์สามารถเปิดใช้งานกริ่งและส่งอีเมลเมื่อได้รับสัญญาณใดสัญญาณหนึ่งจากสถานีสเลฟและเปิดใช้งานโหมดการเตือน มาสเตอร์สเตชั่น (Node00) เชื่อมต่อกับอินเทอร์เน็ตโดยใช้การเชื่อมต่อ wifi เพื่อควบคุมทั้งระบบโดยใช้โทรศัพท์มือถือ มีการกำหนดค่าเหมือน WifiWebServer

ขั้นตอนที่ 1: รายการวัสดุ

รายการวัสดุ
รายการวัสดุ
รายการวัสดุ
รายการวัสดุ

รายการวัสดุที่ฉันใช้สร้าง Node01 และ Node02 (สถานีทาส) มีดังต่อไปนี้:

  • บอร์ด Mega 2560 R3
  • พลาสติกรองรับ MEGA 2560 R3
  • เซ็นเซอร์ PIR HC-SR501
  • ฐานรองพลาสติกสำหรับ HC-SR501
  • 5V รีเลย์
  • โมดูลรับส่งสัญญาณไร้สาย 2.4G 1100m NRF24L01+PA+LNA พร้อมเสาอากาศ LKY67
  • อะแดปเตอร์ 8Pin NRF24L01 (เพื่อปรับปรุงคุณสมบัติของ NRF24L01)
  • HLK-PM01 แหล่งจ่ายไฟขนาดเล็ก AC DC 220V ถึง 5V

รายการวัสดุสำหรับสร้าง Node00 (สถานีมาสเตอร์) มีดังต่อไปนี้:

  • บอร์ด Mega 2560 R3
  • พลาสติกรองรับ MEGA 2560 R3
  • โมดูล WiFi NodeMCU Lua Amica V2 ESP8266
  • โมดูลรับส่งสัญญาณไร้สาย 2.4G 1100m NRF24L01+PA+LNA พร้อมเสาอากาศ LKY67
  • บอร์ดอะแดปเตอร์ VCC 5v-3.3v สำหรับ NRF24L01 (เพื่อปรับปรุงคุณสมบัติของ NRF24L01)
  • อะแดปเตอร์ AC-DC, 9V, 1A (2, 1 มม. x 5, 5 มม.)

นอกจากนี้ ฉันได้ใช้วัสดุต่อไปนี้:

  • คอนเนคเตอร์ PCB 2 ขา 5 มม.
  • สายจัมเปอร์
  • เขียงหั่นขนม MB-102 (800 รายชื่อ)
  • Mini Solderless Breadboard 170 รายชื่อ
  • ชุดไฟ LED และความต้านทาน
  • บอร์ด PCB
  • ชุดหัวแร้งดีบุก
  • ปืนกาว
  • เมทาคริเลตใส
  • ระฆัง

ขั้นตอนที่ 2: วิธีเชื่อมต่อและตั้งโปรแกรม Node01 และ Node02 (สถานี Slave)

วิธีเชื่อมต่อและโปรแกรม Node01 และ Node02 (สถานีทาส)
วิธีเชื่อมต่อและโปรแกรม Node01 และ Node02 (สถานีทาส)
วิธีเชื่อมต่อและโปรแกรม Node01 และ Node02 (สถานีทาส)
วิธีเชื่อมต่อและโปรแกรม Node01 และ Node02 (สถานีทาส)

ในการตั้งโปรแกรมร่าง "SlaveSation.ino" ฉันต้องการไลบรารี RF24 และไลบรารี RF24 Network

ในผังงานด้านบน คุณสามารถดูตรรกะของสถานีเซ็นเซอร์และข้อความที่แลกเปลี่ยนระหว่างสถานีเซ็นเซอร์รองและสถานีหลัก

ก่อนที่คุณจะโหลดภาพร่าง คุณต้องกำหนดค่าที่อยู่ของโหนดรองในรูปแบบฐานแปด

const uint16_t this_node = 01; // ที่อยู่ของโหนดของเราในรูปแบบฐานแปด (ทาส): 01, 02, 03 …

ความหมายของไฟ LED ในแต่ละสเตชั่นสเลฟมีดังต่อไปนี้:

  • นำสีน้ำเงิน จะเปิดในขณะที่พินเซ็นเซอร์ PIR อยู่ในระดับสูง
  • นำสีเขียว มันจะเปิดเมื่อมีการเชื่อมต่อการเตือน

ขั้นตอนที่ 3: วิธีเชื่อมต่อและโปรแกรม Node00 (Master Station)

วิธีเชื่อมต่อและโปรแกรม Node00 (Master Station)
วิธีเชื่อมต่อและโปรแกรม Node00 (Master Station)
วิธีเชื่อมต่อและโปรแกรม Node00 (Master Station)
วิธีเชื่อมต่อและโปรแกรม Node00 (Master Station)
วิธีเชื่อมต่อและโปรแกรม Node00 (Master Station)
วิธีเชื่อมต่อและโปรแกรม Node00 (Master Station)

ในสถานี Node00 เราจะพบกระดานสองแบบที่แตกต่างกัน:

  • บอร์ด MEGA 2560 R3 อุปกรณ์นี้ใช้เพื่อรับข้อความจากสถานีสเลฟเมื่อตรวจพบการเคลื่อนไหวโดยใช้การสื่อสารแบบไร้สาย มันจะเปิดใช้งานกริ่งเมื่อตรวจพบการเคลื่อนไหวและมีการเชื่อมต่อสัญญาณเตือน หากต้องการหยุดเสียงกริ่ง ให้ตัดการเชื่อมต่อโหมดการเตือนเท่านั้น นอกจากนี้ยังส่งข้อความไปยังสถานีสเลฟจาก NodeMCU เพื่อเปิดใช้งานหรือปิดใช้งานการตรวจจับการเคลื่อนไหว เปิดไฟตลอดเวลา ปิดไฟเสมอ …
  • บอร์ด NodeMCU Lua Amica V2 ESP8266 ทำงานเหมือนกับ Wifi Web Server เพื่อส่งและรับคำสั่งจากระยะไกลโดยใช้หน้าเว็บในโทรศัพท์มือถือ นอกจากนี้ยังส่งข้อความอีเมลเมื่อตรวจพบการเคลื่อนไหวและเปิดใช้งานโหมดการเตือน

อุปกรณ์ทั้งสองได้รับการตั้งโปรแกรมให้สื่อสารกันในการกำหนดค่า Master (NodeMCU)/Slave (MEGA) ผ่านโปรโตคอลอนุกรมแบบซิงโครนัส I2C โดยใช้ Wire Library โปรโตคอล I2C เกี่ยวข้องกับการใช้สองบรรทัดในการส่งและรับข้อมูล: Serial clock pin (SCL) และ Serial data pin (SDA) ซึ่งข้อมูลจะถูกส่งระหว่างอุปกรณ์ทั้งสอง

ดังที่คุณเห็นในรูปวาด หมุดสองตัวสำหรับการสื่อสาร I2C ในบอร์ด MEGA 2560 R3 คือ:

  1. SDA -> พิน 20 SDA
  2. SCL -> พิน 21 SCL

และอื่น ๆ ใน NodemMCU คือ:

  1. SDA -> พินดิจิตอล 1
  2. SCL -> พินดิจิตอล 2

ก่อนที่คุณจะโหลดสเก็ตช์สำหรับ ESP8266 คุณต้องติดตั้งบอร์ด ESP8266 คุณต้องป้อน "https://arduino.esp8266.com/stable/package_esp8266com_index.json" ลงใน "Additional Board Manager URLs" ในหน้าต่างการตั้งค่าใน Arduino IDE หลังจากนั้นคุณต้องเปิดตัวจัดการบอร์ดและติดตั้ง "esp8266"

ฉันใช้อะแดปเตอร์จ่ายไฟภายนอก (9V, 1A) สำหรับบอร์ด MEGA 2560 R3 (แจ็คไฟ DC, 2, 1 มม. x 5, 5 มม.) และฉันเชื่อมต่อบอร์ด NodeMCU กับพิน 3V3 ในบอร์ด MEGA

ขั้นตอนที่ 4: WifiWebServer (NodeMCU ในสถานีหลัก)

WifiWebServer (NodeMCU ในสถานีหลัก)
WifiWebServer (NodeMCU ในสถานีหลัก)
WifiWebServer (NodeMCU ในสถานีหลัก)
WifiWebServer (NodeMCU ในสถานีหลัก)

ภาพสเก็ตช์ที่โหลดลงใน NodeMCU (Node00 หรือสถานีมาสเตอร์) ได้รับการกำหนดค่าเหมือนเว็บเซิร์ฟเวอร์ที่เชื่อมต่อกับเครือข่าย wifi ในบ้านของคุณ สามารถเข้าถึงได้จากระยะไกลหากคุณกำหนดค่าการส่งต่อพอร์ตในเราเตอร์ของคุณ

ก่อนที่คุณจะโหลดภาพร่าง WifiWebServerV3.ino ไปยัง NodeMCU คุณต้องทำสิ่งต่อไปนี้:

  1. อัปเดตพอร์ตที่คุณจะกำหนดค่าในเราเตอร์ของคุณ (การส่งต่อพอร์ต) เพื่อเข้าถึง NodeMCU. จากระยะไกล
  2. อัปเดตผู้ใช้และรหัสผ่านเพื่อเข้าถึงเครือข่าย wifi ที่บ้านของคุณ
  3. อัปเดตข้อมูลเข้าสู่ระบบและรหัสผ่านของบัญชี Gmail ของคุณเพื่อส่งอีเมลเมื่อตรวจพบการเคลื่อนไหวและมีการเชื่อมต่อสัญญาณเตือน
  4. อัปเดตที่อยู่อีเมลที่คุณจะได้รับอีเมล

ในการอัปเดตผู้ใช้ รหัสผ่าน และพอร์ตที่เซิร์ฟเวอร์จะใช้เพื่อรับฟัง คุณต้องค้นหารหัสต่อไปนี้ในร่าง WifiWebServerV3.ino และอัปเดต:

const char* ssid = "*** ssid ของคุณ ***";

const char* password = "*** รหัสผ่านของคุณ ***"; เซิร์ฟเวอร์ WiFiServer(80);

ในการอัปเดตที่อยู่อีเมลที่คุณจะได้รับอีเมล คุณต้องค้นหารหัสต่อไปนี้และอัปเดต:

const char* to_email = "*** ที่อยู่อีเมลที่คุณจะได้รับข้อความ ***";

ในการอัปเดตผู้ใช้และรหัสผ่านของบัญชี Gmail ของคุณเพื่อรับอีเมล คุณต้องค้นหารหัสต่อไปนี้ในไฟล์ "Gsender.h" และอัปเดต:

const char* EMAILBASE64_LOGIN = "*** ที่อยู่อีเมลของคุณเข้ารหัสใน BASE64 ***";

const char* EMAILBASE64_PASSWORD = "*** รหัสผ่านของคุณเข้ารหัสใน BASE64 ***"; const char* FROM = "*** ที่อยู่อีเมลของคุณ ***";

ในการเข้ารหัสหรือถอดรหัสข้อมูลใน BASE64 ฉันใช้ www.base64encode.org

หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับการส่งและรับอีเมลด้วย ESP8266 มี "คำแนะนำ" เกี่ยวกับเรื่องนี้ที่นี่

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

ในการเข้าถึงหน้าเว็บใกล้กับเราเตอร์ไร้สายของคุณ เพียงพิมพ์ที่อยู่ IP ในเครื่องที่กำหนดโดยเราเตอร์ของคุณตามพอร์ตที่คุณใช้ในตัวนำทางเว็บ ตัวอย่างเช่น: 192.168.40.15:800 หากคุณพยายามเข้าถึงจากระยะไกล คุณต้องพิมพ์ที่อยู่ IP ของเราเตอร์ของคุณตามพอร์ตที่คุณใช้ดังด้านบน

หน้าเว็บที่ฉันแสดงให้คุณเห็นในภาพได้รับการตั้งโปรแกรมให้ควบคุมเครือข่ายที่มีสองสถานีสเลฟ

ระบบได้รับการกำหนดค่าเริ่มต้นเพื่อควบคุมสถานีสเลฟสูงสุด 5 สถานี แต่คุณสามารถแก้ไขได้ เพียงค้นหารหัสต่อไปนี้ใน WifiWebServerV3.ino และ SlaveStation.ino

#define number_max_slaves 5

หน้าเว็บเริ่มต้นแบ่งออกเป็น 4 ส่วน:

  1. ส่วน "สถานะ" ซึ่งจะแสดงให้คุณเห็นว่าสัญญาณเตือนเชื่อมต่ออยู่หรือไม่
  2. ส่วน "ตัวนับสัญญาณเตือนภัย" ซึ่งจะแสดงจำนวนการตรวจจับการเคลื่อนไหวในแต่ละสถานีสเลฟ
  3. ส่วน "ปลุก" ซึ่งคุณสามารถเชื่อมต่อหรือยกเลิกการเชื่อมต่อ (CONNECT ALARM/DISCONNECT ALARM) สัญญาณเตือนและรีเซ็ตตัวนับสัญญาณเตือน (RESET COUNTERS)
  4. ส่วน "แสงสว่าง" ที่คุณสามารถควบคุมไฟของแต่ละสถานีสเลฟได้ คุณสามารถควบคุมสิ่งต่อไปนี้:

    • เปิดไฟในสถานีสเลฟทั้งหมด / เปิดไฟเฉพาะเมื่อตรวจพบการเคลื่อนไหวในสถานีสเลฟทั้งหมด (NETWORK ALWAYS ON/NETWORK WHEN MOVEMENT)
    • เปลี่ยนเวลาเป็นนาทีที่ไฟเปิดสำหรับแต่ละสถานีสเลฟ (NODExx ON 1 MINUTE/NODEXX ON 2 MINUTE)
    • เปิดไฟสำหรับแต่ละสถานีสเลฟ (NODExx ALWAYS ON)
    • เปิดไฟสำหรับแต่ละสถานีสเลฟเฉพาะเมื่อตรวจพบการเคลื่อนไหว (NODExx_MOV)

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

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

ขั้นตอนที่ 5: จากจุดเริ่มต้น …

นี่คือขั้นตอนที่คุณต้องปฏิบัติตามเพื่อสร้างเครือข่ายของคุณ:

  1. ซื้อวัสดุทั้งหมดตามรายการที่ฉันให้คุณใน "ขั้นตอนที่ 1"
  2. เชื่อมต่อส่วนประกอบตามภาพวาดที่คุณสามารถดาวน์โหลดได้ใน "ขั้นตอนที่ 2" และ "ขั้นตอนที่ 3"
  3. สร้างกล่องสำหรับแต่ละสเตชั่นสเลฟและมาสเตอร์สเตชั่น ฉันได้สร้างกล่องเมทาคริเลต
  4. กำหนดค่าแต่ละสถานีสเลฟ:

    ดาวน์โหลดและโหลดภาพสเก็ตช์ "SlaveStation.ino" ในบอร์ด MEGA 2560 R3 หนึ่งบอร์ด คุณต้องแก้ไขภาพร่างและอัปเดตที่อยู่ของสถานีสเลฟเท่านั้นดังที่คุณเห็นใน "ขั้นตอนที่ 2"

  5. กำหนดค่าสถานีหลัก:

    • ดาวน์โหลดและโหลดภาพสเก็ตช์ "SlaveStation.ino" ใน MEGA 2560 R3 หนึ่งเครื่อง คุณไม่จำเป็นต้องเปลี่ยนแปลงอะไรก็ตามจำนวนโหนดทาสในเครือข่ายของคุณ ในขั้นต้น ร่างได้รับการกำหนดค่าสำหรับสถานีสเลฟสูงสุด 5 สถานี
    • ดาวน์โหลดและโหลดภาพร่าง "WifiServerV3.ino" ใน NodeMCU คุณต้องอัปเดตภาพร่างตามคำแนะนำใน "ขั้นตอนที่ 4"
  6. กำหนดค่าเราเตอร์ของคุณเพื่อเข้าถึง NodeMCU จากระยะไกล (การส่งต่อพอร์ต, IP แบบคงที่ …)

แนะนำ: