
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00




Надад 4 настай ихрүүдээ бага зэрэг унтаж сурахад нь туслах цаг хэрэгтэй байсан (бямба гаригийн өглөө 5:30 цагт босоход хангалттай байсан), гэхдээ тэд одоохондоо цаг уншиж чадахгүй байна. Маш алдартай худалдааны сайт дээр цөөн хэдэн зүйлийг үзэж байгаад "Зүгээр л үүнийг хийхэд ямар хэцүү байх бол ?!"
Тиймээс би энэ төсөлд оролцохыг хүссэн зүйлээ энд оруулав. Энэ нь гурван өөр өнгийг харуулахын тулд зарим RGB LED -ийг ашигладаг (ихэнх нь надад өөр төслөөс тавь орчим нь байдаг). Улаан бол буцаад унтана гэсэн үг, сэрэхэд эрт байна. Шар гэдэг нь тэд босоод өрөөндөө чимээгүйхэн тоглож болно гэсэн үг юм. Ногоон гэдэг нь мэдээж та босч чадна гэсэн үг юм. Би бас цагийг тохируулахыг хүсч байсан, учир нь би зарим өдрүүдэд удаан унтмаар байна (Амралтын өдрүүд/Баярын өдрүүд гэх мэт ажлын өдрүүдэд гэх мэт).
Хангамж
Raspberry Pi Zero W
Хоёр RGB LED
220 Ом эсэргүүцэлтэй зургаан ширхэг
Файлууд (.stl, python, html) эндээс олдсон
Янз бүрийн жижиг эрэг, утас, жижиг хэсгүүдийг шаардлагатай бол.
Алхам 1: 3D хэвлэх



Охин маань үнэхээр ганц эвэрт эвэрт дуртай тул энэ төслийн хувьд би Riven02-ийн Unicorn Nightlight-ийг remix хийсэн нь Apachcreation-ийн Unicorn Trophy-ийн ремикс бөгөөд үүнийг Thingiverse.com дээрээс олж, Creative Commons-ийн арилжааны бус лицензийн дагуу ашиглаж болно. Би ганц эвэрт баазыг бөөрөлзгөнө 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: Хэлхээ



Хэлхээ нь маш хялбар байдаг. Би RGB -ийн янз бүрийн өнгийг асаах/унтраахыг хянахын тулд зургаан өөр GPIO зүү сонгосон. Эдгээр тээглүүр ба харгалзах 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: Raspberry Pi бэлтгэх
Би вэб интерфэйсийг ашиглан унтах дасгалжуулагчийн цагийг тохируулахыг хүсч байсан. Тиймээс би Raspberry Pi дээр Apache болон PHP сервер суулгах шаардлагатай болсон. Raspberry Pi дээр шинэ програм суулгахдаа хийх ёстой хамгийн эхний зүйл бол үүнийг бичиж өгөөрэй.
sudo apt-get update
Үүний дараа бид үнэхээр бизнесээ эхлүүлж чадна. Бид үүнийг Apache2 суулгаснаар хийх болно.
sudo apt -get apache2 -y суулгана уу
Энэ нь Apache вэб серверийг суулгах ёстой. Та үүнийг Raspberry pi дээрх хөтөч ашиглан шалгаж, дараах руу очиж үзээрэй.
localhost/
эсвэл өөр компьютерын хөтчөөс Raspberry Pi -ийн ip хаяг руу шилжих замаар. IP хаягийнхаа төрлийг олохын тулд:
хостын нэр
Эдгээрийг хийснээр Apache вэб серверийн анхдагч хуудас руу хөтлөх болно. Үүнийг/var/www/html/директорт байрлах index.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. статик чиглүүлэгчид = 192.168.1.1 статик домэйны_ нэр_серверүүд = 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 файлыг өөрчлөхийн тулд танд root түвшний хандалт хэрэгтэй болно.
sudo нано /etc/rc.local
Редактор дээр доош гүйлгээд 0 мөрөөс гарахын өмнөхөн дараахийг нэмнэ үү.
python /home/pi/pythoncode/sleeptrainer1_1.py &
Энд хоёр зүйлийг санаж байх хэрэгтэй.
- Линукс нь sleeptraner1_1.py файлыг rc.local -тэй ижил директор дотор байрладаг гэж бодохгүй байхын тулд туйлын файлын замыг ашиглаарай.
- Төгсгөлд нь амперсанд (&) оруулахаа бүү мартаарай. Энэ нь LINUX -д энэ файлыг цаана нь ажиллуулж, үргэлжлүүлэн ачаалах боломжийг олгоно.
Одоо файлыг хадгалахын тулд ctrl-x, дараа нь y гэж бичээд ENTER оруулна уу.
Дараа нь sudo reboot гэж бичнэ үү.
Та passwd командыг ашиглан Raspberry Pi -ийн нууц үгийг (хамгийн багадаа) өөрчлөх ёстой гэж энд дурдсан байх ёстой. Хэрэв та үүнийг хараахан хийгээгүй бол одоо сайхан цаг байх болно.
Алхам 4: Код
Дараахь нь sleeptrainer1_1.py файлын код юм. Би datetime объектыг ашиглан sleepset.txt файлд уншсан хүмүүстэй цагийг харьцуулж үзсэн. Текст файл нь ердөө хоёр мөр бөгөөд эхнийх нь цагийн хувьд, хоёр дахь нь минутынх юм. sleeptrainer1_1.py процессорыг холбохгүйн тулд давталтын хооронд нэг минут унтдаг. Ногоон гэрэл анхнаасаа хэт тод байсан тул би импульсийн өргөний модуляцийг ашиглан улаан өнгийг шар болгоход бүдэгрүүлэв.
Python код:
RPi. GPIO -г GPIO болгон импортлох
datetime -аас импорт хийх хугацааг dt импортлох цаг болгон оруулах 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 (color): if (color == "red"): 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 == "blue")): 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 == "ногоон"): 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 () байхад True: settime = readset () цаг, минут = тохирох цаг if минут == 0: хэрэв dt (dt.now (). жил, dt.now (). сар, dt.now (). өдөр, цаг-2) <dt.now () <dt (dt.now ()), жил, одоо (). сар, одоо ()), сар, одоо (). өдөр, цаг-1, минут+30) <одоо (одоо). өдөр, цаг, минут): гэрэл ("шар") elif dt (dt.now (). жил, dt.now (). сар, dt.now (). өдөр, цаг, минут) <dt.now () <dt (яг одоо () dt (dt.now (). жил, dt.now (). сар, dt.now (). өдөр, ho 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 (). жил, одоо, одоо өдөр. "ногоон") өөр: гэрэл ("унтраалттай") цаг. унтах (60)
Index.html файл нь HTML дээр бүтээгдсэн үндсэн хэлбэр юм. Энэ нь хоёр текст хайрцгийн агуулгыг авч, маягтыг зохицуулахын тулд sleepset.php файл руу дамжуулдаг. PHP файл нь sleepset.txt файлыг шинэчилсэн мэдээллээр дарж бичдэг.
Алхам 5: Бүгдийг нэгтгэх



Кодлох ажил дуусч, бүх эд ангиудыг хэвлэсний дараа угсрах цаг болжээ. Би бүгдийг нэгтгэхийн тулд дараах алхмуудыг хийсэн.
- Эвэрний доод хэсэгт RGB LED -ийн хэмжээтэй хоёр жижиг цооног өрөмдөж, LED -ийг эдгээр нүхэнд байрлуулна.
- Эвэрийг ганц эвэрт толгойн нүхэнд хийж, нягт болтол нь татна. Эвэрийг бэхлэхийн тулд дотор талаас цавуу хэрэглэ.
- Raspberry Pi Zero W -ийг ганц эвэрт толгойн дотор талд бэхлээрэй. (Халуун цавуу буу ашиглаж магадгүй)
- Нэг эвэрт толгойг ганц эвэрт сууринд бэхлээрэй.
- Цахилгааны утсыг холбож, угсралтыг бүхэлд нь хананд холбоно уу.
- Цагийг залгаарай.
Энэ үед надад хүүхдийн унтлагын дасгалжуулагчийн цаг ажиллаж байна.
Алхам 6: Нэг жилийн дараа …

Нэг жилийн дараа:
Охидууд маань арай удаан унтаж байна. Бид өрөөндөө байгаа бяцхан хүүхдүүдийг "Аав аа, гэрэл ногоон байна" гэж сэрээдэг болсон. мөн энэ бол гайхалтай. Урт түүхийн товчхондоо, бид бямба гаригт өглөөний 5:30 цагт л сэрэх төлөвлөгөөтэй байгаа.
Цаашид сайжруулахаар төлөвлөж буй зүйлүүд:
- Зарим мэдрэгч эсвэл микрофон, чанга яригч гэх мэт бусад зүйлсийг нэмж болно.
- Хүүхдүүд маань удахгүй сургуульд орох гэж байгаа тул сэрүүлгийн цаг болгон ашиглахын тулд чанга яригчтай ажиллах кодыг засварлаж болно.
Зөвлөмж болгож буй:
Нялх хүүхдийн анхны цаг - Гэрэлтэгч таймертай: 16 алхам (зурагтай)

Toddler's First Clock - Light -on Timer: Энэхүү гарын авлагад таны хүүхдийн зураг, гэр бүлийн/гэрийн тэжээвэр амьтдын зураг эсвэл өөр бусад зүйлийг багтаасан цагийн нүүрийг хэрхэн яаж хийхийг үе үе өөрчлөх нь зүйтэй гэж үзжээ. Тодорхой хэтийн төлөвийг хүссэн хэсэгт нь хавчихад л болно
Хүүхдийн Halloween үзүүлэлт: 4 алхам (зурагтай)

Хүүхдийн Halloween индикатор: Эхнэр бид хоёр Halloween -д зориулж юу өмсөж болохыг олж мэдэхийг хичээж байсан. Энэхүү тархины шуурга нь хэдхэн шөнийн өмнө болсон бөгөөд тэр намайг яарсан гэж хэлэх нь илүүц биз. Тэрээр хичнээн хол байснаа харуулах санааг олсон юм
Хүүхдийн тоглоомын гэрлийн унтраалга хайрцаг + Тоглоомын ремикс: 19 алхам (зурагтай)

Хүүхдийн тоглоомын гэрлийн унтраалга хайрцаг + Тоглоомын ремикс: Энэ бол хоёр гайхалтай зааварчилгааг олж хараад энэ хоёрыг хослуулах талаар бодохоо больсон юм. Энэхүү mashup нь үндсэндээ Light Switch Box интерфэйсийг энгийн тоглоом (Simon, Whack-a-Mole гэх мэт) -тэй хослуулдаг
CribSense: контактгүй, видео дээр суурилсан хүүхдийн монитор: 9 алхам (зурагтай)

CribSense: Контактгүй, видео дээр суурилсан хүүхдийн хяналт: CribSense бол видео дээр суурилсан, контактгүй хүүхдийн дэлгэц бөгөөд та өөрөө банкийг гэмтээхгүйгээр өөрөө хийх боломжтой. CribSense бол Raspberry Pi 3 Model B дээр ажиллахаар тохируулсан видео томруулалтын C ++ хувилбар юм. Амралтын өдрүүдэд та хүүхдийн ороо өөрөө тохируулж болно
Унтлагын уншигчийн тууз: 24 алхам (зурагтай)

Унтах уншигчийн тууз: Та шөнө яаж унтдаг талаар бодож байсан уу? FitBit гэх мэт төхөөрөмжүүд шөнийн турш таны хөдөлгөөнийг шинжилж унтдаг боловч таны тархи юу хийж байгааг харж чадахгүй. Эмнэлгийн багаж хэрэгслийн талаар нэг семестрийн дараа манай анги