جدول المحتويات:

تقويم الحائط الذكي: 5 خطوات
تقويم الحائط الذكي: 5 خطوات

فيديو: تقويم الحائط الذكي: 5 خطوات

فيديو: تقويم الحائط الذكي: 5 خطوات
فيديو: اتهموها باستغلال الموقف.. ممرضة أميركية تنشر فيديو غريب من داخل مستشفى 2024, يوليو
Anonim
تقويم الحائط الذكي
تقويم الحائط الذكي

اعتدت أنا وزوجتي الحصول على تقويم حائط ورقي كلاسيكي ، والذي حددنا فيه التواريخ المهمة. نستخدم أيضًا تقويم Google على هواتفنا الذكية لتمييز الأحداث ، وهذا يعني العمل المزدوج. لذلك قررت إنشاء نوع من تقويم الحائط الذكي ، والذي سيعرض تذكيراتنا وأحداثنا وبعض البيانات الأخرى. نظرًا لوجود العديد من الأجزاء الإلكترونية القديمة في الجوار ، كان هدفي هو إعادة استخدامها قدر الإمكان وإنشاء التقويم بأقل تكلفة ممكنة.

سأوضح لك في هذا البرنامج التعليمي ، كيفية إنشاء تقويم حائط ذكي ، وعرض الأحداث من عدة حسابات في Google. سيعرض أيضًا الوقت والتاريخ والطقس ودرجة الحرارة وبعض المعلومات الإضافية. سيتم تشغيله بواسطة كمبيوتر Raspberry Pi مع مستشعر حركة مستشعر الأشعة تحت الحمراء السلبية (PIR) متصل به ، بحيث يتم تشغيل الشاشة ، عند اكتشاف الحركة في الغرفة ، ولكن يتم إيقاف تشغيلها بعد بضع دقائق من عدم النشاط. يعتمد هذا البرنامج التعليمي على العديد من البرامج التعليمية الأخرى التي وجدتها على الإنترنت وسأعطي الروابط إليها لفهم أفضل. هناك حاجة إلى بعض المعرفة الأساسية بالبرمجة (HTML ، Python ، …).

الخطوة 1: الأجهزة

كما ذكرنا من قبل ، حاولت إعادة استخدام العديد من الأجزاء الإلكترونية القديمة لتقليل التكاليف. لكن بعض العناصر كان عليّ شرائها ، لذلك سأدرج كل ما هو ضروري للبناء.

- مجموعة Raspberry Pi. في البداية استخدمت نموذجي القديم 2 من مشروع آخر. لقد نجحت ، لكن تحرير صفحة الويب وإعادة تحميلها استغرق مني الكثير من الوقت ، لذلك قمت في النهاية بالتبديل إلى النموذج 3 ، الذي يعمل بطلاقة أكثر https://www.ebay.com/sch/i.html؟_from=R40&_trksid=m570.l1313 & _nkw = Raspberry + pi + kit & _sacat = 0

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

- صندوق تخزين بلاستيك للإلكترونيات

- مستشعر الحركة بالأشعة تحت الحمراء السلبية

- مستشعر درجة الحرارة / الرطوبة AM2302

- رابط منزلق بلاستيكي أسود لإطار LCD

- كبلات مختلفة (HDMI ، 5.5 مم لتيار مستمر ، كابلات توصيل غير ملحومة ، …)

الخطوة 2: إنشاء شاشة LCD

إنشاء شاشة LCD
إنشاء شاشة LCD
إنشاء شاشة LCD
إنشاء شاشة LCD
إنشاء شاشة LCD
إنشاء شاشة LCD

لقد استخدمت شاشة LCD من جهاز الكمبيوتر المحمول القديم. هناك العديد من البرامج التعليمية حول كيفية القيام بذلك ، لقد اتبعت هذا:

www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-of-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/). أوصيك باتباع هذا البرنامج التعليمي ، على الأقل بالنسبة للجزء الأول مع الإرشادات الخاصة بإعداد النظام وإعداده على Raspberry ، بحيث يقوم المستعرض تلقائيًا بتحميل صفحة الويب المطلوبة عند بدء التشغيل.

لقد نجح هذا بشكل جيد ، ومع ذلك كنت أبحث عن بعض الحلول ، والتي يمكن تخصيصها بشكل أكبر وفقًا لرغباتي. لقد قررت إعداد خادم الويب الخاص بي وإنشاء صفحة ويب تعرض معلومات إضافية إلى جانب التقويم. لقد اخترت Wordpress.org ، لأنه موثق جيدًا ولديه دعم جيد ومجتمع كبير لمساعدتك. إليك البرنامج التعليمي حول كيفية تثبيت Wordpress على Raspberry Pi: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress. مع تثبيت Wordpress ، حان الوقت لتصميم صفحتي الرئيسية. يمكنك استخدام أحد السمات العديدة المتوفرة أو التصميم من البداية. على أي حال ، هناك حاجة إلى بعض المعرفة ببرمجة HTML لهذا الغرض.

لقد قمت بتصميم صفحتي بحيث يظهر التقويم على الجانب الأيسر (https://sl.wordpress.org/plugins/google-calendar-events/) ، بينما يتم عرض الوقت والتاريخ على الجانب الأيمن (https://www.timeanddate.com/clocks/free.html و https://www.arclab.com/en/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/). مع ذلك ، قمت بكتابة برنامج نصي للتشغيل الآلي لجمع درجة الحرارة الداخلية / الخارجية من هذه المكونات وكتابتها في ملف نصي ، والذي يتم عرضه بعد ذلك في تقويم الحائط الخاص بي. لمزيد من المعلومات حول Home Assistant ، راجع الصفحة الرئيسية (https://www.home-assistant.io/).

الخطوة 4: اختياري - إيقاف تشغيل الشاشة

الآن لدينا التقويم الخاص بنا تم إعداده وتشغيله ، بالطريقة التي نحبها. لكننا لا نريد تشغيل الشاشة على مدار الساعة طوال أيام الأسبوع. نحن نريده فقط عندما يكون شخص ما في المنزل. كما أننا لا نريد تشغيله في منتصف الليل ، عندما نذهب إلى المرحاض ، يكون الجو ساطعًا للغاية! لذلك سنقوم بتوصيل مستشعر الأشعة تحت الحمراء لنلاحظ ، عندما يقف شخص ما أمامه ، ونضيف بعض الحدود الزمنية ، عندما يجب تشغيله.

يرجى ملاحظة أن مهاراتي في البرمجة محدودة نوعًا ما ، لذلك لا يمكن أن يكون ما يلي هو الأمثل ، لأنني اخترته من العديد من المنتديات والبرامج التعليمية عبر الإنترنت ، ولكنه يعمل بشكل أساسي. ومع ذلك ، لا تزال أي توصية موضع ترحيب. سنبدأ أولاً باختبار لتشغيل / إيقاف تشغيل الشاشة يدويًا. لذلك ، سننشئ ملفين (على سبيل المثال monitor_on.sh و monitor_off.sh) ونكتب بعض التعليمات البرمجية فيهما. أسهل طريقة للقيام بذلك هي تسجيل الدخول إلى Raspberry الخاص بك باستخدام SSH والكتابة

sudo نانو monitor_on.sh

واكتب الكود التالي

خدمة التلفزيون - المفضلة ؛

startx / usr / bin / graphical_launcher `fgconsole`

اضغط على CTRL + X للحفظ والخروج ، ثم قم بإنشاء الملف الثاني

sudo نانو monitor_off.sh

واكتب الكود التالي

خدمة التلفزيون - إيقاف ؛

مرة أخرى ، اضغط على CTRL + X للحفظ والخروج. اجعل هذه الملفات المنشأة حديثًا قابلة للتنفيذ:

sudo chmod + x monitor_on.sh

sudo chmod + x monitor_off.sh

الآن لمحاولة ما إذا كانت هذه الأوامر تعمل ، اكتب

sudo./monitor_off.sh

sudo./monitor_on.sh

يجب الآن إيقاف تشغيل جهاز العرض وتشغيله وفقًا لذلك. لقد لاحظت أنه في Raspberry Pi 2 ، استغرق الأمر 10 ثوانٍ تقريبًا حتى يتم تشغيل الشاشة. في Raspberry Pi 3 ، يستغرق الأمر من ثانية إلى ثانيتين. بعد ذلك ، سنقوم بتوصيل مستشعر الأشعة تحت الحمراء ، والذي سيؤدي إلى تشغيل هذه البرامج النصية. مرة أخرى ، هناك العديد من البرامج التعليمية حول كيفية إعداد Raspberry Pi و PIR ، لقد اتبعت هذا: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/. بشكل أساسي ، قم بإنشاء ملف باستخدام محرر nano (على سبيل المثال motion_sensor.py) واكتب كود Python المناسب فيه. فيما يلي مثال على ملفي:

استيراد RPi. GPIO مثل GPIOimport timeimport sysimport subprocessimport dtimport osGPIO.set warnings (False) # GPIO.setmode (GPIO. BOARD) GPIO.setmode (GPIO. BCM) GPIO.setup (17، GPIO. IN) #PIRturned_off = Falselast time.time () SHUTOFF_DELAY = 180 # ثانية بينما صحيح: i = GPIO.input (17) إذا كان i == 0: # عندما يكون الإخراج من مستشعر الحركة منخفضًا ، قم بإيقاف تشغيل الشاشة إذا لم يتم إيقاف تشغيله والوقت. time ()> (last_motion_time + SHUTOFF_DELAY): اطبع "No Intruders"، iturned_off = Truetime.sleep (1) subprocess.call (['/ home / pi / monitor_off.sh']، shell = True) elif i == 1: # عند الإخراج من مستشعر الحركة هو مرتفع ، قم بتشغيل الشاشة عند الطباعة "تم اكتشاف دخيل" ، itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () إذا تحولت إلى إيقاف و dt.datetime.now (). hour> 5 and dt.datetime. الآن (). hour <23: turn_off = Falsesubprocess.call (['/ home / pi / monitor_on.sh']، shell = True) إذا _name_ == '_main _': جرب: main () باستثناء KeyboardInterrupt: GPIO.cleanup ()

لاحظ أن "GPIO.setup (17، GPIO. IN)" يشير إلى أن طرف الإخراج من PIR متصل بالدبوس 17 على Raspberry Pi. أي طرف يعتمد على تحديد GPIO.setmode (GPIO. BOARD) أو GPIO.setmode (GPIO. BCM). يتم شرح الفرق هنا: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering. لدي # أمام GPIO. BOARD ، لذلك تم تجاهله واستخدام GPIO. BCM.

لاحظ الخط

SHUTOFF_DELAY = 180 # ثانية

مذكور هنا ، كم من الوقت يتم تشغيل الشاشة منذ اكتشاف آخر حركة ، قبل إيقاف تشغيلها. يعد هذا مفيدًا لأنني لا أرغب في إيقاف تشغيل / تشغيل الشاشة باستمرار عندما أسير بجوارها ، ولكني أرغب في الإبقاء عليها قيد التشغيل لبعض الوقت ، قبل إيقاف تشغيلها. لقد اخترت فترة 180 ثانية ، بحيث يتم إيقاف تشغيل الشاشة بعد حوالي 3 دقائق من اكتشاف الحركة الأخيرة.

أخيرًا ، هذا الخط

إذا تم إيقاف تشغيله و dt.datetime.now (). ساعة> 6 و dt.datetime.now (). ساعة <23:

تنص على أن الشاشة يتم تشغيلها فقط بين الساعة 6:00 و 23:00 ، لذلك لا تزعجني أثناء الليل. الخطوط

طباعة "لا الدخلاء" ، أنا

و

طباعة "تم الكشف عن دخيل" ، ط

لاختبار النص فقط ، يمكنك حذفها لاحقًا ، عندما تعمل. الآن اختبر البرنامج النصي:

sudo python motion_sensor.py

يجب أن ترى الرسائل "تم اكتشاف دخيل" ، إذا قمت بالتلويح فوق المستشعر ، وإلا فستكون "لا متسللين". عندما يتم اختبار هذا البرنامج النصي ويعمل ، اضبطه ليبدأ عند التمهيد:

sudo nano ~ /.config / lxsession / LXDE-pi / تشغيل تلقائي

وأضف السطر التالي

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

بالطبع يجب عليك تحديد اسم الملف الصحيح لبرنامج Python الذي قمت بإنشائه.

الخطوة 5: علق التقويم

مع كل الإعداد ، حان الوقت لتعليق التقويم على الحائط!

في البداية كنت أفكر في إخفاء Raspberry Pi خلف شاشة LCD ، بحيث تكون هناك حاجة إلى كابل واحد فقط (طاقة DC). ولكن نظرًا لأن Raspberry يعمل على 5V وشاشة LCD تعمل بجهد 12 فولت ، فسوف أحتاج إلى محول إضافي. كما أن علبة Raspberry سميكة إلى حد ما ، مما يعني أن شاشة LCD ستكون على مسافة 3 سنتيمترات من الحائط. لذلك تخليت عن هذا وتركت إلكترونيات LCD فقط خلف شاشة LCD ، بحيث أصبحت الآن على بعد أقل من سنتيمتر واحد من الحائط. لقد حصلت على كبلين بطول 5 أمتار ، أحدهما HDMI والآخر 5 ، 5 مم لمصدر طاقة التيار المستمر. كلا الكابلين أبيض ، مثل الحائط ، مما يعني أنهما ليسا بارزين كثيرًا. لقد قمت بتركيب شاشة LCD على الحائط ووضعت Raspberry فوق الثلاجة على الحائط المقابل ، لذا فهي مخفية بشكل أساسي ، ومع ذلك لا يزال من السهل الوصول إليها.

موصى به: