สารบัญ:

Raspberry Pi Door Notifier: 6 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi Door Notifier: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Door Notifier: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Door Notifier: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: How to make an RFID door lock system with Raspberry Pi board 2024, กันยายน
Anonim
ตัวแจ้งเตือนประตู Raspberry Pi
ตัวแจ้งเตือนประตู Raspberry Pi

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

โปรเจ็กต์นี้จะทำให้คุณได้ฝึกฝนเกี่ยวกับ Flask, Raspberry Pis, เซ็นเซอร์ GPIO และ Mandrill API! ไม่เพียงแต่จะสร้างความสนุกเท่านั้น แต่ยังมีประโยชน์มากมายอีกด้วย ผู้บุกรุกระวัง…

ขั้นตอนที่ 1: วัสดุสิ้นเปลือง

เสบียง
เสบียง

ยังคงวางแผนที่จะสร้างเครื่องมือนี้หรือไม่? นี่คือสิ่งที่คุณต้องการ:

  • Raspberry Pi 3
  • การ์ดไมโคร SD
  • 3 สายตัวเมียกับตัวเมีย
  • 1 เซ็นเซอร์การสั่นสะเทือน
  • พาวเวอร์แบงค์
  • แถบคำสั่ง

หากคุณกำลังวางแผนที่จะสร้างโครงการนี้สำหรับประตูหลายบาน ให้คูณอุปกรณ์แต่ละชิ้นด้วยจำนวนอุปกรณ์ที่คุณต้องการ

หากคุณกำลังอยู่ในขั้นตอนของการสร้าง/ทดสอบอุปกรณ์นี้ ไม่จำเป็นต้องมีสิ่งต่อไปนี้…อย่างไรก็ตาม มันจะมีประโยชน์มากอย่างแน่นอน

  • จอคอมพิวเตอร์
  • แป้นพิมพ์ USB
  • ชุดชาร์จ Micro USB

ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ

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

แผนผังการเดินสายสามารถพบได้ด้านบน (มาจาก https://www.piddlerintheroot.com/vibration-sensor/) เพียงต่อสายไฟทั้งหมดตามที่แสดงในภาพนี้ เซ็นเซอร์ตรวจจับการสั่นสะเทือนของคุณควรใช้งานได้ดี นอกจากนี้ โปรดทราบด้วยว่าในที่สุดคุณจะต้องใช้ชุดแบตเตอรี่สำหรับโปรเจ็กต์นี้ แต่หากคุณกำลังทดสอบ การเสียบอุปกรณ์เข้ากับเต้ารับบนผนังอาจเป็นประโยชน์

ขั้นตอนที่ 3: การตั้งค่าสิ่งของ

ยินดีด้วย! คุณมาไกลถึงขนาดนี้แล้ว ไปกันต่อเถอะ!

ตอนนี้เราจะเริ่มทำงานโดยตรงกับ Pi สิ่งต่อไปนี้สามารถทำได้บนอุปกรณ์ด้วยแป้นพิมพ์และจอภาพ (หรือผ่าน SSH หากคุณสะดวก)

มีการตั้งค่าเบื้องต้นมากมายเพื่อให้เซ็นเซอร์ GPIO ทำงานร่วมกับ Pi และ Flask ความอดทนเป็นคุณธรรม มีไลบรารี Python ค่อนข้างน้อยที่คุณจะต้องติดตั้งก่อน สามารถทำได้ด้วย Pip ซึ่งเป็นตัวจัดการไลบรารี/แพ็คเกจสำหรับ Python ในการใช้งาน ให้พิมพ์ `pip install ` เพื่อตั้งชื่อไลบรารี่ที่คุณต้องการ:

  • คำขอ
  • RPi. GPIO
  • กระติกน้ำ
  • flask_restful
  • flask_wtf
  • wtforms
  • อีเมล
  • แมนดริล

คุณอาจต้องการดื่มกาแฟระหว่างรอการติดตั้ง อาจใช้เวลาสักครู่

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

ขั้นตอนที่ 4: โค้ดและการเรียกใช้

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

นี่คือสิ่งที่องค์กรไดเร็กทอรีควรมีลักษณะดังนี้:

+-- iotapp | +-- appFolder | +-- แม่แบบ | +--index.html | +-- _init_.py | +-- form.py | +-- mcemail.py | +-- routes.py | +-- iotapp.py | +-- vibes.py

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

$ export FLASK_APP=iotapp.py

$ python -m flask run --host 0.0.0.0

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

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

สิ่งหนึ่งที่คุณน่าจะสังเกตเห็นคือรหัสยังไม่สมบูรณ์ โปรเจ็กต์นี้ใช้ API ภายนอกเพื่อส่งอีเมลแจ้งเตือนเมื่อมีการสั่น (เปิดประตู) ในการตั้งค่านี้ คุณจะต้องสร้างบัญชี Mandrill และสร้างคีย์ API

เมื่อคุณได้ตรวจสอบโดเมนที่ส่งของคุณและมีคีย์ API แล้ว คุณสามารถวางคีย์ของคุณในไฟล์ `mcemail.py` (ที่มีอยู่) และปรับข้อมูลการส่ง (โดยการเปลี่ยนพารามิเตอร์เริ่มต้นในไฟล์เดียวกันหรือโดยการส่งผ่าน ในอีเมลอื่นในไฟล์ `routes.py` หากคุณต้องการเอกสารเพิ่มเติมเกี่ยวกับ Mandrill และวิธีใช้ คุณสามารถค้นหาได้ที่นี่

ขั้นตอนที่ 5: การทดสอบ

การทดสอบ
การทดสอบ

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

อุปกรณ์นี้ใช้งานสองโปรแกรม: `vibes.py` และเซิร์ฟเวอร์ Flask อดีตควรถูกเรียกใช้ก่อนในพื้นหลัง จากนั้นจึงจะสามารถเรียกใช้เซิร์ฟเวอร์ Flask ได้ `vibes.py` เป็นเพียงการ POST ไปยังเซิร์ฟเวอร์ และเซิร์ฟเวอร์จะตีความคำขอ POST

$ หลาม vibes.py &

$ python -m flask run --host 0.0.0.0

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

ทุกอย่างดูดี? โอเค เราพร้อมทำธุรกิจแล้ว!

ขั้นตอนที่ 6: การติดตั้ง

การติดตั้ง
การติดตั้ง

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

หมายเหตุ: อุปกรณ์ต้องอยู่ในตำแหน่งที่มีเซ็นเซอร์การสั่นสะเทือนตั้งฉากกับประตูเพื่อให้เซ็นเซอร์จับการเคลื่อนไหวของประตู

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

สำหรับจุดพิเศษ พยายามซ่อนสายไฟ/อุปกรณ์เพื่อไม่ให้ผู้บุกรุกสงสัยในอุปกรณ์อันชาญฉลาดของคุณ!…หรืออย่าวางไว้บนประตูกระจก ¯\_(ツ)_/¯

แนะนำ: