สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
คุณเคยสงสัยหรือไม่ว่าผู้คนกำลังเข้าถึงประตูหรือไม่? คุณต้องการวิธีตรวจสอบการเคลื่อนตัวของประตูที่รอบคอบ ราคาถูก และรวดเร็ว…และอาจเป็นโครงการเล็กๆ หรือไม่? มองไม่เพิ่มเติม! อุปกรณ์ที่เรียบง่ายนี้จะติดตามการสั่นที่เกิดจากประตูที่เคลื่อนที่และรายงานกลับไปยังผู้ใช้ด้วยอีเมลไปยังที่อยู่อีเมลที่ระบุ
โปรเจ็กต์นี้จะทำให้คุณได้ฝึกฝนเกี่ยวกับ 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 ลงในอุปกรณ์และเรียกใช้โปรแกรมดังที่กล่าวไว้ในขั้นตอนก่อนหน้าและรอผู้บุกรุกได้!
สำหรับจุดพิเศษ พยายามซ่อนสายไฟ/อุปกรณ์เพื่อไม่ให้ผู้บุกรุกสงสัยในอุปกรณ์อันชาญฉลาดของคุณ!…หรืออย่าวางไว้บนประตูกระจก ¯\_(ツ)_/¯
แนะนำ:
Bluetooth Call Notifier: 5 ขั้นตอน (พร้อมรูปภาพ)
ตัวแจ้งเตือนการโทรผ่าน Bluetooth: บทนำฉันกำลังเรียกดูฟีดข่าวที่สอนได้เมื่อหลายวันก่อนเมื่อฉันเจอโปรเจ็กต์นี้ มันเป็นโครงการที่ยอดเยี่ยม แต่ฉันคิดว่าทำไมไม่สร้างมันด้วย Bluetooth แทนสิ่ง wifi ที่ซับซ้อนข้อกำหนดของ Bluetooth Call Notifier นี้
IoT Notifier โดยใช้ ESP-12E: 7 ขั้นตอน (พร้อมรูปภาพ)
IoT Notifier ใช้ ESP-12E: ติดอยู่ที่บ้านห่างจากคนที่คุณรัก? ในช่วงเวลาที่ยากลำบากนี้ โครงการเล็กๆ ที่สนุกสนานนี้จะพยายามสร้างรอยยิ้มให้กับคุณอย่างแน่นอน ในคำแนะนำนี้ ฉันจะแสดงวิธีแสดงการแจ้งเตือนจากโทรศัพท์มือถือของคุณในรูปแบบของ
YouTube Desktop Notifier: 11 ขั้นตอน (พร้อมรูปภาพ)
YouTube Desktop Notifier: คุณฝันร้ายที่สูญเสียสมาชิก YouTube ของคุณหรือไม่? หากคุณเป็นเช่นนั้น แสดงว่าคุณไม่ใช่คนเดียว โชคดีที่ฉันได้สร้าง "การแจ้งเตือนบนเดสก์ท็อปของ YouTube" เพื่อให้ฉันทันข่าวสารกับช่อง Subscriber และ View Counts ของฉัน โครงการ DIY ที่ง่ายมากนี้
Blüp: Bubble Notifier: 11 ขั้นตอน (พร้อมรูปภาพ)
Blüp: Bubble Notifier: ฉันกำลังมองหาระบบการแจ้งเตือนที่นุ่มนวลและกระทันหันน้อยกว่าการแจ้งเตือนแบบสั่น เสียง หรือแสง ฉันไม่พบสิ่งใดที่ตรงกับเกณฑ์นั้น ฉันจึงตัดสินใจทำด้วยตัวเอง นอกจากนี้ ฉันต้องการโซลูชันของฉันเพื่อรวม
Arduino Christmas Notifier: 5 ขั้นตอน (พร้อมรูปภาพ)
Arduino Christmas Notifier: คริสต์มาสอยู่ใกล้แค่เอื้อม และฉันได้ข้อสรุปว่าฉันจะไม่ปล่อยให้มันเป็นไปโดยเพียงแค่มีไฟคริสต์มาส DIY Arduino ของฉัน อะไรคือโครงการที่สมบูรณ์แบบที่เกี่ยวข้องกับเพลงคริสต์มาส? ใช่ถูกต้อง! ให้คนรู้ว่าเป็นวันคริสต