Sadržaj:

Zidni sat TheSUN, Arduino Powered Design: 6 koraka (sa slikama)
Zidni sat TheSUN, Arduino Powered Design: 6 koraka (sa slikama)

Video: Zidni sat TheSUN, Arduino Powered Design: 6 koraka (sa slikama)

Video: Zidni sat TheSUN, Arduino Powered Design: 6 koraka (sa slikama)
Video: Spot the Difference - Wireless Sensors 2024, Srpanj
Anonim
Zidni sat TheSUN, Arduino s dizajnom
Zidni sat TheSUN, Arduino s dizajnom
Zidni sat TheSUN, Arduino s dizajnom
Zidni sat TheSUN, Arduino s dizajnom
Zidni sat TheSUN, Arduino s dizajnom
Zidni sat TheSUN, Arduino s dizajnom

Pozdrav još jednom instruktori!:-P

Zbog problema s otpremom nisam mogao nastaviti svoj ABTW projekt pa sam vam odlučio pokazati još jednu, svoju najnoviju kreaciju.

Mislim da mnogi od nas, poput mene, vole one lijepe adresabilne LED trake (koje se nazivaju i NEOPIXEL LED). Možete ih nabaviti u ADAFRUIT -u. Drugi dobavljači također će osigurati slične proizvode. Dostupna je biblioteka na ADAFRUITS - GitHub (kliknite me) uključujući i neki uzorak koda. Dakle, kodiranje bi trebalo biti jednostavno …

Vidio sam te NEOPIXELE misao, što dovraga … mogu li učiniti s tim sjajnim sitnicama.

  • LED matrični zaslon? -> Previše je komplicirano i ne koristim ga (trenutno)
  • Božićno osvjetljenje? -> Odgovara sezoni, ali bilo bi jeftinije kupiti jedno:-P
  • sat? -> Zašto ne! Ali to bi trebalo biti elegantno i nekonvencionalno

Dakle, napravimo zidni sat.

Ako pomno pogledamo naš ručni sat (ako imate analogni poput mene), primijetit ćemo da imamo 12 sati i 60 minuta (nadam se). To će značiti da nam treba 60 adresabilnih LED dioda, phu! Ako uzmemo traku sa 60 LED dioda / metar dobit ćemo promjer ~ 318 mm (radijus = opseg / (2*Π)) što je definitivno prevelik.

Istina je, ako nekoga pitate za vrijeme, nitko neće reći da su 2 minute iza 3! Kao odgovor dobit ćete "To je 5 prošlo 3". Pa zašto ne bismo sve smanjili na korake od 5 minuta? Za to će nam trebati samo 12 LED dioda, što znači da ćemo dobiti promjer od 63,6 mm. Također možemo razlikovati sate i minute dajući im zasebnu boju. Također ćemo moći osigurati "nedostajuće" pojedinačne minutne korake s dodatnom trakom od 4 LED diode (ili jednom adresiranom LED diodom).

TO JE PLAN! Pogledajmo kako sam sve napravio. Kao i uvijek, dostavit ću popis/predračun materijala i upute o tome kako ga izgraditi.

Ako mislite da samo Švicarci mogu izraditi cool satove, neka vam bude dokaz da griješite (oprostite Švicarska:-P)

Korak 1: Dizajn i odabir materijala

Dizajn i izbor materijala
Dizajn i izbor materijala
Dizajn i izbor materijala
Dizajn i izbor materijala

Oblikovati:

Ako ponovo pomno pogledamo naš analogni sat/sat, vidimo da je krug podijeljen u poznate korake od 12 * 30 °, da nam je za LED traku potrebno 63,6 mm. Dakle, trebalo bi biti moguće nekako poravnati traku oko cijevi. Odlučio sam se koristiti akrilnim staklom, jer izgleda lijepo i moguće je u njega ugraditi LED svjetlo, a pri svakoj greški u staklu doći će do rasipanja svjetlosti. Dakle, recimo: više nečistoća dovest će do više raspršenja svjetlosti! To je upravo ono što želimo. Zato slobodno uzmite svoje alate za graviranje i budite kreativni:-)

Ako se pozivate na moju BoM listu i ime koje sam dao satu, odabrao sam dizajn sličan suncu. Sve akrilne dijelove dobio sam od njemačkog prodavača na E-Bayu (veza navedena u BoM-u). Za moj dizajn trebat će vam:

  • akrilna uzemljena ploča, prozirna debljina = 6 mm, promjer = 300 mm
  • akrilna srednja ploča, prozirna debljina = 3 mm, promjer = 150 mm
  • prednja ploča od akrila, saten, debljina = 3 mm, promjer = 90 mm
  • akrilna cijev, prozirna, vanjski promjer = 64 mm (znači da moramo malo prilagoditi LED traku)
  • akrilna šipka, prozirna, promjera = 5 mm (ovo će biti naše grede); U blizini su i akrilne šipke s mjehurićima, preporučujem ih, ali nemam ih u blizini.
  • akrilno ljepilo

Elektronika (pogledajte datoteke Fritzing):

  • Arduino mini (ili slično)
  • 1 adresabilna LED traka (12 LED dioda za sat i 5 minuta koraka)
  • 4 adresabilne LED diode (pojedinačne minute)
  • 2 330Ohm otpornika
  • 1 1000µF kondenzator
  • 1 napajanje (5V/500mA)
  • RTC DS-1307 (izborno!)
  • Bluetooth modul (izborno! Da, možete postaviti vrijeme putem BT -a i Android pametnog telefona)

Ako se pitate zašto imam čipove MAX485 na BoM -u. Odgovor je da želim sinkronizirati sat sa sustavom kućne automatizacije koji ću napraviti (nikada više neću morati namještati sat za ljetno računanje vremena:-P). To ću opisati u svom blogu u sljedećoj par tjedana/mjesec.

Kao što ste primijetili, također ću pokušati isključiti sat s nekim solarnim panelima i LiPo-om, ali ne pokrivam to da u ovom Instructable-u slobodno isprobajte sami.

Korak 2: Pripremite akrilne dijelove

Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove

Alati:

Prije svega, od velike je pomoći ako ispišete DWG plan koji sam dodao u mjerilu 1: 1. To će vam pomoći da poravnate sve dijelove i poslužit će vam kao plan bušenja. Nadalje će vam trebati:

  • nož za hobi
  • mitraljez
  • pila za metal
  • stezaljke
  • ručna bušilica
  • bušilica, promjera 65 mm
  • set bušilica za metal
  • mala metalna turpija
  • akrilno ljepilo

Počnimo:

Uzmite uzemljenu ploču i poravnajte je s planom, tako da možete dobiti središte kruga. Sada uzmite ručnu bušilicu s montiranom bušilicom za konzerve i izbušite (vrlo sporo! Ne na preveliki pritisak!) Rupu u sredini uzemljene ploče, vanjski krug trebao bi biti dubok ~ 2-3 mm. Ovo služi za uranjanje LED trake u osnovnu ploču (LED traka širine ~ 10 mm, grede samo 5 mm u promjeru) i poravnavanje s gredama (pogledajte sliku 1).

Sada nam je potrebna nožna pila, mjerač ugla i akrilna cijev. Samo ga narežite na komade i odlučio sam napraviti kućište (cijev) dugačko 40 mm (slika 2). Sada ponovno zgrabite nožnu pilu i napravite mali rabbet s jedne strane cijevi, neka bude glatka s metalnom turpijom. Tamo će žice izaći;-) (pogledajte sliku 3)

Vrijeme je za malo ljepila … Uzmite srednju ploču (d = 150 mm) i prednju ploču (onu sa satiniranom). Ponovo ih poravnajte po tlu, stavite malo ljepila na sredinu srednje ploče, poravnajte prednju ploču i pričekajte da ljepilo je blago stvrdnuto. Ljepilo koje sam upotrijebio lagano se stvrdnjava i može potrajati do 2-3 sata, pa možda želite stezaljku … (slike 3 i 4)

Učinite isto za lijepljenje cijevi na uzemljenu ploču, provjerite je li rabet okrenut prema ploči i je li poravnat negdje gdje želite da prva LED dioda (12 sati) bude.

Pričekajte dok se ne stvrdne!

Sada možemo poravnati 2 dijela (s knjižnim oznakama) prema planu i izbušiti naše 4 pojedinačne rupe (promjera 5 mm ili promjer LED -a koji ste odabrali; bušite ga polako, bez prevelikog pritiska). Bušite oko 8-9 mm duboko. Budite oprezni, satenizirana ploča vrlo je krhka i može se kočiti ako bušite duboko. Sada ih možete zalijepiti ili odlučite, poput mene, da izrežem prijetnju u uzemljenu ploču i pričvrstim je vijkom.

Ponovno pričekajte da se ljepilo stvrdne. Sada poravnajte i zalijepite grede na podlogu. (slika 6) Pogodite što … pričekajte da se ljepilo stvrdne:-) Idemo na elektroniku …

Korak 3: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Alati:

  • lemilica
  • lemna žica
  • nož za hobi
  • mali komad prototipa PCB -a
  • emajliranu žicu ili bilo koju drugu žicu koju volite
  • vruće ljepilo

Započeo sam s pojedinačnim LED diodama. Ako koristite emajliranu žicu, ne zaboravite ostrugati lak prije lemljenja. Za to možete upotrijebiti nož za hobi. Povežite ih, možete pogledati sliku s ispisom na flikto.de. Imajte na umu da DOUT ide na DIN na sljedećoj LED lampici! (vidi sliku 2) Nakon toga možete izrezati LED traku na 4 elementa svaki sa 3 LED diode. Upamtite, imamo 63,6 mm LED traku i vanjski promjer cijevi 64 mm pa nam je potrebna neka dodatna duljina kako bismo je točno poravnali s gredama. Ožičite je emajliranom žicom kao na slici 4. Napravio sam malo proto PCB -a koji će poslužiti kao "kabelski svežanj" i sadržavat će komponente za LED trake (dva otpornika od 330 Ohma i kondenzator od 1000 μF, slika 7). Za to pogledajte sliku Fritzing.

Sada montirajte traku oko cijevi, poravnajte LED diode s gredama. Prvi Pixel odgovara 12 sati. Ako ste okrenuli stan, ne zaboravite da se sve zrcali. Nastavite u smjeru suprotnom od kazaljke na satu! Pričvrstite ga na cijev pomoću vrućeg ljepila. Mali pad za svaki segment će to učiniti!

Isto možete učiniti za pojedinačne LED diode (eventualno zrcaljene), samo dodajte malo vrućeg ljepila i utisnite ih u prethodno izbušene rupe.

Nemojte još povezivati Arduino, koristit ćemo hardversku seriju za BT vezu, pa prvo provjerite sljedeće korake u kojima opisujem softver.

Korak 4: Kodirajte

Kodirati
Kodirati
Kodirati
Kodirati

Sada možete učitati skicu u Arduino. Sada možete spojiti i LED trake. Nemojte spajati BT modul !!! Prvo želimo pogledati kod, trebali biste znati gdje možete prilagoditi nekoliko stvari …

Preuzmite Arduino IDE i knjižnice. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Instalirajte IDE i stavite knjižnice u mapu knjižnice. Otvorite priloženu INO datoteku i prenesite je na svoj arduino. Ovdje opisani kôd je isti, ali s dodatnim komentarima! Ako ste sve učinili kako treba, sada možete vidjeti "bootanimation". Moguće je postaviti vrijeme preko serijskog monitora. Samo upišite @"sat"/"min"/"sek" npr. @10/33/00 (10:33).

Slobodno se poigrajte s kodom … Ovdje ću vam dati kratak opis koda (Postavljanje bez RTC -a!)

DEFINICIJE:

#define PIN 6 // LED traka za sat #define MINPIN 5 // LED za pojedinačnu minutu #define NUMPIXELS 12 // Broj piksela za sat #define MINNUMPIXELS 4 // Broj piksela za jednu minutu #define BAUDRATE 115200 // Brzina prijenosa, treba se podudarati brzina prijenosa BT modula #define utch '@' // start BYTE TimeSync

int vremenski skup = 0; // zastava za spremanje ako je vrijeme postavljeno nakon bootint delayval = 20; // kašnjenje za nestajanje animacije int clocktimer = 10000; // vrijeme osvježavanja int timebright = 250; // svjetlina sata Strip int mtimebright = 50; // svjetlina singelminint inicijalize = 0; // zastava za pozivanje funkcije clearpixels nakon sata podizanja sustava; int oldahour = 0; // trgovina prev. satni minutni minut; int oldamin = 0; // sprema prethodnu minutu za osvježavanje u sekundi; int aday; int amonth; int ayear; int mmin; tmElements_t tm;

// Postavljanje za 2 LED polja NeoPixel (IME = TIP (BROJ PIXELA, KOJI PIN, FORMAT RGB ILI GRB, FREQ); Više informacija potražite u vodiču Adafruit. Adafruit_NeoPixel piksela = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_GRB + NEO_GRB +); Adafruit_NeoPixel minpiksela = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

POSTAVITI:

void setup () {

Serial.begin (BAUDRATE); Wire.begin (); // Inicijalno trake, sve OFFpixels.begin (); minpiksela.begin (); pikseli.show (); minpiksela.show ();

// Napravite malu animacijuSerial.println ("SUNRISE"); izlazak sunca(); kašnjenje (1000); Serial.println ("SUNSET"); zalazak sunca(); pikseli.show (); Serial.println ("SPREMNO"); }

PETLJA:

void loop () {// provjeravamo vremensku sinkronizaciju while (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // ako postoji @ na retku, pročitajte nadolazeće bajtove /inte {readtime (); }} // inicijalno LED diode, jasna animacija pokretanja

if (inicijalizacija == 0) {clearpixels (); inicijalizirati = 1; }

ahour = hour ();

minuta = minuta (); if (timeset == 1 || timeset == 0) // ovdje možete provjeriti je li vrijeme postavljeno, ovdje možete zaustaviti program ako je Timeset = FALSE, samo uklonite "|| timeset == 0"!

{

if (oldamin <aminute || oldahour sve postavite na OFF, prikaži novo vrijeme {clearpixels (); ClockDisplay ();}}}

Prikažite sat:

void ClockDisplay () {

oldahour = sat;

oldamin = aminuta; int xsat, xmin;

if (ahour> = 12) {xhour = ahour-12; // imamo samo 12 LED dioda za 24h prikaz} else {xhour = ahour; } // skalirajte ga u 5min korake xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; jasne piksele (); } // uzeti ostatak podjele za LED singelmin mmin = (aminute % 5); // modulo operator npr. 24 % 5 = 4! vrlo korisno: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pikseli. Boja (5, 125, 255)); // ovdje možete promijeniti boje! igrati se! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pikseli.show ();

// prikazuje singel minsfor (int m = 0; m

minpiksela.setBrightness (mtimebright); minpiksela.setPixelColor (m, pikseli. Boja (255, 255, 0)); minpiksela.show (); }} Čitanje i obrada TIMEinformacija sa serijskog broja

void readtime () // ako smo već dobili vodeći "@" proces dolazeće podatke i pohranimo vrijeme za TIME Lib {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); asekunda = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); godina = Serial.parseInt (); Serial.println ("TIMESET"); Serijski.ispis (sat); Serial.print (":"); Serijski.println (minutu); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Očistiti sve

void clearpixels () // isključite svaki PIXEL kako biste osvježili zaslon {

pikseli.begin (); minpiksela.begin (); for (int i = 0; ipixels.setPixelColor (i, pikseli. Boja (0, 0, 0)); minpixels.setPixelColor (i, pikseli. Boja (0, 0, 0)); pikseli.show (); minpikseli.show ();}}

Korak 5: Android APP i BT veza

Android APP i BT veza
Android APP i BT veza
Android APP i BT veza
Android APP i BT veza
Android APP i BT veza
Android APP i BT veza

Ako ste uspjeli s prethodnim koracima, sada možete povezati svoj BT modul. (nadam se da ste se uvjerili da se brzina prijenosa podudara). ne zaboravite prijeći TX i RX linije:-)

Preuzmite i instalirajte aplikaciju, uparite je sa svojim BT ključem, pokrenite aplikaciju, povežite se s ključem i sinkronizirajte vrijeme s mobitelom. APP u osnovi radi isto što i mi prije. On samo šalje @hh/mm/ss/dd/mm/GGGG generirano iz njegovog sistemskog vremena. Također sam poslao APPInventor AIA datoteku i objašnjenje o sljedećem koraku (za one koje zanima).

Korak 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor je prilično jednostavan za korištenje i vrijedan truda za tako jednostavan program.

Ako napravite novi projekt, naći ćete se na ekranu DIZAJNERA. (slika 1) Ovdje dodajemo tablice, gumbe, senzore i druge elemente za daljnju upotrebu. U našem slučaju potrebno nam je:

  • tablica (za poravnavanje svih elemenata)
  • birač popisa (za odabir BT uređaja na koji se povezujemo)
  • gumb (za aktiviranje TIME preko BT)
  • neke oznake (prikazuju stvarno vrijeme i datum)
  • senzor sata (osvježite vrijeme)
  • senzor bluetooth klijenta (povezivanje)

Dodavanje istih je jednostavno kao i povlačenje i ispuštanje! Na slici 2 možete vidjeti pregled aplikacije "APP" na ekranu BLOKOVI. Pa, tu se u osnovi i događa sva "čarolija". Na vrhu sam stvorio neke varijable za spremanje vremena i datuma. Prvi blok u gornjem lijevom kutu će inicijalizirati element listpicker sa popisom uparenih BT uređaja. drugi blok odlučujemo što ćemo učiniti s prethodno odabranim elementom. Pa, želimo se povezati s njim.

Ako pomno pogledate sljedeći Blok, možete vidjeti da generiramo, ako je status BT -a "povezan", poruku BT -a. To je isto što smo prethodno unijeli u SerialMonitor. Posljednji blok s lijeve strane pružit će nam nule za prikaz vremena (npr. 01:08). S desne strane možete pronaći naš posljednji blok, tu koristimo element sata. Ovdje ažuriramo varijable i spajamo ih s postupkom s znamenkama, to će se događati svakih 1000 ms (zadana postavka, promijenite je u dizajnerskom načinu rada) i prikazati ažurirane vrijednosti s oznakom. To je samo kratak opis, ali APPInventor je doista tako jednostavan:-) Možda postoji netko u zajednici koji želi napisati softver za iOS ili WindowsPhone. (bilo bi super)

Nadam se da vam se svidio moj Instructable! Zabavite se sa svojim novim zidnim satom! Možda ga želite pokloniti nekome koga volite (Božićna sezona):-)

A ako imate pitanja, slobodno me pitajte!

Srdačan pozdrav i sretan Božić.

Preporučeni: