Daftar Isi:

Jam Pelatihan Tidur Anak: 6 Langkah (dengan Gambar)
Jam Pelatihan Tidur Anak: 6 Langkah (dengan Gambar)

Video: Jam Pelatihan Tidur Anak: 6 Langkah (dengan Gambar)

Video: Jam Pelatihan Tidur Anak: 6 Langkah (dengan Gambar)
Video: Menggambar, Melukis & Mewarnai Kamar Tidur Yang indah untuk Anak dan Balita | Gambar Dasar #198 2024, Juli
Anonim
Jam Pelatihan Tidur Anak
Jam Pelatihan Tidur Anak
Jam Pelatihan Tidur Anak
Jam Pelatihan Tidur Anak
Jam Pelatihan Tidur Anak
Jam Pelatihan Tidur Anak
Jam Pelatihan Tidur Anak
Jam Pelatihan Tidur Anak

Saya membutuhkan jam untuk membantu anak kembar saya yang berusia 4 tahun belajar tidur sedikit lebih lama (saya sudah cukup harus bangun pukul 5:30 pagi pada hari Sabtu), tetapi mereka belum bisa membaca waktu. Setelah menelusuri beberapa item di situs belanja yang sangat populer, saya berpikir, "Seberapa sulit untuk membuatnya?!"

Jadi, inilah yang saya pikir saya inginkan dalam proyek ini. Itu akan menggunakan beberapa LED RGB (kebanyakan karena saya memiliki sekitar lima puluh dari mereka dari proyek lain) untuk menampilkan tiga warna berbeda. Merah berarti kembali tidur, terlalu dini untuk bangun. Kuning berarti mereka bisa bangun dan bermain dengan tenang di kamar mereka. Hijau, tentu saja berarti Anda bisa bangun. Saya juga ingin bisa menyesuaikan waktu, karena saya ingin tidur lebih lama di beberapa hari (Weekend/Liburan vs Weekdays dan semacamnya).

Perlengkapan

Raspberry Pi Nol W

Dua LED RGB

Enam resistor 220 Ohm

File (.stl, python, html) ditemukan di sini

Berbagai sekrup kecil, kabel, dan bagian kecil sesuai kebutuhan.

Langkah 1: Pencetakan 3D

Pencetakan 3D
Pencetakan 3D
Pencetakan 3D
Pencetakan 3D
Pencetakan 3D
Pencetakan 3D

Putri saya sangat menyukai unicorn, jadi untuk proyek ini saya me-remix Unicorn Nightlight milik Riven02, yang merupakan remix dari Unicorn Trophy milik Apachcreation, yang dapat ditemukan di Thingiverse.com dan digunakan di bawah lisensi Non-Komersial Creative Commons. Saya memodifikasi dasar unicorn agar sesuai dengan kabel daya untuk raspberry pi zero. Saya kebetulan memiliki beberapa AMZ3D Red PLA tergeletak di sekitar, sehingga dasar dan kepala unicorn akan berwarna merah. Saya menggunakan PLA bening/transparan untuk klakson. File.stl dan pengaturan yang saya gunakan adalah:

Unicorn.stl

  • Tinggi Lapisan: 0,02
  • Ketebalan Dinding:.8
  • Hitungan Garis Dinding: 2
  • Isi: 15%
  • Pola Isi: Kisi

UnicornBase.stl

  • Tinggi Lapisan: 0,02
  • Ketebalan Dinding:.8
  • Hitungan Garis Dinding: 2
  • Isi: 15%
  • Pola Isi: Kisi

Tanduk.stl

  • Tinggi Lapisan: 0,02
  • Ketebalan Dinding: 0.8
  • Hitungan Garis Dinding: 3
  • Isi: 0

Langkah 2: Sirkuit

Sirkuit
Sirkuit
Sirkuit
Sirkuit
Sirkuit
Sirkuit

Sirkuitnya cukup mudah. Saya memilih enam pin GPIO yang berbeda untuk mengontrol on/off untuk warna RGB yang berbeda. Pin tersebut dan Warna LED yang sesuai adalah:

  • Pin 11 ke RGB 1 MERAH
  • Pin 13 ke RGB 1 HIJAU
  • Pin 15 ke RGB 1 BIRU
  • Sematkan 16 ke RGB 2 MERAH
  • Pin 18 ke RGB 2 HIJAU
  • Pin 36 ke RGB 2 BIRU
  • Pin 39 ke Ground

Setiap pin dihubungkan ke resistor melalui resistor pembatas arus 220 ohm (dengan pengecualian ground tentu saja.) Saya menyolder resistor sesuai dan menutupinya dengan tabung heat shrink.

Langkah 3: Persiapan Raspberry Pi

Saya ingin dapat mengatur waktu untuk jam pelatih tidur menggunakan antarmuka web. Jadi saya perlu mengatur Apache dan PHP Server di Raspberry Pi. Hal pertama yang harus selalu Anda lakukan saat menginstal perangkat lunak baru pada Raspberry Pi adalah memastikannya mutakhir dengan mengetik:

sudo apt-get update

Setelah itu, kita benar-benar bisa turun ke bisnis. Kami akan melakukannya dengan menginstal Apache2:

sudo apt-get install apache2 -y

ini harus menginstal server web Apache. Anda dapat menguji ini dengan menggunakan browser di Raspberry pi dan menavigasi ke:

localhost/

atau dengan menavigasi dari browser komputer lain ke alamat ip Raspberry Pi Anda. Untuk menemukan jenis alamat ip Anda:

nama host -I

Melakukan ini akan mengarah ke halaman Apache Web Server default. Ini dapat diubah dengan mengganti index.html yang terletak di direktori /var/www/html/. Itu bisa diganti dengan file index.html saya sendiri.

Selanjutnya kita akan menyiapkan web server Apache untuk dapat menjalankan file PHP. Mulailah dengan mengetik:

sudo apt-get install php libapache2-mod-php -y

Anda sekarang dapat menempatkan file sleepset.php di /var/www/html dengan file index.html.

Untuk menavigasi ke halaman ini di jaringan Anda sendiri, Anda harus mengatur Raspberry Pi Anda dengan alamat ip statis (atau Anda bisa mencoba mencari tahu alamat ip baru saat jaringan Anda memperbaruinya sekarang dan nanti). Anda harus mengedit beberapa file agar ini berfungsi. Anda harus mengedit file /etc/dhcpcd.conf dengan yang berikut ini:

antarmuka wlan0

ip_address statis=192.168.1.router statis=192.168.1.1 static domain_name_servers=192.168.1.1

Ganti dengan informasi jaringan Anda. Satu-satunya hal yang perlu Anda lakukan sekarang adalah reboot.

sudo reboot

Penempatan file dari tautan Google drive harus sebagai berikut:

  • index.html dan sleepset.php harus ditempatkan di direktori /var/www/html
  • sleepset.txt dan sleeptrainer1_1.py harus ditempatkan di direktori /home/pi/pythoncode (petunjuk: Anda harus membuat direktori ini)

Setelah menempatkan file-file ini di direktori yang benar, file rc.local perlu dimodifikasi untuk menjalankan program sleeptrainer1_1.py saat startup. Anda memerlukan akses tingkat root untuk memodifikasi file rc.local, jadi ketik:

sudo nano /etc/rc.local

Di editor, gulir ke bawah, dan tepat sebelum baris 0, tambahkan:

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

Ada dua hal yang perlu diingat di sini:

  1. Gunakan path file absolut sehingga LINUX tidak berpikir bahwa file sleeptraner1_1.py terletak di direktori yang sama dengan rc.local.
  2. Jangan lupa ampersand (&) di akhir. ini akan memungkinkan LINUX untuk menjalankan file ini di latar belakang dan melanjutkan booting.

Sekarang, simpan file dengan mengetik ctrl-x dan kemudian y ketika diminta untuk menyimpan dan kemudian ENTER.

Kemudian ketik sudo reboot.

Harus disebutkan di suatu tempat di sini bahwa (minimal) Anda harus mengubah kata sandi Raspberry Pi Anda menggunakan perintah passwd. Jika Anda belum melakukannya, sekarang adalah saat yang tepat.

Langkah 4: Kode

Berikut adalah kode dari file sleeptrainer1_1.py. Saya menggunakan objek datetime untuk membandingkan waktu dengan yang dibaca di file sleepset.txt. File teks hanya dua baris, yang pertama untuk jam, yang kedua untuk menit. sleeptrainer1_1.py tidur selama satu menit di antara iterasi loop untuk tidak mengikat prosesor. Lampu hijau awalnya keluar terlalu terang, jadi saya menggunakan modulasi lebar pulsa untuk meredupkannya ketika digunakan dengan merah untuk membuat kuning.

Kode Python:

impor RPi. GPIO sebagai GPIO

dari datetime import datetime sebagai dt import time 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(hijau1, 100) p2 = GPIO. PWM(hijau2, 100) def readset(): setfile = open("/home/pi/pythoncode/sleepset.txt", 'r') a = setfile. readline() b = setfile.readline() a = int(a) b = int(b) mengembalikan a, b def ledlight(warna): if (warna == "merah"): GPIO.output(red1, GPIO. TINGGI) GPIO.output(red2, GPIO. HIGH) p1.stop() p2.stop() GPIO.output(blue1, GPIO. LOW) GPIO.output(blue2, GPIO. LOW) elif (warna == "biru"): GPIO.output(red1, GPIO. LOW) GPIO.output(red2, GPIO. LOW) p1.stop() p2.stop() GPIO.output(blue1, GPIO. HIGH) GPIO.output(blue2, GPIO. TINGGI) elif (warna == "hijau"): 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 (warna == "kuning"): p1.start(60) p2.start(60) GPIO.output(red1, GPIO. HIGH) GPIO.output (merah2, GPIO. HIGH) GPIO.output(blue1, GPIO. LOW) GPIO.output(blue2, GPIO. LOW) elif (warna == "mati"): 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() jam, menit = settime if menit == 0: if dt(dt.now().year, dt.now().month, dt.now().day, hour-2) < dt.now() < dt(dt.now().tahun, dt.now().month, dt.now().day, hour-1, minute+30): ledlight("red") elif dt(dt.now().year, dt.now().bulan, dt.now().hari, jam-1, menit+30) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().hari, jam, menit): ledlight("kuning") elif dt(dt.now().year, dt.now().month, dt.now().day, hour, minute) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour+1, minute): ledlight("green") else: ledlight("off") elif dt(dt.now().year, dt.now().month, dt.now().day, ho ur-2) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour, minute-30): ledlight("merah") elif dt(dt.now().year, dt.now().month, dt.now().day, hour, minute-30) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().hari, jam, menit): ledlight("kuning") elif dt(dt.now().year, dt.now().month, dt.now().hari, jam, menit) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour+1, menit): ledlight("hijau") lain: ledlight("off") time.sleep(60)

File index.html adalah bentuk dasar yang dirancang dalam HTML. Dibutuhkan isi dari dua kotak teks dan meneruskannya ke file sleepset.php untuk penanganan formulir. File PHP hanya menimpa file sleepset.txt dengan data yang diperbarui.

Langkah 5: Menyatukan Semuanya

Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya

Dengan pengkodean selesai dan semua bagian dicetak, saatnya untuk perakitan. Saya mengikuti langkah-langkah ini untuk menyatukan semuanya:

  1. Bor dua lubang kecil seukuran LED RGB di bagian bawah tanduk dan tempatkan LED di lubang ini.
  2. Tempatkan tanduk ke dalam lubang di kepala unicorn dan tarik sampai kencang. Gunakan lem dari dalam untuk mengamankan tanduk.
  3. Pasang Raspberry Pi Zero W ke bagian dalam kepala unicorn. (Menggunakan Hot Glue Gun Mungkin)
  4. Pasang kepala unicorn ke dasar unicorn.
  5. Pasang kabel daya, dan pasang seluruh unit ke dinding.
  6. Pasang jam.

Saat ini saya memiliki Jam Pelatih Tidur Anak yang berfungsi.

Langkah 6: Satu Tahun Kemudian…

Satu tahun kemudian …
Satu tahun kemudian …

Satu tahun kemudian:

Gadis-gadis saya tidur sedikit lebih lama. Kami sudah terbiasa bangun dengan anak-anak kecil di kamar kami berkata, "Ayah, lampunya hijau." dan itu bagus. Singkat cerita, kami hanya bangun jam 5:30 pagi di hari Sabtu ketika kami merencanakannya lagi.

Hal-hal yang saya rencanakan untuk ditingkatkan di masa depan:

  • Mungkin menambahkan beberapa sensor atau item lain seperti mikrofon dan speaker.
  • Mungkin mengedit kode agar berfungsi dengan speaker untuk digunakan sebagai jam alarm karena anak-anak saya akan segera mulai sekolah.

Direkomendasikan: