Sisällysluettelo:
- Vaihe 1: Idean aivoriihi
- Vaihe 2: Luonnos ja materiaalit
- Vaihe 3: Ulkopuolen kotelon luominen
- Vaihe 4: Ulkokuoren laserleikkaus
- Vaihe 5: Yhdistäminen
- Vaihe 6: Koodi
- Vaihe 7: Elektroniikka
- Vaihe 8: Lopullinen
Video: Aamukaveri: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Joillakin ihmisillä on erittäin kiireinen aikataulu, mikä helpottaa yhden tai kahden asian unohtamista. Tämän herätyskellon avulla voit asettaa useita hälytyksiä pitämään sinut aikataulussa. Kello toimii 24 kertaa ja sinun tarvitsee vain ohjelmoida se sammumaan aikataulusi mukaiseksi eri vuorokaudenajaksi. Kun teet tämän, asettamasi ajat ilmestyvät nestekidenäyttöön, jotta voit tarkistaa, että ne ovat oikein ja toimivat lisämuistutuksena.
Vaihe 1: Idean aivoriihi
Kun yritimme ratkaista ongelmaa, keksimme idean kalakaulamenetelmällä ja saimme aikaan herätyskellomme.
Vaihe 2: Luonnos ja materiaalit
Tämän vaiheen aikana yritimme tehdä luettelon kaikista asioista, joita ajattelimme tarvitsevan elektroniikalle ja ulkokuorelle. Sitten keksimme luonnoksen siitä, miltä halusimme herätyskellon näyttävän ja kuinka kokoamme sen ulkokuoren.
Vaihe 3: Ulkopuolen kotelon luominen
Ensimmäistä prototyyppiä varten halusin vain nähdä, kuinka sormiliitokset sopivat yhteen, joten käytin kenkälaatikkoa enkä käyttänyt tarkkoja mittauksia.
Vaihe 4: Ulkokuoren laserleikkaus
Toista prototyyppiä varten halusin saada tarkat mitat ja jouduin luomaan pdf -tiedoston lähettämään laserleikkurille. Tätä varten käytin laatikkosovelluksen verkkosivustoa https://boxdesigner.connectionlab.org. Sivustolle annoin sitten laatikon kolmiulotteiset mitat, materiaalimme paksuuden, mittayksiköt ja minkä tyyppisen tiedoston halusin luoda. Laatikoiden mitat olivat 7,5 x 3 x 5 tuumaa ja käytin 1/8 paksua akryylimateriaalia. Sorminivelen lovien mitat määritettiin sitten automaattisesti 0,46875 tuumaksi. Valitsin pdf -version, koska se on sellainen tiedostotyyppi, jota laserleikkuri lukee, ja halusin tehdä joitakin muutoksia Adobe -tiedostoon. Vaihdoin viivan värit punaisiksi, jotta laserleikkuri tietäisi leikata ne pois sen sijaan, että kaivertaisin muodon, ja lisäsin suorakulmion laatikon, jonka mitat olivat 3,92 x 1,56 tuumaa siitä, mikä tulee olemaan laatikko. Lisäsin myös suorakulmion, jonka mitat olivat 1 tuumaa ja 0,5 tuumaa oikealla puolella olevaan alaosaan, jotta se toimisi herätyskelloon liitetyn johdon aukona. Viimeisenä lisäsin kolme pyöreää aukkoa yläosassa molemmille summerille ja painikkeelle. Summerin aukkojen halkaisija oli 0,5 tuumaa ja painikkeen aukko oli 0,375 tuumaa.
Vaihe 5: Yhdistäminen
Kun kaikki palaset leikattiin, tiivistin ne ruiskulla ja akryyliliimalla. Pidin palat yhdessä ja tiputin liimaa lovien väliin, jotta sivut saisivat yhteen, mutta yläosa ei ollut liimattu alas.
Vaihe 6: Koodi
Johdanto:
Tämä projekti koodattiin Arduino IDE -ohjelmiston kielellä c ++. Käytetty mikro-ohjain oli NodeMCU ja ESP8266. Tätä projektia varten tarvitsemme tavan pitää aika tarkasti, summerin soida, hälytysjärjestelmän, joka saa hälytyksen soimaan, ja näytön, joka näyttää kaiken ajan ja hälytysajat. Koko koodi löytyy tästä linkistä
Kirjastojen tuonti
Ensinnäkin meidän on tuotava tarvittavat kirjastot.
#include "RTClib.h"
#Sisällytä "Wire.h" #Sisällytä #Sisällytä #Sisällytä #Sisällytä
Muuttujien käynnistäminen
Seuraavaksi meidän on aloitettava muuttujat myöhempää käyttöä varten, määritettävä summerin painikkeiden asettelu, määritettävä RTC ja asetettava nestekidenäytön I2C -osoite.
LiquidCrystal_I2C lcd (0x27, 20, 4);
const int summeri1 = 12; const int summeri2 = 0; const int -painike = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"} int aloitusaika; int toiminta -aika; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int tunti1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int tunti2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int tunti3 = 0; int min3 = 0; int hälytys = 0; int ByteReceived; char vastaanotettuChar; const tavu numChars = 32; char vastaanotettuChars [numChars];
Perustaa
Seuraavaksi meillä on oltava toiminto, joka käynnistää kaikki tarvittavat prosessit. Tässä toiminnossa meidän on käynnistettävä nestekidenäyttö ja tulostettava alkamisajat, tehtävä pienempi toiminto, joka antaa RTC: lle reaaliaikaisen, jos sillä ei vielä ole sitä, ja käynnistettävä sarjamonitori.
void setup () {
#ifndef ESP8266 while (! Serial); #endif if (! rtc.begin ()) {Serial.println ("RTC: tä ei löytynyt"); kun taas (1); } if (rtc.lostPower ()) {Serial.println ("RTC katkaisi virran, asetetaan aika!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.taustavalo (); // kytkee Baklightin päälle. lcd.clear (); // Poistaa nestekidenäytön lcd.print ("00:00"); // näyttö nestekidenäytöllä koodin lataamisen jälkeen lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Aika"); lcd.setCursor (10, 1); lcd.print ("Hälytys 1"); lcd.setCursor (0, 3); lcd.print ("Hälytys 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("Hälytys 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (painike, INPUT); // Aseta nasta hiljaisuuspainikkeelle pinMode (summeri1, OUTPUT); // aseta nasta summerin ulostulolle pinMode (summeri2, OUTPUT); // aseta nasta summerin ulostulolle Serial.begin (9600); Serial.println ("Hälytysten syöttöaika HHMM -muodossa ilman hälyttimien välistä tilaa"); aloitusaika = millis ()/1000; }
Tietojen vastaanottaminen
Nyt meidän on kyettävä vastaanottamaan hälytysajat. Tätä varten loimme toiminnon, joka vastaanottaa tiedot sarjamonitorista ja tallentaa ne taulukkoon.
void recvWithEndMarker () {
staattinen int ndx = 0; Merkkijono timein = Serial.readString (); for (ndx = 0; timein [ndx]; ndx ++) {gotChars [ndx] = timein [ndx]; } ReceiveChars [ndx] = '\ 0'; Sarjajälki (vastaanotetut merkit); }
Hälytysten asettaminen
Seuraava askel on hälytysten asettaminen. Tässä on hälytyksen 1 koodi. Hälytyksille 2 ja 3 sama prosessi toistettiin muutamalla numeromuutoksella.
/* Hälytys 1*/
recvWithEndMarker (); int h, m; for (h = 0; h <2; h ++) {ahours1 [h] = vastaanotetut merkit [h]; } for (m = 2; m <4; m ++) {amins1 [m-2] = vastaanotetut merkit [m]; } tuntia1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (amins1); tunti1 = atoi (tuntia1); min1 = atoi (amiinit1); Sarjajälki (tunti1); Sarjanjälki (min1);
Summeri/painike
Kun tämä on tehty, meidän on saatava summeri soimaan, kun reaaliaikainen ja hälytysaika ovat samat. Myös tässä vaiheessa teemme torkun kaltaisen painikkeen, joka pysäyttää summerin, kun pidät sitä painettuna.
/ * Hiljaisuuspainike */
int hiljaisuus; int b; b = digitalRead (2); jos (b == LOW) {hiljaisuus = 1; } muu {hiljaisuus = 0; } / * Käynnistyshälytys * / if (tuntia == tunti1 && minuutit == min1) {hälytys = 1; } muu jos (tuntia == tunti2 && minuutit == min2) {hälytys = 1; } else if (tuntia == tunti3 && minuutit == min3) {hälytys = 1; } muu {hälytys = 0; hiljaisuus = 0; } if (hälytys == 1 && hiljaisuus == 0) {ääni (summeri1, 4000, 1000); ääni (summeri2, 4000, 1000); viive (1000); noTone (summeri1); noTone (summeri2); viive (1000); }
Tulostusajat
Lopuksi meidän on tulostettava hälytysajat ja reaaliaika LCD -näytölle.
DateTime now = rtc.now ();
int tuntia = (nyt.tunti ()); int mins = (nyt.minute ()); / * Hälytysaika muodossa 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 (amins2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amins3); / * Näyttöaika RTC: stä */ lcd.setCursor (0, 0); lcd.print (tuntia); lcd.print (":"); lcd.print (min);
Vaihe 7: Elektroniikka
Tämän projektin elektroniikassa on useita kappaleita, kuten materiaaliluettelosta käy ilmi. Ensimmäinen kuva on kaavio projektin lopullisesta elektroniikasta. Toinen kuva on viimeinen sähköinen suunnittelumme. Kolmas kuva on projektistamme toisen prototyypin keskellä.
Aloita kiinnittämällä NodeMCU -laite leipälautasi ääripäähän. Sinun on sitten liitettävä kaikki muu elektroniikka NodeMCU -laitteeseen ja leipälevyyn. Aloita liittämällä LCD -näyttö SCL -liittimiin D1 ja SDA -liittimiin D2. Nestekidenäytön avulla käyttäjä voi nähdä nykyisen ajan ja asetetut hälytysajat. Pyydä nyt lanka yhdistämään summeri nastoihin D3 ja D6. Summerit antavat hälytyksen ilmoittaa käyttäjälle, kun asetettu aika on saavutettu. Sinun on nyt liitettävä painike hälytyksen pysäyttämiseksi. Kiinnitä tämä painike nastaan D4. Nyt kiinnität reaaliaikaisen kellosi leipälevyyn. Kytke reaaliaikainen kello niin, että se käyttää samoja SDA- ja SCL-nastoja kuin LCD-näyttö.
Vaihe 8: Lopullinen
Jos olet seurannut annettuja tietoja, projektisi saattaa näyttää yllä olevasta kuvasta. Toivotamme onnea yrityksellesi luoda tämä projekti uudelleen ja kun olet saanut projektisi päätökseen, kehotamme sinua jakamaan kuvia ja huomautuksia kanssamme kommenteissa. Kiitos ja onnea tekijät.
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen