Orodha ya maudhui:

Asubuhi Buddy: 8 Hatua
Asubuhi Buddy: 8 Hatua

Video: Asubuhi Buddy: 8 Hatua

Video: Asubuhi Buddy: 8 Hatua
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, Novemba
Anonim
Image
Image

Watu wengine wana ratiba zenye shughuli nyingi, ambayo inafanya iwe rahisi kusahau kitu a au mbili. Kwa saa hii ya kengele unaweza kuweka kengele nyingi kukuweka kwenye ratiba. Saa inaendeshwa kwa wakati wa 24 na unachohitajika kufanya ni kuipanga ili kuzima kwa nyakati tofauti za siku ambazo zinafaa ratiba yako. Wakati wako kufanya hivi nyakati ambazo umeweka zitajitokeza kwenye skrini ya LCD, ili uweze kuangalia ili kuhakikisha kuwa wako sawa na kuwa ukumbusho wa ziada.

Hatua ya 1: Kujadili wazo hili

Kuchora na Vifaa
Kuchora na Vifaa

Wakati tulikuwa tunajaribu kutatua suala hilo tulitumia njia ya samaki wa samaki kupata wazo na kusababisha saa yetu ya kengele.

Hatua ya 2: Kuchora na Vifaa

Kuchora na Vifaa
Kuchora na Vifaa

Wakati wa hatua hii tulijaribu kutengeneza orodha ya vitu vyote ambavyo tulifikiri tutahitaji kwa umeme na vifaa vya nje. Kisha tukapata mchoro wa kile tunataka saa ya kengele ionekane na jinsi tutakavyokusanya kifurushi chake cha nje.

Hatua ya 3: Kuunda Kitengo cha nje

Kuunda Kitengo cha nje
Kuunda Kitengo cha nje
Kuunda Kitengo cha nje
Kuunda Kitengo cha nje

Kwa mfano wa kwanza nilitaka tu kuona jinsi viungo vya vidole vitakaa sawa, kwa hivyo nilitumia sanduku la kiatu na sikutumia vipimo halisi.

Hatua ya 4: Kukata Laser ya Nje ya Nje

Laser Kukata Casing Nje
Laser Kukata Casing Nje

Kwa mfano wa pili nilitaka kupata vipimo halisi na ilibidi niunde pdf ya kutuma kwa mkataji wa laser. Ili kufanya hivyo nilitumia wavuti ya programu ya kutengeneza sanduku, https://boxdesigner.connectionlab.org. Kwenye wavuti hiyo ndipo nikaingiza vipimo vya 3-D vya sanduku, unene wa nyenzo zetu, vitengo vya upimaji, na ni aina gani ya faili ambayo nilitaka iundwe. Vipimo vya sanduku vilikuwa 7.5 katika x 3 kwa x 5 ndani na nilitumia 1/8 katika nyenzo nene za akriliki. Vipimo vya pamoja vya kidole viliwekwa moja kwa moja kuwa inchi 0.46875. Nilichagua toleo la pdf kwa sababu hiyo ni aina ya faili ambayo cutter laser inasoma na nilitaka kufanya mabadiliko kadhaa kwenye adobe kwenye faili. Nilibadilisha rangi za laini kuwa nyekundu, ili mkataji wa laser ajue kuzikata badala ya kuchora umbo, na nikaongeza sanduku la mstatili lenye vipimo vya 3.92 ndani na 1.56 katika kile kitakachokuwa kipande cha mbele cha sanduku. Niliongeza pia mstatili uliokatwa na vipimo vya 1in na 0.5in ndani kwenye kipande cha upande wa kulia chini ili kutumika kama ufunguzi wa kamba iliyounganishwa na saa ya kengele. Mwishowe niliongeza fursa tatu za mviringo hapo juu kwa vipaza sauti viwili na kitufe. Ufunguzi wa buzzer ulikuwa na kipenyo cha 0.5 ndani na ufunguzi wa kifungo ulikuwa 0.375 in.

Hatua ya 5: Kuiweka Pamoja

Kuiweka Pamoja
Kuiweka Pamoja

Wakati vipande vyote vilikatwa nilitumia sindano na gundi ya akriliki kuifunga pamoja. Nilishikilia vipande pamoja na kutia gundi katikati ya alama ili pande ziungane, lakini juu haikunamishwa chini.

Hatua ya 6: Kanuni

Utangulizi:

Mradi huu uliorodheshwa kwa kutumia lugha c ++ kwenye programu ya Arduino IDE. Mdhibiti mdogo aliyetumiwa alikuwa NodeMCU na ESP8266. Kwa mradi huu tungehitaji njia ya kuweka wakati kwa usahihi, mlio wa kupiga kelele, mfumo wa kengele kusababisha kengele kupiga kelele, na skrini kuonyesha wakati wote na nyakati za kengele. Kwa nambari kamili rejea kiungo hiki

Kuagiza Maktaba

Kwanza, tunahitaji kuagiza maktaba zinazohitajika.

# pamoja na "RTClib.h"

# pamoja na "Wire.h" # pamoja na #jumuisha # pamoja na # pamoja

Kuanzisha Vigezo

Ifuatayo tunahitaji kuanzisha vigeuzi vya baadaye, toa mpangilio wa pini kwa vifungo vya buzzer, weka RTC, na uweke anwani ya I2C ya kuonyesha LCD.

LiquidCrystal_I2C LCD (0x27, 20, 4);

const int buzzer1 = 12; const int buzzer2 = 0; kifungo cha int = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"} wakati wa kuanza; wakati wa kufanya kazi; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; saa 1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; saa 2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; saa saa3 = 0; int min3 = 0; kengele ya ndani = 0; int Byte Imepokelewa; char imepokelewaChar; Const byte numChars = 32; char imepokeaChars [numChars];

Sanidi

Ifuatayo, tunahitaji kuwa na kazi ambayo huanza michakato yote muhimu. Katika kazi hii, tunahitaji kuanzisha LCD na kuchapisha nyakati za mwanzo, fanya kazi ndogo ambayo inapeana RTC wakati halisi ikiwa tayari haina, na anza mfuatiliaji wa serial.

usanidi batili () {

#ifndef ESP8266 wakati (! Serial); # endif ikiwa (! rtc.begin ()) {Serial.println ("Haikuweza kupata RTC"); wakati (1); } ikiwa (rtc.lostPower ()) {Serial.println ("RTC ilipoteza nguvu, inaruhusu kuweka wakati!"); rtc.rekebisha (Tarehe ya Wakati (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd taa ya nyuma (); // hufanya Baklight ON. lcd wazi (); // Hufuta LCD LCD.print ("00:00"); // onyesho kwenye LCD baada ya kupakia nambari lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Wakati"); 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 kuanza (); pinMode (kifungo, INPUT); // Weka pini kwa kifungo cha kimya cha pinMode (buzzer1, OUTPUT); // weka pini kwa njia ya pato ya buzzer pinMode (buzzer2, OUTPUT); // weka pini kwa pato la buzzer Serial.begin (9600); Serial.println ("Wakati wa kuingiza kengele katika muundo wa HHMM bila nafasi kati ya kengele"); wakati wa kuanza = millis () / 1000; }

Kupokea Takwimu

Sasa, tunahitaji kuweza kupokea nyakati za kengele. Ili kufanya hivyo tuliunda kazi ya kupokea data kutoka kwa mfuatiliaji wa serial na kuihifadhi katika safu.

batili recvWithEndMarker () {

tuli int ndx = 0; String timein = Serial.readString (); kwa (ndx = 0; timein [ndx]; ndx ++) {kupokeaChars [ndx] = timein [ndx]; } kupokeaChars [ndx] = '\ 0'; Serial.print (kupokeaChars); }

Kuweka Kengele

Hatua inayofuata ni kuweza kuweka kengele. Hapa kuna nambari ya kengele 1. Kwa kengele 2 na 3 mchakato huo ulirudiwa na mabadiliko ya nambari chache.

/ * Kengele 1 * /

recvWithEndMarker (); int h, m; kwa (h = 0; h <2; h ++) {ahours1 [h] = kupokeaChars [h]; } kwa (m = 2; m <4; m ++) {amins1 [m-2] = imepokeaChars [m]; } ahours1 [h] = '\ 0'; amini1 [m-2] = '\ 0'; Rangi ya serial (ahours1); Printa ya serial (amins1); saa1 = atoi (ahours1); min1 = atoi (amins1); Rekodi ya serial (hour1); Printa ya serial (min1);

Buzzer / Button

Kwa kufanya hivyo, tunahitaji kufanya buzzer iende wakati halisi na wakati wa kengele ni sawa. Pia katika hatua hii tunafanya snooze kama kifungo ambacho kinasimamisha buzzer wakati unashikilia.

/ * Kitufe cha Ukimya * /

ukimya; int b; b = digitalSoma (2); ikiwa (b == CHINI) {kimya = 1; } mwingine {kimya = 0; } / * Anza Kengele * / ikiwa (masaa == hour1 && dakika == min1) {alarm = 1; } kingine ikiwa (masaa == hour2 && dins == min2) {alarm = 1; } kingine ikiwa (masaa == hour3 && dins == min3) {alarm = 1; } mwingine {alarm = 0; ukimya = 0; } ikiwa (kengele == 1 && kimya == 0) {toni (buzzer1, 4000, 1000); sauti (buzzer2, 4000, 1000); kuchelewesha (1000); hakuna Tone (buzzer1); hakuna Tone (buzzer2); kuchelewesha (1000); }

Nyakati za Uchapishaji

Mwishowe, tunahitaji kuchapisha nyakati za kengele na wakati halisi kwenye skrini ya LCD.

DateTime sasa = rtc.now ();

masaa kadhaa = (sasa. saa ()); dakika d = (sasa.minute ()); / * Wakati wa kengele katika muundo wa 00:00 * / lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.print (ahours2); Mshale wa lcd (3, 2); lcd.print (amini2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.set Mshale (13, 2); lcd.print (amins3); / * Saa ya Kuonyesha kutoka RTC * / lcd.setCursor (0, 0); lcd.print (masaa); lcd.print (":"); lcd.print (dk);

Hatua ya 7: Elektroniki

Umeme
Umeme
Umeme
Umeme
Umeme
Umeme

Kuna vipande kadhaa kwa umeme wa mradi huu, kama inavyoonekana katika muswada wa vifaa. Picha ya kwanza ni skimu ya miradi ya mwisho ya miradi. Picha ya pili ni muundo wetu wa mwisho wa elektroniki. Picha ya Tatu ni ya mradi wetu katikati ya mfano wa pili.

Kuanza kushikamana na NodeMCU yako hadi mwisho wa ubao wako wa mkate. Kisha utahitaji kuunganisha vifaa vyako vyote vya elektroniki kwa NodeMCU na ubao wa mkate. Anza kwa kuunganisha skrini yako ya LCD na pini D1 kwa SCL na D2 kwa SDA. LCD itamruhusu mtumiaji kuona wakati wa sasa na nyakati zilizowekwa za kengele. Sasa uwe na waya unganisha buzzers zako kwenye pini D3 na D6. Buzzers zitaruhusu kengele kuonya mtumiaji wakati uliowekwa umefikiwa. Lazima sasa uambatishe kitufe kuruhusu kengele isimamishwe. Ambatisha kitufe hiki kubandika D4. Sasa utaambatanisha saa yako ya wakati halisi kwenye ubao wa mkate. Washa saa ya wakati halisi kwa hivyo hutumia pini sawa za SDA na SCL zinazotumiwa kwa onyesho la LCD.

Hatua ya 8: Mwisho

Mwisho
Mwisho

Ikiwa umefuata habari uliyopewa mradi wako inaweza kuonekana kama picha hapo juu. Tunakutakia bahati katika majaribio yako ya kurudia mradi huu na utakapomaliza mradi wako tunakuhimiza ushiriki picha na maoni na sisi kwenye maoni. Asante na bahati nzuri Watunga wenzako.

Ilipendekeza: