Taula de continguts:

LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC: 8 passos (amb imatges)
LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC: 8 passos (amb imatges)

Vídeo: LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC: 8 passos (amb imatges)

Vídeo: LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC: 8 passos (amb imatges)
Vídeo: SIN PREOCUPACIONES - AQUIETA tu MENTE para DORMIR 😴 Mix para Toda la Noche 2024, Desembre
Anonim
LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC
LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC
LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC
LÀMPARA SOLAR SENSE FILS AMB BRAÇ FLEXIBLE MAGNÈTIC

Aquest projecte es va fer a partir d’un llum trencat & nodeMCU. Aquesta làmpada decorativa es pot ajustar en qualsevol direcció i col·locar-la en materials magnètics o posar-la sobre la taula. Es pot controlar en dos modes de la següent manera:

- Mode de control sense fils, com a enllaç de YouTube següent:

- Mode de control interactiu, com a enllaç de YouTube següent:

Pas 1: FACTURA DE MATERIALS

Llista B. O. M:

Imatge
Imatge

Per al mode interactiu, faig servir MPU6050 per obtenir dades giroscòpiques de NodeMCU per controlar el color de la làmpada.

Imatge dels materials per a aquest projecte:

Imatge
Imatge

Pas 2: CIRCUIT

CIRCUIT
CIRCUIT

Es tracta d’un circuit molt senzill, com esmenta anteriorment amb l’esquema de Fritzing, amb un tipus d’ànode comú LED RGB, tres resistències de corrent límit R100 i MPU6050.

El reflector s’utilitza a partir de qualsevol làmpada trencada i es connecta a la base nodeMCU mitjançant 2 perns o s’enganxa amb una cola forta.

Treballs d'instal·lació:

Imatge
Imatge
Imatge
Imatge

Esquema següent:

Imatge
Imatge

Pas 3: BASE MAGNÈTICA: BRAÇ FLEXIBLE

BASE MAGNÈTICA - BRAÇ FLEXIBLE
BASE MAGNÈTICA - BRAÇ FLEXIBLE

El braç flexible es pot reutilitzar a partir d’aixetes d’aigua flexibles trencades. Alguna cosa així:

Imatge
Imatge

Amb alguns consells, intentem connectar-los a la base de l’imant permanent a la part inferior del braç flexible. A la part superior, vam fer un forat per connectar-nos a la nostra placa de circuit i al carregador solar / de bateria. Amb aquesta base, podem posar làmpada a la superfície com a taula, terres …; o es pot fixar en materials magnètics com pilar d'acer, estructura d'acer.

Pas 4: SOLAR - CARREGADOR DE BATERIA

CARREGADOR DE BATERIES SOLAR
CARREGADOR DE BATERIES SOLAR

Provenia d’un llum de càrrega malmès. He afegit un interruptor d’encesa / apagat i subministrament de cables d’alimentació a nodeMCU. També té una presa de port USB i un endoll per al carregador de bateria.

Pas 5: CONNEXEU TOTS Junts

CONNEXEU TOTS JUNTS
CONNEXEU TOTS JUNTS

Connectant totes les parts: NodeMCU i reflector, cel·les solars i de bateria, braç flexible junt.

ACABAR

Imatge
Imatge

MODE DE CÀRREGA

Imatge
Imatge

Pas 6: PROGRAMA DE CONTROL INTERACTIU

El color es canviarà quan ajustem el braç flexible o girem el llum.

LÀMPARA INTERACTIVA

#incloure
// Adreça del dispositiu esclau MPU6050
const uint8_t MPU6050SlaveAddress = 0x68;
// Seleccioneu pins SDA i SCL per a la comunicació I2C - Pin predeterminat a WIRE LIBRARY: SCL - D1 i SDA - D2 a NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 poques adreces de registre de configuració
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, Temperatura, GyroX, GyroY, GyroZ;
configuració nul·la () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
bucle buit () {
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz;
uint16_t Vermell, verd, blau;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Agafeu un valor absolut
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Escala a l'abast
Vermell = mapa (Ax, 0, 16384, 0, 1023);
Verd = mapa (Ay, 0, 16384, 0, 1023);
Blau = mapa (Az, 0, 16384, 0, 1023);
// Impressió en sèrie per comprovar
//Serial.print("Red: "); Serial.print (vermell);
//Serial.print("Green: "); Serial.print (verd);
//Serial.print("Blue: "); Serial.print (Blau);
// Escriu analògic a LED
analogWrite (R, vermell); // R
analogWrite (G, Verd); // G
analogWrite (B, Blau); // B
retard (200);
}
void I2C_Write (uint8_t DeviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (dades);
Wire.endTransmission ();
}
// Llegiu els 14 registres
void Read_RawValue (uint8_t adreça del dispositiu, 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 ());
Giroscopi = (((int16_t) Wire.read () << 8) | Wire.read ());
GyroZ = (((int16_t) Wire.read () << 8) | Wire.read ());
}
// Configureu MPU6050
void MPU6050_Init () {
retard (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); // set +/- 250 graus / segon escala completa
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g a 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 absolut
float myAbs (float in) {
return (in)> 0? (in):-(in);
}

visualitzeu el PROGRAMA LÀMPARA INTERACTIVA raw allotjat amb ❤ per GitHub

Pas 7: PROGRAMA DE CONTROL SENSE FIL I APLICACIÓ ANDROID

PROGRAMA DE CONTROL SENSE FIL I APLICACIÓ ANDROID
PROGRAMA DE CONTROL SENSE FIL I APLICACIÓ ANDROID

Una altra manera, podem utilitzar l'aplicació Android per controlar LED RGB amb Android a la xarxa WiFi. Enllaça l'aplicació Android: aplicació LED RGB de control NODEMCU

Per al programa Arduino, podeu consultar:

microcontrollerkits.blogspot.com/2016/05/es…

Després de carregar el programa a NodeMCU, la primera execució ens donarà l'adreça IP del NodeMCU en impressió en sèrie. En el meu cas, és: 192.164.1.39 al port 80.

Imatge
Imatge

Ara podem controlar la làmpada sense fils amb un ordinador portàtil / tauleta / telèfon mòbil introduint l’adreça superior a Internet Explorer.

Imatge
Imatge

O bé mitjançant l’aplicació Android:

Imatge
Imatge

Pas 8: ALGUNES FOTOS

Recomanat: