Obsah:

Ranné kamarát: 8 krokov
Ranné kamarát: 8 krokov

Video: Ranné kamarát: 8 krokov

Video: Ranné kamarát: 8 krokov
Video: Генрих VIII НА ПАЛЬЦАХ - OverSimplified 2024, Júl
Anonim
Image
Image

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

Skicovanie a materiály
Skicovanie a materiály

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

Skicovanie a materiály
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

Vytvorenie vonkajšieho puzdra
Vytvorenie vonkajšieho puzdra
Vytvorenie vonkajšieho puzdra
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

Laserové rezanie vonkajšieho plášťa
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

Dať to dohromady
Dať 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
Elektronika
Elektronika
Elektronika
Elektronika
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

Finálny
Finálny

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: