Tabla de contenido:
- Paso 1: LISTA DE MATERIALES
- Paso 2: CIRCUITO
- Paso 3: BASE MAGNÉTICA - BRAZO FLEXIBLE
- Paso 4: SOLAR - CARGADOR DE BATERÍA
- Paso 5: CONECTAR TODOS JUNTOS
- Paso 6: PROGRAMA DE CONTROL INTERACTIVO
- Paso 7: PROGRAMA DE CONTROL INALÁMBRICO Y APLICACIÓN DE ANDROID
- Paso 8: ALGUNAS FOTOS
Video: LÁMPARA SOLAR INALÁMBRICA CON BRAZO FLEXIBLE MAGNÉTICO: 8 Pasos (con Imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Este proyecto se hizo a partir de una lámpara rota y un nodeMCU. Esta lámpara decorativa puede ajustarse en cualquier dirección y colocarse sobre materiales magnéticos o colocarse sobre la mesa. Se puede controlar en dos modos de la siguiente manera:
- Modo de control inalámbrico, como enlace de YouTube a continuación:
- Modo de control interactivo, como enlace de YouTube a continuación:
Paso 1: LISTA DE MATERIALES
Lista B. O. M:
Para el modo interactivo, uso MPU6050 para obtener datos de giroscopio de NodeMCU para controlar el color de la lámpara.
Imagen de materiales para este proyecto:
Paso 2: CIRCUITO
Este es un circuito muy simple, como el esquema de Fritzing anterior, con 1 tipo de ánodo común LED RGB, tres resistencias de corriente límite R100 y MPU6050.
El reflector se usa de cualquier lámpara rota y se conecta a la base de nodeMCU con 2 pernos o se pega con pegamento fuerte.
Trabajo de instalación:
Esquema a continuación:
Paso 3: BASE MAGNÉTICA - BRAZO FLEXIBLE
El brazo flexible se puede reutilizar a partir de grifos de agua flexibles rotos. Algo como eso:
Con algunos consejos, intentamos conectarlos a la base del imán permanente en la parte inferior del brazo flexible. En la parte superior, hicimos un taladro para conectar a nuestra placa de circuito y cargador solar / batería. Con esta base, podemos colocar la lámpara en superficies como mesas, pisos….; o se puede unir a materiales magnéticos como pilar de acero, estructura de acero.
Paso 4: SOLAR - CARGADOR DE BATERÍA
Provino de una lámpara de carga dañada. Agregué un interruptor de encendido / apagado y un suministro de cables de alimentación a nodeMCU. También tiene una salida de puerto USB y un enchufe para cargador de batería.
Paso 5: CONECTAR TODOS JUNTOS
Conexión de todas las piezas: NodeMCU y reflector, células solares y de batería, brazo flexible juntos.
TERMINAR
MODO DE CARGA
Paso 6: PROGRAMA DE CONTROL INTERACTIVO
El color cambiará cuando ajustemos el brazo flexible o giremos la lámpara.
LAMPARA INTERACTIVA
#incluir |
// Dirección del dispositivo esclavo MPU6050 |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Seleccione los pines SDA y SCL para la comunicación I2C - Pin predeterminado en WIRE LIBRARY: SCL - D1 & SDA - D2 en NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 pocas direcciones de registro de configuración |
const uint8_t MPU6050_REGISTER_SMPLRT_DIV = 0x19; |
const uint8_t MPU6050_REGISTER_USER_CTRL = 0x6A; |
const uint8_t MPU6050_REGISTER_PWR_MGMT_1 = 0x6B; |
const uint8_t MPU6050_REGISTER_PWR_MGMT_2 = 0x6C; |
const uint8_t MPU6050_REGISTER_CONFIG = 0x1A; |
const uint8_t MPU6050_REGISTER_GYRO_CONFIG = 0x1B; |
const uint8_t MPU6050_REGISTER_ACCEL_CONFIG = 0x1C; |
const uint8_t MPU6050_REGISTER_FIFO_EN = 0x23; |
const uint8_t MPU6050_REGISTER_INT_ENABLE = 0x38; |
const uint8_t MPU6050_REGISTER_ACCEL_XOUT_H = 0x3B; |
const uint8_t MPU6050_REGISTER_SIGNAL_PATH_RESET = 0x68; |
int16_t AccelX, AccelY, AccelZ, Temperature, GyroX, GyroY, GyroZ; |
configuración vacía () { |
pinMode (R, SALIDA); |
pinMode (G, SALIDA); |
pinMode (B, SALIDA); |
//Serial.begin(9600); |
Wire.begin (SDA, SCL); |
MPU6050_Init (); |
} |
bucle vacío () { |
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
uint16_t Rojo, verde, azul; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Toma valor absoluto |
Ax = myAbs (AccelX); |
Ay = myAbs (AccelY); |
Az = myAbs (AccelZ); |
// Escala en rango |
Rojo = mapa (Ax, 0, 16384, 0, 1023); |
Verde = mapa (Ay, 0, 16384, 0, 1023); |
Azul = mapa (Az, 0, 16384, 0, 1023); |
// Impresión en serie para comprobar |
//Serial.print("Red: "); Serial.print (rojo); |
//Serial.print("Green: "); Serial.print (verde); |
//Serial.print("Blue: "); Serial.print (azul); |
// Escribir analógico en LED |
analogWrite (R, rojo); // R |
analogWrite (G, verde); // G |
analogWrite (B, azul); // B |
retraso (200); |
} |
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t datos) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.write (datos); |
Wire.endTransmission (); |
} |
// Leer los 14 registros |
void Read_RawValue (uint8_t deviceAddress, uint8_t regAddress) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.endTransmission (); |
Wire.requestFrom (deviceAddress, (uint8_t) 14); |
AccelX = (((int16_t) Wire.read () << 8) | Wire.read ()); |
AccelY = (((int16_t) Wire.read () << 8) | Wire.read ()); |
AccelZ = (((int16_t) Wire.read () << 8) | Wire.read ()); |
Temperatura = (((int16_t) Wire.read () << 8) | Wire.read ()); |
GyroX = (((int16_t) Wire.read () << 8) | Wire.read ()); |
GyroY = (((int16_t) Wire.read () << 8) | Wire.read ()); |
GyroZ = (((int16_t) Wire.read () << 8) | Wire.read ()); |
} |
// Configurar MPU6050 |
void MPU6050_Init () { |
retraso (150); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SMPLRT_DIV, 0x07); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_1, 0x01); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_2, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_CONFIG, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_GYRO_CONFIG, 0x00); // establecer +/- 250 grados / segundo escala completa |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // establecer +/- 2g de escala completa |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_FIFO_EN, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_INT_ENABLE, 0x01); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SIGNAL_PATH_RESET, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_USER_CTRL, 0x00); |
} |
// Valor absoluto |
flotar myAbs (flotar en) { |
return (in)> 0? (in):-(in); |
} |
ver el PROGRAMA DE LÁMPARAS RAWINTERACTIVAS alojado con ❤ por GitHub
Paso 7: PROGRAMA DE CONTROL INALÁMBRICO Y APLICACIÓN DE ANDROID
De otra forma, podemos usar la aplicación de Android para controlar el LED RGB con Android en la red WiFi. Aplicación de enlace para Android: aplicación LED RGB de control NODEMCU
Para el programa Arduino, puede consultar:
microcontrollerkits.blogspot.com/2016/05/es…
Después de cargar el programa en NodeMCU, la primera ejecución nos dará la dirección IP de NodeMCU en la impresión en serie. En mi caso, es: 192.164.1.39 en el puerto 80.
Ahora, podemos controlar la lámpara inalámbrica con una computadora portátil / tableta / teléfono móvil ingresando la dirección arriba en Internet Explorer.
O usando la aplicación de Android:
Paso 8: ALGUNAS FOTOS
Recomendado:
Lámpara de cubo de Rubik inalámbrica fácil de cambiar de color basada en inclinación: 10 pasos (con imágenes)
Lámpara de cubo de Rubik inalámbrica de fácil cambio de color basada en inclinación: hoy vamos a construir esta increíble lámpara de cubo de Rubik que cambia de color según el lado que esté hacia arriba. El cubo funciona con una pequeña batería LiPo, cargada con un cable micro-usb estándar y, en mis pruebas, tiene una duración de batería de varios días. Esta
Bolt - Reloj nocturno de carga inalámbrica DIY (6 pasos): 6 pasos (con imágenes)
Bolt - Reloj nocturno de carga inalámbrica DIY (6 pasos): las cargas inductivas (también conocidas como carga inalámbrica o carga inalámbrica) son un tipo de transferencia de energía inalámbrica. Utiliza inducción electromagnética para proporcionar electricidad a dispositivos portátiles. La aplicación más común es el cargador inalámbrico Qi
Transmisión inalámbrica de bricolaje con LED IR y panel solar: 4 pasos
Transmisión inalámbrica de bricolaje con LED IR y panel solar: Como todos sabemos acerca de los paneles solares, los paneles solares fotovoltaicos absorben la luz solar como fuente de energía para generar electricidad. Es un gran regalo de fuente de energía gratuita. Pero aún así, no se usa mucho. La principal razón detrás de esto es que es caro
Lámpara LED inalámbrica Arduino Light-Matching con fotorresistor: 4 pasos
Lámpara LED inalámbrica Arduino Light-Matching con fotorresistor: este instructivo detalla los pasos necesarios para construir una lámpara LED inalámbrica rudimentaria con detección de luz usando Arduino Unos y un fotorresistor. Una posible aplicación de este dispositivo sería iluminar una habitación que no tiene ventanas con artificia
Brazo de cámara magnético: 5 pasos (con imágenes)
Brazo magnético para cámara: hice este soporte magnético para cámara para ayudarme a hacer mis videos de Youtube. Este es un proyecto fácil de completar. Todas las piezas son fáciles de encontrar en Amazon y en su ferretería local