فهرست مطالب:

تقویم دیواری هوشمند: 5 مرحله
تقویم دیواری هوشمند: 5 مرحله

تصویری: تقویم دیواری هوشمند: 5 مرحله

تصویری: تقویم دیواری هوشمند: 5 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
تقویم دیواری هوشمند
تقویم دیواری هوشمند

من و همسرم تقویم دیواری کاغذی کلاسیک داشتیم که در آن تاریخهای مهمی مشخص شده بود. ما همچنین از تقویم Google در تلفن های هوشمند خود برای علامت گذاری رویدادها استفاده می کنیم ، بنابراین این به معنای کار دوگانه بود. بنابراین تصمیم گرفتم نوعی تقویم دیواری هوشمند بسازم ، که یادآورها ، رویدادها و داده های دیگر ما را نمایش دهد. از آنجا که قطعات الکترونیکی قدیمی قدیمی در اطراف من وجود دارد ، هدف من این بود که تا حد ممکن از آنها استفاده مجدد کنم و تقویم را با کمترین هزینه ممکن بسازم.

در این آموزش ، نحوه ساخت تقویم دیواری هوشمند ، نمایش رویدادها از چندین حساب Google را به شما نشان خواهم داد. همچنین زمان ، تاریخ ، آب و هوا ، دما و برخی اطلاعات اضافی را نمایش می دهد. از رایانه رزبری پای با سنسور حرکت Passive Infrared Sensor (PIR) متصل می شود تا صفحه نمایش روشن شود ، هنگامی که حرکت در اتاق تشخیص داده می شود ، اما پس از چند دقیقه بی تحرکی خاموش می شود. این آموزش بر اساس چندین آموزش دیگر است که در اینترنت پیدا کردم و برای درک بهتر پیوندها را به آنها می دهم. برخی از دانش برنامه نویسی اولیه (HTML ، پایتون ،…) مورد نیاز است.

مرحله 1: سخت افزار

همانطور که قبلاً ذکر شد ، من سعی کردم از تعداد زیادی قطعات الکترونیکی قدیمی برای کاهش هزینه ها استفاده کنم. با این حال ، برخی از مواردی را که باید خریداری می کردم ، بنابراین همه موارد لازم برای ساخت و ساز را لیست می کنم.

- یک کیت Raspberry Pi. در ابتدا من از مدل قدیمی 2 خود در پروژه دیگری استفاده کردم. کار کرد ، اما ویرایش و بارگذاری مجدد صفحه وب زمان زیادی را از من گرفت ، بنابراین در نهایت به مدل 3 تغییر کردم ، که روان تر کار می کند https://www.ebay.com/sch/i.html؟_from=R40&_trksid=m570.l1313 & _nkw = تمشک+پی+کیت و _sacat = 0

- صفحه نمایش ال سی دی. من از صفحه لپ تاپ قدیمی خود استفاده کردم ، بنابراین فقط نیاز به خرید درایور LVDS برای آن و منبع تغذیه https://www.ebay.com/sch/i.html؟_from=R40&_trksid=m570.l1313&_nkw=hdmi+ دارم راننده+LVDS+برد & _sacat = 0

-جعبه پلاستیکی برای نگهداری لوازم الکترونیکی

- حسگر حرکت مادون قرمز منفعل

- حسگر دما/رطوبت AM2302

- چسباننده پلاستیکی سیاه و سفید برای قاب LCD

- کابل های مختلف (HDMI ، 5.5 میلی متر برای تغذیه DC ، کابل های بلوز بدون سربند ، …)

مرحله 2: ایجاد صفحه نمایش LCD

ایجاد صفحه نمایش LCD
ایجاد صفحه نمایش LCD
ایجاد صفحه نمایش LCD
ایجاد صفحه نمایش LCD
ایجاد صفحه نمایش LCD
ایجاد صفحه نمایش LCD

من از صفحه LCD لپ تاپ قدیمی و قدیمی خود استفاده کردم. چندین آموزش در مورد نحوه انجام این کار وجود دارد ، من این یکی را دنبال کردم:

www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-y-your-broken-Lap/

من جلد لپ تاپ قدیمی خود را جدا کردم ، صفحه LCD را بیرون آوردم و سپس برد مناسب راننده LVDS را سفارش دادم. من کد محصول را که در پشت LCD یافت می شود به فروشنده ارائه دادم ، در مورد من LP171WE3 (TL) (A2) است - برچسب پایین سمت راست را در تصویر آخر ببینید ، و سپس LVDS مناسب را برای من ارسال کرد. لطفاً توجه داشته باشید ، شما همچنین باید منبع تغذیه صفحه نمایش را داشته باشید ، بنابراین از فروشنده بخواهید آن را نیز ارسال کند. من همچنین یک جعبه پلاستیکی زیبا با ابعاد 14.5 × 7.5 × 2 سانتی متر خریدم که به خوبی روی درایور قرار گرفته و آن را به پشت LCD متصل می کنم.

اکنون صفحه LCD دارای فریم فلزی است که ظاهر زیبایی ندارد. در ابتدا من آن را با رنگ مشکی رنگ اسپری کردم ، اما رنگ شروع به کندن کرد. بنابراین من چهار چسب اسلاید پلاستیکی سیاه رنگ که معمولاً برای بستن کاغذ استفاده می شود ، برداشتم ، آنها را برش دادم و آنها را برای پوشاندن قاب وصل کردم. این خوب به نظر می رسید ، بنابراین من تمام کابل ها را متصل کردم ، HDMI را به Raspberry Pi قدیمی و Voila وصل کردم - کار کرد! تصویری روی صفحه نمایش وجود داشت ، بنابراین من آماده بودم تا در مرحله بعدی حرکت کنم - چه اطلاعاتی را روی صفحه نمایش داده و چگونه آن را نشان دهم.

مرحله 3: راه اندازی نرم افزار

وقتی در اینترنت به دنبال سرنخ هایی درباره نحوه ساخت تقویم بودم ، از این صفحه https://dakboard.com/site الهام گرفتم. آنها محصول نهایی (صفحه نمایش ، رایانه و نرم افزار کار) را ارائه می دهند ، اما همچنین یک آموزش عالی برای راه حل DIY (https://blog.dakboard.com/diy-wall-display/) دارند. توصیه می کنم این آموزش را حداقل در قسمت اول با دستورالعمل های آماده سازی و راه اندازی سیستم در تمشک دنبال کنید ، به طوری که مرورگر صفحه وب مورد نظر را در بوت بارگذاری خودکار کند.

این به خوبی کار می کرد ، با این حال من به دنبال راه حلی بودم که می تواند مطابق میل من سفارشی تر شود. من تصمیم گرفتم سرور وب خودم را راه اندازی کنم و یک صفحه وب ایجاد کنم ، که علاوه بر تقویم اطلاعات اضافی را نشان می دهد. من Wordpress.org را انتخاب کردم ، زیرا مستندات آن خوب است و از پشتیبانی خوب و جامعه وسیعی برای کمک به شما برخوردار است. در اینجا نحوه نصب وردپرس روی رزبری پای آمده است: https://projects.raspberrypi.org/fa/projects/lamp-web-server-with-wordpress. با نصب وردپرس ، زمان طراحی صفحه اصلی من فرا رسید. می توانید از یکی از بسیاری از تم های ارائه شده یا طراحی از ابتدا استفاده کنید. به هر حال ، برخی از دانش برنامه نویسی HTML برای این مورد مورد نیاز است.

من صفحه خود را طوری طراحی کرده ام که در سمت چپ تقویم (https://sl.wordpress.org/plugins/google-calendar-events/) نمایش داده می شود ، در حالی که در سمت راست زمان و تاریخ (https://www.timeanddate.com/clocks/free.html و https://www.arclab.com/fa/kb/htmlcss/display-date-time-javascript-php-ssi.html). پیش بینی آب و هوا از این صفحه (https://www.1a-vreme.si/vremensko-okno/) است که ویجت پیش بینی شهرهای اسلوونی را ارائه می دهد ، اما من حدس می زنم که ویجت های سایر کشورها نیز در اینترنت یافت می شود. درجه حرارت با استفاده از حسگر AM2302 (https://www.ebay.com/sch/i.html؟_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0) جمع آوری می شود ، همانطور که در پایان این فصل توضیح داده شده است. در پایین یک تایمر شمارش معکوس روزانه ساده وجود دارد که نشان می دهد چند روز به رویداد باقی مانده است (برای فرزندانم جالب است بدانند چند روز باید منتظر چیزی بمانند). در لبه بالا سمت راست افزونه MetaSlider (https://wordpress.org/plugins/ml-slider/) قرار دارد که به صورت تصادفی به تصاویر منتخب خانواده من می رود. علاوه بر این ، از افزونه Background Slider (https://sl.wordpress.org/plugins/background-slider-master/) برای نشان دادن چند تصویر تصادفی برای پس زمینه زیبا استفاده کرده ام.

همانطور که قبلاً ذکر شد ، دمای داخلی با استفاده از سنسور AM2302 جمع آوری می شود. آموزش های زیادی در مورد نحوه افزایش دما وجود دارد ، من از این یکی پیروی کردم: https://www.modmypi.com/blog/am2302-temphumidity-sensor. بعداً این سنسور را به Raspberry Pi دیگری منتقل کردم که Home Assistant روی آن کار می کرد ، زیرا خواندن و انتشار مقادیر با استفاده از جزء حسگر DHT آسان تر است (https://www.home-assistant.io/components/sensor.dht/) به Home Assistant همچنین می تواند دمای بیرون را با استفاده از اجزای مختلف آب و هوا جمع آوری کند ، من از جزء YR.no (https://www.home-assistant.io/components/sensor.yr/) استفاده کردم. با این کار ، من یک اسکریپت اتوماسیون نوشتم تا دمای داخل/خارج از این اجزا را جمع آوری کرده و آنها را در یک فایل متنی بنویسم ، که سپس در تقویم دیوار من نمایش داده می شود. برای کسب اطلاعات بیشتر در مورد دستیار خانگی ، به صفحه اصلی (https://www.home-assistant.io/) مراجعه کنید.

مرحله 4: اختیاری - خاموش کردن صفحه نمایش

در حال حاضر ما تقویم خود را تنظیم کرده و اجرا می کنیم ، همانطور که دوست داریم. اما ما نمی خواهیم صفحه نمایش 24 ساعته و 7 روز روشن شود. ما فقط می خواهیم آن را روشن کنیم ، وقتی کسی در خانه است. همچنین ما نمی خواهیم آن را در نیمه شب روشن کنیم ، وقتی به توالت می رویم ، خیلی روشن است! بنابراین ما یک سنسور مادون قرمز را برای اطلاع زمانی که شخصی در مقابل آن ایستاده است ، متصل می کنیم و محدودیت های زمانی را برای روشن شدن زمان اضافه می کنیم.

لطفاً توجه داشته باشید که مهارت های برنامه نویسی من نسبتاً محدود است ، بنابراین موارد زیر نمی تواند مطلوب باشد ، زیرا من آن را از انجمن ها و آموزش های آنلاین مختلف انتخاب کرده ام ، اما اساساً کار می کند. با این وجود ، از هر توصیه ای هنوز استقبال می شود. ابتدا با آزمایش روشن یا خاموش کردن مانیتور به صورت دستی شروع می کنیم. برای این کار ، ما دو فایل (به عنوان مثال monitor_on.sh و monitor_off.sh) ایجاد می کنیم و چند کد در آن می نویسیم. ساده ترین راه برای انجام این کار این است که با استفاده از SSH وارد رزبری خود شوید و تایپ کنید

sudo nano monitor_on.sh

و کد زیر را تایپ کنید

tvservice -ترجیح داده شده ؛

startx/usr/bin/graphical_launcher `fgconsole`

CTRL+X را برای ذخیره و خروج فشار دهید ، سپس فایل دوم را ایجاد کنید

sudo nano monitor_off.sh

و کد زیر را تایپ کنید

tvservice -خاموش؛

مجدداً CTRL+X را برای ذخیره و خروج فشار دهید. این فایلهای تازه ایجاد شده را اجرایی کنید:

sudo chmod +x monitor_on.sh

sudo chmod +x monitor_off.sh

حالا برای امتحان اگر این دستورات کار می کنند ، تایپ کنید

sudo./monitor_off.sh

sudo./monitor_on.sh

اکنون مانیتور باید مطابق آن خاموش و روشن شود. متوجه شده ام که در رزبری پای 2 تقریبا 10 ثانیه طول کشید تا مانیتور روشن شود. در رزبری پای 3 1-2 ثانیه طول می کشد. در مرحله بعد ما یک سنسور مادون قرمز را متصل می کنیم که این اسکریپت ها را فعال می کند. باز هم ، آموزش های زیادی برای تنظیم Raspberry Pi و PIR وجود دارد ، من این یکی را دنبال کردم: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/. در اصل ، یک فایل با استفاده از ویرایشگر نانو (به عنوان مثال motion_sensor.py) ایجاد کنید و کد پایتون مناسب را در آن تایپ کنید. در زیر نمونه پرونده من آمده است:

وارد کردن RPi. GPIO به عنوان GPIOimport timeimport sysimport subprocessimet datetime as dtimport osGPIO.setwarnings (False) # GPIO.setmode (GPIO. BOARD) GPIO.setmode (GPIO. BCM) GPIO.setup (17، GPIOt_min) time.time () SHUTOFF_DELAY = 180 # ثانیه در حالی که درست است: i = GPIO.input (17) if i == 0: # هنگامی که خروجی سنسور حرکت کم است ، مانیتور را خاموش کنید اگر خاموش و زمان خاموش نباشد. time ()> (last_motion_time + SHUTOFF_DELAY): چاپ "بدون مزاحم" ، iturned_off = Truetime.sleep (1) subprocess.call (['/home/pi/monitor_off.sh'] ، shell = True) elif i == 1: #هنگام خروجی از سنسور حرکت HIGH است ، صفحه را روی ON چاپ کنید "نفوذگر شناسایی شد" ، itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () در صورت turn_off و dt.datetime.now (). ساعت> 5 و dt.datetime. در حال حاضر (). ساعت <23: turn_off = Falsesubprocess.call (['/home/pi/monitor_on.sh'] ، shell = True) اگر _name_ == '_main _': try: main () به جز KeyboardIntruptrupt: GPIO.cleanup ()

توجه داشته باشید که "GPIO.setup (17، GPIO. IN)" نشان می دهد که پین خروجی از PIR به پین 17 در رزبری پای متصل است. کدام پین بستگی دارد که آیا GPIO.setmode (GPIO. BOARD) یا GPIO.setmode (GPIO. BCM) را تعریف می کنید. تفاوت در اینجا توضیح داده شده است: https://raspberrypi.stackexchange.com/questions/12966/ تفاوت-بین-تخته-و-سانتی متر-برای-شماره-شماره-گپیو من # جلوی GPIO. BOARD دارم ، بنابراین نادیده گرفته می شود و GPIO. BCM استفاده می شود.

به خط توجه کنید

SHUTOFF_DELAY = 180 #ثانیه

در اینجا بیان شده است که مدت زمانی که مانیتور از آخرین حرکت تشخیص داده شده است ، قبل از خاموش شدن روشن است. این مفید است زیرا من نمی خواهم وقتی مانیتور از کنار آن عبور می کند ، آن را خاموش/روشن کند ، اما می خواهم مدتی قبل از خاموش بودن آن را روشن نگه دارم. من فاصله 180 ثانیه را انتخاب کرده ام ، به طوری که مانیتور حدود 3 دقیقه پس از تشخیص آخرین حرکت خاموش می شود.

در نهایت ، این خط

اگر turn_off و dt.datetime.now (). ساعت> 6 و dt.datetime.now (). ساعت <23:

می گوید که مانیتور فقط بین 6:00 تا 23:00 روشن می شود ، بنابراین در طول شب مزاحمتی برای من ایجاد نمی کند. خطوط

چاپ "بدون مزاحم" ، i

و

چاپ "مزاحم شناسایی شد" ، من

فقط برای آزمایش اسکریپت هستند ، می توانید بعداً وقتی کار می کنید آنها را حذف کنید. حالا اسکریپت را آزمایش کنید:

sudo python motion_sensor.py

در صورت تکان دادن بالای سنسور ، باید پیامهای "نفوذی شناسایی شد" را مشاهده کنید ، در غیر این صورت "بدون مزاحم" خواهد بود. هنگامی که این اسکریپت آزمایش شده و در حال کار است ، آن را طوری تنظیم کنید که هنگام بوت شدن شروع شود:

sudo nano ~/.config/lxsession/LXDE-pi/autostart

و خط زیر را اضافه کنید

sudo/usr/bin/python /home/pi/motion_sensor.py

البته شما باید نام فایل صحیح اسکریپت پایتون را که ایجاد کرده اید ، مشخص کنید.

مرحله 5: تقویم را آویزان کنید

با تمام تنظیمات ، زمان آن رسیده است که تقویم را به دیوار آویزان کنید!

در ابتدا به این فکر می کردم که رزبری پای را در پشت صفحه LCD پنهان کنم ، به طوری که فقط به یک کابل (برق DC) نیاز باشد. اما از آنجا که تمشک روی 5 ولت و صفحه نمایش LCD روی 12 ولت کار می کند ، به ترانسفورماتور اضافی نیاز دارم. همچنین ، جعبه تمشک نسبتاً ضخیم است ، به این معنی که LCD حدود 3 سانتی متر از دیوار فاصله دارد. بنابراین این را رها کردم و فقط وسایل الکترونیکی LCD را پشت LCD گذاشتم ، به طوری که اکنون کمتر از 1 سانتی متر از دیوار فاصله دارد. من دو کابل 5 متری ، یکی HDMI و دیگری 5 ، 5 میلی متر برای منبع تغذیه DC خریداری کردم. هر دو کابل مانند دیوار سفید هستند ، به این معنی که آنها چندان برجسته نیستند. من LCD را روی دیوار نصب کرده و تمشک را روی یخچال در دیوار مقابل قرار داده ام ، بنابراین اساساً پنهان است ، اما هنوز به راحتی قابل دسترسی است.

توصیه شده: