Taula de continguts:
- Pas 1: reuniu els materials
- Pas 2: Construir l'estructura de la làmpada
- Pas 3: les formes 3D
- Pas 4: esquema dels components
- Pas 5: el codi
- Pas 6: Control de la làmpada
- Pas 7: gaudiu de la vostra làmpada d'ànim
Vídeo: Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint el disseny contemporani.
El pla és fer que la làmpada sigui més fàcil d’utilitzar afegint un mòdul Bluetooth i una banda LED WS2812B RGB adreçable. Això va permetre controlar el color de la il·luminació només mitjançant una aplicació per a telèfons intel·ligents.
Pas 1: reuniu els materials
Eines:
• Estació de soldadura
• Pistola de bufador d’escalfador
• Màquina de trepar
• Serra circular
• Trencaclosques
• Alicates talladores de filferro
• Alicates de nas estret
Materials:
• Tauler d’acrílic translúcid
• Fusta de xiprer japonès (o podeu utilitzar qualsevol fusta sempre que sigui prou estable i forta)
• Cargols
• Pal o pal d'acer inoxidable
• Filferro (faig servir filferro vermell i negre)
• Estany de soldadura
Components electrònics:
• Arduino Nano
• Mòdul Bluetooth HC-05 (he decidit utilitzar-lo, ja que és més fàcil de codificar que el mòdul Wifi ESP8266)
• Tira LED LED RGB adreçable WS2812B
• Mòdul de baixada LM2596
• Presa de corrent DC Barrel
Pas 2: Construir l'estructura de la làmpada
En aquest pas, tinc dues maneres de construir l'estructura del mètode per treballar la fusta de les làmpades i el mètode d'impressió 3D. Faig servir el primer mètode. Si preferiu fer-ho mitjançant una impressora 3D, no dubteu a passar al pas 2 del model que he dissenyat.
Per a la part superior de la làmpada, escalfo i dobleixo el tauler acrílic fins a un angle de 90 °, tal com es mostra més amunt. Em prenc força temps doblegar-lo a un angle i una direcció tan perfectes.
A continuació, per a la part inferior del llum. Malauradament … el dia que estic treballant a la part inferior del llum, vaig oblidar completament de fer una foto de la construcció. Em vaig adonar que quan vaig acabar aquest projecte. Però faré tot el possible per proporcionar-vos la mesura de la part inferior del llum.
Bàsicament, només cal tallar quatre blocs de fusta de 13x6x2cm (LxHxW). A continuació, heu de tallar un tall semblant a una escala a la vora de la fusta. La imatge es mostrarà a sobre.
Pas 3: les formes 3D
Per a qualsevol persona que tingui la seva pròpia impressora 3D, esteu en el pas correcte. Això va fer que aquesta làmpada fos fàcil d'utilitzar.
Per ser sincer, aquest va ser el pas més dur que vaig fer. Això és el primer que vaig fer just després d’instal·lar el programari.
Utilitzo Sketchup Pro per dissenyar l’estructura del llum. Malauradament, no sóc prou hàbil per dissenyar el seu component interior. L’enllaç al meu model 3D es troba al fitxer següent.
Pas 4: esquema dels components
Utilitzo Fritzing per construir els esquemes dels components. L’esquema és realment bastant fàcil.
Pas 5: el codi
Per a la codificació d'aquest llum d'ànim, he utilitzat algunes biblioteques de l'IDE Arduino. Les biblioteques es mostraran al pas 7.
Per al codi, heu de tenir el propi programari Arduino. Proporcionaré l'enllaç per descarregar aquí.
A més, es mostrarà l'esbós o el codi a continuació?
També he proporcionat el fitxer del codi a Github.com per si el codi següent és massa llarg per copiar-lo aquí;)
#include #include #include #ifdef _AVR_ #include #endif
SoftwareSerial BT (10, 11);
#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #define IMMEDIATELY 0 #define RAINBOW_SPEED 50 leds CRGB [NUM_LEDS];
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
bool offOld = BAIX;
bool WhiteOld = BAIX; bool RedOld = BAIX; bool GreenOld = BAIX; bool BlueOld = BAIX; bool TopazOld = BAIX; bool LilacOld = BAIX; bool RainbowOld = BAIX; bool rgbOld = BAIX; int showType = 0;
configuració nul·la () {
FastLED.addLeds (leds, NUM_LEDS); //////////
BT.begin (9600);
BT.println ("Connectat a Arduino");
strip.setBrightness (LLUMINOSITAT);
strip.begin ();
strip.show ();
}
char a;
bucle buit () {
for (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = BAIX; bool Blanc = BAIX; bool Blau = BAIX; bool vermell = BAIX; bool Verd = BAIX; bool Topazi = BAIX; bool Lila = BAIX; bool Rainbow = BAIX; bool rgb = BAIX; bool ende; if (BT.available ()) {a = (char) BT.read ();
if (a == 'o')
{off = ALT; BT.println ("LEDS D'APAGADA..");
} més {
apagat = BAIX; } // ================================================ ============================================
if (a == 'w')
{Blanc = ALT; BT.println ("LEDS BLANCS");
} més {
Blanc = BAIX; } // ================================================ ============================================
if (a == 'b')
{Blau = ALT; BT.println ("CANVI AL BLAU"); } else {Blau = BAIX; }
// ===========================================================================================
if (a == 'r')
{Vermell = ALT; BT.println ("CANVI A VERMELL"); } else {Vermell = BAIX; }
// ===========================================================================================
if (a == 'g')
{Verd = ALT; BT.println ("CANVI AL VERD"); } else {Verd = BAIX; }
// ===========================================================================================
if (a == 't')
{Topazi = ALT; BT.println ("CANVI A TOPAZ"); } else {Topazi = BAIX; }
// ===========================================================================================
if (a == 'l')
{Lila = ALTA; BT.println ("CANVI A LA LILA"); } else {Lila = BAIX; }
// ===========================================================================================
if (a == 'a')
{Arc de Sant Martí = ALT; BT.println ("ANIMACIÓ DEL RAINBOW"); } else {Arc de Sant Martí = BAIX; } // ================================================ ============================================
if (a == 'm')
{rgb = ALTA; BT.println ("MIX COLORS"); } else {rgb = BAIX; }} if (off == LOW && offOld == HIGH) {delay (20); if (off == BAIX) {showType = 0; // Desactivació de l’animació Tipus 0 startShow (showType); }}
// ===========================================================================================
if (Blanc == BAIX i & BlancOld == ALT) {
retard (20); if (Blanc == BAIX) {showType = 1; // Animació en blanc Tipus 1 startShow (showType); }}
// ================================================= =========================================== si (vermell == BAIX && RedOld == HIGH) {delay (20); if (Vermell == BAIX) {showType = 2; // Animació vermella Tipus 2 startShow (showType); }}
// ===========================================================================================
if (Verd == BAIX &&Vell == ALT) {
retard (20); if (Verd == BAIX) {showType = 3; // Animació verda Tipus 3 startShow (showType); }} // =============================================== ==============================================
if (Blau == BAIX i & BlauVell == ALT) {
retard (20); if (Blau == BAIX) {showType = 4; // Animació blava Tipus 4 startShow (showType); }}
// ===========================================================================================
if (Topazi == BAIX && TopaziOld == ALT) {
retard (20); if (Topazi == BAIX) {showType = 5; // Animació Topazi Tipus 5 startShow (showType); }}
// ===========================================================================================
if (Lila == BAIX && LilaOld == ALT) {
retard (20); if (Lila == BAIX) {showType = 6; // Animació Topazi Tipus 6 startShow (showType); }} // =============================================== ==============================================
if (Rainbow == BAIX && RainbowOld == HIGH) {
retard (20);
if (Arc de Sant Martí == BAIX) {
showType = 8; // Animació Rainbow Tipus 8 startShow (showType); }}
// ===========================================================================================
if (rgb == BAIX && rgbOld == ALT) {
retard (20);
if (rgb == BAIX) {
showType = 7; // Mix animació Tipus 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = White;
RedOld = Vermell; BlueOld = Blau; GreenOld = Verd; TopaziOld = Topazi; LilacOld = Lila; offOld = off; RainbowOld = Arc de Sant Martí; rgbOld = rgb;
}
void startShow (int i) {
commutador (i) {
cas 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Negre / apagat
trencar;
cas 1: strip.setBrightness (255); // Canvia la brillantor a MAX
colorWipe (strip. Color (255, 255, 255), IMMEDIATAMENT); // White strip.setBrightness (BRIGHTNESS); // Restableix la brillantor al valor predeterminat;
cas 2: colorWipe (strip. Color (255, 0, 0), SPEED); // Vermell
trencar;
cas 3: colorWipe (strip. Color (0, 255, 0), SPEED); // Verd
trencar;
cas 4: colorWipe (strip. Color (0, 0, 255), SPEED); // Blau
trencar;
cas 5: colorWipe (strip. Color (0, 250, 255), SPEED); // Topazi
trencar;
cas 6: colorWipe (strip. Color (221, 130, 255), SPEED); // Lila
trencar; cas 7: colorWipe (strip. Color (255, 0, 0), SPEED); // Color vermell Netegeu (strip. Color (0, 255, 0), SPEED); // Color verd Netegeu (strip. Color (0, 0, 255), SPEED); // Blue theaterChase (strip. Color (0, 0, 127), SPEED); // Blue theaterChase (strip. Color (127, 0, 0), SPEED); // Red theaterChase (strip. Color (0, 127, 0), SPEED); // Trencament verd;
cas 8: rainbowCycle (25);
trencar; }} void colorWipe (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i
void rainbowCycle (uint8_t espera) {
uint16_t i, j;
for (j = 0; j <256 * 10; j ++) {// 5 cicles de tots els colors de la roda per a (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); retard (esperar); }}
void theatreChase (uint32_t c, uint8_t espera) {
for (int j = 0; j <10; j ++) {// feu 10 cicles de persecució de (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, c); // activa cada tercer píxel a} strip.show ();
retard (esperar);
for (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, 0); // apagueu cada tercer píxel}}}}
uint32_t Wheel (byte WheelPos) {
WheelPos = 255 - WheelPos; if (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos - = 85; tira de retorn. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos - = 170; tira de retorn. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }
Pas 6: Control de la làmpada
El color de la làmpada es pot controlar mitjançant el telèfon intel·ligent.
En primer lloc, heu d’instal·lar l’aplicació anomenada "Terminal Bluetooth HC-05" de Google Play Store o Apple App Store.
Aquests són els passos per controlar la llum mitjançant el vostre propi telèfon intel·ligent:
1. Activeu el bluetooth al telèfon intel·ligent.
2. Obriu l'aplicació que és "Terminal Bluetooth HC-05".
3. Ara hauríeu de veure els dispositius aparellats a la pantalla. Trieu "HC-05".
4. Ara podeu veure que apareix una pantalla negra al vostre telèfon intel·ligent que indicarà "connectat a Arduino".
5. Aquí teniu la part divertida: si escriviu 'b' al quadre de text, el llum passarà a ser de color blau. Aquí teniu la llista de l'ordre que podeu escriure per al llum:
- w per al blanc
- b per al blau
- g per al verd
- r per al vermell
- t per a topazi
- L per lila
- una animació arc de Sant Martí
- o per fora
Diversió no?
6. Per últim, però no menys important, també podeu personalitzar el botó que hi ha a sota de la pantalla al text que desitgeu, tal com es mostra a la imatge superior.
Pas 7: gaudiu de la vostra làmpada d'ànim
Espero que us agradi aquest Instructables. Va ser un projecte molt desafiador per a mi, però vaig aconseguir acabar-ho completament amb un noi de 14 anys. Doneu-me alguns comentaris per a futures millores.
Gràcies per llegir i Bon Nadal!
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: 6 passos (amb imatges)
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: el tutorial de Deze es troba a Engels, per a la versió del clàssic espanyol. Teniu un telèfon intel·ligent (antic) sense utilitzar? Convertiu-lo en una pantalla intel·ligent amb Fulls de càlcul de Google i paper i llapis seguint aquest senzill tutorial pas a pas. Quan hagis acabat
The Mummy Lamp: làmpada intel·ligent controlada per WiFi: 5 passos (amb imatges)
La làmpada de la mòmia: làmpada intel·ligent controlada per WiFi: fa uns 230 mil anys que l’ésser humà va aprendre a controlar el foc, això comporta un canvi important en el seu estil de vida ja que va començar a treballar a la nit també utilitzant la llum del foc. Podem dir que aquest és el començament de la il·luminació interior. Ara jo
Cistella de compra intel·ligent controlada per telèfon intel·ligent: 7 passos
Cistella de compra intel·ligent controlada per telèfon intel·ligent: visitar centres comercials pot ser divertit. Però arrossegar el carretó de la compra mentre l’ompliu de coses és una cosa que és francament molest. El dolor d’empènyer-lo per aquells passadissos estrets i fer aquells girs bruscos! Per tant, aquí teniu (una mena d’oferta) que podeu
Com controlar l'interruptor intel·ligent bàsic Sonoff basat en ESP8266 amb un telèfon intel·ligent: 4 passos (amb imatges)
Com controlar el commutador intel·ligent bàsic de Sonoff basat en ESP8266 amb un telèfon intel·ligent: Sonoff és una línia de dispositius per a Smart Home desenvolupada per ITEAD. Un dels dispositius més flexibles i econòmics d’aquesta línia és Sonoff Basic. És un commutador habilitat per Wi-Fi basat en un gran xip, ESP8266. En aquest article es descriu com configurar el Cl