Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pag-set up ng Raspberry Pi
- Hakbang 2: Pagkonekta sa Electronics
- Hakbang 3: Disenyo ng Database
- Hakbang 4: Arduino Setup
- Hakbang 5: Raspberry Pi Backend
- Hakbang 6: Kaso
Video: Wake Me Up - isang Smart Alarm Clock: 6 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ang Wake up up ay isang smart alarm clock na maaari ding magamit bilang isang smart light.
Ang built-in na ledstrip ay tumutulad sa natural na ilaw na papasok sa iyong silid. Nagbibigay-daan ito sa isang kalmado, natural na paraan upang masimulan ang iyong araw.
Ang alarm clock ay nilagyan din ng isang 4 * 7 segment na display para sa pagbabasa ng oras, mga speaker para sa paggising sa iyong paboritong musika, isang touchbutton, isang ldr para sa pagbagay sa ningning ng ledstrip at isang sensor ng temperatura na magagamit mo upang matingnan ang temperatura ng iyong silid.
Mga gamit
Ang isang listahan ng eksaktong mga bayad na binayaran ko ay matatagpuan dito:
Mga Microcontroller at computer:
Ginamit ko ang raspberry pi 4 4GB subalit, ang anumang modelo ng raspberry pi na 3+ ay dapat na maging maayos
Arduino Uno
Ginagamit ang arduino upang makontrol ang pagpapakita ng 4 * 7 na segment ng orasan.
Mga Sensor:
- TMP36: sensor ng temperatura
- LDR: Banayad na nakasalalay na risistor
Mga Actuator:
- WS2801: Indibidwal na adressable ledstrip
- LCD display: Isang 16 * 2 LCD display.
- 4 * 7 segment na display ng orasan
IC's:
- 74HC595: Shiftregister para sa lcd display
- MCP3008: 8-bit Analog sa digital converter
- Converter ng antas ng lohika: Ginagamit upang makipag-usap sa pagitan ng raspi at arduino
Iba pang mga bagay-bagay:
- Isang adafruit MAX9744 amplifier upang mapagana ang mga speaker
- Anumang tagapagsalita, gumamit ako ng Visaton 4Ohm 8Watt full range speaker (Art. No. 2240)
- Isang supply ng kuryente na 9volt upang paandarin ang amplifier
- Isang supply ng kuryente na 5volt upang maibigay ang ledstrip at iba pang mga bahagi. Tandaan na ang bawat pinangunahan sa ledstrip ay maaaring makapag-antok ng 60mA kaya tiyaking sapat ang iyong supply ng kuryente.
- Ilang resistors ng 220Ohm
- Isang maliit na breadboard upang ilagay sa iyong kaso.
Mga tool:
- Isang bakal na bakal.
- Isang bagay upang gawin ang kaso (Gumamit ako ng isang 3d printer na may PLA at PETG at ilang mga sticker ng vinyl upang makuha ang gawa sa kahoy.)
Hakbang 1: Pag-set up ng Raspberry Pi
Ang raspberry pi ay ang aming pangunahing micro controller.
Nagpapatakbo ang raspberry pi ng aming lokal na webserver, database, kinokontrol ang ledstrip, speaker,…
Bahagi 1: Pag-install ng Raspbian
Gamitin ang tutorial na ito upang mai-install ang raspbian:
Tiyaking pinagana ang SSH
Bahagi 2: Pagkonekta
Upang makakonekta sa internet, kailangan mong makakuha ng mga acces sa terminal ng iyong raspberry pi. Inirerekumenda ko ang paggamit ng masilya. Sa uri ng terminal:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ang "YourNetwork" ay ang pangalan ng iyong wifi network at ang "YourSSID" ay ang password ng network.
Kapag naidagdag mo na ang network subukang i-reboot ang Raspberry Pi.
Mag-type sa utos na 'ping 8.8.8.8' magpapadala ito ng isang packet sa mga server ng google kung makakakuha ka ng tugon na ang iyong network ay na-set up at gumagana!
Bahagi 3: I-install ang mga kinakailangang programa
Kakailanganin namin ng ilang pag-install ng ilang labis na mga programa upang mai-andar ang proyektong ito.
Bago kami magsimula patakbuhin ang 2 utos na ito upang matiyak na na-upgrade ang lahat.
sudo apt update
sudo apt mag-upgrade
Maaaring magtagal ito.
Apache
sudo apt i-install ang apache2 -y
sudo apt i-install ang php libapache2-mod-php -y
MariaDB
sudo apt i-install ang mariadb-server mariadb-client -y
sudo apt i-install ang php-MySQL -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python pip
Kailangan naming mag-install ng pip upang paganahin ang ilang mga library ng sawa
pip3 i-install ang MySQL-Connector-Python
pip3 i-install ang flask-socketio
pip3 i-install ang flask-cors
pip3 i-install ang gevent
pip3 i-install ang gevent-websocket
Hakbang 2: Pagkonekta sa Electronics
Nagdagdag ako ng 2 mga scheme, ang 1 ay isang scheme ng breadboard para sa mga layunin sa pagsubok. Inirerekumenda ko ang pagbuo ng unang pamamaraan at sinusubukan na gumana ang code.
Naidagdag ko ang mga fritzing file sa ibaba.
Hakbang 3: Disenyo ng Database
Ito ang database scheme na ginawa ko. Ang mga salita ay nasa dutch ngunit ipapaliwanag ko nang detalyado ang bawat talahanayan.
Talahanayan 1: tblMuziek
Ito ay isang medyo pangunahing talahanayan. Sine-save nito ang pangalan ng artist, pangalan ng kanta at filename ng isang kanta.
Talahanayan 2: tblLedstrip
Sinusubaybayan ng talahanayan na ito ang kasalukuyang estado ng ledstrip na nai-save nito ang estado ng ledstrip. Kailangan namin ito para sa pagpapaandar ng smartlight.
Talahanayan 3: tblSensoren
Sinusubaybayan ng talahanayan na ito ang mga sensor sa aming alarma. Inimbak namin ang pangalan ng sensor at channel ng MCP3008
Talahanayan 4: tblMeting
Iniimbak ng talahanayan na ito ang mga halaga ng aming mga sensor kasama ang kanilang oras.
Talahanayan 5: tblWekker
Iniimbak ng talahanayan na ito ang password at pangalan ng iyong alarm clock (hal. Silid-tulugan) Ang talahanayan na ito ay hindi sapilitan ngunit idinagdag ko ito dahil ipinapalagay kong magkakaroon ka ng higit sa 1 alarm clock sa iyong bahay.
Talahanayan 6: tblAlarm
Marahil ito ang pinakamahalagang mesa. Sinusubaybayan nito ang mga itinakda mong alarma at kung ano ang kailangang gawin ng orasan (kung aling kanta ang tutugtog, na humantong sa pagkakasunud-sunod, Sa anong mga araw dapat itong patayin, …). Napaka-import upang subaybayan ang 2 mga petsa. Ginagamit ang 1 petsa upang maiimbak kung anong oras dapat patayin ang alarma. Sinusubaybayan ng isa pa ang huling oras na napatay ang alarma. Upang malaman kung anong araw ng linggo dapat itong patayin Gumamit ako ng isang varchar na naglalaman ng isang bilang ng 7 mga digit. Ang unang digit ay Lunes, ang pangalawang Martes, … Kung ito ay 1 pagkatapos dapat itong patayin, kung ito ay 0 hindi dapat. Halimbawa: 1111100 nangangahulugan ito na ang alarma na ito ay dapat na patayin sa Lunes, Martes, Miyerkules, Huwebes at Biyernes.
Hakbang 4: Arduino Setup
Napakadali ng hakbang na ito. Magkakaroon ng isang link sa aking github sa susunod na hakbang kung saan maaari mong i-download ang arduino file.
Ano ang ginagawa ng programa?
Naghihintay ang programa para sa serial data na dumating mula sa pi.
Sa sandaling natanggap ang data ay ini-parse nito ang string at nagpapadala ng isang kumpirmasyon sa pi.
Ang string ay magiging katulad nito: '1201' nangangahulugan ito na 12:01. Gumamit ako ng isang karaniwang display ng anode 7segment nangangahulugan ito na ang Digit ay dapat na mataas at ang A, B, C, D, E, F, G at DP ay dapat na mababa upang buksan ang mga ito. Kung gumagamit ka ng isang karaniwang cathode dapat mo lamang baguhin ang TAAS sa LOW & LOW to HIGH.
Narito ang isang link na may maraming impormasyon tungkol sa kung paano gumagana ang 7 segment. (gamit ang library):
www.instructables.com/id/Using-a-4-digit-7…
Narito ang isang link tungkol sa 7 mga ipinapakitang segment nang hindi ginagamit ang isang library:
create.arduino.cc/projecthub/SAnwandter1/p…
Hakbang 5: Raspberry Pi Backend
Maaari mong i-download ang aking code gamit ang Github. (https://github.com/VanHevelNico/WakeMeUp)
Paano i-install ang programa:
Ang backend ay nakasulat sa sawa gamit ang flask. Maaari kang gumawa ng isang serbisyo na awtomatikong nagsisimula sa program na ito (app.py).
Dapat mong ilagay ang frontend code sa html file ng apache server na na-download namin kanina. (/ var / html)
Paano gumagana ang programa?
Kapag naka-on ang alarm clock pumunta sa ip adress ng iyong orasan (ipapakita ito sa lcd)
Sa sandaling pumunta ka sa ip adress na iyon sa iyong browser ang iyong computer ay magpapadala ng isang socket.io na hiling sa backend na nagsasabing kumonekta ang isang kliyente. Kapag natanggap ng backend ito ang ilang mga thread ay magsisimula na ipapaliwanag ko sa ibaba.
Pag-set up
Pinag-intialize nito ang lahat ng mga bagay na kinakailangan.
GetTemp
Binabasa nito ang mcp3008 channel 0 at binago ang binary data sa aktwal na temperatura at inilalagay ito sa database gamit ang kasalukuyang petsa at oras.
GetTempGrafiek
Nakukuha nito ang nakaraang 20 halaga ng sensor ng temperatura at inilalabas ito sa frontend.
tijd_sturen
Nakukuha ng pamamaraang ito ang kasalukuyang oras at sinusuri kung ang minuto ay nagbago. Kung binago nito ang programa ay nagpapadala ng bagong oras sa arduino gamit ang serial na komunikasyon
checkAlarmen
Ito ang pinakamahalagang pamamaraan. Nakukuha nito ang lahat ng mga alarma na naka-on at susuriin kung alinman sa mga alarma na ito ang kailangang puntahan sa pagitan ngayon at 5 minuto na ang nakakaraan (ito ay isang buffer upang matiyak na napupunta ang bawat alarma kapag kinakailangan nito). Kung ang alarma ay dapat na patayin sisimulan namin ang musika, ang ledstrip, … Basahin namin ang lakas na resistor na sensitibo nang tuluy-tuloy at kapag ang halaga ay bumaba sa ibaba 1000 (basahin ang fsr ay pinindot) Binabaling namin ang alarma at ina-update ang alarm sa database. Itinakda namin ang petsa na ang alarma ay nagpunta para sa huling oras sa kasalukuyang petsa.
statusLight
Ang pamamaraang ito ay nagpapalabas ng halaga ng ledstrip at binubuksan ang ledstrip kung kinakailangan.
lichtAanpassen
Ito ay isang labis na pamamaraan upang matiyak na hindi magkasalungat ang ledstrip at ilaw ng alarma.
Hakbang 6: Kaso
Ang link sa aking mga file ay matatagpuan dito:
Gumamit ako ng isang 3d printer upang mai-print ang pambalot. Naka-print ito sa 4 na magkakaibang bahagi:
- Ang plato sa harap na may mga butas para sa speaker at ilang mga pader para sa 7 segment na pagpapakita
- Ang panlabas na singsing para sa ledstrip sa transparant PETG.
- Ang gitnang bahagi
- Ang backplate na may isang butas para sa lcd at isang butas para sa mga kable.
Sa orihinal na modelo walang butas para sa pagpapakita ng 7 segment subalit kinakailangan ito dahil kung hindi man ang ilaw ng 7 segment na pagpapakita ay hindi lumiwanag.
Tulad ng nakikita mo pagkatapos ilagay ang lahat ng mga bahagi sa ginamit ko ang mga sticker ng vinyl na may isang kahoy na hitsura upang gawing mas mahusay ang resulta ng pagtatapos. Ang display ng orasan ay kumikinang sa sticker na lumilikha ng napakagandang hitsura na epekto.
Inirerekumendang:
Smart Alarm Clock Gamit ang Magicbit (Arduino): 10 Hakbang
Smart Alarm Clock Gamit ang Magicbit (Arduino): Ipinapakita ng tutorial na ito kung paano gumawa ng isang smart alarm clock gamit ang OLED display sa Magicbit dev board nang hindi gumagamit ng anumang module ng RTC
ESP8266 Network Clock Nang Walang Anumang RTC - Nodemcu NTP Clock Walang RTC - PROYEKTO SA INTERNET CLOCK: 4 na Hakbang
ESP8266 Network Clock Nang Walang Anumang RTC | Nodemcu NTP Clock Walang RTC | INTERNET CLOCK PROJECT: Sa proyekto ay gagawa ng isang proyekto sa orasan nang walang RTC, magtatagal ito mula sa internet gamit ang wifi at ipapakita ito sa display na st7735
DIY Sesame Street Alarm Clock (may Fire Alarm!): 6 na Hakbang (na may Mga Larawan)
DIY Sesame Street Alarm Clock (may Fire Alarm!): Kumusta kayong lahat! Ang proyektong ito ang aking una. Dahil darating ang unang kaarawan ng aking mga pinsan, nais kong gumawa ng isang espesyal na regalo para sa kanya. Narinig ko mula sa tiyuhin at tiya na siya ay nasa Sesame Street, kaya't nagpasya ako kasama ang aking mga kapatid na gumawa ng isang alarm clock batay
LED Sunrise Alarm Clock Sa Nako-customize na Alarm ng Kanta: 7 Hakbang (na may Mga Larawan)
LED Sunrise Alarm Clock Sa Nako-customize na Alarm ng Kanta: Ang Aking Pagganyak Ngayong taglamig ang aking kasintahan ay nagkaroon ng maraming problema paggising sa umaga at tila naghihirap mula sa SAD (Seasonal Affective Disorder). Napansin ko pa nga kung gaano kahirap magising sa taglamig dahil hindi pa dumating ang araw
Pag-iipon ng "Wise Clock 2" (Arduino-based Alarm Clock Na Maraming mga Dagdag na Mga Tampok): 6 na Hakbang
Pag-iipon ng "Wise Clock 2" (Arduino-based Alarm Clock Na Maraming Maraming Mga Tampok): Ipinapakita ng tutorial na ito kung paano tipunin ang kit para sa Wise Clock 2, isang bukas na mapagkukunan (hardware at software) na proyekto. Ang isang kumpletong Wise Clock 2 kit ay maaaring mabili dito. Sa buod, ito ang magagawa ng Wise Clock 2 (sa kasalukuyang open source softwa