Taula de continguts:
- Pas 1: Pluja d’idees sobre la idea
- Pas 2: esbossos i materials
- Pas 3: creació de la carcassa exterior
- Pas 4: tall per làser de la carcassa exterior
- Pas 5: ajuntar-lo
- Pas 6: Codi
- Pas 7: electrònica
- Pas 8: final
Vídeo: Amic del matí: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Algunes persones tenen horaris molt ocupats, cosa que facilita l’oblit d’una o dues coses. Amb aquest despertador, podeu configurar diverses alarmes per mantenir-vos al dia. El rellotge funciona les 24 hores i tot el que heu de fer és programar-lo perquè s’activi a les diferents hores del dia que s’adaptin al vostre horari. Quan feu això, apareixeran a la pantalla LCD els temps que hàgiu definit, de manera que pugueu comprovar que estiguin bé i que us serveixin de recordatori addicional.
Pas 1: Pluja d’idees sobre la idea
Quan intentàvem resoldre el problema, vam fer servir el mètode de les espines de peix per fer-nos una idea i va resultar amb el despertador.
Pas 2: esbossos i materials
Durant aquest pas hem intentat fer una llista de totes les coses que creiem que necessitaríem per a l'electrònica i la carcassa exterior. A continuació, se’ns va fer un esbós de com volíem que fos el despertador i de com muntaríem la carcassa exterior.
Pas 3: creació de la carcassa exterior
Per al primer prototip només volia veure com encaixaven les articulacions dels dits, de manera que vaig utilitzar una caixa de sabates i no vaig fer mesures exactes.
Pas 4: tall per làser de la carcassa exterior
Per al segon prototip volia obtenir mesures exactes i vaig haver de crear un pdf per enviar-lo al tallador làser. Per fer-ho, he utilitzat el lloc web de l’aplicació Box Box, https://boxdesigner.connectionlab.org. Al lloc web, aleshores vaig introduir les dimensions tridimensionals de la caixa, el gruix del material, les unitats de mesura i el tipus de fitxer que volia que creés. Les dimensions de les caixes eren de 7,5 x 3 x 5 in i vaig utilitzar un material acrílic de 1/8 de gruix. Les mesures de les osques de les articulacions dels dits es van configurar automàticament per fer 0,44675 polzades. He seleccionat la versió pdf perquè aquest és el tipus de fitxer que llegeix un tallador làser i volia fer alguns canvis al fitxer. Vaig canviar els colors de la línia a vermell, de manera que el tallador làser sabria retallar-los en lloc de gravar la forma i vaig afegir una caixa rectangular amb unes dimensions de 3,92 polzades per 1,56 polzades sobre el que anava a ser la peça frontal del Caixa. També he afegit un rectangle retallat amb unes dimensions d’1 x 0,5 polzades a la peça lateral dreta de la part inferior per servir com a obertura del cable connectat al despertador. Per últim he afegit tres obertures circulars a la part superior dels dos brunzidors i del botó. Les obertures del brunzidor tenien un diàmetre de 0,5 polzades i l’obertura del botó de 0,375 polzades.
Pas 5: ajuntar-lo
Quan es van retallar totes les peces, vaig utilitzar una xeringa i una cola acrílica per segellar-les. Vaig mantenir les peces juntes i vaig deixar anar la cola entre les osques per unir els costats, però la part superior no es va enganxar.
Pas 6: Codi
Introducció:
Aquest projecte es va codificar mitjançant el llenguatge c ++ del programari IDE Arduino. El microcontrolador utilitzat va ser el NodeMCU amb l’ESP8266. Per a aquest projecte, necessitaríem una manera de mantenir el temps amb precisió, un so de so, un sistema d'alarma per fer sonar l'alarma i una pantalla per mostrar el temps i les hores d'alarma. Per obtenir el codi complet, consulteu aquest enllaç
Importació de biblioteques
Primer de tot, hem d’importar les biblioteques necessàries.
#include "RTClib.h"
#include "Wire.h" #include #include #include #include
Variables d'inici
A continuació, hem d'iniciar variables per a més endavant, assignar la disposició dels pins per als botons del brunzidor, configurar el RTC i configurar l'adreça I2C de la pantalla LCD.
LiquidCrystal_I2C lcd (0x27, 20, 4);
const int buzzer1 = 12; const int buzzer2 = 0; botó int int = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"} int hora d'inici; int activetime; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int hora1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int hour2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int hour3 = 0; int min3 = 0; int alarma = 0; int ByteReceived; char recivedChar; byte const numChars = 32; char receivedChars [numChars];
Configuració
A continuació, hem de tenir una funció que iniciï tots els processos necessaris. En aquesta funció, hem d’iniciar la pantalla LCD i imprimir els primers temps, fer una funció més petita que doni temps reals a l’RTC si encara no la té i engegar el monitor sèrie.
configuració nul·la () {
#ifndef ESP8266 while (! Serial); #endif if (! rtc.begin ()) {Serial.println ("No s'ha pogut trobar RTC"); mentre que (1); } if (rtc.lostPower ()) {Serial.println ("RTC ha perdut energia, permetem establir l'hora!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.backlight (); // fa activar Baklight. lcd.clear (); // Esborra la impressió LCD lcd ("00:00"); // mostra a la pantalla LCD després de pujar el codi lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Temps"); lcd.setCursor (10, 1); lcd.print ("Alarma 1"); lcd.setCursor (0, 3); lcd.print ("Alarma 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("Alarma 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (botó, INPUT); // Estableix un pin per al botó de silenci pinMode (buzzer1, OUTPUT); // definiu un pin per a la sortida del brunzidor pinMode (buzzer2, OUTPUT); // definiu un pin per a la sortida del brunzidor Serial.begin (9600); Serial.println ("Temps d'entrada d'alarmes en format HHMM sense espai entre alarmes"); hora d’inici = millis () / 1000; }
Recepció de dades
Ara, hem de ser capaços de rebre les hores d’alarma. Per fer-ho, hem creat una funció per rebre les dades del monitor sèrie i emmagatzemar-les en una matriu.
void recvWithEndMarker () {
static int ndx = 0; String timein = Serial.readString (); per a (ndx = 0; timein [ndx]; ndx ++) {ReceChars [ndx] = timein [ndx]; } receivedChars [ndx] = '\ 0'; Serial.print (receivedChars); }
Configuració d'alarmes
El següent pas és poder configurar alarmes. Aquí teniu el codi de l'alarma 1. Per a les alarmes 2 i 3, es va repetir el mateix procés amb alguns canvis de número.
/ * Alarma 1 * /
recvWithEndMarker (); int h, m; for (h = 0; h <2; h ++) {ahours1 [h] = ReceChars [h]; } per a (m = 2; m <4; m ++) {amins1 [m-2] = cares rebudes [m]; } ahours1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (amins1); hora1 = atoi (ahours1); min1 = atoi (amins1); Serial.print (hora1); Serial.print (min1);
Buzzer / Button
Un cop fet això, hem de fer que el timbre s'apagui quan el temps real i el temps d'alarma siguin iguals. També en aquest pas fem un botó de posposició que atura el timbre mentre el manteniu premut.
/ * Botó Silenci * /
int silenci; int b; b = digitalRead (2); if (b == BAIX) {silenci = 1; } else {silenci = 0; } / * Inicia l'alarma * / if (hores == hora1 && mins == min1) {alarma = 1; } else if (hores == hora2 && mins == min2) {alarma = 1; } else if (hores == hora3 && mins == min3) {alarma = 1; } else {alarm = 0; silenci = 0; } if (alarm == 1 && silence == 0) {tone (buzzer1, 4000, 1000); to (brunzidor 2, 4000, 1000); retard (1000); noTone (buzzer1); noTone (buzzer2); retard (1000); }
Temps d'impressió
Finalment, hem d’imprimir les hores d’alarma i el temps real a la pantalla LCD.
Data i hora ara = rtc.now ();
int hours = (now.hour ()); int mins = (ara.minut ()); / * Hora de l’alarma en format 00:00 * / lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (amins2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amins3); / * Temps de visualització des de RTC * / lcd.setCursor (0, 0); lcd.print (hores); lcd.print (":"); lcd.print (minuts);
Pas 7: electrònica
Hi ha diverses peces de l'electrònica d'aquest projecte, tal com es veu a la llista de materials. La primera imatge és un esquema de l'electrònica final del projecte. La segona imatge és el nostre disseny electrònic final. La tercera imatge és del nostre projecte enmig del segon prototip.
Per començar, connecteu el NodeMCU a l’extrem de la tauleta de verificació. A continuació, haureu de connectar la resta d’electrònics al NodeMCU i al tauler de suport. Comenceu connectant la pantalla LCD als pins D1 per a SCL i D2 per a SDA. La pantalla LCD permetrà a l'usuari veure l'hora actual i els horaris d'alarma establerts. Ara feu connectar els vostres brunzidors als pins D3 i D6. Els brunzidors permetran que l'alarma alerti l'usuari quan s'hagi assolit l'hora establerta. Ara heu d’adjuntar un botó per permetre l’aturada de l’alarma. Connecteu aquest botó per fixar D4. Ara connectareu el rellotge en temps real a la taula de treball. Connecteu el rellotge en temps real perquè utilitzi els mateixos pins SDA i SCL que s’utilitzen per a la pantalla LCD.
Pas 8: final
Si heu seguit la informació donada, el vostre projecte pot semblar la imatge anterior. Us desitgem sort en els vostres intents de recrear aquest projecte i, quan hàgiu acabat el projecte, us animem a compartir imatges i comentaris amb nosaltres als comentaris. Gràcies i molta sort companys de creació.
Recomanat:
Llums del millor amic de llarga distància de bricolatge: 4 passos (amb imatges)
Llums de millor amic de llarga distància de bricolatge: vaig fer llums sincronitzats de llarga distància coneguts com a "Millor amic" llums. Això només significa que es mantenen sincronitzats amb el color actual de l'altra làmpada. Per tant, si canvies una llum verda, poc després l’altra làmpada es tornaria grisa
ShWelcome Box: l'Amic de vegades: 8 passos
ShWelcome Box: el Friend Friend: Cerqueu empresa?
Rellotge despertador de la sortida del sol (millora la vigília del matí): 13 passos
Rellotge despertador de la sortida del sol (millora la vigília del matí): programa la teva pròpia sortida del sol, millora la vigília del matí L’últim invent aleatori, programa la teva sortida del sol! Durant el dia, la llum blava de la llum del sol augmenta la nostra atenció, memòria, nivells d’energia, temps de reacció i estat d’ànim general . Llum blau s
Com descriure una sèrie de televisió per a un amic cec .: 4 passos (amb imatges)
Com es descriu una sèrie de televisió per a un amic cec: es descriuen algunes sèries de televisió (DVS), però moltes no ho són i, si és cec o amb deficiències visuals, les coses poden resultar una mica confuses. Podeu fer que un amic escrigui una descripció (que aquest amic començarà a trobar una mica massa temps), però anoteu
Tutorial sobre reloj per a un amic: 7 passos
Tutorial sobre reloj per a un amic: tutorial sobre com overclockar un mobo d'ASUS Striker II