فهرست مطالب:
تصویری: چه کسی در است ، سیستم دوربین الکسا: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
گاهی اوقات هنگام تماشای تلویزیون نمی خواهید به درب خانه پاسخ دهید مگر اینکه مهم باشد. این پروژه به شما این امکان را می دهد تا به سادگی با گفتن دستگاه اکو آمازون "الکسا ، مانیتور در را روشن کنید" ، فردی را که درب منزل است مشاهده کنید. شما بررسی می کنید که چه کسی روی صفحه تلویزیون ظاهر می شود ، و سپس به برنامه عادی تلویزیون "الکسا ، تلویزیون را روشن کنید" باز می گردید. این سیستم همچنین می تواند برای بزرگترها یا کودکان ارزشمند باشد که در معرض سوء استفاده فروشندگان ، سارقان و امثال آن هستند. این به تلویزیون صفحه بزرگ سیستم سرگرمی شما اجازه می دهد تا مانیتور نمایشگر دوربین نه تنها برای دوربین درب جلو ، بلکه برای سایر دوربین های امنیتی دیگر باشد. در واقع حتی می توان آن را برای نمایش ویدئو از دوربین های اینترنتی مانند دوربین های ساحلی و غیره تمدید کرد.
قطعات:
سیستم سرگرمی:
تلویزیون با چندین ورودی HDMI (اکثر تلویزیون ها دارای آنها هستند)
جعبه کابل یا DVR
اتصال روتر و اینترنت از طریق جعبه کابل (در صورت داشتن وای فای ممکن است لازم نباشد)
آمازون اکو ("الکسا")
هارمونی هاب
دوربین (ها)
دوربین IP در جلو (نوع Power Over Ethernet -POE- ترجیح داده می شود)
Raspberry Pi3 در جعبه پروژه (ممکن است Pi اصلی کار کند) با کابل HDMI
آردوینو پرو مینی 8 مگاهرتز ، 3.3 ولت
ماژول IR (رایج ترین انواع کار می کند)
مرحله 1: راه اندازی ، برنامه نویسی اولیه (آزمایش)
این پروژه به Pix omxplayer متصل است که با شتاب سخت افزاری ویدیو را رمزگشایی می کند. Omxplayer را می توان با استفاده از فرمت rtsp: // user@password@ipaddress مناسب که از طریق خط فرمان در ترمینال Pi اجرا می شود ، اجرا کرد. Pi باید به اترنت متصل باشد (اگرچه Pi3 می تواند از طریق WiFi نیز متصل شود ، اما آزمایش نشده است) و از نظر فیزیکی در مرکز سرگرمی قرار داشته باشد تا کابل خروجی HDMI Pi بتواند به جک ورودی HDMI تلویزیون برسد. ماژول آردوینو و IR به Pi متصل می شوند و اطلاعات به دست آمده از خواندن فشار دکمه های کنترل از راه دور تلویزیون را منتقل می کنند. Pi می تواند این رمزگشایی را مستقیماً از ماژول IR انجام دهد ، اما من در برنامه نویسی Arduino بهتر از برنامه نویسی پایتون هستم و علاوه بر این منابع پردازنده را برای وظیفه اصلی Pi برای رمزگشایی جریان (ها) ویدئو ذخیره می کند.
از آنجایی که سیستم امنیتی من دارای چندین دوربین است ، از صفحه نمایش مانیتورینگ Pi به عنوان راهی برای نمایش همزمان 4 دوربین ، به علاوه نمایش تمام دوربین های تمام صفحه استفاده کردم. این دستورالعمل ها را دنبال کنید ، با این حال احتمالاً برای نمایش ثابت دوربین ها با مشکلات زیادی روبرو خواهید شد.
یکی از مشکلات این است که 4 اندازه پنجره ذکر شده در برنامه ممکن است با وضوح تلویزیون شما مطابقت نداشته باشد. هنگام توجه به رزولوشن دوربینی که دوربین شما دارد ، از وضوح تصویر پشتیبانی کنید. اکثر دوربین های IP دارای رزولوشن بالا (1080p) و رزولوشن پایین (640x480) هستند ، بنابراین اگر فقط یک فیلم با وضوح بالا از درب ورودی می خواهید ، از فرمت rtsp: // با وضوح بالا استفاده کنید. با استفاده از جریان وضوح پایین دوربین ها در 4 چهار ضلعی ، تفاوت زیادی با اندازه های تصویر کوچکتر متوجه نمی شوید. شما می توانید با اندازه پنجره bash script (test.sh) من (در حالت وضوح 1080p ، نمایش 4 دوربین با اندازه برابر 640x480 با اندازه مناسب برای اندازه گیری). در غیر این صورت ، از کاغذ گراف برای چیدمان پیکسل های تلویزیون خود استفاده کنید و سپس چند مستطیل مورد نظر خود را در آن ناحیه ترسیم کنید. سپس تعداد ویدئوهای 640x480 را بدون تغییر زیاد ببینید (کشش افقی بهتر از عمودی به نظر می رسد). من مرزها را دوست ندارم ، بنابراین برای آنها حساب نمی کنم. مستطیل ها را از بالا به چپ به پایین راست 1 ، 2 ، 3 و غیره شماره گذاری کنید. سپس یک ستون از اعداد پنجره ایجاد کنید ، برای هر سطر از این اعداد x بالا سمت چپ ، پیکسل y و پیکسل پایین سمت راست x ، y را یادداشت کنید. سپس این اعداد در اسکریپت جایگزین می شوند تا یک صفحه نمایش سفارشی دریافت کنید ، در صورت تمایل می توانید یک صفحه نمایش 3 3 3 داشته باشید. اگر فقط یک نمایشگر می خواهید ، فقط 3 دوربین دیگر را کامنت کنید و اندازه پنجره را با وضوح کامل صفحه نمایش دهید (و از جریان rtsp با وضوح بالا استفاده کنید) و عنوان اسکریپت را "test1.sh" بگذارید. هر چقدر که می خواهید اسکریپت بسازید ، برنامه پایتون btn.py با تغییر پین های GPIO توسط آردوینو آنها را فراخوانی می کند.
یک مشکل در داشتن یک صفحه نمایش پایدار (بالای تصویر خوب ، اما خطوط عمودی تصویر کمتر) این است که بسیاری از دوربین ها با استفاده از rtsp روی tcp بسیار بهتر جریان می یابند (من از دوربین های IP 2 تا 5 مگاپیکسل Hikvision استفاده می کنم). بنابراین ، از "--avdict rtsp_transport: tcp" در omxplayer مطابق شکل استفاده کنید. سایر دستورات مفید omxplayer عبارتند از حجم (-vol -6000 برای قطع صدا) و بافر (صف ویدیو x) که x = 1 یا بیشتر است.
تنظیمات دوربین IP همچنین می تواند با omxplayer مشکل ایجاد کند. همه دوربین های IP باید در یک فریم بر ثانیه تنظیم شوند ، در غیر این صورت تصویر خراب می شود. وقتی روی نرخ فریم های کاملاً متفاوت تنظیم می شود ، زمان نمایش داده شده روی یک مهر زمان دوربین در واقع چند ثانیه به عقب بر می گردد ، سپس به جلو و عقب و غیره. مطمئن شوید پنجره های omxplayer شما روی هم قرار نگیرند ، در غیر این صورت قسمت همپوشانی چشمک می زند.
مرحله 2: ترکیب آن
شما می توانید جعبه کابل و تلویزیون را به صورت دستی کنترل کنید تا Pi بتواند دوربین جلوی در را نشان دهد. با این حال ، این امر نیاز به فشار چند دکمه دارد ، از جمله تغییر مناسب کنترل از راه دور از حالت کابل به حالت تلویزیون برای تغییر منبع ورودی HDMI به رمزگشای دوربین Pi (HDMI 2). اگر می خواهید قابلیت نمایش صفحه نمایش دوربین های اضافی را داشته باشید ، برای کنترل آردوینو و در نتیجه انتخاب دوربین Pi نیز باید کنترل از راه دور جهانی را به AUX تغییر دهید. برای ساده سازی این فرآیند ، از برنامه Harmony Hub و برنامه تلفن همراه Harmony استفاده کنید و به آن آموزش دهید تلویزیون و جعبه کابل را برای مشاهده معمولی تلویزیون در یک فعالیت کنترل کند ، سپس یک فعالیت دیگر برای کنترل مانیتور ویدئویی Pi ایجاد کنید. این فعالیت شامل روشن شدن تلویزیون ، ورودی تلویزیون به HDMI 2 و کنترل دکمه های مجازی NECx TV (یعنی آردوینو و Pi) از 0 تا 5 است. این امر به شما امکان می دهد همه چیز را از طریق برنامه تلفن هوشمند Harmony کنترل کنید. برای سهولت کار ، برنامه Amazon Echo Dot (الکسا) را با برنامه Harmony پیوند دهید تا صدا و عملکردهای نظارت بر تلویزیون یا صدا را کنترل کنید. وب سایت هارمونی جزئیات نحوه فعال سازی این مهارت های جدید الکسا را ارائه می دهد. مهارت های جدید. کلمات کلیدی مانند "روشن کردن تلویزیون" یا "روشن کردن مانیتور درب" هنگامی که با مهارت های جدید الکسا مرتبط می شوند ، اقدامات مناسب را بدون نیاز به IR از راه دور جهانی انجام می دهند.
Pi از طریق اترنت به LAN شما و از طریق کابل HDMI به تلویزیون متصل می شود. من یک پرو 3.3 ولت Pro Mini را از طریق سیم به Pi به عنوان گزینه ای برای اضافه کردن سوئیچینگ اضافی دوربین نصب کردم. Pro Mini را می توان از پین 3.3 ولت Pi تأمین کرد. یک ماژول IR به پین 2 آردوینو متصل می شود و طرح ضمیمه شده دکمه 0 تا 5 (در واقع 0 تا 9 ، اما برخی پین های آردوینو هنوز وصل نشده اند) را رمزگشایی می کند. خروجی های آردوینو به پین های ورودی دیجیتال GPIO Pi متصل می شوند ، جایی که وقفه اسکریپت تعیین می کند کدام دکمه فشار داده شده است ، سپس یک گزینه نمای صفحه را متوقف می کند و دیگری را شروع می کند.
جعبه کابل من از Spectrum (قبلا Time Warner Cable) است ، که یک موتورولا DVR مدل DCX3510 است. از پروتکل GI Cable برای IR استفاده می کند. تلویزیون سونی از پروتکل 2 سونی استفاده می کند. من فکر کردم یکی از این کدها برای کنترل گیرنده Pi IR مناسب خواهد بود و هر دو کار کردند ، اگرچه به نظر می رسید عملی نیست. وقتی دکمه 0 تا 9 را فشار می دهید ، کنترل از راه دور انتظار فرمانهای بیشتری را دارد یا به طور خودکار منبع ورودی را نیز تغییر می دهد. بنابراین ، مجبور شدم از کد دیگری استفاده کنم که با تیونر کابل یا تلویزیون تعامل نداشته باشد. من دریافتم که کنترل از راه دور جهانی من یک کد قبلا برنامه ریزی شده برای دستگاه AUX (نمی دانم چه چیزی را کنترل می کند) دارد و تصمیم گرفتم از آن استفاده کنم. کدهای تولید شده می گفتند از NECx ، یک کد 32 بیتی استفاده می کند ، بنابراین من آن کدهای دکمه را در طرح آردوینو IR_Rev_Codes_Pi_Monitor وارد کردم. در صورت داشتن مدل متفاوت با استفاده از برنامه دریافت در IRLib2 ، برنامه را تغییر دهید و مقادیر سازنده ، پروتکل و hex را برای دکمه های فشرده یادداشت کنید.
مرحله 3: نتیجه گیری
مانیتور درب یک پروژه اتوماسیون خانگی عملی است. این اولین تجربه من در برنامه نویسی Pi با پایتون بود. پایتون به برنامه نویسی وقفه اجازه می دهد ، این ویژگی به نظر من مختص میکروکنترلرها بود. وقفه به برنامه اجازه می دهد تا به طور عادی اجرا شود و omxplayer را اجرا کند ، بدون اینکه مدام بررسی کند که آیا اقدام دیگری مانند تغییر صفحه نمایش به فید جدید دوربین مورد نیاز است یا خیر. با این حال ، اگر وقفه رخ دهد ، برنامه تعیین می کند که کدام ویدئو جدید باید نمایش داده شود. آردوینو به گونه ای تنظیم شده است که یک پالس برای ایجاد وقفه در پایتون ایجاد کند. اگر وقفه رخ دهد ، برنامه جستجو می کند که خروجی خاص Arduino (مربوط به دکمه IR از راه دور فشرده شده) فعال شده است. سرانجام ، برنامه هر گونه صفحه نمایش omxplayer فعلی را از بین می برد و صفحه جدید omxplayer را راه اندازی می کند.
من فهمیدم که Pi پین GPIO خود را مانند ورودی Arduino به طور پیش فرض تنظیم نمی کند- خطای Pi نیست ، اما این همان راهی است که Broadcom BCM2837 از کارخانه تهیه می کند. من از پردازنده 4 هسته ای ، 1.2 گیگاهرتز ، یک کامپیوتر کم مصرف و کم هزینه که می تواند ویدئوهای HD عالی را نشان دهد ، علاقه دارم. دکمه IR 1 صفحه چهارگانه را نشان می دهد و دکمه های 2 تا 5 هر کدام یک صفحه نمایش بزرگ از یک دوربین را در وضوح بالا نشان می دهند.
با فشار دادن دکمه IR از راه دور 0 نمایش ویدیو لغو شده و خط فرمان Pi نشان داده می شود. اگر می خواهید ویدئوهای Youtube یا موارد مشابه را تماشا کنید ، از صفحه کلید بلوتوث استفاده کنید ، "startx" را تایپ کنید و از مرورگر Pi برای حرکت به ویدیوی Youtube و پخش تمام صفحه آن با وضوح بالا استفاده کنید.
توصیه شده:
سیستم خانه الکسا با استفاده از ماژول رله NodeMCU: 10 مرحله
سیستم خانه هوشمند الکسا با استفاده از ماژول رله NodeMCU: در این پروژه اینترنت اشیا ، من سیستم اتوماسیون خانه هوشمند الکسا را با استفاده از NodeMCU ESP8266 & amp؛ ماژول رله به راحتی می توانید نور ، فن و سایر لوازم خانگی را با فرمان صوتی کنترل کنید. برای اتصال بلندگوی هوشمند Echo Dot به
آموزش Arduino MFRC522 - آیا برچسب RFID موجود است یا حذف شده است؟: 6 مرحله
آموزش Arduino MFRC522 - آیا برچسب RFID موجود است یا حذف شده است؟: این آموزش در اصل در ولتاژهای بالا ارسال شده است
نایک LED Swoosh! این یک دکور عالی برای یک اتاق است. این همان پروژه ای است که همه می توانند آن را تکرار کنند: 5 قدم
نایک LED Swoosh! این یک دکور عالی برای یک اتاق است. این پروژه ای است که همه می توانند آن را تکرار کنند. 2x چوب 20-20-3000 2x تخته سه لا 500-1000mm-screws (45mm) 150x-screws (35mm) 30x-scr
چه کسی در درب من است؟ PIR Motion Sensor/Range Sensor Project: 5 مرحله
چه کسی در درب من است؟ PIR Motion Sensor/Range Sensor Project: هدف ما این است که حرکت را از طریق PIR و سنسورهای فاصله حس کنیم. کد آردوینو یک سیگنال بصری و صوتی را به کاربر نشان می دهد که در نزدیکی کاربر است. کد MATLAB سیگنال ایمیل را ارسال می کند تا به کاربر هشدار دهد که شخصی در این نزدیکی است. این دستگاه
آیا این یک دست است؟ (دوربین رزبری پای + شبکه عصبی) قسمت 1/2: 16 مرحله (همراه با تصاویر)
آیا این یک دست است؟ (دوربین رزبری پای + شبکه عصبی) قسمت 1/2: چند روز پیش ، من در ورزشگاه مچ دست راست خود را مجروح کردم. بعداً هر بار که از ماوس کامپیوترم استفاده می کردم ، به دلیل زاویه تند مچ درد زیادی ایجاد می کرد. آن موقع بود که به من ضربه زد & quot؛ عالی نخواهد بود اگر بتوانیم هر سطحی را به تله تبدیل کنیم