Სარჩევი:

ბავშვთა ძილის სასწავლო საათი: 6 ნაბიჯი (სურათებით)
ბავშვთა ძილის სასწავლო საათი: 6 ნაბიჯი (სურათებით)

ვიდეო: ბავშვთა ძილის სასწავლო საათი: 6 ნაბიჯი (სურათებით)

ვიდეო: ბავშვთა ძილის სასწავლო საათი: 6 ნაბიჯი (სურათებით)
ვიდეო: იავნანა | Georgian Lullaby | ღრმა ძილის მუსიკა 2024, ივლისი
Anonim
ბავშვთა ძილის სასწავლო საათი
ბავშვთა ძილის სასწავლო საათი
ბავშვთა ძილის სასწავლო საათი
ბავშვთა ძილის სასწავლო საათი
ბავშვთა ძილის სასწავლო საათი
ბავშვთა ძილის სასწავლო საათი
ბავშვთა ძილის სასწავლო საათი
ბავშვთა ძილის სასწავლო საათი

მე მჭირდებოდა საათი, რათა დამეხმარებინა ჩემი 4 წლის ტყუპებისთვის დაძინება ცოტა ხნით (მე უკვე მომიწია შაბათს დილის 5:30 საათზე გაღვიძება), მაგრამ მათ ჯერ კიდევ არ შეუძლიათ დროის კითხვა. ძალიან პოპულარული სავაჭრო საიტზე რამდენიმე ნივთის დათვალიერების შემდეგ ვიფიქრე: "რა ძნელი იქნებოდა მხოლოდ ამის გაკეთება ?!"

აი, რა ვიფიქრე, რომ მინდოდა ამ პროექტში. ის გამოიყენებდა RGB LED- ებს (ძირითადად იმიტომ, რომ მე მაქვს ორმოცდაათი სხვა პროექტიდან) სამი განსხვავებული ფერის გამოსახვის მიზნით. წითელი ნიშნავს დაიძინოს, ჯერ ადრეა გაღვიძება. ყვითელი ნიშნავს იმას, რომ მათ შეუძლიათ ადგნენ და მშვიდად ითამაშონ თავიანთ ოთახში. მწვანე, რა თქმა უნდა, ნიშნავს ადგომას. მე ასევე მინდოდა შემეძლო დროის მორგება, რადგან მსურს ზოგიერთ დღეზე მეტხანს მეძინა (შაბათ -კვირა/არდადეგები vs სამუშაო დღეები და სხვა).

მარაგები

ჟოლო Pi Zero W

ორი RGB LED

ექვსი 220 Ohm რეზისტორი

ფაილები (.stl, პითონი, html) ნაპოვნია აქ

საჭიროებისამებრ სხვადასხვა პატარა ხრახნები, მავთულები და მცირე ნაწილები.

ნაბიჯი 1: 3D ბეჭდვა

3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა

ჩემს ქალიშვილს ნამდვილად მოსწონს unicorns, ამიტომ ამ პროექტისთვის მე გადავიღე Riven02– ის Unicorn Nightlight, რომელიც არის Apachcreation– ის Unicorn Trophy– ის რემიქსი, რომელიც შეგიძლიათ ნახოთ Thingiverse.com– ზე და გამოიყენოთ Creative Commons– ის არაკომერციული ლიცენზიით. მე შევცვალე unicorn ბაზა მოერგოს დენის კაბელი ჟოლოს pi ნულოვანი. მე შემთხვევით მქონდა 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 წითელი
  • მიამაგრეთ 13 RGB 1 მწვანეზე
  • მიამაგრეთ 15 RGB 1 ცისფერზე
  • მიამაგრეთ 16 RGB 2 წითელი
  • მიამაგრეთ 18 RGB 2 მწვანეზე
  • მიამაგრეთ 36 RGB 2 ცისფერზე
  • მიამაგრეთ 39 ადგილზე

თითოეული პინი მიმაგრებულია რეზისტორზე 220 ოჰმის დენის შემზღუდველი რეზისტორის საშუალებით (რა თქმა უნდა, ნიადაგის გარდა).

ნაბიჯი 3: ჟოლოს პი მომზადება

მინდოდა შევძლებდი ძილის ტრენერის საათის განსაზღვრას ვებ ინტერფეისის გამოყენებით. ასე რომ, მე მჭირდებოდა Apache და PHP სერვერის დაყენება Raspberry Pi– ზე. პირველი რაც თქვენ ყოველთვის უნდა გააკეთოთ Raspberry Pi– ზე ახალი პროგრამული უზრუნველყოფის დაყენებისას არის დარწმუნდეთ რომ ის განახლებულია აკრეფით:

sudo apt-get განახლება

ამის შემდეგ, ჩვენ ნამდვილად შეგვიძლია დავიწყოთ საქმე. ჩვენ ამას გავაკეთებთ Apache2– ის ინსტალაციით:

sudo apt -get დააინსტალირეთ apache2 -y

ეს უნდა დააინსტალიროთ Apache ვებ სერვერი. ამის შემოწმება შეგიძლიათ Raspberry pi– ზე ბრაუზერის გამოყენებით და ნავიგაციით:

localhost/

ან სხვა კომპიუტერის ბრაუზერიდან ნავიგაციით თქვენი Raspberry Pi– ის ip მისამართზე. თქვენი IP მისამართის საპოვნელად:

მასპინძლის სახელი -მე

ამის გაკეთება გამოიწვევს ნაგულისხმევი Apache ვებ სერვერის გვერდს. ეს შეიძლება შეიცვალოს index.html– ით, რომელიც მდებარეობს/var/www/html/დირექტორიაში. ის შეიძლება შეიცვალოს ჩემი საკუთარი index.html ფაილით.

შემდეგ ჩვენ დავაყენებთ Apache ვებ სერვერს, რომ შევძლოთ PHP ფაილების გაშვება. დაიწყეთ აკრეფით:

sudo apt-get დააინსტალირეთ php libapache2-mod-php -y

თქვენ ახლა უნდა შეგეძლოთ განათავსოთ sleepset.php ფაილი/var/www/html- ში index.html ფაილით.

იმისათვის, რომ ნავიგაცია მოახდინოთ ამ გვერდზე თქვენს საკუთარ ქსელში, თქვენ უნდა დააინსტალიროთ თქვენი Raspberry Pi სტატიკური ip მისამართით (ან შეგიძლიათ უბრალოდ სცადოთ ახალი IP მისამართის გარკვევა, როდესაც თქვენი ქსელი განაახლებს მას დროდადრო). ამისათვის თქვენ უნდა შეცვალოთ რამდენიმე ფაილი. თქვენ უნდა შეცვალოთ /etc/dhcpcd.conf ფაილი შემდეგით:

ინტერფეისი wlan0

სტატიკური ip_address = 192.168.1.static მარშრუტიზატორები = 192.168.1.1 სტატიკური domain_name_servers = 192.168.1.1

შეცვალეთ თქვენი ქსელის ინფორმაცია. ერთადერთი რაც თქვენ უნდა გააკეთოთ არის გადატვირთვა.

sudo გადატვირთვა

ფაილების განთავსება Google Drive ბმულიდან უნდა იყოს შემდეგი:

  • index.html და sleepset.php უნდა განთავსდეს/var/www/html დირექტორიაში
  • sleepset.txt და sleeptrainer1_1.py უნდა განთავსდეს/home/pi/pythoncode დირექტორიაში (მინიშნება: თქვენ უნდა შექმნათ ეს დირექტორია)

ამ ფაილების სწორ დირექტორიაში განთავსების შემდეგ, rc.local ფაილი უნდა შეიცვალოს, რომ გაშვებული იყოს sleeptrainer1_1.py პროგრამა. თქვენ დაგჭირდებათ root დონის წვდომა rc.local ფაილის შესაცვლელად, ასე რომ ჩაწერეთ:

sudo nano /etc/rc.local

რედაქტორში გადაახვიეთ ქვემოთ და 0 ხაზის გასვლამდე დაამატეთ:

პითონი/home/pi/pythoncode/sleeptrainer1_1.py &

აქ ორი რამ უნდა გახსოვდეთ:

  1. გამოიყენეთ აბსოლუტური ფაილის გზა ისე, რომ LINUX არ იფიქროს, რომ sleeptraner1_1.py ფაილი მდებარეობს იმავე დირექტორიაში, როგორც rc.local.
  2. ნუ დაივიწყებთ ამპერსანდს (&) დასასრულს. ეს LINUX- ს საშუალებას მისცემს გაუშვას ეს ფაილი ფონზე და გააგრძელოს ჩატვირთვა.

ახლა, შეინახეთ ფაილი აკრიფეთ ctrl-x და შემდეგ y როდესაც შეინახეთ მოთხოვნა და შემდეგ შეიყვანეთ.

შემდეგ ჩაწერეთ sudo გადატვირთვა.

სადღაც აქ უნდა აღინიშნოს, რომ (მინიმუმ) თქვენ უნდა შეცვალოთ Raspberry Pi პაროლი 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 (ფერი == "წითელი"): GPIO.output (red1, GPIO მაღალი) GPIO.output (red2, GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (ფერი == "ლურჯი")): 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 (ფერი == "მწვანე"): 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 (ფერი == "გამორთული"): 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 (). წელი, dt.now (). თვე, dt.now (). დღე, საათი -1, წუთი+30): ledlight ("წითელი") elif dt (dt.now (). წელი, dt.now (). თვე, dt. ახლა (). დღე, საათი -1, წუთი+30) <dt.now () <dt (dt.now (). წელი, dt.now (). თვე, dt.now () დღე) <dt (dt.now (). year, dt.now (). month, dt.now (). day, hour+1, minute): ledlight ("green") else: ledlight ("off") elif dt (dt.now (). წელი, dt.now (). თვე, dt.now (). დღე, ho ur -2 elif dt (dt.now (). წელი, dt.now (). თვე, dt.now (). დღე, საათი, წუთი -30) <dt.now () <dt (dt.now () წელი, dt.now (). თვე, dt.now (). დღე, საათი, წუთი): ledlight ("ყვითელი") elif dt (dt.now (). year, dt.now (). month, dt.now (). დღე, საათი, წუთი) <dt.now () <dt (dt.now (). year, dt.now (). month, dt.now (). day, hour+1, minute): ledlight ("მწვანე") სხვა: ledlight ("off") დრო. ძილი (60)

ფაილი index.html არის ძირითადი ფორმა, რომელიც შექმნილია HTML- ში. იგი იღებს ორი ტექსტური ყუთის შინაარსს და გადასცემს მათ sleepset.php ფაილს ფორმის დამუშავებისთვის. PHP ფაილი უბრალოდ გადაწერს sleepset.txt ფაილს განახლებული მონაცემებით.

ნაბიჯი 5: ყველაფერი ერთად ააწყვეთ

აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად

როდესაც კოდირება დასრულებულია და ყველა ნაწილი დაბეჭდილია, დროა შეკრების. მე შევასრულე ეს ნაბიჯები, რომ ყველაფერი ერთად დამეყენებინა:

  1. გაბურღეთ ორი პატარა ხვრელი RGB LED- ის რქის ქვედა ნაწილში და განათავსეთ LEDS ამ ხვრელებში.
  2. მოათავსეთ რქა ხვრელში უნიკონის თავში და გაიყვანეთ მანამ, სანამ არ იქნება გამკაცრებული. გამოიყენეთ წებო შიგნიდან რქის დასაფიქსირებლად.
  3. მიამაგრეთ Raspberry Pi Zero W უნიკრონის თავის შიგნით. (შესაძლოა ცხელი წებოს იარაღის გამოყენება)
  4. მიამაგრეთ უნიკროზის თავი უნიკრონის ბაზაზე.
  5. მიამაგრეთ დენის კაბელი და მიამაგრეთ მთელი შეკრება კედელზე.
  6. შეაერთე საათი.

ამ ეტაპზე მე მაქვს ბავშვთა ძილის ტრენერის საათი.

ნაბიჯი 6: ერთი წლის შემდეგ…

Ერთი წლის შემდეგ …
Ერთი წლის შემდეგ …

Ერთი წლის შემდეგ:

ჩემს გოგონებს ცოტა ხანს სძინავთ. ჩვენ შევეჩვიეთ ჩვენს ოთახში პატარა ბავშვების გაღვიძებას და ამბობენ: "მამაო, შუქი მწვანეა". და ეს არის დიდი მოკლედ რომ ვთქვათ, ჩვენ ვიღვიძებ მხოლოდ შაბათს დილის 5:30 საათზე, როდესაც ამას უკვე ვგეგმავთ.

ის, რასაც მომავალში ვგეგმავ გაუმჯობესებას:

  • შესაძლოა დაამატოთ რამდენიმე სენსორი ან სხვა ელემენტი, როგორიცაა მიკროფონი და დინამიკები.
  • შესაძლოა შეცვალონ კოდი დინამიკთან მუშაობისთვის, რათა გამოიყენონ მაღვიძარა, რადგან ჩემი შვილები მალე დაიწყებენ სკოლას.

გირჩევთ: