Obsah:
- Krok 1: Brainstorming myšlienky
- Krok 2: Skicovanie a materiály
- Krok 3: Vytvorenie vonkajšieho puzdra
- Krok 4: Laserové rezanie vonkajšieho plášťa
- Krok 5: Dajte to dohromady
- Krok 6: Kód
- Krok 7: Elektronika
- Krok 8: Finále
Video: Ranné kamarát: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Niektorí ľudia majú veľmi nabitý rozvrh, čo uľahčuje zabudnutie jednej alebo dvoch vecí. S týmto budíkom môžete nastaviť viacero budíkov, aby ste sa držali podľa plánu. Hodiny bežia nepretržite a stačí ich naprogramovať tak, aby sa spúšťali v rôznych časoch dňa, ktoré vyhovujú vášmu plánu. Keď to robíte, časy, ktoré ste nastavili, sa objavia na obrazovke LCD, aby ste sa mohli presvedčiť, či sú správne, a slúžiť ako dodatočná pripomienka.
Krok 1: Brainstorming myšlienky
Keď sme sa pokúšali vyriešiť problém, použili sme metódu rybej kosti, aby sme prišli s nápadom a vyplynul z toho náš budík.
Krok 2: Skicovanie a materiály
Počas tohto kroku sme sa pokúsili vytvoriť zoznam všetkých vecí, ktoré sme si mysleli, že budeme potrebovať pre elektroniku a vonkajší plášť. Potom sme prišli s náčrtkom, ako chceme, aby budík vyzeral a ako by sme zostavili jeho vonkajší plášť.
Krok 3: Vytvorenie vonkajšieho puzdra
Pri prvom prototype som chcel len vidieť, ako budú kĺby prstov do seba zapadať, a tak som použil box na topánky a nepoužil som presné merania.
Krok 4: Laserové rezanie vonkajšieho plášťa
Pre druhý prototyp som chcel získať presné merania a musel som vytvoriť pdf na odoslanie do laserovej rezačky. Na to som použil webovú stránku výrobcu boxov, https://boxdesigner.connectionlab.org. Na tomto webe som potom zadal trojrozmerné rozmery škatule, hrúbku nášho materiálu, jednotky merania a typ súboru, ktorý som chcel vytvoriť. Rozmery škatúľ boli 7,5 x 3 palce x 5 palcov a použil som 1/8 hrubého akrylového materiálu. Merania zárezov kĺbov prstov sa potom automaticky nakonfigurovali na 0,46875 palca. Vybral som verziu pdf, pretože to je typ súboru, ktorý číta laserová rezačka, a chcel som v súbore vykonať určité zmeny v programe Adobe. Farby čiar som zmenil na červenú, aby ich laserová rezačka vedela namiesto vyrytia tvaru vystrihnúť, a pridal som obdĺžnikový box s rozmermi 3,92 palca na 1,56 palca k tomu, čo bude predným dielom box. Tiež som pridal obdĺžnik vyrezaný s rozmermi 1 palca na 0,5 palca na pravom bočnom diele v spodnej časti, aby slúžil ako otvor pre kábel pripojený k budíku. Naposledy som pridal tri kruhové otvory v hornej časti pre dve bzučiaky a tlačidlo. Otvory bzučiaka mali priemer 0,5 palca a otvor na gombíky bol 0,375 palca.
Krok 5: Dajte to dohromady
Keď boli všetky kúsky vystrihnuté, použil som striekačku a akrylové lepidlo, aby som to spojil. Kusy som držal pohromade a kvapkal som lepidlo medzi zárezy, aby boli strany spolu, ale vrch nebol prilepený.
Krok 6: Kód
Úvod:
Tento projekt bol kódovaný v jazyku c ++ v softvéri Arduino IDE. Použitým mikroradičom bol NodeMCU s ESP8266. Na tento projekt by sme potrebovali spôsob, ako presne udržať čas, bzučiak, ktorý bude znieť, poplašný systém, ktorý spustí bzučanie alarmu, a obrazovku, na ktorej sa bude zobrazovať všetok čas a časy budíka. Úplný kód nájdete v tomto odkaze
Import knižníc
Najprv musíme importovať potrebné knižnice.
#include "RTClib.h"
#include "Wire.h" #include #include #include #include
Spustenie premenných
Ďalej musíme inicializovať premenné na neskôr, priradiť rozloženie pinov pre tlačidlá bzučiaka, nastaviť RTC a nastaviť adresu I2C LCD displeja.
LiquidCrystal_I2C lcd (0x27, 20, 4);
const int bzučiak1 = 12; const int bzučiak2 = 0; tlačidlo const int = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {„nedeľa“, „pondelok“, „utorok“, „streda“, „štvrtok“, „piatok“, „sobota“} v čase začiatku; int aktivetime; int predbežný čas = 0; char ahours1 [3]; char amíny1 [3]; int hodina1 = 0; int min1 = 0; char ahours2 [3]; char amíny2 [3]; int hodina2 = 0; int min2 = 0; char ahours3 [3]; char amíny3 [3]; int hodina3 = 0; int min3 = 0; int alarm = 0; int ByteReceived; char obdržalChar; const byte numChars = 32; char receiveChars [numChars];
Nastaviť
Ďalej musíme mať funkciu, ktorá spustí všetky potrebné procesy. Pri tejto funkcii musíme spustiť LCD a počiatočné časy tlače, vytvoriť menšiu funkciu, ktorá dáva RTC reálny čas, ak ho ešte nemá, a spustiť sériový monitor.
neplatné nastavenie () {
#ifndef ESP8266 while (! Serial); #endif if (! rtc.begin ()) {Serial.println ("Nepodarilo sa nájsť RTC"); pričom (1); } if (rtc.lostPower ()) {Serial.println („RTC stratil výkon, nastavme čas!“); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))) lcd.init (); lcd.backlight (); // zapne Baklight. lcd.clear (); // Vymaže LCD lcd.print ("00:00"); // zobrazenie na LCD po nahraní kódu 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 (tlačidlo, VSTUP); // Nastavte pin pre tlačidlo ticha pinMode (bzučiak1, VÝSTUP); // nastavenie pinu pre výstup bzučiaka pinMode (bzučiak2, VÝSTUP); // nastavenie kolíka pre výstup bzučiaka Serial.begin (9600); Serial.println ("Vstupný čas alarmov vo formáte HHMM bez medzier medzi alarmmi"); starttime = millis ()/1000; }
Prijímanie údajov
Teraz musíme byť schopní prijímať časy budíkov. Aby sme to urobili, vytvorili sme funkciu na príjem údajov zo sériového monitora a ich ukladanie do poľa.
void recvWithEndMarker () {
static int ndx = 0; Čas reťazca = Serial.readString (); pre (ndx = 0; timein [ndx]; ndx ++) {receiveChars [ndx] = timein [ndx]; } receiveChars [ndx] = '\ 0'; Serial.print (receiveChars); }
Nastavenie alarmov
Ďalším krokom je možnosť nastaviť budíky. Tu je kód alarmu 1. Pre alarm 2 a 3 sa rovnaký postup zopakoval s niekoľkými zmenami čísel.
/* Alarm 1*/
recvWithEndMarker (); int h, m; pre (h = 0; h <2; h ++) {ahours1 [h] = prijatýchChars [h]; } pre (m = 2; m <4; m ++) {amíny1 [m-2] = prijaté Chars [m]; } ahours1 [h] = '\ 0'; amíny1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (amíny1); hodina1 = atoi (ahours1); min1 = atoi (amíny1); Serial.print (hodina1); Sériový tlač (min1);
Bzučiak/tlačidlo
Keď to bude hotové, musíme rozozvučať bzučiak, ak sú reálny čas a budík rovnaké. V tomto kroku tiež urobíme tlačidlo odloženia, ktoré zastaví bzučiak, kým ho držíte.
/ * Tlačidlo stíšenia */
int ticho; int b; b = digitalRead (2); if (b == LOW) {ticho = 1; } else {ticho = 0; } / * Spustiť alarm * / if (hodiny == hodina1 && mins == min1) {alarm = 1; } else if (hodiny == hodina2 && mins == min2) {alarm = 1; } else if (hodiny == hodina3 && mins == min3) {alarm = 1; } else {alarm = 0; ticho = 0; } if (alarm == 1 && ticho == 0) {tón (bzučiak1, 4000, 1000); tón (bzučiak2, 4000, 1000); oneskorenie (1000); noTone (bzučiak1); noTone (bzučiak2); oneskorenie (1000); }
Čas tlače
Nakoniec musíme na LCD obrazovku vytlačiť časy budíka a skutočný čas.
DateTime now = rtc.now ();
int hodiny = (teraz.hodina ()); int mins = (now.minute ()); / * Čas alarmu vo formáte 00:00 */ lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amíny1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (amíny2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amíny3); / * Čas zobrazenia z RTC */ lcd.setCursor (0, 0); lcd.print (hodiny); lcd.print (":"); lcd.print (min);
Krok 7: Elektronika
Elektronika tohto projektu obsahuje niekoľko kusov, ako je vidieť na kusovníku. Prvý obrázok je schémou konečnej elektroniky projektov. Druhý obrázok je náš konečný elektronický dizajn. Tretí obrázok je o našom projekte uprostred druhého prototypu.
Ak chcete začať, pripojte svoj NodeMCU k vzdialenému koncu dosky. Potom budete musieť pripojiť všetku svoju ďalšiu elektroniku k NodeMCU a nepájivému panelu. Začnite pripojením obrazovky LCD k pinom D1 pre SCL a D2 pre SDA. LCD displej umožní užívateľovi vidieť aktuálny čas a nastavené časy budíka. Teraz pomocou káblov spojte svoje bzučiaky s kolíkmi D3 a D6. Bzučiaky umožnia alarmu upozorniť používateľa na dosiahnutie nastaveného času. Teraz musíte pripojiť tlačidlo, ktoré umožní zastavenie alarmu. Pripojte toto tlačidlo ku kolíku D4. Teraz pripojíte hodiny v reálnom čase k doske. Pripojte hodiny reálneho času tak, aby používali rovnaké piny SDA a SCL ako na LCD displeji.
Krok 8: Finále
Ak budete postupovať podľa uvedených informácií, váš projekt môže vyzerať ako na obrázku vyššie. Prajeme vám veľa šťastia pri vašich pokusoch o obnovu tohto projektu a keď svoj projekt dokončíte, odporúčame vám, aby ste sa s nami podelili o obrázky a poznámky v komentároch. Ďakujem a veľa šťastia kolegovia tvorcovia.
Odporúča:
Študijný kamarát: 10 krokov
Study Buddy: Tento návod vysvetľuje, ako sa stať kamošom. Funkciou tohto študijného kamaráta je pomôcť mladistvým vo veku od 14 do 18 rokov naučiť sa plánovať a študovať. Cieľom je, aby sa robot mohol so študentmi učiť. Obal je natretý
Lenivý 301 šípkový kamarát!: 5 krokov
Lazy 301 Dart Buddy !: Spolu s mojimi spolubývajúcimi sme nedávno zdedili zbitú šípku … Začali sme skúmať hry ako 301, v ktorých každý hráč začína na 301 bodoch a v priebehu niekoľkých kôl sa dostane až na nula bodov. . Bola to zábava, napriek tomu písať na
Ranné a nočné svetlo: 4 kroky
Ranné a nočné svetlo: Toto je svetlo vyrobené z papiera, ktoré sa používa na ráno aj na noc
Študijný kamarát: 4 kroky
Study Buddy: Prišiel som s nápadom pre študijného priateľa a brainstormingoval som lepšie spôsoby štúdia pre svoje triedy. Bojujem s používaním svojho telefónu, keď by som mal študovať, a zistil som, že odložiť ho z očí je najlepšia metóda, ktorá mi pomôže sústrediť sa, správne
Magno-kamarát: 5 krokov
Magno-kamarát: Vždy ma fascinovali magnety. Dnes som vyrobil pre sestru hračku, s ktorou sa môžem hrať. Výroba je veľmi jednoduchá, potrebujete iba dva malé magnety, malé auto, batériu a dekorácie. Tiež: Toto je môj prvý pokyn