Kazalo:
- 1. korak: možganska nevihta o ideji
- 2. korak: Skiciranje in materiali
- 3. korak: Ustvarjanje zunanjega ohišja
- 4. korak: Lasersko rezanje zunanjega ohišja
- 5. korak: Sestavite skupaj
- 6. korak: Koda
- 7. korak: Elektronika
- 8. korak: Končno
Video: Jutranji kolega: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Nekateri ljudje imajo zelo natrpan urnik, zaradi česar lahko na nekaj pozabite. S to budilko lahko nastavite več alarmov, ki vas bodo vodili po urniku. Ura deluje 24 ur in vse, kar morate storiti, je, da jo nastavite, da se izklopi ob različnih urah dneva, ki ustrezajo vašemu urniku. Ko to delate, se na LCD zaslonu pojavijo nastavljeni časi, tako da lahko preverite, ali so pravilni, in vam služijo kot dodaten opomnik.
1. korak: možganska nevihta o ideji
Ko smo poskušali rešiti težavo, smo z metodo ribjih kosti prišli do ideje in na koncu dobili budilko.
2. korak: Skiciranje in materiali
Med tem korakom smo poskušali narediti seznam vseh stvari, za katere smo mislili, da jih potrebujemo za elektroniko in zunanje ohišje. Nato smo pripravili skico, kako želimo videti budilka in kako bomo sestavili njeno zunanje ohišje.
3. korak: Ustvarjanje zunanjega ohišja
Pri prvem prototipu sem želel samo videti, kako bi se spoji prstov združili, zato sem uporabil škatlo za čevlje in nisem uporabil natančnih mer.
4. korak: Lasersko rezanje zunanjega ohišja
Za drugi prototip sem hotel dobiti natančne meritve in ustvariti pdf, ki sem ga poslal laserskemu rezalniku. Za to sem uporabil spletno mesto aplikacije za izdelavo škatel, https://boxdesigner.connectionlab.org. Na tem spletnem mestu sem nato vnesel tridimenzionalne dimenzije škatle, debelino našega materiala, merske enote in vrsto datoteke, ki jo želim ustvariti. Dimenzije škatel so bile 7,5 x 3 x 5 palcev, jaz pa sem uporabil 1/8 debelega akrilnega materiala. Meritve zarezov prstnih sklepov so bile nato samodejno nastavljene na 0,46875 palcev. Različico pdf sem izbral, ker je to vrsta datoteke, ki jo laserski rezalnik bere, in želel sem v datoteko narediti nekaj sprememb v adobe. Barve črt sem spremenil v rdečo, tako da jih je laserski rezalnik rad izrezal, namesto da bi graviral obliko, in dodal pravokotno škatlo z dimenzijami 3,92 palca za 1,56 palca na tistem, kar bo sprednji del škatla. Prav tako sem na desni stranski del na dnu dodal izrezan pravokotnik z dimenzijami 1 x 0,5 palca, ki bo služil kot odprtina za kabel, povezan z budilko. Nazadnje sem dodal tri krožne odprtine na vrhu za dva brenčalnika in gumb. Odprtine brenčal so imele premer 0,5 palca, odprtina gumba pa 0,375 palca.
5. korak: Sestavite skupaj
Ko so bili vsi kosi izrezani, sem jih skupaj z brizgo in akrilnim lepilom zapečatil. Kose sem držal skupaj in med zareze kapljal lepilo, da so bile stranice skupaj, vendar vrh ni bil zlepljen.
6. korak: Koda
Uvod:
Ta projekt je bil kodiran z jezikom c ++ v programski opremi Arduino IDE. Uporabljen mikrokrmilnik je bil NodeMCU z ESP8266. Za ta projekt bi potrebovali način za natančno merjenje časa, zvočni signal, alarmni sistem, ki bi sprožil alarm, in zaslon za prikaz časa in časa alarma. Celotno kodo najdete na tej povezavi
Uvoz knjižnic
Najprej moramo uvoziti potrebne knjižnice.
#include "RTClib.h"
#include "Wire.h" #include #include #include #include
Zagon spremenljivk
Nato moramo spremeniti spremenljivke za pozneje, dodeliti razporeditev nožic za gumbe brenčalca, nastaviti RTC in nastaviti naslov I2C LCD zaslona.
LiquidCrystal_I2C LCD (0x27, 20, 4);
const int buzzer1 = 12; const int buzzer2 = 0; const int gumb = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"nedelja", "ponedeljek", "torek", "sreda", "četrtek", "petek", "sobota"} int začetni čas; int activetime; int prevoustime = 0; char ahours1 [3]; ogljikovi amini1 [3]; int ura1 = 0; int min1 = 0; char ahours2 [3]; ogljikovi amini2 [3]; int ura2 = 0; int min2 = 0; char ahours3 [3]; ogljikovi amini3 [3]; int ura3 = 0; int min3 = 0; int alarm = 0; int ByteReceived; char prejelChar; const bajt numChars = 32; char prejelChars [numChars];
Nastaviti
Nato moramo imeti funkcijo, ki zažene vse potrebne procese. Pri tej funkciji moramo zagnati LCD in natisniti začetne čase, narediti manjšo funkcijo, ki daje RTC v realnem času, če je še nima, in zagnati serijski monitor.
void setup () {
#ifndef ESP8266 while (! Serijski); #endif if (! rtc.begin ()) {Serial.println ("RTC ni mogoče najti"); medtem ko (1); } if (rtc.lostPower ()) {Serial.println ("RTC je izgubil moč, nastavimo čas!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))}} lcd.init (); lcd.backlight (); // vklopi Baklight. lcd.clear (); // Počisti LCD lcd.print ("00:00"); // prikaz na LCD -ju po nalaganju kode lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Čas"); lcd.setCursor (10, 1); lcd.print ("Alarm 1"); lcd.setCursor (0, 3); lcd.print ("Alarm 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("Alarm 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (gumb, VHOD); // Nastavite pin za gumb za tišino pinMode (buzzer1, OUTPUT); // nastavimo pin za izhod brenčal pinMode (buzzer2, OUTPUT); // nastavimo pin za izhod brenčalnika Serial.begin (9600); Serial.println ("Vhodni čas alarmov v formatu HHMM brez presledka med alarmi"); čas začetka = milis ()/1000; }
Prejemanje podatkov
Zdaj moramo biti sposobni prejemati alarmne čase. V ta namen smo ustvarili funkcijo za sprejem podatkov iz serijskega monitorja in njihovo shranjevanje v matriko.
void recvWithEndMarker () {
statični int ndx = 0; Niz timein = Serial.readString (); za (ndx = 0; timein [ndx]; ndx ++) {prejetoChars [ndx] = timein [ndx]; } prejetoChars [ndx] = '\ 0'; Serial.print (prejetoChars); }
Nastavitev alarmov
Naslednji korak je nastavitev alarmov. Tu je koda za alarm 1. Za alarm 2 in 3 se je isti postopek ponovil z nekaj spremembami številk.
/* Alarm 1*/
recvWithEndMarker (); int h, m; za (h = 0; h <2; h ++) {ahours1 [h] = prejetoChars [h]; } za (m = 2; m <4; m ++) {amins1 [m-2] = prejetoChars [m]; } ahours1 [h] = '\ 0'; amini1 [m-2] = '\ 0'; Serial.print (ahours1); Serijski.tisk (amini1); ura1 = atoi (ur1); min1 = atoi (amini1); Serial.print (ura 1); Serijski.tisk (min1);
Zvočni signal/gumb
Ko to storimo, moramo zvočni signal izklopiti, ko sta realni čas in čas alarma enaka. Tudi v tem koraku naredimo gumb za dremež, ki ustavi zvočni signal, medtem ko ga držite.
/ * Gumb za utišanje */
int tišina; int b; b = digitalRead (2); če (b == NIZKA) {tišina = 1; } else {tišina = 0; } / * Začni alarm * / if (ure == ura1 && min == min1) {alarm = 1; } drugače če (ure == ura2 && min == min2) {alarm = 1; } drugače če (ure == ura3 && min == min3) {alarm = 1; } else {alarm = 0; tišina = 0; } if (alarm == 1 && tišina == 0) {ton (buzzer1, 4000, 1000); ton (zvočni signal2, 4000, 1000); zamuda (1000); noTone (zvočni signal1); noTone (zvočni signal2); zamuda (1000); }
Časi tiskanja
Nazadnje moramo na LCD -zaslon natisniti čas alarma in realni čas.
DateTime zdaj = rtc.now ();
int ure = (now.hour ()); int min = (now.minute ()); / * Čas alarma v formatu 00:00 */ lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amini1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (amini2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amini3); / * Prikaz časa iz RTC */ lcd.setCursor (0, 0); lcd.print (ure); lcd.print (":"); lcd.tisk (min);
7. korak: Elektronika
Elektronika tega projekta vsebuje več delov, kot je razvidno iz gradiva. Prva slika je shema končne elektronike projektov. Druga slika je naša končna elektronska zasnova. Tretja podoba je našega projekta sredi drugega prototipa.
Za začetek pritrdite svoj NodeMCU na skrajni konec vaše plošče. Nato boste morali vso svojo drugo elektroniko povezati z NodeMCU in ploščo. Začnite tako, da svoj LCD zaslon priključite na nožice D1 za SCL in D2 za SDA. LCD zaslon bo uporabniku omogočil ogled trenutnega časa in nastavljenih časov alarma. Zdaj naj žice povežejo vaše brenčalce z zatiči D3 in D6. Zvočniki bodo alarmu omogočili, da uporabnika opozori, ko je dosežen nastavljeni čas. Zdaj morate priložiti gumb, da omogočite ustavitev alarma. Ta gumb pritrdite na pin D4. Zdaj boste svojo uro v realnem času pritrdili na ploščo. Povežite uro v realnem času tako, da uporablja iste zatiče SDA in SCL, ki jih uporabljate za LCD zaslon.
8. korak: Končno
Če ste upoštevali podane podatke, bo vaš projekt morda izgledal kot zgornja slika. Želimo vam veliko sreče pri poskusih ponovnega ustvarjanja tega projekta, po zaključku projekta pa vas vabimo, da v komentarjih delite slike in pripombe z nami. Hvala in srečno kolegi ustvarjalci.
Priporočena:
Števec korakov - mikro: Bit: 12 korakov (s slikami)
Števec korakov - Micro: Bit: Ta projekt bo števec korakov. Za merjenje korakov bomo uporabili senzor pospeška, ki je vgrajen v Micro: Bit. Vsakič, ko se Micro: Bit trese, bomo štetju dodali 2 in ga prikazali na zaslonu
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): 8 korakov
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): ultrazvočni pretvorniki zvoka L298N Dc ženski adapter z napajalnim vtičem za enosmerni tok Arduino UNOBreadboard Kako to deluje: Najprej naložite kodo v Arduino Uno (to je mikrokrmilnik, opremljen z digitalnim in analogna vrata za pretvorbo kode (C ++)
Vijak - Nočna ura za brezžično polnjenje DIY (6 korakov): 6 korakov (s slikami)
Bolt - Nočna ura za brezžično polnjenje DIY (6 korakov): Induktivno polnjenje (znano tudi kot brezžično polnjenje ali brezžično polnjenje) je vrsta brezžičnega prenosa energije. Za zagotavljanje električne energije prenosnim napravam uporablja elektromagnetno indukcijo. Najpogostejša aplikacija je brezžično polnjenje Qi
Jutranji stroj: 5 korakov (s slikami)
Jutranji stroj: Ste se že kdaj zjutraj zbudili ob motečem alarmu in nato hodili vse do kuhinje samo zato, da ste se potrudili naliti pijačo. Pa ne glej več! Ta navodila vas bodo naučila, kako narediti stroj, ki ne more
Magno-kolega: 5 korakov
Magno-buddy: Vedno so me fascinirali magneti. Danes sem sestri naredil igračo. Izdelava je zelo enostavna, potrebujete le dva majhna magneta, majhen avto, baterijo in okraske. Tudi: To je moj prvi pouk