Obsah:
- Zásoby
- Krok 1: Nastavenie Raspberry Pi
- Krok 2: Pripojenie elektroniky
- Krok 3: Návrh databázy
- Krok 4: Nastavenie Arduino
- Krok 5: Backend Raspberry Pi
- Krok 6: Prípad
Video: Wake Me Up - inteligentný budík: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
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
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
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
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
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:
- Predná doska s otvormi pre reproduktor a niekoľkými stenami pre 7 segmentový displej
- Vonkajší krúžok pre LED pásik v transparentnom PETG.
- Stredná časť
- 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:
Budík Twin Bell z plechoviek od sódy: 7 krokov (s obrázkami)
Budík Twin Bell z plechoviek od sódy: Tento návod vám ukáže, ako vyrobiť zvonček s dvojitým zvončekom z plechoviek od sódy. Projekt používa plechovky od sódy, z ktorých bol odstránený atrament (Odkaz: Odstraňovanie atramentu zo sódoviek). Aby bol tento budík plne funkčný, bol do neho integrovaný quartzový hodinový modul
Bublinkový budík robí z prebúdzania zábavu (ish): 7 krokov (s obrázkami)
Bublinkový budík robí z prebúdzania zábavu (ish): Prebúdzanie sa z bzučiaceho budíka je nanič. Som jedným z ľudí, ktorí sa neradi prebúdzajú skôr, ako vyjde slnko (alebo je už veľa hodín vonku). Takže čo je lepší spôsob, ako si zobudiť zábavu, ako mať bublinovú párty v posteli! Použitie arduina a
Budík Oled: 8 krokov (s obrázkami)
Budík Oled: Existuje veľa hodín arduino/ESP32, ale používajú tie pekné a ostré OLED? Chvíľu som experimentoval s arduinos a ESP32, ale nikdy som sa nedostal k hotovému produktu. Vyrobil som budík so 4 1,3 -palcovým mon
Ako si vyrobiť DIY budík s krytom klávesnice LCD: 5 krokov
Ako si vyrobiť DIY budík s krytom klávesnice LCD: Ahoj všetci! V tomto návode vám ukážem, ako si vyrobiť budík pomocou dosky Arduino. Na stavbu týchto hodín som použil Arduino UNO, štít klávesnice LCD, 5V bzučiak a prepojovacie vodiče. Na displeji vidíte čas a môžete ho nastaviť
LED maticový budík (s prehrávačom MP3): 6 krokov (s obrázkami)
Budík s LED maticou (s prehrávačom MP3): Tento budík na báze Arduina má všetko, čo by ste od svojho budíka očakávali - možnosť prebudiť vás každou skladbou, ktorú máte radi, tlačidlo odloženia spánku a jednoduché ovládanie pomocou troch tlačidiel. Existujú tri hlavné bloky - matica LED, modul RTC a