فهرست مطالب:

ساعت آموزش خواب کودکان: 6 مرحله (همراه با تصاویر)
ساعت آموزش خواب کودکان: 6 مرحله (همراه با تصاویر)

تصویری: ساعت آموزش خواب کودکان: 6 مرحله (همراه با تصاویر)

تصویری: ساعت آموزش خواب کودکان: 6 مرحله (همراه با تصاویر)
تصویری: خواب فرزندت را با این تغییرات ساده طولانی تر و عمیق تر کن |خواب کودک 2024, ژوئن
Anonim
ساعت آموزش خواب کودکان
ساعت آموزش خواب کودکان
ساعت آموزش خواب کودکان
ساعت آموزش خواب کودکان
ساعت آموزش خواب کودکان
ساعت آموزش خواب کودکان
ساعت آموزش خواب کودکان
ساعت آموزش خواب کودکان

من به یک ساعت نیاز داشتم تا به دوقلوهای 4 ساله ام کمک کنم تا مدت زمان بیشتری بخوابند (من به اندازه کافی مجبور بودم شنبه ها ساعت 5:30 صبح بیدار شوم) ، اما آنها هنوز نمی توانند زمان بخوانند. پس از مرور چند مورد در یک سایت خرید بسیار محبوب ، به این فکر کردم که "ساختن یکی از آنها چقدر سخت خواهد بود ؟!"

بنابراین در اینجا چیزی است که من تصور می کردم در این پروژه می خواستم. از برخی از LED های RGB استفاده می کند (بیشتر به این دلیل که حدود پنجاه مورد از آنها را در پروژه دیگری دارم) برای نمایش سه رنگ مختلف. قرمز به معنای بازگشت به خواب است ، هنوز زود است که از خواب بیدار شوید. رنگ زرد به این معنی است که آنها می توانند بلند شوند و بی سر و صدا در اتاق خود بازی کنند. سبز ، البته به این معنی است که می توانید بلند شوید. من همچنین می خواستم بتوانم زمان را تنظیم کنم ، زیرا دوست دارم در برخی از روزها بیشتر بخوابم (آخر هفته/تعطیلات در مقابل روزهای هفته و موارد دیگر).

تدارکات

Raspberry Pi Zero W

دو عدد LED RGB

شش مقاومت 220 اهم

فایل ها (.stl ، python ، html) در اینجا یافت می شوند

پیچ های کوچک ، سیم و قطعات کوچک در صورت نیاز.

مرحله 1: چاپ سه بعدی

پرینت سه بعدی
پرینت سه بعدی
پرینت سه بعدی
پرینت سه بعدی
پرینت سه بعدی
پرینت سه بعدی

دخترم واقعاً به تک شاخ علاقه دارد ، بنابراین برای این پروژه من ریمیکس Unicorn Nightlight Riven02 را که ریمیکسی از Apachcreation's Unicorn Trophy است ، که در Thingiverse.com یافت می شود و تحت مجوز غیر تجاری Creative Commons استفاده می شود ، مجدداً ترکیب کردم. من پایه تک شاخ را طوری تغییر دادم که سیم برق را برای تمشک پای صفر مناسب کند. اتفاقاً تعدادی AMZ3D Red PLA در اطراف من قرار داشت ، بنابراین پایه و سر تکشاخ قرمز خواهد بود. من برای شاخ از PLA شفاف/شفاف استفاده کردم. فایلهای.stl و تنظیماتی که استفاده کردم عبارتند از:

Unicorn.stl

  • ارتفاع لایه: 0.02
  • ضخامت دیوار:.8
  • تعداد خط دیوار: 2
  • پر کردن: 15
  • الگوی پر کردن: شبکه

UnicornBase.stl

  • ارتفاع لایه: 0.02
  • ضخامت دیوار:.8
  • تعداد خط دیوار: 2
  • پر کردن: 15
  • الگوی پر کردن: شبکه

Horn.stl

  • ارتفاع لایه: 0.02
  • ضخامت دیوار: 0.8
  • تعداد خط دیوار: 3
  • پر کردن: 0

مرحله 2: مدار

مدار
مدار
مدار
مدار
مدار
مدار

مدار بسیار آسان است. من شش پین مختلف GPIO را برای کنترل روشن/خاموش رنگهای مختلف RGB انتخاب کردم. آن پین ها و رنگهای LED مربوطه عبارتند از:

  • پین 11 را به RGB 1 RED وصل کنید
  • پین 13 را به RGB 1 GREEN وصل کنید
  • پین 15 را به RGB 1 BLUE وصل کنید
  • پین 16 را به RGB 2 RED وصل کنید
  • پین 18 را به RGB 2 GREEN وصل کنید
  • 36 را به RGB 2 BLUE وصل کنید
  • 39 را به زمین وصل کنید

هر پین از طریق یک مقاومت محدود کننده جریان 220 اهم (به استثنای زمین) به مقاومت متصل می شود (البته به استثنای زمین.) من مقاومت را در خط لحیم کرده و آن را با لوله های حرارتی کوچک می کنم.

مرحله 3: آماده سازی تمشک پای

من می خواستم بتوانم زمان هایی را برای ساعت مربی خواب با استفاده از رابط وب تعیین کنم. بنابراین من نیاز به راه اندازی Apache و PHP Server بر روی Raspberry Pi داشتم. اولین کاری که همیشه باید هنگام نصب نرم افزار جدید بر روی رزبری پای انجام دهید این است که با تایپ کردن مطمئن شوید که به روز است:

sudo apt-get update

پس از آن ، ما واقعاً می توانیم وارد کار شویم. این کار را با نصب Apache2 انجام می دهیم:

sudo apt -get apache2 -y را نصب کنید

این باید سرور وب آپاچی را نصب کند. می توانید با استفاده از یک مرورگر در Raspberry pi و حرکت به آدرس زیر این مورد را آزمایش کنید.

localhost/

یا از مرورگر رایانه دیگری به آدرس IP رزبری پای خود بروید. برای پیدا کردن نوع آدرس IP خود:

نام میزبان -I

انجام این کارها به صفحه پیش فرض وب سرور Apache منتهی می شود. این را می توان با جایگزینی index.html که در فهرست/var/www/html/قرار دارد تغییر داد. می توان آن را با فایل index.html من جایگزین کرد.

سپس وب سرور Apache را راه اندازی می کنیم تا بتواند فایل های PHP را اجرا کند. با تایپ کردن شروع کنید:

sudo apt-get php libapache2-mod-php -y را نصب کنید

اکنون باید بتوانید فایل sleepset.php را با فایل index.html در/var/www/html قرار دهید.

برای حرکت به این صفحه در شبکه خود ، باید Raspberry Pi خود را با یک آدرس IP ثابت تنظیم کنید (یا فقط می توانید سعی کنید آدرس IP جدید را هنگامی که شبکه شما هر از چند گاهی آن را تمدید می کند ، بفهمید). برای این کار باید چند فایل را ویرایش کنید. شما باید فایل /etc/dhcpcd.conf را با موارد زیر ویرایش کنید:

رابط wlan0

static ip_address = 192.168.1.static routers = 192.168.1.1 static_name_server_servers = 192.168.1.1

اطلاعات شبکه خود را جایگزین کنید. تنها کاری که باید انجام دهید این است که راه اندازی مجدد کنید.

راه اندازی مجدد sudo

محل قرارگیری فایل ها از پیوند درایو Google باید به شرح زیر باشد:

  • index.html و sleepset.php باید در فهرست/var/www/html قرار گیرد
  • sleepset.txt و sleeptrainer1_1.py باید در فهرست/home/pi/pythoncode قرار گیرند (نکته: باید این فهرست را ایجاد کنید)

پس از قرار دادن این فایلها در فهرست صحیح ، فایل rc.local باید اصلاح شود تا برنامه sleeptrainer1_1.py در هنگام راه اندازی اجرا شود. برای تغییر فایل rc.local به دسترسی سطح ریشه نیاز دارید ، بنابراین تایپ کنید:

sudo nano /etc/rc.local

در ویرایشگر ، به پایین بروید و درست قبل از خط خروج 0 ، اضافه کنید:

python /home/pi/pythoncode/sleeptrainer1_1.py &

در اینجا دو نکته را باید به خاطر بسپارید:

  1. از مسیر فایل مطلق استفاده کنید تا LINUX فکر نکند که فایل sleeptraner1_1.py در همان فهرست rc.local قرار دارد.
  2. انتهای (&) را در پایان فراموش نکنید. این به LINUX اجازه می دهد تا این فایل را در پس زمینه اجرا کرده و راه اندازی را ادامه دهد.

اکنون ، فایل را با تایپ ctrl-x و سپس y هنگام درخواست ذخیره و سپس ENTER ذخیره کنید.

سپس sudo reboot را تایپ کنید.

باید در جایی در اینجا ذکر شود که (حداقل) باید گذرواژه رزبری پای خود را با استفاده از دستور passwd تغییر دهید. اگر هنوز این کار را نکرده اید ، اکنون زمان مناسبی است.

مرحله 4: کد

در زیر کد فایل sleeptrainer1_1.py آمده است. من از یک شی datetime برای مقایسه زمان ها با زمان هایی که در فایل sleepset.txt خوانده می شود استفاده کردم. فایل متنی به سادگی دو خط است ، اولی به مدت یک ساعت ، دوم به مدت یک دقیقه. sleeptrainer1_1.py بین تکرارهای حلقه یک دقیقه می خوابد تا پردازنده را متصل نکند. چراغ سبز در ابتدا بیش از حد روشن می شد ، بنابراین من از مدولاسیون عرض پالس برای کم نور کردن آن در هنگام استفاده از رنگ قرمز برای زرد استفاده کردم.

کد پایتون:

RPi. GPIO را به عنوان GPIO وارد کنید

از واردات datetime datetime به عنوان dt زمان واردات GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) red1 = 11 red2 = 16 green1 = 13 green2 = 18 blue1 = 15 blue2 = 36 GPIO.setup (red1، GPIO. OUT) GPIO.setup (red2، GPIO. OUT) GPIO.setup (green1، GPIO. OUT) GPIO.setup (green2، GPIO. OUT) GPIO.setup (blue1، GPIO. OUT) GPIO.setup (blue2، GPIO. OUT) p1 = GPIO. PWM (green1، 100) p2 = GPIO. PWM (green2، 100) def readset (): setfile = open ("/home/pi/pythoncode/sleepset.txt"، 'r') a = setfile readline () b = setfile.readline () a = int (a) b = int (b) بازگشت a ، b def ledlight (رنگ): if (color == "قرمز"): GPIO.output (red1 ، GPIO HIGH) GPIO.output (red2، GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blue1، GPIO. LOW) GPIO.output (blue2، GPIO. LOW) elif (color == "آبی"): GPIO.output (red1، GPIO. LOW) GPIO.output (red2، GPIO. LOW) p1.stop () p2.stop () GPIO.output (blue1، GPIO. HIGH) GPIO.output (blue2، GPIO HIGH) elif (color == "green"): GPIO.output (red1، GPIO. LOW) GPIO.output (red2، GPIO. LOW) p1.start (100) p2.start (100) GPIO.output (blue1 ، GPIO. LOW) GPIO.output (blue2، GPIO. LOW) elif (رنگ == "زرد"): p1.start (60) p2.start (60) GPIO.output (red1، GPIO. HIGH) GPIO.output (red2، GPIO. HIGH) GPIO.output (blue1، GPIO. LOW) GPIO.output (blue2، GPIO. LOW) elif (color == "off"): GPIO.output (red1، GPIO. LOW) GPIO.output (red2، GPIO. LOW) GPIO.output (blue1، GPIO. LOW) GPIO.output (blue2، GPIO. LOW) p1.stop () p2.stop () while True: settime = readset () ساعت ، دقیقه = settime اگر دقیقه == 0: اگر dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، ساعت -2) <dt.now () <dt (dt.now ().year، dt.now (). month، dt.now (). day، hour-1، minute+30): ledlight ("قرمز") elif dt (dt.now (). year، dt.now () ماه. روز ، ساعت ، دقیقه): ledlight ("زرد") elif dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، ساعت ، دقیقه)) <dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، ساعت+1 ، دقیقه): ledlight ("سبز") دیگر: ledlight ("خاموش") elif dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، هو ur-2) <dt.now () <dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، ساعت ، دقیقه -30): چراغ روشنایی ("قرمز") elif dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، ساعت ، دقیقه -30) <dt.now () <dt (dt.now () سال ، dt.now (). ماه ، dt.now (). روز ، ساعت ، دقیقه): ledlight ("زرد") elif dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، ساعت ، دقیقه) <dt.now () <dt (dt.now (). سال ، dt.now (). ماه ، dt.now (). روز ، ساعت +1 ، دقیقه): چراغ روشنایی ("سبز") دیگر: ledlight ("خاموش") time.sleep (60)

فایل index.html یک فرم اولیه است که در HTML طراحی شده است. محتویات دو کادر متنی را گرفته و برای مدیریت فرم به فایل sleepset.php منتقل می کند. فایل PHP به سادگی فایل sleepset.txt را با داده های به روز شده بازنویسی می کند.

مرحله 5: همه چیز را با هم ترکیب کنید

همه اش را بگذار کنار هم
همه اش را بگذار کنار هم
همه اش را بگذار کنار هم
همه اش را بگذار کنار هم
همه اش را بگذار کنار هم
همه اش را بگذار کنار هم

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

  1. دو سوراخ کوچک به اندازه LED های RGB در پایین شاخ ایجاد کرده و LEDS را در این سوراخ ها قرار دهید.
  2. شاخ را داخل سوراخ سر شاخک قرار دهید و آن را بکشید تا محکم شود. برای محکم کردن شاخ از چسب داخلی استفاده کنید.
  3. Raspberry Pi Zero W را به قسمت داخلی سر شاخدار وصل کنید. (شاید از تفنگ چسب داغ استفاده کنید)
  4. سر تک شاخ را به پایه تک شاخ وصل کنید.
  5. سیم برق را وصل کرده و کل مجموعه را به دیوار وصل کنید.
  6. ساعت را وصل کنید

در این مرحله من یک ساعت آموزشی مربی خواب کودکان دارم.

مرحله 6: یک سال بعد…

یک سال بعد …
یک سال بعد …

یک سال بعد:

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

مواردی که در آینده برای بهبود آنها برنامه ریزی می کنم:

  • شاید اضافه کردن برخی سنسورها یا موارد دیگر مانند میکروفون و بلندگوها.
  • شاید کد را برای کار با بلندگو ویرایش کنید تا به عنوان زنگ ساعت استفاده شود زیرا بچه های من به زودی مدرسه را شروع می کنند.

توصیه شده: