Cuprins:
- Pasul 1: Brainstorming ideea
- Pasul 2: Schițare și materiale
- Pasul 3: Crearea carcasei Outter
- Pasul 4: Tăierea cu laser a carcasei exterioare
- Pasul 5: Puneți-l împreună
- Pasul 6: Cod
- Pasul 7: Electronică
- Pasul 8: Final
Video: Morning Buddy: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Unii oameni au programe foarte încărcate, ceea ce face ușor să uiți un lucru unul sau două. Cu acest ceas cu alarmă puteți seta mai multe alarme pentru a vă menține la timp. Ceasul funcționează 24 de ore și tot ce trebuie să faceți este să-l programați să se declanșeze la diferitele ore ale zilei care se potrivesc programului dvs. Când faceți acest lucru, orele pe care le-ați setat vor apărea pe ecranul LCD, astfel încât să puteți verifica pentru a vă asigura că au dreptate și a servi ca un memento suplimentar.
Pasul 1: Brainstorming ideea
Când încercam să rezolvăm problema, am folosit metoda osului de pește pentru a veni cu o idee și a rezultat cu ceasul cu alarmă.
Pasul 2: Schițare și materiale
În acest pas am încercat să facem o listă cu toate lucrurile pe care credeam că le vom avea nevoie pentru electronică și carcasă exterioară. Apoi am venit cu o schiță a ceea ce am vrut să arate ceasul cu alarmă și cum am asambla carcasa sa exterioară.
Pasul 3: Crearea carcasei Outter
Pentru primul prototip am vrut doar să văd cum se potrivesc articulațiile degetelor, așa că am folosit o cutie de pantofi și nu am folosit măsurători exacte.
Pasul 4: Tăierea cu laser a carcasei exterioare
Pentru al doilea prototip am vrut să obțin măsurători exacte și a trebuit să creez un pdf pentru a-l trimite la dispozitivul de tăiat cu laser. Pentru a face acest lucru, am folosit un site web pentru aplicația box maker, https://boxdesigner.connectionlab.org. Pe acel site am introdus apoi dimensiunile 3D ale cutiei, grosimea materialului nostru, unitățile de măsură și ce tip de fișier am vrut să creeze. Dimensiunile cutiilor erau de 7,5 in x 3 in x 5 in si am folosit un material acrilic de 1/8 in grosime. Măsurătorile crestăturilor articulațiilor degetelor au fost apoi configurate automat pentru a fi de 0,48,875 țoli. Am selectat versiunea pdf, deoarece acesta este tipul de fișier pe care îl citește un dispozitiv de tăiere cu laser și am vrut să fac câteva modificări în Adobe la fișier. Am schimbat culorile liniei în roșu, astfel încât dispozitivul de tăiat cu laser să știe să le taie în loc să graveze forma și am adăugat o cutie dreptunghiulară cu dimensiunile de 3,92 inchi pe 1,56 in pe ceea ce urma să fie partea din față a cutie. Am adăugat, de asemenea, un dreptunghi decupat cu dimensiuni de 1 inch cu 0,5 inch în partea dreaptă din partea de jos pentru a servi drept deschidere pentru cablul conectat la ceasul deșteptător. În cele din urmă am adăugat trei deschideri circulare în partea de sus pentru cele două buzzere și buton. Deschiderile buzzerului aveau un diametru de 0,5 inci și deschiderea butonului era de 0,375 inci.
Pasul 5: Puneți-l împreună
Când toate bucățile au fost tăiate, am folosit o seringă și un adeziv acrilic pentru a-l sigila împreună. Am ținut piesele împreună și am picurat adezivul între crestături pentru a face părțile împreună, dar partea superioară nu a fost lipită.
Pasul 6: Cod
Introducere:
Acest proiect a fost codificat folosind limbajul c ++ pe software-ul Arduino IDE. Microcontrolerul utilizat a fost NodeMCU cu ESP8266. Pentru acest proiect, am avea nevoie de o modalitate de a păstra cu precizie timpul, de un sunet sonor, de un sistem de alarmă care să provoace alarma sonoră și de un ecran pentru a afișa ora și orele de alarmă. Pentru codul complet, consultați acest link
Importul bibliotecilor
În primul rând, trebuie să importăm bibliotecile necesare.
#include "RTClib.h"
#include "Wire.h" #include #include #include #include
Inițierea variabilelor
Apoi, trebuie să inițiem variabile pentru mai târziu, să atribuim aspectul pinului pentru butoanele buzzer, să configurăm RTC și să setăm adresa I2C a afișajului LCD.
LiquidCrystal_I2C lcd (0x27, 20, 4);
const int buzzer1 = 12; const int buzzer2 = 0; butonul const int = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"duminică", "luni", "marți", "miercuri", "joi", "vineri", "sâmbătă"} în ora de începere; int activetime; int prevoustime = 0; char ahours1 [3]; amine char1 [3]; int ora1 = 0; int min1 = 0; char ahours2 [3]; amine char2 [3]; int hour2 = 0; int min2 = 0; char ahours3 [3]; amine char3 [3]; int hour3 = 0; int min3 = 0; alarma int = 0; int ByteReceived; char recivedChar; const byte numChars = 32; char jasotChars [numChars];
Înființat
Apoi, trebuie să avem o funcție care pornește toate procesele necesare. În această funcție, trebuie să pornim ecranul LCD și să imprimăm timpii inițiali, să facem o funcție mai mică care să ofere RTC în timp real dacă nu o are deja și să pornim monitorul serial.
configurare nulă () {
#ifndef ESP8266 while (! Serial); #endif if (! rtc.begin ()) {Serial.println ("Nu s-a putut găsi RTC"); în timp ce (1); } if (rtc.lostPower ()) {Serial.println ("RTC a pierdut puterea, să setăm ora!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.backlight (); // activează Baklight. lcd.clear (); // Șterge LCD lcd.print („00:00”); // afișare pe LCD după încărcarea codului lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print („Ora”); 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 (buton, INPUT); // Setați un pin pentru butonul de tăcere pinMode (buzzer1, OUTPUT); // setați un pin pentru ieșirea buzzer pinMode (buzzer2, OUTPUT); // setați un pin pentru ieșirea buzzer Serial.begin (9600); Serial.println ("Timpul de intrare al alarmelor în format HHMM fără spațiu între alarme"); ora de start = milis () / 1000; }
Primirea datelor
Acum, trebuie să putem primi orele de alarmă. Pentru aceasta am creat o funcție pentru a primi datele de pe monitorul serial și a le stoca într-o matrice.
void recvWithEndMarker () {
static int ndx = 0; String timein = Serial.readString (); for (ndx = 0; timein [ndx]; ndx ++) {jasotChars [ndx] = timein [ndx]; } receivedChars [ndx] = '\ 0'; Serial.print (jasotChars); }
Setarea alarmelor
Următorul pas este să puteți seta alarme. Iată codul pentru alarma 1. Pentru alarmele 2 și 3, același proces a fost repetat cu câteva modificări ale numărului.
/ * Alarma 1 * /
recvWithEndMarker (); int h, m; for (h = 0; h <2; h ++) {ahours1 [h] = receivedChars [h]; } pentru (m = 2; m <4; m ++) {amins1 [m-2] = primitChars [m]; } ahours1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (amins1); ora1 = atoi (ahours1); min1 = atoi (amins1); Serial.print (ora1); Serial.print (min1);
Buzzer / Buton
După ce am făcut acest lucru, trebuie să facem soneria să se oprească când timpul real și alarma sunt egale. De asemenea, în acest pas, facem un buton de amânare care oprește soneria în timp ce îl țineți apăsat.
/ * Buton Silence * /
tăcerea int; int b; b = digitalRead (2); if (b == LOW) {tăcere = 1; } altceva {tăcere = 0; } / * Porniți alarma * / if (ore == oră1 && mins == min1) {alarmă = 1; } else if (oră == oră2 && mins == min2) {alarmă = 1; } else if (oră == oră3 && mins == min3) {alarmă = 1; } else {alarm = 0; tăcerea = 0; } if (alarm == 1 && silence == 0) {ton (buzzer1, 4000, 1000); ton (buzzer2, 4000, 1000); întârziere (1000); noTone (buzzer1); noTone (buzzer2); întârziere (1000); }
Timpuri de imprimare
În cele din urmă, trebuie să imprimăm orele de alarmă și timpul real pe ecranul LCD.
DateTime acum = rtc.now ();
orele int = (now.hour ()); int mins = (now.minute ()); / * Ora alarmei în 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); / * Afișare timp de la RTC * / lcd.setCursor (0, 0); lcd.print (ore); lcd.print (":"); lcd.print (minute);
Pasul 7: Electronică
Există mai multe piese în electronica acestui proiect, așa cum se vede în lista de materiale. Prima imagine este o schemă a proiectelor electronice finale. A doua imagine este designul nostru electronic final. A treia imagine este a proiectului nostru în mijlocul celui de-al doilea prototip.
Pentru a începe, atașați-vă NodeMCU la capătul îndepărtat al panoului de verificare. Apoi, va trebui să vă conectați toate celelalte componente electronice la NodeMCU și panou. Începeți prin conectarea ecranului LCD la pinii D1 pentru SCL și D2 pentru SDA. Ecranul LCD va permite utilizatorului să vadă ora curentă și orele de alarmă setate. Acum, puneți un fir care să conecteze buzzerele la pinii D3 și D6. Buzzer-urile vor permite alarma să alerteze utilizatorul când a fost atins timpul stabilit. Acum trebuie să atașați un buton pentru a permite oprirea alarmei. Atașați acest buton la pinul D4. Acum, veți atașa ceasul dvs. în timp real la panou. Conectați ceasul în timp real, astfel încât să utilizeze aceiași pini SDA și SCL utilizați pentru afișajul LCD.
Pasul 8: Final
Dacă ați urmărit informațiile oferite, proiectul dvs. ar putea arăta ca imaginea de mai sus. Vă dorim noroc în încercările dvs. de a recrea acest proiect și, după ce ați finalizat proiectul, vă încurajăm să ne împărtășiți fotografii și remarci în comentarii. Vă mulțumim și mult succes colegi Makers.
Recomandat:
Ingineri Tastatură fără fir Buddy, mouse și înregistrator macro: 4 pași
EngineersBuddy Wireless Keyboard, Mouse and Macro Recorder: Acest instructiv explică modul de utilizare a Engineers Buddy, tastatură, mouse și macro recorder. Această aplicație Android funcționează împreună cu modulul hardware al emulatorului de tastatură și mouse Enginners Buddy. Modulul va funcționa cu orice compoziție HID
Studiu Buddy: 10 pași
Study Buddy: Acest instructiv explică modul de a crea un prieten de tip Funcția acestui prieten de studiu este de a ajuta adolescenții cu vârste între 14 și 18 ani să învețe cum să planifice și să studieze. Scopul este ca robotul să poată învăța împreună cu elevii. Coperta este pictată într-un
Inginerii Buddy Bluetooth Kbd și Mouse: 3 pași
Inginerii Buddy Bluetooth Kbd și Mouse: Inginerii Buddy Modulul emulator de tastatură și mouse USB. Acest mic dispozitiv la îndemână, cu conexiunea albastră, transformă telefonul / tableta dvs. Android într-o telecomandă fără fir pentru orice computer. Oferă dispozitivului dvs. Android control asupra tuturor comp. HID
Lazy 301 Dart Buddy !: 5 pași
Lazy 301 Dart Buddy !: Colegii mei de cameră din colegiu și cu mine am moștenit recent o tablă de săgeți bătută … Am început să explorăm jocuri precum 301, în care fiecare jucător începe cu 301 de puncte, se îndreaptă spre zero puncte pe parcursul a câteva runde. . A fost distractiv, totuși am scris pe
Bartender's Buddy: un @ Home Creative Switch: 6 pași
Bartender's Buddy: an @ Home Creative Switch: Te-ai gândit vreodată la tine în timp ce distrezi oaspeții acasă … "Gee - Mi-aș dori să am un mod unic de a-mi arăta oaspeților când băutura lor a atins nivelul optim de băut de ceașcă de petrecere. .. " ? Acum poți să îți împlinești această dorință, cu