Mục lục:

Đồng hồ luyện ngủ cho trẻ em: 6 bước (có hình ảnh)
Đồng hồ luyện ngủ cho trẻ em: 6 bước (có hình ảnh)

Video: Đồng hồ luyện ngủ cho trẻ em: 6 bước (có hình ảnh)

Video: Đồng hồ luyện ngủ cho trẻ em: 6 bước (có hình ảnh)
Video: Cách tập cho bé tự ngủ (thực tế, không lý thuyết) 2024, Tháng mười một
Anonim
Đồng hồ luyện ngủ cho trẻ em
Đồng hồ luyện ngủ cho trẻ em
Đồng hồ luyện ngủ cho trẻ em
Đồng hồ luyện ngủ cho trẻ em
Đồng hồ luyện ngủ cho trẻ em
Đồng hồ luyện ngủ cho trẻ em
Đồng hồ luyện ngủ cho trẻ em
Đồng hồ luyện ngủ cho trẻ em

Tôi cần một chiếc đồng hồ để giúp cặp sinh đôi 4 tuổi của tôi học cách ngủ lâu hơn một chút (tôi đã phải thức dậy lúc 5:30 sáng vào các ngày thứ Bảy), nhưng chúng chưa thể đọc thời gian. Sau khi xem qua một vài mặt hàng trên một trang web mua sắm rất phổ biến, tôi nghĩ, "Thật khó làm sao để chỉ làm một cái ?!"

Vì vậy, đây là những gì tôi nghĩ rằng tôi muốn trong dự án này. Nó sẽ sử dụng một số đèn LED RGB (chủ yếu là do tôi có khoảng năm mươi trong số chúng từ một dự án khác) để hiển thị ba màu khác nhau. Màu đỏ có nghĩa là hãy ngủ tiếp, còn quá sớm để thức dậy. Màu vàng có nghĩa là chúng có thể đứng dậy và chơi một cách nhẹ nhàng trong phòng của chúng. Màu xanh lá cây, tất nhiên có nghĩa là bạn có thể đứng dậy. Tôi cũng muốn có thể điều chỉnh thời gian, vì tôi muốn ngủ lâu hơn vào một số ngày (Cuối tuần / Ngày lễ so với Ngày thường, v.v.).

Quân nhu

Raspberry Pi Zero W

Hai đèn LED RGB

Sáu điện trở 220 Ohm của

Tệp (.stl, python, html) được tìm thấy ở đây

Nhiều ốc vít nhỏ, dây điện và các bộ phận nhỏ khác nhau nếu cần.

Bước 1: In 3D

in 3d
in 3d
in 3d
in 3d
in 3d
in 3d

Con gái tôi thực sự thích kỳ lân, vì vậy đối với dự án này, tôi đã phối lại Đèn ngủ kỳ lân của Riven02, đây là bản phối lại của Cúp kỳ lân của Apachcreation, có thể được tìm thấy trên Thingiverse.com và được sử dụng theo giấy phép Phi thương mại của Creative Commons. Tôi đã sửa đổi chân đế kỳ lân để phù hợp với dây nguồn cho raspberry pi zero. Tôi đã tình cờ có một số AMZ3D Red PLA đặt xung quanh, vì vậy phần đế và đầu kỳ lân sẽ có màu đỏ. Tôi đã sử dụng PLA trong / mờ cho sừng. Các tệp.stl và cài đặt tôi đã sử dụng là:

Unicorn.stl

  • Chiều cao lớp: 0,02
  • Độ dày của tường:.8
  • Đếm dòng tường: 2
  • Đổ đầy: 15%
  • Infill Pattern: Grid

UnicornBase.stl

  • Chiều cao lớp: 0,02
  • Độ dày của tường:.8
  • Đếm dòng tường: 2
  • Đổ đầy: 15%
  • Infill Pattern: Grid

Horn.stl

  • Chiều cao lớp: 0,02
  • Độ dày của tường: 0,8
  • Đếm dòng tường: 3
  • Đổ đầy: 0

Bước 2: Mạch

Mạch
Mạch
Mạch
Mạch
Mạch
Mạch

Mạch khá dễ dàng. Tôi đã chọn sáu chân GPIO khác nhau để điều khiển bật / tắt các màu khác nhau của RGB. Các chân đó và Màu LED tương ứng là:

  • Chân 11 sang RGB 1 ĐỎ
  • Chân 13 thành RGB 1 XANH
  • Chân 15 thành RGB 1 BLUE
  • Chân 16 đến RGB 2 RED
  • Chân 18 thành RGB 2 GREEN
  • Chân 36 thành RGB 2 BLUE
  • Chân 39 xuống đất

Mỗi chân được nối với điện trở thông qua một điện trở hạn chế dòng điện 220 ohm (tất nhiên là ngoại trừ nối đất.) Tôi hàn điện trở thẳng hàng và che nó bằng ống co nhiệt.

Bước 3: Chuẩn bị Raspberry Pi

Tôi muốn có thể đặt thời gian cho đồng hồ huấn luyện viên ngủ bằng giao diện web. Vì vậy, tôi cần thiết lập Máy chủ Apache và PHP trên Raspberry Pi. Điều đầu tiên bạn nên làm khi cài đặt phần mềm mới trên Raspberry Pi là đảm bảo phần mềm đó được cập nhật bằng cách nhập:

sudo apt-get cập nhật

Sau đó, chúng tôi thực sự có thể bắt tay vào kinh doanh. Chúng tôi sẽ làm điều đó bằng cách cài đặt Apache2:

sudo apt-get install apache2 -y

điều này sẽ cài đặt máy chủ web Apache. Bạn có thể kiểm tra điều này bằng cách sử dụng trình duyệt trên Raspberry pi và điều hướng đến:

localhost /

hoặc bằng cách điều hướng từ trình duyệt của máy tính khác đến địa chỉ ip của Raspberry Pi của bạn. Để tìm loại địa chỉ ip của bạn:

tên máy tôi

Làm những điều này sẽ dẫn đến một trang Máy chủ Web Apache mặc định. Điều này có thể được thay đổi bằng cách thay thế index.html nằm trong thư mục / var / www / html /. Nó có thể được thay thế bằng tệp index.html của riêng tôi.

Tiếp theo, chúng tôi sẽ thiết lập máy chủ web Apache để có thể chạy các tệp PHP. Bắt đầu bằng cách nhập:

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

bây giờ bạn có thể đặt tệp sleepset.php trong / var / www / html với tệp index.html.

Để điều hướng đến trang này trong mạng của riêng bạn, bạn sẽ cần thiết lập Raspberry Pi của mình bằng địa chỉ ip tĩnh (hoặc bạn có thể thử tìm ra địa chỉ ip mới khi mạng của bạn gia hạn ngay bây giờ và sau đó). Bạn sẽ cần chỉnh sửa một vài tệp để tính năng này hoạt động. Bạn sẽ cần chỉnh sửa tệp /etc/dhcpcd.conf như sau:

giao diện wlan0

static ip_address = 192.168.1.static routers = 192.168.1.1 static domain_name_servers = 192.168.1.1

Thay thế bằng thông tin mạng của bạn. Điều duy nhất bạn cần làm bây giờ là khởi động lại.

khởi động lại sudo

Vị trí của các tệp từ liên kết Google drive phải như sau:

  • index.html và sleepset.php nên được đặt trong thư mục / var / www / html
  • sleepset.txt và sleeptrainer1_1.py phải được đặt trong thư mục / home / pi / pythoncode (gợi ý: bạn sẽ phải tạo thư mục này)

Sau khi đặt các tệp này vào đúng thư mục, tệp rc.local cần được sửa đổi để chạy chương trình sleeptrainer1_1.py khi khởi động. Bạn sẽ cần quyền truy cập cấp gốc để sửa đổi tệp rc.local, vì vậy hãy nhập:

sudo nano /etc/rc.local

Trong trình chỉnh sửa, cuộn xuống và ngay trước dòng thoát 0, hãy thêm:

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

Có hai điều cần nhớ ở đây:

  1. Sử dụng đường dẫn tệp tuyệt đối để LINUX không nghĩ rằng tệp sleeptraner1_1.py nằm trong cùng thư mục với rc.local.
  2. Đừng quên dấu và (&) ở cuối. điều này sẽ cho phép LINUX chạy tệp này trong nền và tiếp tục khởi động.

Bây giờ, hãy lưu tệp bằng cách nhập ctrl-x và sau đó là y khi được nhắc lưu rồi ENTER.

Sau đó gõ sudo reboot.

Ở đâu đó cần đề cập rằng (tối thiểu) bạn nên thay đổi mật khẩu Raspberry Pi bằng lệnh passwd. Nếu bạn chưa làm điều này, bây giờ sẽ là thời điểm tốt.

Bước 4: Mã

Sau đây là mã từ tệp sleeptrainer1_1.py. Tôi đã sử dụng một đối tượng datetime để so sánh thời gian với những thời gian được đọc trong tệp sleepset.txt. Tệp văn bản chỉ đơn giản là hai dòng, dòng đầu tiên cho giờ, dòng thứ hai cho phút. sleeptrainer1_1.py ngủ trong một phút giữa các lần lặp lại vòng lặp để không buộc bộ xử lý. Đèn xanh ban đầu phát ra quá sáng, vì vậy tôi đã sử dụng điều chế độ rộng xung để làm mờ nó khi sử dụng màu đỏ để tạo ra màu vàng.

Mã Python:

nhập RPi. GPIO dưới dạng GPIO

từ datetime nhập datetime dưới dạng dt thời gian nhập GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (Sai) 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) return a, b def ledlight (color): if (color == "red"): GPIO.output (red1, GPIO. CAO) GPIO.output (red2, GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "blue"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.stop () p2.stop () GPIO.output (blue1, GPIO. HIGH) GPIO.output (blue2, GPIO. CAO) 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 (color == "yellow"): 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 () trong khi True: settime = readset () giờ, phút = settime if phút == 0: if dt (dt.now (). year, dt.now (). month, dt.now (). day, giờ-2) <dt.now () <dt (dt.now ().year, dt.now (). month, dt.now (). day, giờ-1, phút + 30): ledlight ("red") elif dt (dt.now (). year, dt.now ().month, dt.now (). day, giờ-1, phút + 30) <dt.now () <dt (dt.now (). năm, dt.now (). tháng, dt.now ().day, giờ, phút): ledlight ("yellow") elif dt (dt.now (). year, dt.now (). month, dt.now (). day, giờ, phút) <dt.now () <dt (dt.now (). year, dt.now (). month, dt.now (). day, giờ + 1, phút): ledlight ("green") else: ledlight ("off") elif dt (dt.now (). năm, dt.now (). tháng, dt.now (). ngày, ho ur-2) <dt.now () <dt (dt.now (). year, dt.now (). month, dt.now (). day, giờ, phút-30): ledlight ("red") elif dt (dt.now (). năm, dt.now (). tháng, dt.now (). ngày, giờ, phút-30) <dt.now () <dt (dt.now (). năm, dt.now (). tháng, dt.now (). ngày, giờ, phút): ledlight ("màu vàng") elif dt (dt.now (). năm, dt.now (). tháng, dt.now ().day, giờ, phút) <dt.now () <dt (dt.now (). năm, dt.now (). tháng, dt.now (). ngày, giờ + 1, phút): ledlight ("xanh") khác: ledlight ("tắt") time.sleep (60)

Tệp index.html là một biểu mẫu cơ bản được thiết kế bằng HTML. Nó lấy nội dung của hai hộp văn bản và chuyển chúng đến tệp sleepset.php để xử lý biểu mẫu. Tệp PHP chỉ cần ghi đè lên tệp sleepset.txt bằng dữ liệu cập nhật.

Bước 5: Kết hợp tất cả lại với nhau

Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau

Với việc mã hóa hoàn thành và tất cả các bộ phận được in, đã đến lúc lắp ráp. Tôi đã làm theo các bước sau để tổng hợp tất cả lại với nhau:

  1. Khoan hai lỗ nhỏ có kích thước tương đương với đèn LED RGB ở Đáy của còi và đặt đèn LEDS vào các lỗ này.
  2. Đặt sừng vào lỗ trên đầu kỳ lân và kéo qua cho đến khi chặt. Sử dụng keo từ bên trong để cố định sừng.
  3. Gắn Raspberry Pi Zero W vào bên trong đầu kỳ lân. (Có thể sử dụng súng bắn keo nóng)
  4. Gắn đầu lân vào đế đầu lân.
  5. Gắn dây nguồn và gắn toàn bộ cụm vào tường.
  6. Cắm điện cho đồng hồ.

Tại thời điểm này, tôi có một Đồng hồ huấn luyện giấc ngủ cho trẻ em đang hoạt động.

Bước 6: Một năm sau…

Một năm sau…
Một năm sau…

Một năm sau:

Các cô gái của tôi sẽ ngủ trong một thời gian ngắn nữa. Chúng tôi đã quen với việc đánh thức những đứa trẻ trong phòng của chúng tôi và nói: "Bố ơi, đèn xanh." và điều đó thật tuyệt. Tóm lại, chúng tôi chỉ thức dậy lúc 5:30 sáng vào thứ Bảy khi chúng tôi lên kế hoạch cho việc đó nữa.

Những điều tôi dự định cải thiện trong tương lai:

  • Có thể thêm một số cảm biến hoặc các vật dụng khác như micrô và loa.
  • Có thể chỉnh sửa mã để hoạt động với loa để sử dụng làm đồng hồ báo thức vì con tôi sẽ sớm bắt đầu đi học.

Đề xuất: