فهرست مطالب:
- مرحله 1: سنسور حرکت PIR
- مرحله 2: تنظیم سنسور حرکت PIR
- مرحله 3: ماژول دوربین رزبری پای و راه اندازی
- مرحله 4: سنسور حرکت PIR و ماژول دوربین را ترکیب کنید
- مرحله 5: راه اندازی برای Flask
- مرحله ششم: نتیجه گیری
![آشکارساز رزبری پای انسانی + دوربین + فلاسک: 6 مرحله آشکارساز رزبری پای انسانی + دوربین + فلاسک: 6 مرحله](https://i.howwhatproduce.com/images/001/image-2578-35-j.webp)
تصویری: آشکارساز رزبری پای انسانی + دوربین + فلاسک: 6 مرحله
![تصویری: آشکارساز رزبری پای انسانی + دوربین + فلاسک: 6 مرحله تصویری: آشکارساز رزبری پای انسانی + دوربین + فلاسک: 6 مرحله](https://i.ytimg.com/vi/C8y_aW81CuA/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
![آشکارساز رزبری پای انسانی + دوربین + فلاسک آشکارساز رزبری پای انسانی + دوربین + فلاسک](https://i.howwhatproduce.com/images/001/image-2578-36-j.webp)
در این آموزش ، من مراحل پروژه Raspberry Pi IoT را طی می کنم - با استفاده از PIR Motion Sensor ، ماژول Raspberry Camera برای ایجاد یک دستگاه IoT امنیتی ساده و دسترسی به گزارش تشخیص با Flask.
مرحله 1: سنسور حرکت PIR
![سنسور حرکت PIR سنسور حرکت PIR](https://i.howwhatproduce.com/images/001/image-2578-37-j.webp)
PIR مخفف "Passive Infrared" است و این سنسور حرکت با مشاهده نمای مادون قرمز و برداشتن تغییرات مادون قرمز ، حرکات را افزایش می دهد. بنابراین ، با عبور یک برگ و یک انسان از سنسور ، فقط انسان را تشخیص می دهد زیرا ما به عنوان انسان گرما تولید می کنیم و بنابراین اشعه مادون قرمز ساطع می کنیم. بنابراین ، سنسور حرکت انتخاب خوبی برای تشخیص حرکات انسان است.
مرحله 2: تنظیم سنسور حرکت PIR
![تنظیم سنسور حرکت PIR تنظیم سنسور حرکت PIR](https://i.howwhatproduce.com/images/001/image-2578-38-j.webp)
سه پین برای سنسور حرکت PIR ، Power ، Output و Ground وجود دارد. در زیر پین ها می توانید برچسب ها ، VCC for Power ، Out for Output و GND را برای زمین ببینید. هنگامی که سنسور حرکات را تشخیص می دهد ، پین خروجی یک سیگنال HIGH به پین Raspberry Pi منتقل می کند که سنسور را با آن وصل می کنید. برای پین پاور ، می خواهید مطمئن شوید که برای قدرت به پین 5 ولت در رزبری پای متصل می شود. برای پروژه خود ، من اتصال پین خروجی را با Pin11 در Pi وصل می کنم.
پس از اتصال همه چیز ، می توانید با اجرای اسکریپت هایی مانند تصویر زیر ، به سنسور خود پیام ارسال کنید:
وارد کردن RPi. GPIO به عنوان GPIOimport زمان GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11، GPIO. IN) #خواندن خروجی از حسگر حرکت PIR در پین 11 در حالی که True: i = GPIO.input (11) اگر i == 0: #هنگامی که خروجی از سنسور حرکت LOW print باشد "بدون تشخیص" ، i time.sleep (0.1) elif i == 1: #هنگامی که خروجی از سنسور حرکت دارای چاپ بالا باشد " حرکت تشخیص داده شد "، i time.sleep (0.1)
اسکریپت را روی Pi خود اجرا کنید ، و دستان یا دوست خود را مقابل سنسور قرار دهید تا بررسی کنید که آیا سنسور حرکت را انجام می دهد یا خیر.
مرحله 3: ماژول دوربین رزبری پای و راه اندازی
![ماژول و راه اندازی دوربین رزبری پای ماژول و راه اندازی دوربین رزبری پای](https://i.howwhatproduce.com/images/001/image-2578-39-j.webp)
انسان در اثر گرما اشعه مادون قرمز ساطع می کند و اجسام دارای دما نیز همینطور. بنابراین ، حیوانات یا اجسام داغ می توانند حسگر حرکت را نیز فعال کنند. ما به روشی نیاز داریم تا بررسی کنیم که آیا تشخیص معتبر است یا خیر. راه های زیادی برای پیاده سازی وجود دارد ، اما در پروژه خود ، من از ماژول دوربین رزبری پای برای عکاسی در هنگام حرکت حسگر حرکت استفاده می کنم.
برای استفاده از ماژول دوربین ، ابتدا باید مطمئن شوید که پین ها به شکاف دوربین در Pi متصل شده اند. تایپ کنید
sudo raspi-config
در Pi خود رابط پیکربندی را باز کنید و دوربین را در "گزینه های رابط" فعال کنید. پس از راه اندازی مجدد ، می توانید آزمایش کنید که آیا Pi واقعاً به دوربین متصل است یا خیر
vcgencmd get_camera
و وضعیت را به شما نشان می دهد آخرین مرحله این است که ماژول picamera را با تایپ کردن نصب کنید
pip نصب picamera
پس از تمام تنظیمات ، می توانید دوربین خود را با اجرای اسکریپت هایی مانند تصویر زیر آزمایش کنید:
از واردات picamera PiCamera
از زمان وارد کردن دوربین خواب = PiCamera () camera.start_preview () sleep (2) camera.capture ('image.jpg') camera.stop_preview ()
تصویر به عنوان 'image.jpg' در فهرست همانند اسکریپت دوربین شما ذخیره می شود. توجه داشته باشید ، شما می خواهید مطمئن شوید که "خواب (2)" وجود دارد و عدد بیشتر از 2 است بنابراین دوربین زمان کافی برای تنظیم شرایط نور را دارد.
مرحله 4: سنسور حرکت PIR و ماژول دوربین را ترکیب کنید
ایده پروژه من این است که سنسور حرکت و دوربین در یک جهت قرار بگیرند. هر زمان که سنسور حرکت حرکات را انجام دهد ، دوربین عکاسی می کند تا بتوانیم بعداً علت حرکت را بررسی کنیم.
فیلمنامه:
وارد کردن RPi. GPIO به عنوان GPI
GPIO.cleanup ()
GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11، GPIO. IN) #خواندن خروجی از پیام سنسور حرکت PIR = 'start' counter = 0 log_f = open ('static/log.txt' ، 'w') log_f.close ()
دوربین = PiCamera ()
pic_name = 0
camera.start_preview ()
زمان خواب (2)
در حالی که True:
i = GPIO.input (11) اگر i == 0: #هنگامی که خروجی از سنسور حرکت کم است اگر شمارنده> 0: end = str (datetime.now ()) log_f = open ('static/log.txt' ، ' a ') message = message +'؛ پایان در ' + پایان +' / n 'چاپ (پیام) log_f.write (پیام) log_f.close () final =' static/' + str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture (نهایی) counter = 0 print "No intruders"، i time.sleep (0.1) elif i == 1: #وقتی خروجی از سنسور حرکت بالا باشد اگر شمارنده == 0: current = str (datetime.now ()) پیام = "انسان شناسایی شد:" + "شروع می شود در" + شمارنده فعلی = شمارنده + 1 چاپ "مزاحم شناسایی شد" ، i time.sleep (0.1) camera.stop_preview ()
فهرستهای "log.txt" و تصاویر "static" هستند که برای کار Flask ضروری است.
مرحله 5: راه اندازی برای Flask
![راه اندازی برای Flask راه اندازی برای Flask](https://i.howwhatproduce.com/images/001/image-2578-40-j.webp)
Flask یک چارچوب میکرو وب است که به زبان پایتون نوشته شده و بر اساس مجموعه ابزار Werkzeug و موتور قالب Jinja2 طراحی شده است. پیاده سازی و نگهداری آن آسان است. برای آموزش بهتر برای Flask ، این پیوند را توصیه می کنم: Flask Mega Tutorial
اسکریپت اصلی ، "lines.py" ، پروژه من:
از appfolder وارد برنامه
APP_ROOT = os.path.dirname (os.path.abspath (_ فایل_)) # به بالای برنامه اشاره دارد
APP_STATIC = os.path.join (APP_ROOT ، 'static')
@appFlask.route ('/' ، روش = ['GET' ، 'POST'])
def view (): log_f = open (os.path.join (APP_STATIC ، 'log.txt') ، 'r') logs = log_f.readlines () final_logs = برای ورود به سیستم logs: final_logs.append (log strip ()) name = str (len (final_logs) -1)+'. jpg' return render_template ('view.html'، logs = final_logs، filename = name)
فایل HTML "view.html" در نوار بالای صفحه است (زیرا وقتی کدهای HTML را اینجا کپی می کنم ، در واقع به HTML FORMAT تبدیل می شود …)
و ساختار پروژه باید شبیه چیزی در زیر باشد (اما البته تعداد فایلها از اینها بیشتر است):
iotproject / appfolder / route.py templates / view.html static / log.txt 0-j.webp
مرحله ششم: نتیجه گیری
![نتیجه نتیجه](https://i.howwhatproduce.com/images/001/image-2578-41-j.webp)
برای این پیاده سازی ، پس از اینکه همه چیز به درستی تنظیم شد ، باید بتوانید با تایپ آدرس IP آن در مرورگر به رزبری پای خود دسترسی پیدا کنید و نتیجه در این مرحله باید مانند تصویر در نوار بالا باشد.