Obsah:
- Zásoby
- Krok 1: Nastavení Raspberry Pi
- Krok 2: Připojení elektroniky
- Krok 3: Návrh databáze
- Krok 4: Nastavení Arduina
- Krok 5: Raspberry Pi Backend
- Krok 6: Případ
Video: Wake Me Up - chytrý budík: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
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ř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
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
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
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:
- Přední deska s otvory pro reproduktor a některé stěny pro 7segmentový displej
- Vnější prstenec pro ledstrip v transparentním PETG.
- Prostřední část
- 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:
Budík Twin Bell z plechovek od sodovky: 7 kroků (s obrázky)
Budík Twin Bell z plechovek od sodovky: Tento návod vám ukáže, jak vyrobit budík se dvěma zvonky z plechovek od sodovky. Projekt používá plechovky od sodovky, kde byl odstraněn inkoust (Odkaz: Odstranění inkoustu z plechovek od sodovky). Aby byl tento budík plně funkční, byl do něj integrován hodinový modul DIY Quartz
Bublinový budík dělá probuzení zábavným (ish): 7 kroků (s obrázky)
Bubble Alarm Clocks Make Waking Up Fun (ish): Probuzení do bzučení budíku je na nic. Jsem jedním z těch lidí, kteří se neradi probudí, než vyjde slunce (nebo už je venku mnoho hodin). Takže jaký lepší způsob, jak si užít probuzení, než mít bublinovou párty v posteli! Pomocí arduina a
WakeupNow - inteligentní budík: 8 kroků
WakeupNow - Inteligentní budík: Jak každý ví, život studentů je velmi těžký, mají dlouhý den s přednáškami, spoustu domácích úkolů a obecně mají bláznivý život. Nemají čas na nic, a pokud jim navrhnete, aby přidali několik hodin dne, budou rádi. Unfo
Inteligentní budík: inteligentní budík vyrobený z Raspberry Pi: 10 kroků (s obrázky)
Chytrý budík: Chytrý budík vyrobený z Raspberry Pi: Chtěli jste někdy chytré hodiny? Pokud ano, toto je řešení pro vás! Vytvořil jsem inteligentní budík, toto jsou hodiny, u kterých můžete podle času na webu změnit čas budíku. Když se spustí alarm, ozve se zvuk (bzučák) a 2 kontrolky
Easy Wake-Up: Smart Wake-Up Light Made with Raspberry Pi: 6 Steps
Easy Wake-Up: Smart Wake-Up Light Made with Raspberry Pi: IntroFor the curriculum Project1 I have to make something. Vždy mě fascinovalo, jak by vám probouzející se světlo prospělo, když se probudíte jako ty od společnosti Philips. Rozhodl jsem se tedy vytvořit budící světlo. Světlo probuzení jsem vytvořil pomocí Raspberru