Satura rādītājs:

Wake Me Up - viedais modinātājs: 6 soļi
Wake Me Up - viedais modinātājs: 6 soļi

Video: Wake Me Up - viedais modinātājs: 6 soļi

Video: Wake Me Up - viedais modinātājs: 6 soļi
Video: I made an alarm clock that's also a drinking glass | #shorts 2024, Novembris
Anonim
Wake Me Up - viedais modinātājs
Wake Me Up - viedais modinātājs

Wake me up ir gudrs modinātājs, ko var izmantot arī kā viedo gaismu.

Iebūvētā LED josla simulē dabisko gaismu, kas ienāk jūsu istabā. Tas ļauj mierīgi, dabiski sākt savu dienu.

Modinātājs ir aprīkots arī ar 4*7 segmentu displeju laika lasīšanai, skaļruņiem, lai pamostos ar iecienītāko mūziku, skārienpaliktni, ldr, lai pielāgotu gaismas joslas spilgtumu, un temperatūras sensoru, ko varat izmantot, lai skatītu jūsu istabas temperatūra.

Piegādes

Precīzu manis samaksāto cenu sarakstu var atrast šeit:

Mikrokontrolleri un datori:

Raspberry Pi 4I izmantoju aveņu pi 4 4GB, tomēr jebkuram aveņu pi modelim 3+ vajadzētu būt piemērotam

Arduino Uno

Arduino tiek izmantots, lai kontrolētu 4*7 segmentu pulksteņa displeju.

Sensori:

  • TMP36: temperatūras sensors
  • LDR: no gaismas atkarīgs rezistors

Izpildmehānismi:

  • WS2801: individuāli adresējama gaismas josla
  • LCD displejs: 16*2 LCD displejs.
  • 4*7 segmentu pulksteņa displejs

IC:

  • 74HC595: maiņu reģistrs LCD displejam
  • MCP3008: 8 bitu analogo ciparu pārveidotājs
  • Loģikas līmeņa pārveidotājs: izmanto, lai sazinātos starp raspi un arduino

Citas lietas:

  • Adafruit MAX9744 pastiprinātājs skaļruņu barošanai
  • Jebkurš skaļrunis, es izmantoju Visaton 4Ohm 8Watt pilna diapazona skaļruni (Art. Nr. 2240)
  • 9 voltu barošanas avots pastiprinātāja barošanai
  • 5 voltu barošanas avots, lai piegādātu LED joslu un citus komponentus. Paturiet prātā, ka katrs LED joslā esošais vads var uzkrāt 60 mA strāvu, tāpēc pārliecinieties, vai jūsu barošanas avots ir pietiekams.
  • Daži 220 omu rezistori
  • Neliels maizes dēlis, ko ievietot jūsu korpusā.

Rīki:

  • Lodāmurs.
  • Kaut kas lietas izveidošanai (es izmantoju 3D printeri ar PLA un PETG un dažas vinila uzlīmes, lai iegūtu koka efektu.)

1. darbība: Raspberry Pi iestatīšana

Aveņu pi ir mūsu galvenais mikrokontrolleris.

Raspberry pi vada mūsu vietējo tīmekļa serveri, datu bāzi, kontrolē LED joslu, skaļruņus,…

1. daļa: Raspbian instalēšana

Izmantojiet šo pamācību, lai instalētu raspbian:

Pārliecinieties, vai SSH ir iespējots

2. daļa: Savienojuma izveide

Lai izveidotu savienojumu ar internetu, jums ir nepieciešams piekļūt jūsu aveņu pi terminālim. Es iesaku izmantot špakteli. Termināla tipā:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

"YourNetwork" ir jūsu wifi tīkla nosaukums, un "YourSSID" ir tīkla parole.

Kad esat pievienojis tīklu, mēģiniet pārstartēt Raspberry Pi.

Ierakstiet komandu 'ping 8.8.8.8', ja nosūtīsit paketi Google serveriem, ja saņemsit atbildi, jūsu tīkls ir iestatīts un darbojas!

3. daļa: Instalējiet nepieciešamās programmas

Mums būs jāinstalē dažas papildu programmas, lai sāktu šo projektu.

Pirms sākam, izpildiet šīs 2 komandas, lai pārliecinātos, ka viss ir jaunināts.

sudo apt atjauninājums

sudo apt jauninājums

Tas var aizņemt kādu laiku.

Apache

sudo apt instalēt apache2 -y

sudo apt instalēt php libapache2-mod-php -y

MariaDB

sudo apt instalēt mariadb-server mariadb-client-y

sudo apt instalēt php -mysql -y

PHPMyAdmin

sudo apt instalēt phpmyadmin -y

Python pip

Mums ir jāinstalē pip, lai iespējotu dažas python bibliotēkas

pip3 instalējiet mysql-connector-python

pip3 instalējiet kolbu-ligzdu

pip3 instalēt kolbas

pip3 instalācijas ģenerators

pip3 instalēt gevent-websocket

2. darbība. Elektronikas pievienošana

Elektronikas pieslēgšana
Elektronikas pieslēgšana
Elektronikas pieslēgšana
Elektronikas pieslēgšana

Esmu pievienojis 2 shēmas, 1 ir maizes dēļa shēma testēšanai. Es iesaku izveidot pirmo shēmu un mēģināt panākt, lai kods darbotos.

Zemāk esmu pievienojis fritzes failus.

3. darbība. Datu bāzes dizains

Datu bāzes dizains
Datu bāzes dizains

Šī ir manis izveidotā datu bāzes shēma. Vārdi ir holandiešu valodā, bet es detalizēti paskaidrošu katru tabulu.

1. tabula: tblMuziek

Šis ir diezgan vienkāršs galds. Tas saglabā dziesmas izpildītāja vārdu, dziesmas nosaukumu un faila nosaukumu.

2. tabula: tblLedstrip

Šajā tabulā tiek sekots LED joslas pašreizējam stāvoklim, un tiek saglabāts LED joslas stāvoklis. Tas mums ir nepieciešams viedās gaismas funkcijai.

3. tabula: tblSensoren

Šī tabula izseko mūsu trauksmes sensorus. Mēs saglabājam sensora nosaukumu un MCP3008 kanālu

4. tabula: tblMeting

Šajā tabulā tiek glabātas mūsu sensoru vērtības kopā ar to laiku.

5. tabula: tblWekker

Šajā tabulā ir saglabāta jūsu modinātāja parole un nosaukums (piemēram, guļamistaba). Šī tabula nav obligāta, taču es to pievienoju, jo pieņemu, ka jūsu mājā būs vairāk nekā viens modinātājs.

6. tabula: tblAlarm

Tas, iespējams, ir vissvarīgākais galds. Tā seko līdzi jūsu iestatītajam modinātājam un tam, kas pulkstenim ir jādara (kuru dziesmu atskaņot, kura vadīta secība, kurās dienās tai jāizslēdzas …). Ir ļoti svarīgi izsekot 2 datumiem. 1 datums tiek izmantots, lai saglabātu, kurā stundā modinātājam vajadzētu atskanēt. Otrs seko pēdējam brīdinājuma signālam. Lai uzzinātu, kurā darba dienā tam vajadzētu izslēgties, es izmantoju varchar, kurā ir 7 cipari. Pirmais cipars ir pirmdiena, otrā otrdiena,… Ja tas ir 1, tam vajadzētu izslēgties, ja tas ir 0, tad nevajadzētu. Piemērs: 1111100 tas nozīmē, ka šim modinātājam vajadzētu atskanēt pirmdien, otrdien, trešdien, ceturtdien un piektdien.

4. darbība: Arduino iestatīšana

Šis solis ir ļoti vienkāršs. Nākamajā solī būs saite uz manu github, kur varēsit lejupielādēt arduino failu.

Ko programma dara?

Programma gaida sērijas datu ienākšanu no pi.

Tiklīdz dati ir saņemti, tie analizē virkni un nosūta atpakaļ apstiprinājumu pi.

Virkne būs aptuveni šāda: “1201”, tas nozīmē, ka ir 12:01. Es izmantoju parasto anoda 7 segmentu displeju, tas nozīmē, ka cipariem jābūt augstiem un A, B, C, D, E, F, G un DP jābūt zemiem, lai tos ieslēgtu. Ja izmantojat parasto katodu, vienkārši nomainiet HIGH uz LOW un LOW uz HIGH.

Šeit ir saite ar plašāku informāciju par to, kā darbojas 7 segmenta displeji. (izmantojot bibliotēku):

www.instructables.com/id/Using-a-4-digit-7…

Šeit ir saite par 7 segmentu displejiem, neizmantojot bibliotēku:

create.arduino.cc/projecthub/SAnwandter1/p…

5. darbība: Raspberry Pi aizmugure

Raspberry Pi aizmugure
Raspberry Pi aizmugure

Jūs varat lejupielādēt manu kodu, izmantojot Github. (https://github.com/VanHevelNico/WakeMeUp)

Kā instalēt programmu:

Pamatprogramma ir rakstīta python, izmantojot kolbu. Jūs varat izveidot pakalpojumu, kas automātiski startē šo programmu (app.py).

Ievietojiet priekšējās sistēmas kodu apache servera html failā, kuru lejupielādējām iepriekš. (/var/html)

Kā programma darbojas?

Kad modinātājs ir ieslēgts, dodieties uz pulksteņa ip adresi (tas tiks parādīts LCD)

Tiklīdz pārlūkprogrammā dodaties uz šo IP adresi, jūsu dators nosūtīs aizmugurējai sistēmai socket.io pieprasījumu, sakot, ka klients ir izveidojis savienojumu. Kad aizmugure to saņems, sāksies daži pavedieni, kurus es paskaidrošu tālāk.

Uzstādīt

Tas intializē visus nepieciešamos objektus.

GetTemp

Tas nolasa mcp3008 kanālu 0 un pārvērš bināros datus par faktisko temperatūru un ievieto tos datu bāzē ar pašreizējo datumu un stundu.

GetTempGrafiek

Tas iegūst pēdējās 20 temperatūras sensora vērtības un izstaro to priekšpusē.

tijd_sturen

Šī metode iegūst pašreizējo laiku un pārbauda, vai minūte ir mainījusies. Ja tā ir mainījusies, programma nosūta jauno laiku arduino, izmantojot sērijas sakarus

checkAlarmen

Šī ir vissvarīgākā metode. Tas saņem visus ieslēgtos trauksmes signālus un pārbauda, vai kādam no šiem trauksmēm ir jāieslēdzas no šī brīža līdz 5 minūtēm (tas ir buferis, lai pārliecinātos, ka katrs trauksmes signāls ieslēdzas, kad tas ir nepieciešams). Ja modinātājam jāizslēdzas, mēs sāksim mūziku, gaismas joslu,… Mēs nepārtraukti lasām spēka jutīgo rezistoru un, kad vērtība nokrītas zem 1000 (lasiet, ka tiek nospiests fsr) Mēs ieslēdzam modinātāju un atjauninām trauksmi datu bāze. Mēs iestatījām datumu, kad modinātājs pēdējo reizi atskanēja, uz pašreizējo datumu.

statusLight

Šī metode izstaro LED joslas vērtību un vajadzības gadījumā ieslēdz LED joslu.

lichtAanpassen

Šī ir papildu metode, lai pārliecinātos, ka LED josla un trauksmes lampiņa nav pretrunā.

6. darbība: lieta

Lieta
Lieta
Lieta
Lieta
Lieta
Lieta

Saite uz maniem failiem atrodama šeit:

Korpusa drukāšanai es izmantoju 3D printeri. Tas ir iespiests 4 dažādās daļās:

  1. Priekšējā plāksne ar caurumiem skaļrunim un dažas sienas 7 segmentu displejam
  2. LED sloksnes ārējais gredzens caurspīdīgā PETG.
  3. Vidējā daļa
  4. Aizmugurējā plāksne ar caurumu LCD un caurumu kabeļiem.

Sākotnējā modelī 7 segmentu displejam nebija cauruma, taču tas ir nepieciešams, jo pretējā gadījumā 7 segmentu displeja gaisma nespīdēs cauri.

Kā redzat pēc visu sastāvdaļu ievietošanas, es izmantoju vinila uzlīmes ar koka izskatu, lai gala rezultāts izskatītos labāk. Pulksteņa displejs spīd caur uzlīmi, kas rada ļoti jauku izskatu.

Ieteicams: