Mundarija:
- Ta'minotlar
- 1 -qadam: Raspberry Pi -ni sozlash
- 2 -qadam: Elektronni ulash
- 3 -qadam: ma'lumotlar bazasini loyihalash
- 4 -qadam: Arduino -ni sozlash
- 5 -qadam: Raspberry Pi orqa qismi
- 6 -qadam: ish
Video: Meni uyg'ot - aqlli budilnik: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Meni uyg'ot - aqlli budilnik, uni aqlli yorug'lik sifatida ham ishlatish mumkin.
O'rnatilgan chiziq chizig'i sizning xonangizga kiradigan tabiiy yorug'likni taqlid qiladi. Bu sizning kuningizni tinch va tabiiy tarzda boshlashingizga imkon beradi.
Budilnik, shuningdek, vaqtni o'qish uchun 4*7 segmentli displey, sevimli musiqangiz bilan uyg'onish uchun karnaylar, sensorli tugma, LED chizig'ining yorqinligini moslashtirish uchun ldr va harorat sensori bilan jihozlangan. xonangizdagi harorat.
Ta'minotlar
Men to'lagan aniq narxlar ro'yxatini bu erda topishingiz mumkin:
Mikrokontrollerlar va kompyuterlar:
Raspberry Pi 4I malina pi 4 4GB ishlatgan, ammo har qanday malina pi modeli 3+ yaxshi bo'lishi kerak
Arduino Uno
Arduino 4*7 segmentli soat displeyini boshqarish uchun ishlatiladi.
Sensorlar:
- TMP36: harorat sensori
- LDR: nurga qarshilik
Aktuatorlar:
- WS2801: Individual ravishda kirish mumkin bo'lgan chiziq
- LCD displey: 16*2 o'lchamli LCD displey.
- 4*7 segmentli soat displeyi
IC:
- 74HC595: LCD displey uchun Shiftregister
- MCP3008: 8-bitli analog raqamli konvertor
- Mantiqiy darajadagi konvertor: raspi va arduino o'rtasida muloqot qilish uchun ishlatiladi
Boshqa narsalar:
- Karnaylarni quvvatlantirish uchun adafruit MAX9744 kuchaytirgichi
- Har qanday karnay, men Visaton 4Ohm 8Watt to'liq diapazonli dinamikdan foydalanardim (2240 -modda).
- Kuchaytirgichni quvvatlantirish uchun 9 voltli quvvat manbai
- Led va boshqa komponentlarni etkazib berish uchun 5 voltli quvvat manbai. LED chizig'idagi har bir LED 60 mA ga tushishi mumkinligini yodda tuting, shuning uchun quvvat manbai etarli ekanligiga ishonch hosil qiling.
- Bir necha 220 Ohm qarshilik
- Sizning holatingizga qo'yish uchun kichik non paneli.
Asboblar:
- Lehimlash temir.
- Ishni bajarish uchun biror narsa (yog'och effekt olish uchun men PLA va PETG bilan 3D printerni va vinil stikerlardan foydalanardim.)
1 -qadam: Raspberry Pi -ni sozlash
Malinali pi - bizning asosiy mikro boshqaruvchimiz.
Raspberry pi bizning mahalliy veb -serverimizni, ma'lumotlar bazasini boshqaradi, LED chizig'ini, karnaylarni boshqaradi …
1 -qism: Raspbian -ni o'rnatish
Raspbian -ni o'rnatish uchun ushbu qo'llanmadan foydalaning:
SSH yoqilganligiga ishonch hosil qiling
2 -qism: Ulanish
Internetga ulanish uchun siz malina pi terminaliga kirishingiz kerak. Men macun ishlatishni maslahat beraman. Terminal turida:
wpa_passphrase "Sizning tarmoq" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" - bu Wi -Fi tarmog'ingizning nomi va "YourSSID" - bu tarmoq parolidir.
Tarmoqni qo'shgandan so'ng, Raspberry Pi -ni qayta ishga tushiring.
"Ping 8.8.8.8" buyrug'ini kiriting, agar siz tarmoqqa ulangan bo'lsangiz va u ishlayotgan bo'lsa, Google serverlariga paket yuboriladi.
3 -qism: kerakli dasturlarni o'rnating
Loyihani ishga tushirish uchun bizga qo'shimcha dasturlarni o'rnatish kerak bo'ladi.
Ishni boshlashdan oldin, hamma narsa yangilanganligiga ishonch hosil qilish uchun ushbu 2 buyruqni bajaring.
sudo apt yangilash
sudo apt upgrade
Bu biroz vaqt olishi mumkin.
Apache
sudo apt install apache2 -y
sudo apt ni o'rnating php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php -mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python quvur
Ba'zi python kutubxonalarini yoqish uchun biz pip o'rnatishimiz kerak
pip3 mysql-connector-python-ni o'rnating
pip3 flask-socketio-ni o'rnating
pip3 flakon-korslarni o'rnating
pip3 gevent -ni o'rnating
pip3 gevent-websocket-ni o'rnating
2 -qadam: Elektronni ulash
Men ikkita sxemani qo'shdim, 1 - sinov uchun non paneli. Men birinchi sxemani tuzishni va kodni ishlashga harakat qilishni tavsiya qilaman.
Men quyida qotib qolgan fayllarni qo'shdim.
3 -qadam: ma'lumotlar bazasini loyihalash
Bu men yaratgan ma'lumotlar bazasi sxemasi. So'zlar golland tilida, lekin men har bir jadvalni batafsil tushuntirib beraman.
1 -jadval: tblMuziek
Bu juda oddiy jadval. Bu qo'shiqchining ismini, qo'shiq nomini va fayl nomini saqlaydi.
2 -jadval: tblLedstrip
Bu jadvalda chiziq chizig'ining hozirgi holati kuzatiladi, bu esa chiziq chizig'ining holatini saqlaydi. Bu bizga smartlight funktsiyasi uchun kerak.
3 -jadval: tblSensoren
Bu jadval signalizatsiyadagi sensorlarni kuzatib boradi. Biz sensor va MCP3008 kanalining nomini saqlaymiz
4 -jadval: tblMeting
Bu jadvalda sensorlarimiz qiymatlari va vaqtlari saqlanadi.
5 -jadval: tblWekker
Bu jadvalda budilnikning paroli va nomi saqlanadi (masalan, yotoqxona). Bu jadval majburiy emas, lekin men sizning uyingizda 1dan ortiq budilnik bor deb o'ylayman.
6 -jadval: signal signalizatsiyasi
Bu, ehtimol, eng muhim jadval. U siz o'rnatgan budilnikni va soat nima qilishi kerakligini kuzatib boradi (qaysi qo'shiqni ijro etish kerak, qaysi ketma -ketlikni boshqargan, qaysi kunlarda o'chishi kerak …). 2 sanani kuzatib borish juda muhim. Qachon signal o'chishi kerakligini saqlash uchun 1 sana ishlatiladi. Ikkinchisi, signal oxirgi marta qachon yopilganligini kuzatib boradi. Ish kuni qanday bo'lishi kerakligini bilish uchun men 7 ta raqamdan iborat varchar ishlatardim. Birinchi raqam dushanba, ikkinchi seshanba,… Agar 1 bo'lsa, u o'chishi kerak, 0 bo'lsa, bo'lmasligi kerak. Misol: 1111100 bu shuni anglatadiki, bu signal dushanba, seshanba, chorshanba, payshanba va juma kunlari o'chishi kerak.
4 -qadam: Arduino -ni sozlash
Bu qadam juda oson. Keyingi bosqichda mening github -ga havola bo'ladi, u erda siz arduino faylini yuklab olishingiz mumkin.
Dastur nima qiladi?
Dastur pi -dan ketma -ket ma'lumotlar kelishini kutadi.
Ma'lumotlar olinishi bilan u ipdan ajratiladi va pi ga tasdiqni qaytaradi.
String shunday bo'ladi: "1201", bu soat 12:01. Men 7 anodli umumiy anodli displeydan foydalandim, bu raqamlar yuqori bo'lishi kerak va ularni yoqish uchun A, B, C, D, E, F, G va DP past bo'lishi kerak. Agar siz umumiy katoddan foydalansangiz, "HIGH" ni "LOW" va "LOW" ni "HIGH" ga o'zgartirishingiz kerak.
Bu erda 7 segmentli displeylar qanday ishlashi haqida qo'shimcha ma'lumot berilgan havola. (kutubxonadan foydalangan holda):
www.instructables.com/id/Using-a-4-digit-7…
Kutubxonadan foydalanmasdan 7 segmentli displeylar haqida havola:
create.arduino.cc/projecthub/SAnwandter1/p…
5 -qadam: Raspberry Pi orqa qismi
Siz mening kodimni Github -dan yuklab olishingiz mumkin. (https://github.com/VanHevelNico/WakeMeUp)
Dasturni qanday o'rnatish kerak:
Orqa tomon kolba yordamida pitonda yozilgan. Siz ushbu dasturni (app.py) avtomatik ravishda ishga tushiradigan xizmatni yaratishingiz mumkin.
Old kodni biz ilgari yuklagan apache serverining html fayliga qo'yish kerak. (/var/html)
Dastur qanday ishlaydi?
Budilnik yoqilganda, soatning IP manziliga o'ting (u LCD displeyda ko'rsatiladi)
Brauzeringizdagi IP -manzilga kirganingizda, kompyuteringiz mijozga ulanganligi haqida socket.io so'rovini yuboradi. Orqa fon qabul qilganda, bir nechta mavzu boshlanadi, men quyida tushuntiraman.
Sozlash
Bu barcha kerakli ob'ektlarni birlashtiradi.
GetTemp
Bu mcp3008 0 kanalini o'qiydi va ikkilik ma'lumotlarni haqiqiy haroratga o'zgartiradi va joriy sana va soat bilan ma'lumotlar bazasiga joylashtiradi.
GetTempGrafiek
Bu harorat sensori o'tgan 20 qiymatini oladi va uni old tomonga chiqaradi.
tijd_sturen
Bu usul joriy vaqtni oladi va daqiqa o'zgarganligini tekshiradi. Agar u o'zgargan bo'lsa, dastur ketma -ket aloqa yordamida yangi vaqtni arduino -ga yuboradi
chek signallari
Bu eng muhim usul. U yoqilgan barcha signallarni oladi va bu signallarning 5 yoki 5 minut oldin o'chishi kerakligini tekshiradi (bu har bir signal kerak bo'lganda o'chib ketishiga ishonch hosil qilish uchun bufer). Agar signal o'chishi kerak bo'lsa, biz musiqani, chiziq chizig'ini ishga tushiramiz … Biz kuchga sezgir rezistorni muttasil o'qiymiz va qiymat 1000dan pastga tushganda (fsr bosilganda o'qiladi) Biz signalni o'chirib, signalni yangilaymiz. ma'lumotlar bazasi. Biz signal oxirgi marta o'chgan sanani joriy sanaga o'rnatdik.
statusLight
Bu usul chiziq chizig'ining qiymatini chiqaradi va agar kerak bo'lsa, chiziq chizig'ini yoqadi.
lixAanpassen
Bu LED chizig'i va signal chiroqlari bir -biriga zid kelmasligiga ishonch hosil qilishning qo'shimcha usuli.
6 -qadam: ish
Mening fayllarimga havolani bu erda topish mumkin:
Kosonni chop etish uchun 3d printerdan foydalanardim. U 4 xil qismda chop etilgan:
- Karnay uchun teshiklari va 7 segmentli displey uchun ba'zi devorlari bo'lgan oldingi plastinka
- PETG shaffof shamchiroqidagi chiziqlar uchun tashqi halqa.
- O'rta qismi
- Lcd uchun teshikli va kabellar uchun teshikli orqa panel.
Asl modelda 7 segmentli displey uchun teshik yo'q edi, lekin bu kerak, chunki aks holda 7 segmentli displeyning nuri o'tmaydi.
Ko'rib turganingizdek, barcha komponentlarni joylashtirgandan so'ng, yakuniy natijani yaxshiroq ko'rsatish uchun yog'ochdan yasalgan vinil stikerlardan foydalanardim. Stiker orqali soat displeyi porlab turadi, bu esa juda chiroyli ko'rinishga olib keladi.
Tavsiya:
Uyg'onish nuri: 7 qadam (rasmlar bilan)
Uyg'onish nuri: Men yozganimdek, shimoliy yarim sharda qishning o'rtasi, bu qisqa kunlar va uzoq tunlarni anglatadi. Men soat 06: 00da turishga odatlanganman, yozda esa quyosh porlay boshlaydi. Qishda, soat 09:00 da yorug'lik paydo bo'ladi, agar
Yuqori quvvatli LED uyg'onish nuri (+/- 15Watt): 5 qadam
Yuqori quvvatli LED uyg'onish nuri (+/- 15Watt): *2020 yilgi tahrir: Birinchidan, men fanatni ishlatmayman va bu yaxshi ko'rinadi. Issiq bo'ladi, lekin hali hech narsa yonmagan. Ba'zi yangi tushunchalar bilan va bu chiroqlar juda arzon bo'lgani uchun, men atigi 2 tadan ko'proq foydalanardim va 3 Vt bitta LEDni qo'shardim.
Simsiz tarmoq orqali har qanday kompyuterni LANda uyg'otish: 3 qadam
Simsiz tarmoq orqali har qanday kompyuterni LANda uyg'otish: Raspbpian tasviridagi o'zgarishlar tufayli bu qo'llanma endi yangilanmagan. Iltimos, bu erda yangilangan qo'llanmani kuzatib boring: https://www.instructables.com/id/Raspberry-Pi-As-Wake-on-LAN-ServerWOL hozirgi kunda deyarli barcha Ethernet portlarida mavjud. Bu emas
Bubble budilnik uyg'onishni qiziqarli qiladi: 7 qadam (rasmlar bilan)
Pufakchali budilnik uyg'onishni qiziqarli qiladi (shovqinli budilnikdan uyg'onish qiyin). Men quyosh chiqmasdan (yoki ko'p soatlardan beri tashqarida) uyg'onishni yoqtirmaydigan odamlardanman. To'shakda ko'pikli partiyani o'tkazishdan ko'ra, uyg'onishni qiziqarli qilishning qanday yaxshi usuli bor! Arduino va
Sunrise Budilnik (ertalab uyg'onishni yaxshilash): 13 qadam
Sunrise Budilnik (Ertalab uyg'onishni yaxshilash): O'zingizning shaxsiy quyosh chiqishingizni rejalashtiring, ertalab uyg'onishni yaxshilang So'nggi tasodifiy ixtiro, o'zingizning quyosh chiqishingizni rejalashtiring! . Moviy chiroq