Obsah:

Wake Me Up - chytrý budík: 6 kroků
Wake Me Up - chytrý budík: 6 kroků

Video: Wake Me Up - chytrý budík: 6 kroků

Video: Wake Me Up - chytrý budík: 6 kroků
Video: Jak ZMĚNIT ZVUK BUDÍKU v TELEFONU | Návod | Telefon 2024, Listopad
Anonim
Wake Me Up - chytrý budík
Wake Me Up - chytrý budík

Wake me up je chytrý budík, který lze použít i jako chytré světlo.

Vestavěný LED pás simuluje přirozené světlo přicházející do vaší místnosti. To umožňuje klidný a přirozený způsob, jak začít svůj den.

Budík je také vybaven 4*7 segmentovým displejem pro čtení času, reproduktory pro probuzení s vaší oblíbenou hudbou, dotykovým tlačítkem, ldr pro přizpůsobení jasu LED pásky a teplotním čidlem, které můžete použít k zobrazení teplotu vaší místnosti.

Zásoby

Seznam přesných cen, které jsem zaplatil, naleznete zde:

Mikrokontroléry a počítače:

Raspberry Pi 4 Použil jsem malinu pi 4 4 GB, ale jakýkoli model maliny pi 3+ by měl být v pořádku

Arduino Uno

Arduino slouží k ovládání hodinového displeje 4*7.

Senzory:

  • TMP36: teplotní čidlo
  • LDR: Rezistor závislý na světle

Aktuátory:

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

IC:

  • 74HC595: Shiftregister pro LCD displej
  • MCP3008: 8bitový převodník analogového signálu na digitální
  • Převodník logické úrovně: Slouží ke komunikaci mezi raspi a arduino

Jiné věci:

  • Zesilovač adafruit MAX9744 k napájení reproduktorů
  • Jakýkoli reproduktor, použil jsem širokopásmový reproduktor Visaton 4Ohm 8Watt (článek č. 2240)
  • 9voltový napájecí zdroj pro napájení zesilovače
  • 5voltový napájecí zdroj pro napájení ledstripu a dalších komponent. Mějte na paměti, že každá LED v ledstripu může drow 60mA, takže se ujistěte, že je váš napájecí zdroj dostatečný.
  • Několik 220Ohm odporů
  • Malé prkénko pro vložení do kufříku.

Nástroje:

  • Páječka.
  • Něco na výrobu pouzdra (Použil jsem 3D tiskárnu s PLA a PETG a několik vinylových samolepek, abych získal dřevěný efekt.)

Krok 1: Nastavení Raspberry Pi

Raspberry pi je náš hlavní mikrořadič.

Raspberry pi provozuje náš místní webový server, databázi, ovládá ledstrip, reproduktory,…

Část 1: Instalace Raspbian

Pomocí tohoto tutoriálu nainstalujte raspbian:

Ujistěte se, že je povoleno SSH

Část 2: Připojení

Abyste se mohli připojit k internetu, potřebujete přístup k terminálu vašeho malinového pi. Doporučuji použít tmel. V typu terminálu:

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

„YourNetwork“je název vaší wifi sítě a „YourSSID“je heslo sítě.

Jakmile přidáte síť, zkuste restartovat Raspberry Pi.

Zadejte příkaz „ping 8.8.8.8“, který pošle paket na servery Google, pokud dostanete odpověď, vaše síť je nastavena a funguje!

Část 3: Nainstalujte si potřebné programy

Aby byl tento projekt spuštěn, budeme potřebovat nainstalovat nějaké další programy.

Než začneme, spusťte tyto 2 příkazy, abyste se ujistili, že je vše upgradováno.

sudo apt aktualizace

sudo apt upgrade

Může to chvíli trvat.

Apache

sudo apt install apache2 -y

sudo apt install 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 pip

Abychom mohli povolit některé knihovny pythonu, musíme nainstalovat pip

pip3 nainstalujte mysql-connector-python

pip3 install flask-socketio

pip3 nainstalujte flask-cors

pip3 install gevent

pip3 nainstalujte gevent-websocket

Krok 2: Připojení elektroniky

Připojení elektroniky
Připojení elektroniky
Připojení elektroniky
Připojení elektroniky

Přidal jsem 2 schémata, 1 je schéma prkénka pro testovací účely. Doporučuji sestavit první schéma a pokusit se, aby kód fungoval.

Níže jsem přidal fritzující soubory.

Krok 3: Návrh databáze

Návrh databáze
Návrh databáze

Toto je databázové schéma, které jsem vytvořil. Slova jsou v holandštině, ale každou tabulku podrobně vysvětlím.

Tabulka 1: tblMuziek

Toto je docela základní tabulka. Uloží jméno umělce, název skladby a název souboru písně.

Tabulka 2: tblLedstrip

Tato tabulka sleduje aktuální stav ledstripu a ukládá stav ledstripu. Potřebujeme to pro funkci smartlight.

Tabulka 3: tblSensoren

Tato tabulka sleduje senzory v našem alarmu. Uložíme název senzoru a kanál MCP3008

Tabulka 4: tblMeting

Tato tabulka ukládá hodnoty našich senzorů společně s jejich časem.

Tabulka 5: tblWekker

Tato tabulka ukládá heslo a název vašeho budíku (např. Ložnice) Tato tabulka není povinná, ale přidal jsem ji, protože předpokládám, že budete mít ve svém domě více než 1 budík.

Tabulka 6: tblAlarm

Toto je pravděpodobně nejdůležitější tabulka. Zaznamenává alarmy, které jste nastavili, a to, co mají hodiny dělat (která skladba se má přehrát, která sekvence ledů, v jaké dny by se měla vypnout, …). Je velmi importní sledovat 2 data. 1 datum slouží k uložení, v kterou hodinu by měl alarm začít. Ten druhý sleduje, kdy se naposledy spustil alarm. Abych věděl, který den v týdnu by měl vypnout, použil jsem varchar, který obsahuje číslo 7 číslic. První číslice je pondělí, druhé úterý… Pokud je to 1, pak by mělo zhasnout, pokud je 0, nemělo by to být. Příklad: 1111100 to znamená, že tento alarm by se měl spustit v pondělí, úterý, středu, čtvrtek a pátek.

Krok 4: Nastavení Arduina

Tento krok je velmi snadný. V dalším kroku bude odkaz na můj github, kde si můžete stáhnout soubor arduino.

Co program dělá?

Program čeká na sériová data, která přijdou z pí.

Jakmile jsou data přijata, analyzují se přes řetězec a odešlou zpět potvrzení na pí.

Řetězec bude vypadat nějak takto: '1201' to znamená, že je 12:01. Použil jsem společný 7segmentový displej s anodou, což znamená, že číslice by měly být vysoké a A, B, C, D, E, F, G a DP by měly být nízké, aby je bylo možné zapnout. Pokud používáte společnou katodu, měli byste změnit HIGH na LOW & LOW na HIGH.

Zde je odkaz s dalšími informacemi o tom, jak funguje zobrazení 7 segmentů. (s využitím knihovny):

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

Zde je odkaz na 7 segmentových zobrazení bez použití knihovny:

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

Krok 5: Raspberry Pi Backend

Backend Raspberry Pi
Backend Raspberry Pi

Můj kód si můžete stáhnout pomocí Github. (https://github.com/VanHevelNico/WakeMeUp)

Jak nainstalovat program:

Backend je napsán v pythonu pomocí baňky. Můžete vytvořit službu, která tento program (app.py) spustí automaticky.

Měli byste vložit frontendový kód do html souboru apache serveru, který jsme stáhli dříve. (/var/html)

Jak program funguje?

Když je budík zapnutý, přejděte na IP adresu svých hodin (zobrazí se na LCD)

Jakmile ve svém prohlížeči přejdete na tuto IP adresu, váš počítač odešle na backend požadavek soketu s tím, že se klient připojil. Když to backend obdrží, spustí se několik vláken, která vysvětlím níže.

Založit

Tím se inicializují všechny potřebné objekty.

GetTemp

To přečte kanál 0 mcp3008 a převede binární data na skutečnou teplotu a vloží je do databáze s aktuálním datem a hodinou.

GetTempGrafiek

Tím se získá posledních 20 hodnot teplotního senzoru a odešle se do frontendu.

tijd_sturen

Tato metoda získá aktuální čas a zkontroluje, zda se minuta změnila. Pokud se to změnilo, program odešle nový čas do arduina pomocí sériové komunikace

zkontrolujte Alary

Toto je nejdůležitější metoda. Získá všechny alarmy, které jsou zapnuty, a zkontroluje, zda některý z těchto alarmů musí trvat před 5 minutami (to je vyrovnávací paměť, která zajišťuje, že každý alarm přejde, když to potřebuje). Pokud se má alarm spustit, spustíme hudbu, LED pásek,… Čteme rezistor citlivý na sílu nepřetržitě a když hodnota klesne pod 1000 (přečte se stisknutí fsr) Vypneme alarm a aktualizujeme alarm v databáze. Nastavili jsme datum, kdy se naposledy spustil alarm, na aktuální datum.

statusLight

Tato metoda vysílá hodnotu ledstripu a v případě potřeby ledstrip zapne.

lichtAanpassen

Toto je další metoda, která zajistí, že LED pás a kontrolka alarmu nebudou v konfliktu.

Krok 6: Případ

Případ
Případ
Případ
Případ
Případ
Případ

Odkaz na mé soubory naleznete zde:

K tisku pouzdra jsem použil 3D tiskárnu. Je vytištěn ve 4 různých částech:

  1. Přední deska s otvory pro reproduktor a některé stěny pro 7segmentový displej
  2. Vnější prstenec pro ledstrip v transparentním PETG.
  3. Prostřední část
  4. Zadní deska s otvorem pro LCD a otvorem pro kabely.

V původním modelu nebyl žádný otvor pro 7segmentový displej, je to však nutné, protože jinak světlo 7segmentového displeje nebude prosvítat.

Jak vidíte, po vložení všech komponentů jsem použil vinylové samolepky s dřevěným vzhledem, aby konečný výsledek vypadal lépe. Displej hodin svítí přes nálepku, což vytváří velmi pěkně vypadající efekt.

Doporučuje: