Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
L’hivern pot ser trist. Et despertes, és fosc i t’has de llevar del llit. L’últim que voleu escoltar és el molest so del despertador. Si, com jo, teniu problemes per despertar-vos al matí, aquest despertador és el que necessiteu.
En aquest tutorial, crearem un rellotge despertador Sunrise. És un despertador com qualsevol altre, ja que podeu configurar l’hora i el minut que voleu despertar, però amb l’avantatge d’utilitzar la llum per il·luminar el vostre dormitori durant un període de temps, com una sortida del sol, per despertar-vos en lloc d’un molest. timbre!
També farem servir un mòdul bluetooth per crear una aplicació que us permeti configurar l’alarma a través del telèfon al rellotge. A la pantalla LCD es mostrarà el temps, la data i el dia de la setmana. Existeixen làmpades Sunrise al mercat, però poden ser cares (una cerca ràpida a Google proporciona productes de la gamma de 100 €), fràgils i d’aspecte clínic. Per això, vaig decidir fer el meu propi projecte Arduino School. Totes les parts es mostraran al següent pas. El codi es pot descarregar des del meu repositori Github sunrise-despertador. Anem a començar:)
es pot trobar tot el codi a:
Pas 1: recollida de les parts
Utilitzarem un rellotge com a entrada i un LED ultra-brillant com a sortida per simular la nostra sortida del sol.
Per construir el circuit necessitarem:
- Arduino Uno- clockmodule RTC DS3231 - un MOSFET per controlar la brillantor de la llum - un LED súper brillant (he comprat 2, un de calent i un de fred) - bateria de 9 V per alimentar el LED - una placa de pantalla - una pantalla LCD (16: 2) - Adaptador Bluetooth hc-05 perquè puguem utilitzar una aplicació per configurar l'alarma.
Tot el que necessiteu es pot comprar a www.martoparts.nl
Pas 2: Muntatge del circuit
Podeu consultar l'esbós del meu circuit, per desgràcia, no trobo el RTC DS3231 al programa, així que vaig tenir a veure amb aquest. Les connexions són una mica diferents en realitat, aquí hi ha les connexions. (el mòdul bluetooth no es troba a l'esbós, però explicaré com funciona a continuació perquè sigui bastant complicat)
RTC DS3231GND va a GND a l’arduino
VCC va als 5v
SDA va a arduino
SCL va a arduino No utilitzarem SQW i 32KMOSFET
El pin de porta passa al pin ~ 9 de l'Arduino Uno perquè és PWM;
VCC va a 5VSDA va a A4 a l’arduino SKL va a A5 a l’arduino LED- va a mosfet + va a la bateria de 5v9v Podeu comprar una bateria de 9v a qualsevol botiga local, connecteu-la a l’arduino amb una tira de connectors.
El mòdul Bluetooth hc-055V passa a 5V des de l'arduino
GND va a GND a l'arduino
Ara hi ha 2 entrades més, però aquí arriba la part complicada, hem de connectar les entrades oposades de les 2 a l’arduinoTX d’hc-05 passa a RX a arduinoRX d’hc-05 va a TX a arduino
Important: Assegureu-vos de DESCONECTAR el TX & RX de l'HC-05 quan pengeu codi al vostre arduino o apareixerà un error dient "S'ha produït un error en carregar el codi" al compilador.
Pas 3: Configuració de la pantalla i el rellotge LCD
La biblioteca que s’utilitza per a la pantalla LCD és de cristall líquid i es pot trobar a: https://github.com/fdebrabander/Arduino-LiquidCrys… Descarregueu el fitxer zip, deseu-lo i col·loqueu-lo a la carpeta / biblioteques d’Arduino.
La biblioteca que estic utilitzant per executar el rellotge es troba a Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 i assegureu-vos que esteu a la pàgina DS3231. Baixeu-vos el fitxer zip, deseu-lo i col·loqueu-lo a la carpeta de biblioteques d'Arduino.
Temps
Incloeu la biblioteca DS3231 o DS1307 al vostre codi arduino
Descomenteu aquestes 3 línies de codi per definir l'hora:
// rtc.setDOW (DILLUNS); // Estableix el dia de la setmana a DIUMENGE // rtc.setTime (23, 57, 0); // Estableix l’hora a les 12:00:00 (format 24 h) // rtc.setDate (14, 1, 2019); // Estableix la data a l'1 de gener de 2014
Pantalla LCD
Incloeu la biblioteca liqduicrystal_i2c al vostre codi arduino
Per imprimir a la pantalla LCD utilitzeu
lcd.setCursor (col, fila) // posició del text imprès LCD.print (~) // text imprès
Pas 4: Codificació
Baixeu-vos el codi a: github:
Descomenteu aquestes 3 línies per configurar el rellotge a la pantalla LCD:
// rtc.setDOW (DILLUNS); // Estableix el dia de la setmana a DIUMENGE // rtc.setTime (23, 57, 0); // Estableix l’hora a les 12:00:00 (format 24 h) // rtc.setDate (14, 1, 2019); // Estableix la data a l'1 de gener de 2014
Utilitzeu lcd.setCuros (col, fila); per definir la posició del text a la pantalla
lcd.setCursor (0, 2);
i print () per imprimir alguna cosa a la pantalla
lcd.print (rtc.getDateStr ());
Canvieu aquestes variables si voleu
int fadeTime = 1; // Quant de temps s’esvairà la llum fins a màxint setHour = 02; // Estableix les hores per despertar (hora militar) int setMin = 49; // Estableix el minut per despertar int uled = 9; // Estableix el pinout amb PWM
Codi del mòdul Bluetooth
String firstHalf = getValue (entrada, ':', 0); // comproveu la primera entrada fins que ":"
String secondHalf = getValue (entrada, ':', 1); // comprova la segona entrada després de ":"
// utilitzeu aquest codi si no utilitzeu el mòdul bluetooth
// // if (t.hour == setHour && t.min == setMin) // Comproveu si és hora de despertar! // { // començar(); //}
// comproveu les primeres entrades de 2 dígits i, a continuació, comproveu els 2 dígits de l'entrada
if (t.hour == firstHalf.toInt () && t.min == secondHalf.toInt ()) {start (); }}
// lògica per separar les cadenes
String getValue (dades de cadenes, separador de caràcters, índex int) {int found = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1;
for (int i = 0; i <= maxIndex && found <= index; i ++) {if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} retorn trobat> índex? data.substring (strIndex [0], strIndex [1]): ""; }
Pas 5: temps per fer les proves
Compileu el vostre codi i proveu si els components funcionen.
Pas 6: Configuració de l'aplicació Bluetooth
Com que em va resultar molest aprofundir en el codi cada vegada que volia configurar una alarma, volia crear una aplicació que configurés l'alarma, cosa que és molt més fàcil.
Aneu a https://ai2.appinventor.mit.eduhi podem fer una aplicació senzilla que ens permeti configurar l’alarma, he inclòs la configuració de disseny senzilla (sempre podeu modificar-la més endavant) i el codi utilitzat per a la connexió bluetooth. A continuació, podeu publicar l’aplicació i connectar-vos-la al telèfon mitjançant un codi QR o descarregant directament l’aplicació a l’ordinador i portant-la amb un cable al telèfon. (captura de pantalla)
Pas 7: construir el cas
Sempre podeu crear un cas diferent al voltant del vostre rellotge arduino. Vaig utilitzar fusta i plexiglàs mat per construir la meva pròpia funda de despertador. He escollit plexiglàs mat perquè pugueu veure la llum que brilla clarament a través de la caixa, però no es pot veure l’interior del rellotge.
Pas 8: acabat
Ara que heu carregat el codi al vostre arduino, heu creat la funda i heu comprovat si heu muntat correctament el rellotge. Podeu configurar una alarma a l’aplicació Bluetooth i començar a despertar amb més naturalitat.:)