Obsah:

Ranní kamaráde: 8 kroků
Ranní kamaráde: 8 kroků

Video: Ranní kamaráde: 8 kroků

Video: Ranní kamaráde: 8 kroků
Video: Adel ukazala prso 2024, Červenec
Anonim
Image
Image

Někteří lidé mají velmi zaneprázdněné plány, což usnadňuje zapomenout na jednu nebo dvě věci. S tímto budíkem můžete nastavit více budíků, abyste byli v plánu. Hodiny běží 24 hodin a vše, co musíte udělat, je naprogramovat, aby se vypnuly v různé denní doby, které vyhovují vašemu plánu. Když to děláte, na obrazovce LCD se objeví vámi nastavené časy, abyste se mohli ujistit, že mají pravdu, a sloužit jako dodatečná připomínka.

Krok 1: Brainstorming myšlenky

Skicování a materiály
Skicování a materiály

Když jsme se pokoušeli vyřešit problém, použili jsme metodu rybí kosti, abychom přišli s nápadem a skončili s naším budíkem.

Krok 2: Skicování a materiály

Skicování a materiály
Skicování a materiály

Během tohoto kroku jsme se pokusili vytvořit seznam všech věcí, které jsme si mysleli, že budeme potřebovat pro elektroniku a vnější plášť. Poté jsme vymysleli náčrt toho, jak bychom chtěli, aby budík vypadal a jak sestavíme jeho vnější plášť.

Krok 3: Vytvoření vnějšího pláště

Vytvoření vnějšího pláště
Vytvoření vnějšího pláště
Vytvoření vnějšího pláště
Vytvoření vnějšího pláště

U prvního prototypu jsem chtěl jen vidět, jak do sebe zapadají články prstů, a tak jsem použil botník a nepoužil jsem přesná měření.

Krok 4: Laserové řezání vnějšího pláště

Laserové řezání vnějšího pláště
Laserové řezání vnějšího pláště

U druhého prototypu jsem chtěl získat přesná měření a musel jsem vytvořit pdf pro odeslání do laserové řezačky. K tomu jsem použil webovou stránku aplikace pro tvorbu boxů https://boxdesigner.connectionlab.org. Na tomto webu jsem poté zadal 3-D rozměry krabice, tloušťku našeho materiálu, měrné jednotky a jaký typ souboru jsem chtěl vytvořit. Rozměry krabic byly 7,5 x 3 palce x 5 palců a použil jsem 1/8 tlustého akrylového materiálu. Měření zářezů kloubů prstů byla poté automaticky nakonfigurována na 0,46875 palce. Vybral jsem verzi pdf, protože to je typ souboru, který čte laserová řezačka, a chtěl jsem v souboru Adobe provést nějaké změny. Změnil jsem barvy čáry na červenou, aby je laserový řezač věděl, že je místo gravírování vystřihne, a přidal jsem obdélníkový rámeček o rozměrech 3,92 palce x 1,56 palce na to, co bude předním dílem krabice. Také jsem přidal obdélník vyříznutý o rozměrech 1 palce na 0,5 palce na pravém bočním dílu ve spodní části, aby sloužil jako otvor pro kabel připojený k budíku. Naposledy jsem přidal tři kruhové otvory v horní části pro dva bzučáky a tlačítko. Otvory bzučáku měly průměr 0,5 palce a otevření tlačítka bylo 0,375 palce.

Krok 5: Dát to dohromady

Dát to dohromady
Dát to dohromady

Když byly všechny kousky vystřiženy, použil jsem k jejich utěsnění stříkačku a akrylové lepidlo. Držel jsem kousky pohromadě a kapal lepidlo mezi zářezy, aby byly strany pohromadě, ale horní část nebyla slepena.

Krok 6: Kód

Úvod:

Tento projekt byl kódován pomocí jazyka c ++ v softwaru Arduino IDE. Použitým mikrořadičem byl NodeMCU s ESP8266. Pro tento projekt bychom potřebovali způsob, jak přesně udržet čas, bzučák, který zní, poplašný systém, který způsobí bzučení alarmu, a obrazovku pro zobrazení celého času a časů budíku. Úplný kód naleznete v tomto odkazu

Import knihoven

Nejprve musíme importovat potřebné knihovny.

#include "RTClib.h"

#include "Wire.h" #include #include #include #include

Zahájení proměnných

Dále musíme inicializovat proměnné na později, přiřadit rozložení pinů pro tlačítka bzučáku, nastavit RTC a nastavit I2C adresu LCD displeje.

LiquidCrystal_I2C lcd (0x27, 20, 4);

const int bzučák1 = 12; const int bzučák2 = 0; tlačítko const int = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {„neděle“, „pondělí“, „úterý“, „středa“, „čtvrtek“, „pátek“, „sobota“} v počátečním čase; int activetime; int předchozí čas = 0; char ahours1 [3]; char aminy1 [3]; int hodina1 = 0; int min1 = 0; char ahours2 [3]; char aminy2 [3]; int hodina2 = 0; int min2 = 0; char ahours3 [3]; char aminy3 [3]; int hodina3 = 0; int min3 = 0; int alarm = 0; int ByteReceived; char obdrželChar; const byte numChars = 32; char receiveChars [numChars];

Založit

Dále potřebujeme mít funkci, která spustí všechny potřebné procesy. V této funkci potřebujeme spustit LCD a tisknout počáteční časy, vytvořit menší funkci, která poskytuje RTC v reálném čase, pokud ji již nemá, a spustit sériový monitor.

neplatné nastavení () {

#ifndef ESP8266 while (! Serial); #endif if (! rtc.begin ()) {Serial.println ("Nelze najít RTC"); zatímco (1); } if (rtc.lostPower ()) {Serial.println ("RTC ztratil 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"); // zobrazení na LCD po nahrání 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čítko, VSTUP); // Nastavit pin pro tlačítko ticha pinMode (buzzer1, OUTPUT); // nastavit pin pro výstup bzučáku pinMode (buzzer2, OUTPUT); // nastavení pinu pro výstup bzučáku Serial.begin (9600); Serial.println ("Vstupní čas alarmů ve formátu HHMM bez mezery mezi alarmy"); starttime = millis ()/1000; }

Přijímání dat

Nyní musíme být schopni přijímat časy poplachů. Za tímto účelem jsme vytvořili funkci pro příjem dat ze sériového monitoru a jejich uložení do pole.

neplatné recvWithEndMarker () {

static int ndx = 0; String timein = Serial.readString (); pro (ndx = 0; timein [ndx]; ndx ++) {receiveChars [ndx] = timein [ndx]; } receiveChars [ndx] = '\ 0'; Serial.print (receiveChars); }

Nastavení alarmů

Dalším krokem je možnost nastavit alarmy. Zde je kód alarmu 1. U alarmu 2 a 3 byl stejný postup opakován s několika změnami čísel.

/* Alarm 1*/

recvWithEndMarker (); int h, m; pro (h = 0; h <2; h ++) {ahours1 [h] = přijatoChars [h]; } pro (m = 2; m <4; m ++) {aminy1 [m-2] = přijatéChars [m]; } ahours1 [h] = '\ 0'; aminy1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (aminy1); hodina1 = atoi (ahours1); min1 = atoi (aminy1); Serial.print (hodina1); Sériový tisk (min1);

Bzučák/Tlačítko

Když to bude hotové, musíme nechat bzučák vypnout, když se skutečný čas a čas alarmu shodují. Také v tomto kroku vytvoříme tlačítko pro odložení, které zastaví bzučák, zatímco ho držíte.

/ * Tlačítko ticha */

int ticho; int b; b = digitalRead (2); if (b == LOW) {ticho = 1; } else {ticho = 0; } / * Spustit alarm * / if (hodiny == hodina1 && mins == min1) {alarm = 1; } else if (hodin == hodina2 && mins == min2) {alarm = 1; } else if (hodin == hodina3 && mins == min3) {alarm = 1; } else {alarm = 0; ticho = 0; } if (alarm == 1 && ticho == 0) {tón (bzučák1, 4000, 1000); tón (bzučák2, 4000, 1000); zpoždění (1000); noTone (bzučák1); noTone (buzzer2); zpoždění (1000); }

Tiskové časy

Nakonec musíme na LCD obrazovku vytisknout časy alarmů a reálný čas.

DateTime now = rtc.now ();

int hodiny = (now.hour ()); int mins = (now.minute ()); / * Čas alarmu ve formátu 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 (aminy2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (aminy3); / * Čas zobrazení z RTC */ lcd.setCursor (0, 0); lcd.print (hodiny); lcd.print (":"); lcd.print (min);

Krok 7: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Jak je vidět na kusovníku, elektronika tohoto projektu obsahuje několik kusů. První obrázek je schématem finální elektroniky projektů. Druhý obrázek je náš konečný elektronický design. Třetí obrázek je našeho projektu uprostřed druhého prototypu.

Chcete -li začít připojovat NodeMCU na vzdálenější konec vašeho prkénka. Poté budete muset připojit veškerou další elektroniku k NodeMCU a breadboardu. Začněte připojením obrazovky LCD k pinům D1 pro SCL a D2 pro SDA. Displej LCD umožní uživateli zobrazit aktuální čas a nastavené časy budíku. Nyní pomocí drátů připojte své bzučáky k pinům D3 a D6. Bzučáky umožní alarmu upozornit uživatele na dosažení nastaveného času. Nyní musíte připojit tlačítko, které umožní zastavení alarmu. Připojte toto tlačítko ke kolíku D4. Nyní na prkénko připojíte hodiny v reálném čase. Připojte hodiny reálného času tak, aby používaly stejné piny SDA a SCL používané pro LCD displej.

Krok 8: Konečný

Finále
Finále

Pokud jste dodrželi uvedené informace, váš projekt může vypadat jako na obrázku výše. Přejeme vám hodně štěstí při vašich pokusech znovu vytvořit tento projekt, a až svůj projekt dokončíte, doporučujeme vám, abyste se s námi v komentářích podělili o obrázky a poznámky. Děkuji a hodně štěstí kolegové Tvůrci.

Doporučuje: