Taula de continguts:

TheSUN, rellotge de paret de disseny alimentat per Arduino: 6 passos (amb imatges)
TheSUN, rellotge de paret de disseny alimentat per Arduino: 6 passos (amb imatges)

Vídeo: TheSUN, rellotge de paret de disseny alimentat per Arduino: 6 passos (amb imatges)

Vídeo: TheSUN, rellotge de paret de disseny alimentat per Arduino: 6 passos (amb imatges)
Vídeo: Módulos de radio ¿Cuál usar? NRF24 | LoRa | CC1101 | HC12 | 433MHz | HC05 2024, Juliol
Anonim
TheSUN, rellotge de paret de disseny alimentat per Arduino
TheSUN, rellotge de paret de disseny alimentat per Arduino
TheSUN, rellotge de paret de disseny alimentat per Arduino
TheSUN, rellotge de paret de disseny alimentat per Arduino
TheSUN, rellotge de paret de disseny alimentat per Arduino
TheSUN, rellotge de paret de disseny alimentat per Arduino

Hola de nou Instructables-folks!:-P

A causa de problemes d’enviament, no vaig poder continuar amb el meu projecte ABTW, així que vaig decidir mostrar-vos-en un altre, la meva nova creació.

Crec que a molts de nosaltres, com a mi, ens agraden les boniques ratlles LED adreçables (també anomenades NEOPIXEL LED). Els podeu obtenir a ADAFRUIT. Altres proveïdors també proporcionaran productes similars. Hi ha una biblioteca disponible a ADAFRUITS - GitHub (feu clic a mi) que inclou algun codi de mostra. Per tant, la codificació hauria de ser directa …

Vaig veure aquells NEOPIXELS un pensament, què h … puc fer amb aquestes petites coses brillants.

  • Una pantalla de matriu LED? -> Molt complicat i no el faig servir (de moment)
  • Il·luminació X-Mas? -> S'adapta a la temporada, però seria més barat comprar-ne un:-P
  • un rellotge? -> Per què no! Però hauria de ser elegant i poc convencional

Per tant, fem un rellotge de paret.

Si mirem de prop el rellotge de canell (si teniu un analògic com jo), ens adonarem que tenim 12 hores i 60 minuts (amb sort). Això vol dir que necessitem 60 LED dirigibles, phu. Si prenem una franja amb 60 LED / metre, obtindrem un diàmetre de ~ 318 mm (radi = abast / (2 * Π)) que definitivament és massa gran.

La veritat és que si demaneu temps a algú, ningú dirà que passen 2 minuts de les 3. Com a resposta obtindreu "Són les cinc i tres passades". Llavors, per què no hauríem de reduir-ho tot a passos de 5 minuts? Per a això només necessitarem 12 LED, cosa que significa que obtindrem un diàmetre de 63,6 mm. També som capaços de diferenciar les hores i els minuts donant-los un color diferent. També podrem proporcionar els passos d'un minut "que falten" amb una tira addicional de 4 LEDs (o un LED adreçable únic).

AIX` ÉS EL PLA! Vegem com ho vaig fer tot. Com sempre, proporcionaré una llista / llista de materials i instruccions sobre com construir-lo.

Si creieu que només els suïssos poden fer rellotges genials, demostrem que us equivoqueu (ho sento Suïssa:-P)

Pas 1: Disseny i selecció de materials

Disseny i elecció de materials
Disseny i elecció de materials
Disseny i elecció de materials
Disseny i elecció de materials

Disseny:

Si tornem a mirar de prop el nostre rellotge / rellotge analògic, veiem que el cercle es divideix en 12 * 30 ° passos que sabem, que necessitem 63,6 mm per a la tira LED. Per tant, hauria de ser possible alinear la tira al voltant d’un tub d’alguna manera. Vaig decidir fer servir vidre acrílic, perquè té bon aspecte i és possible encapsular la llum LED i en cada defecte del vidre es produirà una dispersió de la llum. Per tant, diguem: més impureses conduiran a més dispersió de llum. Això és exactament el que volem. Així que no dubteu a agafar les vostres eines de gravat i sigueu creatius:-)

Si feu referència a la meva llista BoM i al nom que vaig donar al rellotge, he escollit un disseny similar al sol. He rebut totes les peces acríliques d’un venedor alemany a E-Bay (enllaç que apareix al BoM). necessitarà:

  • placa de sòl acrílic, gruix transparent = 6 mm, diàmetre = 300 mm
  • placa central acrílica, gruix transparent = 3 mm, diàmetre = 150 mm
  • placa frontal acrílica, setinat, gruix = 3 mm, diàmetre = 90 mm
  • tub d'acrílic, transparent, diàmetre exterior = 64 mm (significa que haurem de modificar una mica amb la tira LED)
  • vareta acrílica, transparent, diàmetre = 5 mm (aquesta serà la nostra biga); També hi ha varetes acríliques amb bombolles al seu interior, les recomano, però no les tinc.
  • cola acrílica

Electrònica (consulteu els fitxers Fritzing):

  • Arduino mini (o similar)
  • 1 tira LED adreçable (12 LED per passos d’hora i 5 minuts)
  • 4 LED adreçables (minuts individuals)
  • 2 resistències de 330 Ohm
  • 1 condensador de 1000µF
  • 1 subministrament d'energia (5V / 500mA)
  • un RTC DS-1307 (opcional)
  • Mòdul Bluetooth (opcional! Sí, podeu configurar l'hora mitjançant BT i un telèfon intel·ligent Android)

Si us pregunteu per què tinc xips MAX485 al meu BoM. La resposta és que vull sincronitzar el rellotge amb el sistema domòtic que estic a punt de fer (mai no heu de tornar a configurar un rellotge per a l'estiu):-P). un parell de setmanes / mes.

Com heu notat, també intentaré que el rellotge es desconnecti de la xarxa amb alguns panells solars i un LiPo, però no ho cobreixo en aquest Instructable, no dubteu a provar-ho vosaltres mateixos.

Pas 2: prepareu les parts acríliques

Prepareu les parts acríliques
Prepareu les parts acríliques
Prepareu les parts acríliques
Prepareu les parts acríliques
Prepareu les parts acríliques
Prepareu les parts acríliques

Les eines:

En primer lloc, és molt útil si imprimiu el pla DWG que he afegit a l’escala 1: 1. Això us ajudarà a alinear totes les parts i us servirà de pla de perforació.

  • ganivet
  • indicador de mitra
  • serra mecànica
  • pinces
  • trepant de mà
  • pot perforar, diàmetre 65mm
  • un joc de trepants metàl·lics
  • una petita llima de metall
  • cola acrílica

Comencem:

Agafeu la placa de terra i alineeu-la sobre el pla per obtenir el centre del cercle. Ara, treieu el trepant manual amb el trepant de llauna muntat i treieu (molt lent, poca pressió!) Un forat al centre de la placa de terra; el cercle exterior hauria de tenir una profunditat de ~ 2-3mm. Es tracta d’enfonsar la tira LED a la placa de terra (tira LED de ~ 10 mm d’amplada, bigues de només 5 mm de diàmetre) i alinear-les amb les bigues (consulteu la imatge 1).

Ara necessitem la serra mecànica, el manòmetre i el tub acrílic. Només el vaig tallar a trossos i vaig decidir fer la carcassa (tub) de 40 mm de llarg (imatge 2). Ara agafeu de nou la serra i feu una petita coixa a un costat del tub, deixeu-la llisa amb la llima de metall. És aquí on sortiran els cables;-) (consulteu la imatge 3)

Temps per a una mica de cola … Agafeu la placa central (d = 150 mm) i la placa frontal (la satinada). Alineeu-les al pla de nou, poseu una mica de cola al centre de la placa central, alineeu la placa frontal i espereu fins que la cola està lleugerament endurida. La cola que he fet servir és d’enduriment lleuger i pot trigar fins a 2-3 hores, de manera que voleu utilitzar una pinça … (imatge 3 i 4)

Feu el mateix per enganxar el tub a la placa de terra, assegureu-vos que la rampa estigui orientada cap a la placa i que estigui alineada en algun lloc on vulgueu que aparegui el primer LED (12 hores).

Espereu fins que s’endureixi!

Ara podem alinear les dues parts (lligades) al pla i treure els nostres 4 forats d’un minut (5 mm de diàmetre o el diàmetre del LED que hàgiu triat; foradar-lo lentament amb poca pressió). Trepant uns 8-9 mm de profunditat. Vés amb compte, la placa satinada és molt fràgil i pot frenar si es perfora fins a la profunditat. Ara pots enganxar-los o tu decideixes, com jo, tallar una amenaça a la placa de terra i fixar-la amb un cargol.

Una vegada més, espereu fins que la cola s’hagi endurit. Ara alineeu i enganxeu les bigues a la placa de terra. (imatge 6) Endevina què … espera fins que la cola s'hagi endurit:-) Anem a l'electrònica …

Pas 3: electrònica

Electrònica
Electrònica
Electrònica
Electrònica
Electrònica
Electrònica
Electrònica
Electrònica

Les eines:

  • soldador
  • solderwire
  • ganivet d'afició
  • un petit tros de PCB de prototipatge
  • filferro esmaltat o qualsevol altre filferro que preferiu
  • cola calenta

Ho he fet amb els LED únics. Si utilitzeu filferro esmaltat, no oblideu raspar la laca abans de soldar. Podeu fer servir un ganivet per afició. Feu-los connectar-los, podeu consultar la imatge amb el pinout a flikto.de. Tingueu en compte que DOUT va a DIN al següent LED. (vegeu la imatge 2) Després podeu tallar la tira LED en 4 elements cadascun amb 3 LED. Recordeu, tenim una tira LED de 63,6 mm i un diàmetre exterior de 64 mm del tub, de manera que necessitem una "longitud addicional per alinear-lo amb precisió a les bigues. Connecteu-lo amb filferro esmaltat com a la imatge 4. Vaig fer un petit proto PCB que servirà com a "arnès de potència" i contindrà els components de les tires LED (les dues resistències de 330 Ohm i el condensador 1000µF, imatge 7). Consulteu la imatge Fritzing per a això.

Ara munteu la tira al voltant del tub, assigneu els LED als feixos. El primer Pixel coincideix amb les 12 hores. Si heu donat la volta al vostre habitatge, no oblideu que tot queda reflectit. Procediu en sentit antihorari. Utilitzeu una mica de cola calenta per fixar-la al tub. Una petita caiguda per a cada segment ho farà.

Podeu fer el mateix amb els LED individuals (que finalment es reflecteixen), només cal afegir una mica de cola calenta i prémer-los als forats preforats.

Encara no connecteu l'Arduino, utilitzarem el maquinari-sèrie per a la connexió BT, així que primer comproveu els passos següents en què descric el programari.

Pas 4: Codi

Codi
Codi
Codi
Codi

Ara podeu carregar l’esbós a l’Arduino. Ara ja podeu connectar les tires LED. No connecteu el mòdul BT !!! Primer volem fer una ullada al codi, hauríeu de saber on podeu modificar diverses coses …

Descarregueu l'IDE Arduino i les biblioteques. IDE Arduino, AdafruitNeoPixel, Time, DS1307RTC

Instal·leu l'IDE i poseu les biblioteques a la carpeta biblioteca. Obriu el fitxer INO adjunt i pengeu-lo al vostre arduino. El codi descrit aquí és el mateix, però amb comentaris addicionals. Si ho heu fet tot bé, ara podeu veure la "bootanimation". És possible establir l’hora sobre el monitor de sèrie. Simplement escriviu @ "hora" / "min" / "seg" per exemple. @ 33/10/10 (10:33).

No dubteu a jugar amb el codi … Aquí us faré una breu descripció del codi (Configuració sense RTC!)

DEFINICIONS:

#define PIN 6 // Hour LED Strip #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Nombre de píxels per hora #define MINNUMPIXELS 4 // Nombre de píxels per minut únic #define BAUDRATE 115200 // Baudrate, hauria de coincidir la velocitat de transmissió del mòdul BT #define utch '@' // start BYTE de TimeSync

int timeset = 0; // marca per emmagatzemar si es va establir l'hora després de l'inici de delayval = 20; // retard per esvair l'animació int clocktimer = 10000; // actualització del temps int timebright = 250; // brillantor de l’hora Strip int mtimebright = 50; // brillantor de singelminint initialize = 0; // marca per trucar a la funció clearpixels després de l'arrencar ahour; int oldahour = 0; // botiga prev. hourint aminute; int oldamin = 0; // emmagatzema el minut anterior per actualitzar-lo en segon lloc; int aday; int amonth; int ayear; int mmin; tmElements_t tm;

// Configuració de les dues matrius de LEDs de NeoPixel (NOM = TIPUS (NOMBRE DE PIXELS, QUIN PIN, FORMAT RGB O GRB, FREQ); Consulteu la guia d'Adafruit per obtenir més informació. Adaruit Fruit_NeoPixel píxels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

CONFIGURACIÓ:

configuració nul·la () {

Serial.begin (BAUDRATE); Wire.begin (); // Inicialitzar les tires, tot OFFpixels.begin (); minpixels.begin (); pixels.show (); minpixels.show ();

// Feu una mica d'animacióSerial.println ("SUNRISE"); sortida del sol (); retard (1000); Serial.println ("SUNSET"); posta de sol (); pixels.show (); Serial.println ("LIST"); }

LOOP:

void loop () {// comprova si hi ha sincronització de temps mentre que (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // si hi ha un @ a la línia, llegiu els bytes / ints que vénen {readtime (); }} // inicialitzeu els LED, esborreu l'animació d'arrencada

if (inicialitzar == 0) {clearpixels (); inicialitzar = 1; }

ahour = hora ();

aminute = minut (); si (timeset == 1 || timeset == 0) // aquí podeu comprovar si s'ha establert l'hora, podeu aturar el programa aquí si Timeset = FALSE, només heu de suprimir "|| timeset == 0".

{

if (oldamin <aminute || oldahour ho posa tot a OFF, mostra l'hora nova {clearpixels (); ClockDisplay ();}}}

Mostra el rellotge:

void ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int xhour, xmin;

if (ahour> = 12) {xhour = ahour-12; // només tenim 12 LEDs per a pantalla de 24 hores} else {xhour = ahour; } // escalar-lo en passos de 5min xmin = (aminute / 5); if (oldamin <aminute) {oldamin = aminut; clearpixels (); } // agafeu la resta de la divisió del LED singelmin mmin = (aminute% 5); // operador de mòdul per exemple. 24% 5 = 4! molt útil: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // podeu canviar els colors aquí! jugar a! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pixels.show ();

// mostra el minsfor individual (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pixels. Color (255, 255, 0)); minpixels.show (); }} Llegiu i processeu la informació de TIME des de la sèrie

void readtime () // si ja obtenim el "@" principal processa les dades següents i emmagatzema l'hora del TIME Lib {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); segon = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Serial.print (ahour); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, anyear); }

Esborra-ho tot

void clearpixels () // estableix tots els PIXEL com a desactivats per actualitzar la pantalla {

pixels.begin (); minpixels.begin (); per a (int i = 0; ipixels.setPixelColor (i, pixels. Color (0, 0, 0)); minpixels.setPixelColor (i, pixels. Color (0, 0, 0)); pixels.show (); minpixels.espectacle(); } }

Pas 5: l'aplicació d'Android i la connexió BT

L’APP per Android i la connexió BT
L’APP per Android i la connexió BT
L’APP per Android i la connexió BT
L’APP per Android i la connexió BT
L’APP per Android i la connexió BT
L’APP per Android i la connexió BT

Si teniu èxit amb els passos anteriors, ara podeu connectar el mòdul BT. (espero que us assegureu que els baudrates coincideixen). no us oblideu de creuar les línies TX i RX:-)

Descarregueu i instal·leu l'aplicació, vincleu-la amb el dongle BT, inicieu l'aplicació, connecteu-vos al dongle i sincronitzeu l'hora amb el vostre mòbil. L’APP bàsicament fa el mateix que abans. Simplement envia @ hh / mm / ss / dd / mm / AAAA generat des del seu temps de sistema. També he proporcionat el fitxer AIA APPInventor i una explicació sobre el següent pas (per a aquells que estiguin interessats).

Pas 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor és força fàcil d’utilitzar i val la pena fer un programa tan senzill.

Si feu un projecte nou, us trobareu a la pantalla de DISSENYADOR. (imatge 1) Aquí és on afegim taules, botons, sensors i altres elements per a un ús posterior. En el nostre cas necessitem:

  • una taula (per alinear tots els elements)
  • un listpicker (per a la selecció del dispositiu BT al qual ens connectem)
  • un botó (per activar el TEMPS per BT)
  • algunes etiquetes (mostra l'hora i la data reals)
  • el sensor de rellotge (actualitzeu l'hora)
  • el sensor de client bluetooth (connectivitat)

Afegir-los és tan fàcil com arrossegar i deixar anar. A la imatge 2 podeu veure una visió general de "APP" a la pantalla BLOCS. Bé, aquí és bàsicament on passa tota la "màgia". A la part superior he creat algunes variables per emmagatzemar l'hora i la data. El primer bloc de la part superior esquerra inicialitzarà l'element listpicker amb la llista de dispositius BT aparellats. segon bloc decidim què fer amb l'element seleccionat anteriorment. Bé, ens hi volem connectar.

Si veieu de prop el següent bloc, veureu que generem, si l'estat BT "està connectat", el missatge BT. És el mateix que vam escriure abans al SerialMonitor. L’últim bloc de l’esquerra ens proporcionarà els zeros inicials per mostrar l’hora (per exemple, 01:08). A la part dreta podeu trobar el nostre darrer bloc, allà és on fem servir l’element de rellotge. Aquí actualitzem les variables i les combinem amb el procediment de dígits, això passarà cada 1000 ms (configuració per defecte, canvieu-la al mode dissenyador) i mostreu els valors actualitzats amb l'etiqueta. Això és només una breu descripció, però APPInventor és realment tan fàcil:-) Potser hi ha algú a la comunitat que vulgui escriure un programari per a iOS o WindowsPhone. (seria genial)

Espero que us hagi agradat el meu Instructable! Diverteix-te amb el teu nou rellotge de paret. Potser el voleu regalar a algú que estimeu (és la temporada de Nadal):-)

I si hi ha alguna pregunta, no dubteu a preguntar-me!

Salutacions cordials i Bon Nadal.

Recomanat: