ค้นหาโค้ด

ระบบแจ้งเตือนประตูระยะไกลจากระยะทาง 13 ไมล์ (21 กิโลเมตร) ด้วย LoRa – นอกระบบโครงข่าย! (Heltec WiFi LoRa 32 V3)

บทเรียนนี้เป็นส่วนหนึ่งของ: บทนำสู่ WiFi LoRa

ระบบแจ้งเตือนประตูระยะไกลจากระยะทาง 13 ไมล์ (21 กิโลเมตร) ด้วย LoRa – นอกระบบโครงข่าย! (Heltec WiFi LoRa 32 V3)

ลองจินตนาการถึงการเฝ้าดูประตูหน้าของกระท่อมที่ห่างไกล ประตูรั้วของฟาร์ม หรือทางเข้าของห้องเก็บของจากระยะทางกว่า 13 ไมล์ (21 กิโลเมตร) โดยไม่ต้องใช้การเชื่อมต่อ Wi-Fi ซิมการ์ดโทรศัพท์มือถือ หรือค่าธรรมเนียมรายเดือนใดๆ นี่ไม่ใช่แนวคิดแห่งอนาคต แต่เป็นความจริงที่ใช้งานได้จริงโดยใช้เทคโนโลยี LoRa (Long Range) ในโปรเจกต์นี้ เราจะสร้างระบบเฝ้าติดตามประตูระยะไกลโดยใช้โมดูล Heltec Wi-Fi LoRa 32 V3 ซึ่งบรรจุอย่างเรียบร้อยในกล่อง Meshnology N32 พร้อมแบตเตอรี่ 3000 mAh เพื่อประสิทธิภาพการทำงานนอกระบบที่ยาวนาน

โปรเจกต์นี้ใช้เซนเซอร์ Hall effect เพื่อตรวจจับว่าประตูเปิดหรือปิด และส่งสถานะนั้นผ่านย่านความถี่ LoRa เป็นโซลูชันที่สมบูรณ์แบบสำหรับกระท่อม โรงนา ห้องเก็บของ หรือสถานที่ใดก็ตามที่คุณต้องการการเฝ้าติดตามระยะไกลที่เชื่อถือได้โดยไม่ต้องพึ่งพาโครงสร้างพื้นฐานที่มีอยู่ คุณยังสามารถเพิ่มออดหรือรีเลย์ที่ฝั่งรับเพื่อสร้างระบบสัญญาณเตือนในพื้นที่ได้อีกด้วย

ต่อไปนี้คือวิธีการใช้งานจริงบางประการสำหรับโปรเจกต์นี้:

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

คู่มือนี้เป็นส่วนที่สี่ของชุดบทความเกี่ยวกับ Wi-Fi LoRa 32 V3 วิดีโอก่อนหน้านี้ครอบคลุมการส่งข้อมูลอุณหภูมิ การอ่านแรงดันไฟฟ้ากระแสตรงสูงถึง 150V และการควบคุมรีเลย์จากระยะไกล—ทั้งหมดผ่าน LoRa โปรเจกต์นี้ต่อยอดจากแนวคิดเหล่านั้นเพื่อสร้างระบบเฝ้าติดตามที่สมบูรณ์และใช้งานได้จริง

ฮาร์ดแวร์ที่ต้องใช้

ในการสร้างโปรเจกต์นี้ คุณจะต้องมีส่วนประกอบดังต่อไปนี้:

  • โมดูล Heltec Wi-Fi LoRa 32 V3 จำนวน 2 ชิ้น
  • กล่อง Meshnology N32 จำนวน 2 ชิ้น (หรือกล่องหุ้มที่คล้ายกัน)
  • แบตเตอรี่ LiPo 3000 mAh 3.7V จำนวน 2 ก้อน
  • โมดูลเซนเซอร์ Hall Effect จำนวน 1 ชิ้น (พร้อมเอาต์พุตดิจิทัล)
  • แม่เหล็กขนาดเล็ก จำนวน 1 ชิ้น (สำหรับติดที่ประตู)
  • ออด (5V ทำงานร่วมกับ 3.3V ได้) หรือโมดูลรีเลย์ 5V จำนวน 1 ชิ้น
  • ทรานซิสเตอร์ NPN 2N2222 จำนวน 1 ตัว (สำหรับวงจรออด)
  • ตัวต้านทาน 1kΩ จำนวน 1 ตัว
  • สายไฟเชื่อมต่อและหัวแร้ง

กล่อง Meshnology N32 เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการประกอบนี้ ออกแบบมาเพื่อรองรับโมดูล Heltec และแบตเตอรี่ 3000 mAh ให้งานออกมาสะอาดและเป็นมืออาชีพ คุณยังสามารถใช้เบรดบอร์ดธรรมดาหรือกล่องหุ้มที่พิมพ์ด้วยเครื่องพิมพ์ 3D แบบกำหนดเองเพื่อเริ่มต้นได้

คู่มือการเดินสายไฟ

มีวงจรหลักสองวงจรที่ต้องสร้าง: ฝั่งส่งสัญญาณและฝั่งรับ ฝั่งส่งสัญญาณเชื่อมต่อกับเซนเซอร์ Hall Effect ในขณะที่ฝั่งรับสามารถเชื่อมต่อกับออดหรือโมดูลรีเลย์สำหรับสัญญาณเตือน

การเดินสายฝั่งส่งสัญญาณ:

การตั้งค่านี้ตรงไปตรงมามาก เซนเซอร์ Hall Effect มีสี่ขา: VCC, GND, DO (Digital Out) และ AO (Analog Out) สำหรับโปรเจกต์นี้ เราต้องการเพียงเอาต์พุตดิจิทัลเท่านั้น

  • VCC บนเซนเซอร์เชื่อมต่อกับขา 3.3V บนบอร์ด Heltec
  • GND บนเซนเซอร์เชื่อมต่อกับขา GND บนบอร์ด Heltec
  • DO บนเซนเซอร์เชื่อมต่อกับ GPIO 4 บนบอร์ด Heltec
  • ขา AO ปล่อยไว้ไม่เชื่อมต่อ

การเดินสายฝั่งรับ (ออด):

ในการขับออด จะใช้ทรานซิสเตอร์เป็นสวิตช์เนื่องจากออดอาจดึงกระแสไฟฟ้ามากกว่าที่ขา GPIO ของไมโครคอนโทรลเลอร์จะจ่ายได้อย่างปลอดภัย วงจรนั้นง่าย:

  • ขาบวกของออดเชื่อมต่อกับขา 3.3V
  • ขาลบของออดเชื่อมต่อกับขา collector ของทรานซิสเตอร์ 2N2222
  • ขา emitter ของทรานซิสเตอร์เชื่อมต่อกับ GND
  • ขา base ของทรานซิสเตอร์เชื่อมต่อกับ GPIO 4 บนบอร์ด Heltec ฝั่งรับผ่านตัวต้านทาน 1kΩ

การเดินสายฝั่งรับ (รีเลย์):

หากคุณต้องการควบคุมโหลดเช่นไฟหรือไซเรน คุณสามารถใช้โมดูลรีเลย์ได้ การเดินสายยิ่งง่ายขึ้น:

  • VCC บนโมดูลรีเลย์เชื่อมต่อกับขา 3.3V (หรือ 5V หากใช้บูสต์คอนเวอร์เตอร์)
  • GND บนโมดูลรีเลย์เชื่อมต่อกับ GND
  • IN บนโมดูลรีเลย์เชื่อมต่อกับ GPIO 4 บนบอร์ด Heltec

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

สำหรับวงจรออด ทรานซิสเตอร์ 2N2222 ถูกใช้เพื่อขยายกระแสจากขา GPIO ตัวต้านทาน 1kΩ ถูกวางระหว่างขา GPIO และขา base เพื่อจำกัดกระแสที่เข้าสู่ทรานซิสเตอร์ ออดเชื่อมต่อระหว่าง 3.3V และขา collector ดังนั้นเมื่อทรานซิสเตอร์ถูกเปิดใช้งาน วงจรจะสมบูรณ์และออดจะดังขึ้น

การตั้งค่าซอฟต์แวร์

ก่อนที่คุณจะอัปโหลดโค้ดได้ คุณต้องติดตั้งซอฟต์แวร์และไลบรารีที่จำเป็นใน Arduino IDE ของคุณก่อน ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Arduino IDE แล้ว จากนั้นทำตามขั้นตอนเหล่านี้:

  1. ติดตั้งการรองรับบอร์ด ESP32: เปิด Boards Manager (Tools > Board > Boards Manager) ค้นหา "ESP32" และติดตั้งแพ็กเกจโดย Espressif Systems
  2. เพิ่ม URL บอร์ด Heltec: ไปที่ File > Preferences และในช่อง "Additional Boards Manager URLs" วาง URL JSON https://resource.heltec.cn/download/package_heltec_esp32_index.json สำหรับบอร์ด Heltec ESP32 คุณสามารถหาลิงก์นี้ได้จากหน้าคู่มือของ Heltec จากนั้นกลับไปที่ Boards Manager ค้นหา "Heltec ESP32" และติดตั้ง
  3. ติดตั้งไลบรารี: ไปที่ Tools > Manage Libraries และติดตั้งดังต่อไปนี้:
    • Heltec ESP32 Dev Boards โดย Heltec Automation
    • Adafruit GFX Library โดย Adafruit (ติดตั้ง dependencies ทั้งหมดเมื่อได้รับแจ้ง)
    • Robojax Heltec LoRa 32 library (ดาวน์โหลดไฟล์ .zip จากลิงก์ในคำอธิบายวิดีโอและติดตั้งผ่าน Sketch > Include Library > Add .ZIP Library)

หลังจากติดตั้งไลบรารีแล้ว คุณสามารถเลือกบอร์ดที่ถูกต้องได้โดยไปที่ Tools > Board > Heltec ESP32 Arduino > Heltec Wi-Fi LoRa 32(V3) ตรวจสอบให้แน่ใจว่าเลือกพอร์ตที่ถูกต้องแล้ว

คำอธิบายโค้ด

โปรเจกต์นี้ใช้ไฟล์โค้ดสองไฟล์แยกกัน: หนึ่งสำหรับตัวส่งและหนึ่งสำหรับตัวรับ ทั้งสองไฟล์รวมอยู่ในไลบรารี Robojax Heltec LoRa 32 ภายใต้เมนู examples โค้ดส่วนใหญ่ถูกเขียนไว้แล้ว คุณเพียงแค่ต้องปรับตัวแปรสำคัญสองสามตัวที่ด้านบนของแต่ละไฟล์เพื่อกำหนดค่าเครือข่ายของคุณ

โค้ดตัวส่ง (Door Alarm TX):

เปิดโค้ดตัวส่งจาก File > Examples > Robojax Heltec LoRa 32 > Door Alarm TX การตั้งค่าหลักที่คุณต้องแก้ไขคือ:

  • ขาเซนเซอร์ประตู: นี่คือขา GPIO ที่เชื่อมต่อกับเอาต์พุตดิจิทัลของเซนเซอร์ Hall Effect ค่าเริ่มต้นคือขา 4 แต่คุณสามารถเปลี่ยนได้หากคุณเดินสายแตกต่างออกไป
  • สตริงข้อความ: คุณสามารถเปลี่ยนข้อความที่แสดงและส่ง เช่น "Door is OPEN" และ "Door is CLOSED" คงเครื่องหมายคำพูดคู่ไว้เพราะเป็นสตริง
  • คีย์ความปลอดภัย: นี่คือสตริงลับที่ต้องตรงกันระหว่างตัวส่งและตัวรับ เพื่อป้องกันไม่ให้อุปกรณ์ LoRa อื่น ๆ เรียกสัญญาณเตือนของคุณ เปลี่ยนเป็นค่าที่ไม่ซ้ำใคร
  • ความถี่: ต้องตั้งค่าเป็นความถี่ที่ถูกต้องสำหรับภูมิภาคของคุณ (เช่น 915 MHz สำหรับสหรัฐอเมริกา 868 MHz สำหรับยุโรป) ต้องตรงกับความถี่ของตัวรับ
  • กำลังส่ง (TX Power): ตั้งค่ากำลังส่งในหน่วย dBm คุณสามารถตั้งได้ตั้งแต่ 2 ถึง 20 สำหรับการทดสอบระยะใกล้ ค่าต่ำเช่น 2 ก็เพียงพอ สำหรับการทดสอบระยะไกล 13 ไมล์ ตั้งไว้ที่ 20 กำลังที่สูงขึ้นจะทำให้แบตเตอรี่หมดเร็วขึ้น

โค้ดตัวรับ (Door Alarm RX):

เปิดโค้ดตัวรับจาก File > Examples > Robojax Heltec LoRa 32 > Door Alarm RX การตั้งค่าหลักคือ:

  • ขารีเลย์: ขา GPIO ที่เชื่อมต่อกับรีเลย์หรือวงจรควบคุมออด ค่าเริ่มต้นคือขา 4
  • ระยะเวลาสัญญาณเตือน: ตัวแปรนี้กำหนดว่ารีเลย์หรือออดจะทำงานนานเท่าใดหลังจากได้รับสัญญาณ "Door Open" ค่าเริ่มต้นคือ 1000 มิลลิวินาที (1 วินาที) คุณสามารถเพิ่มเป็น 10,000 หรือ 20,000 มิลลิวินาทีได้หากต้องการให้สัญญาณเตือนดังนานขึ้น
  • คีย์ความปลอดภัย: ต้องเหมือนกับคีย์ที่คุณตั้งไว้ในโค้ดตัวส่ง
  • ความถี่: ต้องตรงกับความถี่ของตัวส่งสำหรับภูมิภาคของคุณ

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

โปรเจกต์จริงและการสาธิต

ในวิดีโอ โปรเจกต์นี้ถูกสาธิตทั้งบนโต๊ะทำงานและในสถานการณ์จริง ในห้องปฏิบัติการ ตัวส่งเชื่อมต่อกับเซนเซอร์ Hall Effect และใช้แม่เหล็กจำลองการเปิดและปิดประตู เมื่อแม่เหล็กอยู่ใกล้เซนเซอร์ ระบบจะแสดง "CLOSED" และเมื่อนำออก จะแสดง "OPEN" สถานะนี้ถูกส่งไปยังตัวรับ ซึ่งจะเปิดใช้งานออดหรือรีเลย์

การทดสอบในโลกจริงเกี่ยวข้องกับการติดตั้งเซนเซอร์ Hall Effect และแม่เหล็กบนประตู เมื่อเปิดประตู ตัวรับจะแสดง "OPEN" ทันทีและเรียกสัญญาณเตือน การปิดประตูจะส่งสัญญาณ "CLOSED" และปิดสัญญาณเตือน

เพื่อพิสูจน์ความสามารถระยะไกล ตัวส่งถูกวางบนขาตั้งกล้องริมทะเลสาบที่มีแนวสายตาชัดเจน จากนั้นตัวรับถูกขับไปยังสถานที่ที่อยู่ห่างออกไปกว่า 13 ไมล์ (21 กม.) ที่ระยะนี้ ตัวรับยังคงสามารถรับสัญญาณและแสดงข้อมูลที่ส่งได้ ซึ่งแสดงให้เห็นถึงพลังและความน่าเชื่อถือของ LoRa สำหรับการสื่อสารนอกระบบ

สำหรับการทดสอบระยะ คุณสามารถตั้งค่ากำลังส่งเป็น 20 dBm อย่างไรก็ตาม สำหรับการใช้งานประจำวันในห้องปฏิบัติการหรือระยะทางสั้น ๆ การตั้งค่าเป็น 2 dBm จะประหยัดแบตเตอรี่ ด้วยแบตเตอรี่ 3000 mAh ตัวส่งสามารถใช้งานได้หลายวัน ขึ้นอยู่กับกำลังส่งและความถี่ในการอัปเดต

บทต่าง ๆ

  • [00:00] แนะนำระบบแจ้งเตือนประตูระยะไกล
  • [01:04] ภาพรวมของชุดโครงการ LoRa
  • [02:01] ภาพรวมชิ้นส่วนและฮาร์ดแวร์
  • [05:42] เคส Meshnology N32 และตัวเลือกแบตเตอรี่
  • [07:20] การประกอบเคส Meshnology N32
  • [11:41] การทดสอบขั้วต่อและความปลอดภัยของแบตเตอรี่
  • [12:22] การเดินสายเซนเซอร์ Hall Effect และรีเลย์
  • [13:51] การเดินสายออดพร้อมทรานซิสเตอร์
  • [17:48] การประกอบขั้นสุดท้ายและการปรับเซนเซอร์
  • [23:20] การติดตั้งซอฟต์แวร์และไลบรารี
  • [27:42] การกำหนดค่าและอัปโหลดโค้ดตัวส่งสัญญาณ
  • [30:22] การกำหนดค่าและอัปโหลดโค้ดตัวรับสัญญาณ
  • [31:56] การสาธิตระบบสัญญาณเตือนประตูในห้องปฏิบัติการ
  • [33:03] การทดสอบกับประตูจริง
  • [34:08] การทดสอบระยะทาง 13 ไมล์และบทสรุป
ไม่มีรหัสแนบมา

แหล่งข้อมูลและเอกสารอ้างอิง

ไฟล์📁

ไลบรารี Arduino (zip)

ไฟล์อื่น ๆ