Índice:
- Autor John Day [email protected].
- Public 2024-01-30 11:38.
- Última modificação 2025-01-23 15:03.
Este projeto foi feito a partir de uma lâmpada quebrada e nodeMCU. Esta lâmpada decorativa pode ser ajustada em qualquer direção e fixada em materiais magnéticos ou colocada na mesa. Pode ser controlado em dois modos da seguinte forma:
- Modo de controle sem fio, conforme link do YouTube abaixo:
- Modo de controle interativo, conforme link do YouTube abaixo:
Etapa 1: CONTA DE MATERIAIS
Lista B. O. M:
Para o modo interativo, eu uso o MPU6050 para obter dados do giroscópio do NodeMCU para controlar a cor da lâmpada.
Imagem dos materiais para este projeto:
Etapa 2: CIRCUITO
Este é um circuito muito simples, como o esquema de Fritzing acima, com 1 tipo de ânodo comum LED RGB, três resistores de corrente limite R100 e MPU6050.
O refletor é usado em qualquer lâmpada quebrada e conectado à base do nodeMCU por 2 parafusos ou cole-os com cola forte.
Trabalho de instalação:
Esquema abaixo:
Etapa 3: BASE MAGNÉTICA - BRAÇO FLEXÍVEL
O braço flexível pode ser reutilizado em torneiras de água flexíveis quebradas. Algo parecido:
Com algumas dicas, tentamos conectá-los à base do ímã permanente na parte inferior do braço flexível. No topo, fizemos um furo para conectar a nossa placa de circuito e carregador solar / bateria. Com esta base, podemos colocar a lâmpada na superfície como uma mesa, piso …; ou pode ser fixado em materiais magnéticos como pilar de aço, estrutura de aço.
Etapa 4: SOLAR - CARREGADOR DE BATERIA
Veio de uma lâmpada de carregamento danificada. Eu adicionei um interruptor liga / desliga e fonte de fios de energia para nodeMCU. Ele também possui uma saída de porta USB e um plugue para carregador de bateria.
Etapa 5: CONECTE TODOS JUNTOS
Conectando todas as peças: NodeMCU e refletor, células solares e de bateria, braço flexível juntos.
FINALIZAR
MODO DE CARREGAMENTO
Etapa 6: PROGRAMA DE CONTROLE INTERATIVO
A cor será alterada quando ajustamos o braço flexível ou giramos a lâmpada.
LÂMPADA INTERATIVA
| #incluir |
| // Endereço do dispositivo escravo MPU6050 |
| const uint8_t MPU6050SlaveAddress = 0x68; |
| // Selecione os pinos SDA e SCL para comunicação I2C - Pino padrão na BIBLIOTECA DE ARAME: SCL - D1 & SDA - D2 em NODEMCU |
| // const uint8_t SCL = D1; |
| // const uint8_t SDA = D2; |
| const int R = 14; |
| const int G = 12; |
| const int B = 13; |
| // MPU6050 alguns endereços de registro de configuração |
| 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; |
| void setup () { |
| pinMode (R, OUTPUT); |
| pinMode (G, SAÍDA); |
| pinMode (B, OUTPUT); |
| //Serial.begin(9600); |
| Wire.begin (SDA, SCL); |
| MPU6050_Init (); |
| } |
| void loop () { |
| uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
| uint16_t Vermelho, Verde, Azul; |
| Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
| // Pega valor absoluto |
| Ax = myAbs (AccelX); |
| Ay = myAbs (AccelY); |
| Az = myAbs (AccelZ); |
| // Escala no alcance |
| Vermelho = mapa (Ax, 0, 16384, 0, 1023); |
| Verde = mapa (Ay, 0, 16384, 0, 1023); |
| Azul = mapa (Az, 0, 16384, 0, 1023); |
| // Impressão serial para verificar |
| //Serial.print("Red: "); Serial.print (vermelho); |
| //Serial.print("Green: "); Serial.print (Verde); |
| //Serial.print("Blue: "); Serial.print (azul); |
| // Escreva analógico para LED |
| analogWrite (R, vermelho); // R |
| analogWrite (G, Verde); // G |
| analogWrite (B, Azul); // B |
| atraso (200); |
| } |
| void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) { |
| Wire.beginTransmission (deviceAddress); |
| Wire.write (regAddress); |
| Wire.write (dados); |
| Wire.endTransmission (); |
| } |
| // Lê todos os 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 ()); |
| } |
| // Configure MPU6050 |
| void MPU6050_Init () { |
| atraso (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); // definir +/- 250 graus / segundo escala completa |
| I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // definir +/- 2g 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 |
| float myAbs (float in) { |
| return (in)> 0? (in):-(in); |
| } |
ver rawINTERACTIVE LAMP PROGRAM hospedado com ❤ pelo GitHub
Etapa 7: PROGRAMA DE CONTROLE SEM FIO E APLICAÇÃO ANDROID
Outra forma, podemos usar o aplicativo Android para controlar LED RGB com Android na rede WiFi. Link Android App: NODEMCU control RGB LED APP
Para o programa Arduino, você pode consultar:
microcontrollerkits.blogspot.com/2016/05/es…
Após fazer o upload do programa para o NodeMCU, a primeira execução nos dará o endereço IP do NodeMCU na impressão serial. No meu caso, é: 192.164.1.39 na porta 80.
Agora, podemos controlar a lâmpada sem fio com laptop / tablet / celular digitando o endereço acima no Internet Explorer.
Ou usando o aplicativo Android:
Etapa 8: ALGUMAS IMAGENS
Recomendado:
Robô Arduino sem fio usando módulo sem fio HC12: 7 etapas
Robô Arduino sem fio usando módulo sem fio HC12: Olá pessoal, bem-vindos de volta. Em meu post anterior, eu expliquei o que é um circuito de ponte H, L293D motor driver IC, pegando carona L293D Motor driver IC para dirigir drivers de motor de alta corrente e como você pode projetar e fazer sua própria placa de driver de motor L293D
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio TP Link WN7200ND USB no trecho Raspbian: 6 etapas
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio USB TP Link WN7200ND no Raspbian Stretch: Raspberry Pi é ótimo para criar pontos de acesso sem fio seguros, mas não tem um bom alcance, usei um adaptador sem fio USB TP Link WN7200ND para estendê-lo. Quero compartilhar como fazer por que quero usar um pi de framboesa em vez de um roteador?
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: 4 etapas
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: Tenho assistido a alguns vídeos e bandas e quase todas usam um sistema sem fio na guitarra. Enlouquecer, mover-se, caminhar e fazer o que quiserem sem o cabo, então sonho em ter um .. Mas .. para mim agora é muito caro então eu vim para isso
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: 4 etapas
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: recentemente construí um sistema de alarme e o instalei em minha casa. Usei interruptores magnéticos nas portas e os conectei através do sótão. As janelas eram outra história e fiação direta não era uma opção. Eu precisava de uma solução sem fio e isso é
Converter roteador sem fio em ponto de acesso 2x do extensor sem fio: 5 etapas
Converter Roteador Wireless em Ponto de Acesso Wireless Extender 2x: Eu tinha uma conexão de internet wireless ruim em minha casa devido a um RSJ (viga de suporte de metal no teto) e queria aumentar o sinal ou adicionar um extensor extra para o resto da casa. Eu tinha visto extensores por cerca de £ 50 em um eletro
