Obsah:

Wake Me Up - inteligentný budík: 6 krokov
Wake Me Up - inteligentný budík: 6 krokov

Video: Wake Me Up - inteligentný budík: 6 krokov

Video: Wake Me Up - inteligentný budík: 6 krokov
Video: 40 MINUTE - TIMER & ALARM - Full HD - COUNTDOWN 2024, November
Anonim
Wake Me Up - inteligentný budík
Wake Me Up - inteligentný budík

Wake me up je inteligentný budík, ktorý je možné použiť aj ako inteligentné svetlo.

Vstavaný LED pásik simuluje prirodzené svetlo vstupujúce do vašej miestnosti. To umožňuje pokojný a prirodzený spôsob, ako začať svoj deň.

Budík je tiež vybavený 4*7 segmentovým displejom na čítanie času, reproduktormi na prebúdzanie s obľúbenou hudbou, dotykovým tlačidlom, ldr na prispôsobenie jasu LED pásky a teplotným snímačom, pomocou ktorého môžete zobrazovať teplotu vašej miestnosti.

Zásoby

Zoznam presných cien, ktoré som zaplatil, nájdete tu:

Mikrokontroléry a počítače:

Malina Pi 4 Použil som malinu pi 4 4 GB, ale akýkoľvek model maliny pi 3+ by mal byť v poriadku

Arduino Uno

Arduino slúži na ovládanie 4*7 segmentového hodinového displeja.

Senzory:

  • TMP36: snímač teploty
  • LDR: Odpor závislý od svetla

Ovládače:

  • WS2801: Individuálne adresný pás LED
  • LCD displej: A 16*2 LCD displej.
  • 4*7 segmentový displej s hodinami

IC:

  • 74HC595: Register posunu pre LCD displej
  • MCP3008: 8-bitový analógovo-digitálny prevodník
  • Konvertor logickej úrovne: slúži na komunikáciu medzi raspi a arduino

Ostatné veci:

  • Zosilňovač adafruit MAX9744 na napájanie reproduktorov
  • Na akýkoľvek reproduktor som použil širokopásmový reproduktor Visaton 4Ohm 8Watt (obj. Č. 2240)
  • 9voltový napájací zdroj na napájanie zosilňovača
  • 5voltový napájací zdroj na napájanie ledstripu a ďalších komponentov. Majte na pamäti, že každá LED dióda v páse môže drow 60mA, takže sa uistite, že je váš napájací zdroj dostačujúci.
  • Niekoľko odporov 220Ohm
  • Malá doska na pečenie, ktorá sa dá vložiť do vášho puzdra.

Náradie:

  • Spájkovačka.
  • Niečo na výrobu puzdra (Na 3D efekt som použil 3D tlačiareň s PLA a PETG a niekoľko vinylových nálepiek.)

Krok 1: Nastavenie Raspberry Pi

Raspberry pi je náš hlavný mikrokontrolér.

Raspberry Pi prevádzkuje náš miestny webový server, databázu, ovláda pásmo LED, reproduktory, …

Časť 1: Inštalácia Raspbian

Na inštaláciu raspbian použite tento návod:

Uistite sa, že je povolené SSH

Časť 2: Pripojenie

Aby ste sa mohli pripojiť na internet, musíte získať prístup k terminálu malinovej pí. Odporúčam použiť tmel. V type terminálu:

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

„YourNetwork“je názov vašej siete Wi -Fi a „YourSSID“je heslo siete.

Po pridaní siete sa pokúste reštartovať Raspberry Pi.

Zadajte príkaz „ping 8.8.8.8“, ktorý pošle paket na servery Google, ak dostanete odpoveď, že vaša sieť je nastavená a funguje!

Časť 3: Nainštalujte potrebné programy

Na spustenie tohto projektu budeme potrebovať nejakú inštaláciu ďalších programov.

Predtým, ako začneme, spustite tieto 2 príkazy, aby ste sa presvedčili, že je všetko aktualizované.

sudo apt aktualizácia

sudo apt upgrade

Môže to chvíľu trvať.

Apache

sudo apt nainštalovať apache2 -y

sudo apt install php libapache2-mod-php -y

MariaDB

sudo apt nainštalovať mariadb-server mariadb-klient -y

sudo apt install php -mysql -y

PHPMyAdmin

sudo apt install phpmyadmin -y

Python pip

Na povolenie niektorých knižníc pythonu musíme nainštalovať pip

pip3 nainštalujte mysql-connector-python

pip3 nainštalujte flask-socketio

pip3 nainštalujte flask-cors

pip3 install gevent

pip3 nainštalujte gevent-websocket

Krok 2: Pripojenie elektroniky

Pripojenie elektroniky
Pripojenie elektroniky
Pripojenie elektroniky
Pripojenie elektroniky

Pridal som 2 schémy, 1 je schéma na testovacie účely. Odporúčam zostaviť prvú schému a pokúsiť sa dosiahnuť, aby kód fungoval.

Fritzujúce súbory som pridal nižšie.

Krok 3: Návrh databázy

Návrh databázy
Návrh databázy

Toto je databázová schéma, ktorú som vytvoril. Slová sú v holandčine, ale každú tabuľku podrobne vysvetlím.

Tabuľka 1: tblMuziek

Toto je celkom základná tabuľka. Uloží meno interpreta, názov piesne a názov skladby.

Tabuľka 2: tblLedstrip

Táto tabuľka zaznamenáva aktuálny stav pásika LED a ukladá stav pruhu LED. Potrebujeme to pre funkciu smartlight.

Tabuľka 3: tblSensoren

Táto tabuľka sleduje senzory v našom alarme. Uložíme názov senzora a kanál MCP3008

Tabuľka 4: tblMeting

V tejto tabuľke sú uložené hodnoty našich senzorov spolu s časom.

Tabuľka 5: tblWekker

Táto tabuľka obsahuje heslo a názov budíka (napr. Spálňa). Táto tabuľka nie je povinná, ale pridal som ju, pretože predpokladám, že budete mať vo svojom dome viac ako 1 budík.

Tabuľka 6: tblAlarm

Toto je pravdepodobne najdôležitejšia tabuľka. Sleduje alarmy, ktoré ste nastavili, a to, čo majú hodiny robiť (ktorá skladba sa má prehrať, ktorá sekvencia led -diód, V ktoré dni by sa mala vypnúť, …). Je veľmi importné sledovať 2 dátumy. 1 dátum slúži na uloženie hodiny, v ktorej by sa mal spustiť alarm. Ten druhý sleduje, kedy naposledy zazvonil alarm. Aby som vedel, ktorý pracovný deň by mal ísť, použil som varchar, ktorý obsahuje číslo 7 číslic. Prvá číslica je pondelok, druhý utorok … Ak je 1, mala by zhasnúť, ak je 0, nemala by. Príklad: 1111100 to znamená, že tento alarm by sa mal spustiť v pondelok, utorok, stredu, štvrtok a piatok.

Krok 4: Nastavenie Arduino

Tento krok je veľmi ľahký. V nasledujúcom kroku bude odkaz na môj github, kde si môžete stiahnuť súbor arduino.

Čo program robí?

Program čaká, kým prídu sériové údaje z pí.

Akonáhle sú údaje prijaté, analyzujú sa cez reťazec a odošle sa späť potvrdenie na pi.

Reťazec bude vyzerať takto: „1201“znamená, že je 12:01. Použil som spoločný 7 -segmentový displej s anódou, to znamená, že číslice by mali byť vysoké a A, B, C, D, E, F, G a DP by mali byť nízke, aby sa zapli. Ak používate spoločnú katódu, mali by ste jednoducho zmeniť HIGH na LOW & LOW na HIGH.

Tu je odkaz s ďalšími informáciami o fungovaní 7 segmentových displejov. (s použitím knižnice):

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

Tu je odkaz na 7 segmentových zobrazení bez použitia knižnice:

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

Krok 5: Backend Raspberry Pi

Backend Raspberry Pi
Backend Raspberry Pi

Môj kód si môžete stiahnuť pomocou Github. (https://github.com/VanHevelNico/WakeMeUp)

Ako nainštalovať program:

Backend je napísaný v pythone pomocou banky. Môžete vytvoriť službu, ktorá automaticky spustí tento program (app.py).

Kód frontendu by ste mali vložiť do súboru html servera apache, ktorý sme stiahli predtým. (/var/html)

Ako program funguje?

Keď je budík zapnutý, choďte na adresu IP svojich hodín (zobrazí sa na LCD)

Hneď ako v prehliadači prejdete na uvedenú IP adresu, váš počítač pošle požiadavku socket.io na server s tým, že sa klient pripojil. Keď to server dostane, začne sa niekoľko vlákien, ktoré vysvetlím nižšie.

Nastaviť

Tým sa zintenzívnia všetky potrebné objekty.

GetTemp

Toto načíta kanál mcp3008 0 a prevedie binárne údaje na skutočnú teplotu a vloží ich do databázy s aktuálnym dátumom a hodinou.

GetTempGrafiek

Získa sa posledných 20 hodnôt teplotného senzora a odošle sa do klientskeho rozhrania.

tijd_sturen

Táto metóda zistí aktuálny čas a skontroluje, či sa minúta zmenila. Ak sa to zmenilo, program pošle nový čas arduinu pomocou sériovej komunikácie

checkAlarmen

Toto je najdôležitejšia metóda. Zaznamenáva všetky alarmy, ktoré sú zapnuté, a kontroluje, či niektorý z týchto alarmov musí prestať trvať pred 5 minútami (to je vyrovnávacia pamäť, ktorá zabezpečí, že každý alarm prejde, keď to bude potrebné). Ak sa má alarm spustiť, spustíme hudbu, LED pásik, … Čítame odpor citlivý na silu nepretržite a keď hodnota klesne pod 1000 (prečítajte si stlačenie fsr) Vypneme alarm a aktualizujeme alarm v databázy. Nastavili sme dátum, kedy sa naposledy spustil alarm.

statusLight

Táto metóda vysiela hodnotu LED pásu a v prípade potreby ho zapne.

lichtAanpassen

Toto je ďalší spôsob, ako zaistiť, aby LED pásik a kontrolka alarmu neboli v konflikte.

Krok 6: Prípad

Prípad
Prípad
Prípad
Prípad
Prípad
Prípad

Odkaz na moje súbory nájdete tu:

Na vytlačenie obalu som použil 3D tlačiareň. Je vytlačený v 4 rôznych častiach:

  1. Predná doska s otvormi pre reproduktor a niekoľkými stenami pre 7 segmentový displej
  2. Vonkajší krúžok pre LED pásik v transparentnom PETG.
  3. Stredná časť
  4. Zadná doska s otvorom pre LCD a otvorom pre káble.

V pôvodnom modeli nebol žiadny otvor pre 7 -segmentový displej, je to však potrebné, pretože inak svetlo 7 -segmentového displeja nebude presvitať.

Ako vidíte, po vložení všetkých komponentov som použil vinylové nálepky s dreveným vzhľadom, aby konečný výsledok vyzeral lepšie. Displej hodín svieti cez nálepku, čo vytvára veľmi pekne vyzerajúci efekt.

Odporúča: