Cuprins:
- Provizii
- Pasul 1: Configurarea Raspberry Pi
- Pasul 2: Conectarea dispozitivelor electronice
- Pasul 3: Proiectarea bazei de date
- Pasul 4: Configurare Arduino
- Pasul 5: Raspberry Pi Backend
- Pasul 6: Caz
Video: Trezește-mă - o ceas cu alarmă inteligentă: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Wake me up este un ceas cu alarmă inteligent care poate fi folosit și ca lumină inteligentă.
Banda LED integrată simulează intrarea luminii naturale în camera dvs. Acest lucru permite un mod calm și natural de a începe ziua.
Ceasul deșteptător este, de asemenea, echipat cu un afișaj de 4 * 7 segmente pentru citirea orei, difuzoare pentru a vă trezi cu muzica preferată, un buton tactil, un ldr pentru adaptarea luminozității ledstrip-ului și un senzor de temperatură pe care îl puteți utiliza pentru a vizualiza temperatura camerei tale.
Provizii
O listă a prețurilor exacte pe care le-am plătit poate fi găsită aici:
Microcontrolere și computere:
Raspberry Pi 4 Am folosit raspberry pi 4 4GB, cu toate acestea, orice model raspberry pi 3+ ar trebui să fie în regulă
Arduino Uno
Arduino este folosit pentru a controla afișajul ceasului de 4 * 7 segmente.
Senzori:
- TMP36: senzor de temperatură
- LDR: Rezistență dependentă de lumină
Actuatoare:
- WS2801: Ledstrip accesibil individual
- Afișaj LCD: Un afișaj LCD de 16 * 2.
- Afișaj ceas 4 * 7 segmente
IC-uri:
- 74HC595: Shiftregister pentru afișajul LCD
- MCP3008: Convertor analogic digital pe 8 biți
- Convertor de nivel logic: folosit pentru a comunica între raspi și arduino
Alte lucruri:
- Un amplificator MAX9744 adafruit pentru alimentarea difuzoarelor
- Orice difuzor, am folosit un difuzor cu gamă completă Visaton 4Ohm 8Watt (nr. Art. 2240)
- O sursă de alimentare de 9 volt pentru alimentarea amplificatorului
- O sursă de alimentare de 5 volți pentru a furniza ledstrip și alte componente. Rețineți că fiecare led din ledstrip poate drow 60mA, deci asigurați-vă că sursa de alimentare este suficientă.
- Câteva rezistențe de 220 Ohm
- O mică placă pentru a pune în cazul dvs.
Instrumente:
- Un fier de lipit.
- Ceva care să facă cazul (am folosit o imprimantă 3D cu PLA și PETG și câteva autocolante de vinil pentru a obține efectul de lemn.)
Pasul 1: Configurarea Raspberry Pi
Raspberry pi este principalul nostru micro controler.
Raspberry pi rulează serverul nostru web local, baza de date, controlează ledstrip-ul, difuzoarele, …
Partea 1: Instalarea Raspbian
Utilizați acest tutorial pentru a instala raspbian:
Asigurați-vă că SSH este activat
Partea 2: Conectarea
Pentru a vă conecta la internet, trebuie să accesați terminalul dvs. raspberry pi. Recomand utilizarea chitului. În tipul terminalului:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
„YourNetwork” este numele rețelei dvs. wifi, iar „YourSSID” este parola rețelei.
După ce ați adăugat rețeaua, încercați să reporniți Raspberry Pi.
Tastați comanda „ping 8.8.8.8”, acest lucru va trimite un pachet către serverele google dacă primiți răspuns, rețeaua dvs. este configurată și funcționează!
Partea 3: Instalați programele necesare
Vom avea nevoie să instalăm câteva programe suplimentare pentru a pune în funcțiune acest proiect.
Înainte de a începe, executați aceste 2 comenzi pentru a ne asigura că totul este actualizat.
actualizare sudo apt
sudo apt upgrade
Ar putea dura ceva timp.
Apache
sudo apt instalează apache2 -y
sudo apt instalează php libapache2-mod-php -y
MariaDB
sudo apt instalați mariadb-server mariadb-client -y
sudo apt instalează php-mysql -y
PHPMyAdmin
sudo apt instalează phpmyadmin -y
Python pip
Trebuie să instalăm pip pentru a activa unele biblioteci python
pip3 instalează mysql-connector-python
pip3 instalează flask-socketio
pip3 instalează flask-cors
pip3 instalează gevent
pip3 instalează gevent-websocket
Pasul 2: Conectarea dispozitivelor electronice
Am adăugat 2 scheme, 1 este o schemă de testare. Vă recomand să construiți prima schemă și să încercați ca codul să funcționeze.
Am adăugat fișierele interesante de mai jos.
Pasul 3: Proiectarea bazei de date
Aceasta este schema de baze de date pe care am realizat-o. Cuvintele sunt în olandeză, dar voi explica fiecare tabel în detaliu.
Tabelul 1: tblMuziek
Acesta este un tabel destul de simplu. Se salvează numele artistului, numele melodiei și numele fișierului unei melodii.
Tabelul 2: tblLedstrip
Acest tabel ține evidența stării curente a ledstrip-ului și salvează starea ledstrip-ului. Avem nevoie de acest lucru pentru funcția smartlight.
Tabelul 3: tblSensoren
Acest tabel ține evidența senzorilor din alarma noastră. Stocăm numele senzorului și canalul MCP3008
Tabelul 4: tblMeting
Acest tabel stochează valorile senzorilor noștri împreună cu timpul lor.
Tabelul 5: tblWekker
Acest tabel stochează parola și numele ceasului cu alarmă (de ex. Dormitor) Acest tabel nu este obligatoriu, dar l-am adăugat deoarece presupun că veți avea mai mult de 1 ceas cu alarmă în casa dvs.
Tabelul 6: tblAlarm
Acesta este probabil cel mai important tabel. Acesta ține evidența alarmei pe care ați setat-o și ce trebuie să facă ceasul (ce melodie să redați, ce secvență de leduri, în ce zile ar trebui să se declanșeze, …). Este foarte important să țineți evidența a 2 date. 1 dată este utilizată pentru a stoca la ce oră ar trebui să declanșeze alarma. Cealaltă ține evidența ultimei declanșări a alarmei. Pentru a ști ce zi săptămânală ar trebui să dispară, am folosit un varchar care conține un număr de 7 cifre. Prima cifră este luni, a doua marți, … Dacă este 1, atunci ar trebui să dispară, dacă este 0, nu ar trebui. Exemplu: 1111100 înseamnă că alarma ar trebui să declanșeze luni, marți, miercuri, joi și vineri.
Pasul 4: Configurare Arduino
Acest pas este foarte ușor. La pasul următor va fi un link către github-ul meu de unde puteți descărca fișierul arduino.
Ce face programul?
Programul așteaptă ca datele seriale să vină din pi.
De îndată ce datele sunt primite, acestea analizează șirul și trimite înapoi o confirmare către pi.
Șirul va fi cam așa: „1201” înseamnă că este 12:01. Am folosit un afișaj anodic comun de 7 segmente, ceea ce înseamnă că cifrele ar trebui să fie mari și A, B, C, D, E, F, G și DP ar trebui să fie scăzute pentru a le activa. Dacă utilizați un catod comun, ar trebui să schimbați HIGH la LOW și LOW la HIGH.
Iată un link cu mai multe informații despre cum funcționează afișajele pe 7 segmente. (cu utilizarea bibliotecii):
www.instructables.com/id/Using-a-4-digit-7…
Iată un link despre afișajele pe 7 segmente fără utilizarea unei biblioteci:
create.arduino.cc/projecthub/SAnwandter1/p…
Pasul 5: Raspberry Pi Backend
Puteți descărca codul meu folosind Github. (https://github.com/VanHevelNico/WakeMeUp)
Cum se instalează programul:
Backend-ul este scris în python folosind balonul. Puteți crea un serviciu care pornește automat acest program (app.py).
Ar trebui să introduceți codul frontend în fișierul html al serverului apache pe care l-am descărcat mai devreme. (/ var / html)
Cum funcționează programul?
Când ceasul cu alarmă este pornit, accesați adresa IP a ceasului (acesta va fi afișat pe ecranul LCD)
De îndată ce accesați adresa IP din browserul dvs. computerul dvs. va trimite o cerere socket.io către backend spunând că s-a conectat un client. Când backend-ul primește acest lucru, vor începe câteva fire pe care le voi explica mai jos.
Înființat
Aceasta inițializează toate obiectele necesare.
GetTemp
Aceasta citește canalul mcp3008 0 și convertește datele binare la temperatura reală și le introduce în baza de date cu data și ora curente.
GetTempGrafiek
Aceasta obține ultimele 20 de valori ale senzorului de temperatură și îl emite în frontend.
tijd_sturen
Această metodă obține ora curentă și verifică dacă minutul s-a schimbat. Dacă s-a schimbat, programul trimite ora nouă către arduino folosind comunicații seriale
checkAlarmen
Aceasta este cea mai importantă metodă. Acesta primește toate alarmele care sunt activate și verifică dacă oricare dintre aceste alarme trebuie să treacă între acum și acum 5 minute (acesta este un buffer pentru a vă asigura că fiecare alarmă se declanșează când trebuie). Dacă alarma trebuie să se declanșeze, vom începe muzica, ledstrip-ul, … Citim rezistența sensibilă la forță continuu și când valoarea scade sub 1000 (citim fsr este apăsat) Întoarcem alarma și actualizăm alarma în Bază de date. Am stabilit data la care s-a declanșat alarma pentru ultima dată la data curentă.
statusLight
Această metodă emite valoarea ledstrip-ului și pornește ledstrip-ul dacă este necesar.
lichtAanpassen
Aceasta este o metodă suplimentară pentru a vă asigura că ledul și ledul de alarmă nu intră în conflict.
Pasul 6: Caz
Link-ul către fișierele mele poate fi găsit aici:
Am folosit o imprimantă 3d pentru a imprima carcasa. Este tipărit în 4 părți diferite:
- Placa frontală cu găuri pentru difuzor și niște pereți pentru afișajul pe 7 segmente
- Inelul exterior pentru ledstrip în PETG transparent.
- Partea de mijloc
- Placa din spate cu o gaură pentru ecranul LCD și o gaură pentru cabluri.
În modelul original nu a existat nicio gaură pentru afișajul cu 7 segmente, totuși acest lucru este necesar pentru că altfel lumina afișajului pe 7 segmente nu va străluci.
După cum puteți vedea, după ce am introdus toate componentele, am folosit autocolante de vinil cu aspect de lemn pentru a face rezultatul final să arate mai bine. Afișajul ceasului strălucește prin autocolant, ceea ce creează un efect foarte frumos.
Recomandat:
Ceas cu alarmă inteligentă folosind Magicbit (Arduino): 10 pași
Ceas cu alarmă inteligentă utilizând Magicbit (Arduino): Acest tutorial arată cum să creați un ceas cu alarmă inteligent utilizând afișajul OLED pe placa de dev Magicbit fără a utiliza niciun modul RTC
Ceas cu alarmă inteligentă - Intel Edison - Iot RoadShow - São Paulo: 4 pași
Ceas cu alarmă inteligentă - Intel Edison - Iot RoadShow - São Paulo: Una dintre marile virtuți ale oricui locuiește sau lucrează într-un oraș mare este gestionarea timpului. În zilele noastre călătoriile sunt constante și, deoarece traficul este unul dintre principalii factori. Gândindu-mă la asta, am creat o mică aplicație care utilizează integrarea cu Google M
WakeupNow - Ceas cu alarmă inteligentă: 8 pași
WakeupNow - Ceas cu alarmă inteligentă: După cum știe toată lumea, viața studenților este foarte grea, au o zi lungă cu prelegeri, multe teme și, în general, au o viață nebună. Au timp degeaba, iar dacă le sugerați să adauge câteva ore zilei, vor fi bucuroși. Unfo
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
Scală inteligentă DIY cu ceas cu alarmă (cu Wi-Fi, ESP8266, Arduino IDE și Adafruit.io): 10 pași (cu imagini)
Cântar inteligent DIY cu ceas cu alarmă (cu Wi-Fi, ESP8266, Arduino IDE și Adafruit.io): În proiectul meu anterior, am dezvoltat o cântare de baie inteligentă cu Wi-Fi. Poate măsura greutatea utilizatorului, îl poate afișa local și îl poate trimite în cloud. Puteți obține mai multe detalii despre acest lucru pe linkul de mai jos: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi