Sommario:
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-06-01 06:09
Questo progetto è stato realizzato da una lampada rotta e nodeMCU. Questa lampada decorativa può essere regolata in qualsiasi direzione e fissata su materiali magnetici o posizionata sul tavolo. Può essere controllato in due modalità come segue:
- Modalità di controllo wireless, come link YouTube di seguito:
- Modalità di controllo interattivo, come link YouTube di seguito:
Fase 1: DISTINTA DEI MATERIALI
Elenco B. O. M:
Per la modalità interattiva, utilizzo MPU6050 per ottenere i dati del giroscopio da NodeMCU per controllare il colore della lampada.
Immagine dei materiali per questo progetto:
Fase 2: CIRCUITO
Questo è un circuito molto semplice, come lo schema di Fritzing sopra, con 1 LED RGB di tipo ad anodo comune, tre resistori di corrente limite R100 e MPU6050.
Il riflettore viene utilizzato da qualsiasi lampada rotta e collegato alla base nodeMCU tramite 2 bulloni o incollato con una colla forte.
Lavori di installazione:
Schema di seguito:
Step 3: BASE MAGNETICA - BRACCIO FLESSIBILE
Il braccio flessibile può essere riutilizzato da rubinetti dell'acqua flessibili rotti. Qualcosa del genere:
Con alcuni suggerimenti, proviamo a collegarli alla base del magnete permanente nella parte inferiore del braccio flessibile. Sulla parte superiore, abbiamo praticato un foro per il collegamento al nostro circuito stampato e al caricabatterie solare/batteria. Con questa base, possiamo posizionare la lampada su superfici come tavoli, pavimenti…; oppure può essere fissato su materiali magnetici come pilastro in acciaio, struttura in acciaio.
Fase 4: SOLARE - CARICABATTERIE
Proviene da una lampada di ricarica danneggiata. Ho aggiunto un interruttore on/off e l'alimentazione dei cavi a nodeMCU. Ha anche una presa per porta USB e una presa per caricabatterie.
Passaggio 5: CONNETTI TUTTI INSIEME
Collegamento di tutte le parti: NodeMCU e riflettore, celle solari e batteria, braccio flessibile insieme.
FINIRE
MODALITÀ DI RICARICA
Fase 6: PROGRAMMA DI CONTROLLO INTERATTIVO
Il colore cambierà quando regoliamo il braccio flessibile o ruotiamo la lampada.
LAMPADA INTERATTIVA
| #includere |
| // Indirizzo dispositivo slave MPU6050 |
| const uint8_t MPU6050SlaveAddress = 0x68; |
| // Seleziona i pin SDA e SCL per la comunicazione I2C - Pin predefinito in WIRE LIBRARY: SCL - D1 e SDA - D2 su NODEMCU |
| // const uint8_t SCL = D1; |
| // const uint8_t SDA = D2; |
| const int R = 14; |
| const int G = 12; |
| const int B = 13; |
| // MPU6050 pochi indirizzi del registro di configurazione |
| 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, USCITA); |
| pinMode(G, USCITA); |
| pinMode(B, USCITA); |
| //Serial.begin(9600); |
| Wire.begin(SDA, SCL); |
| MPU6050_Init(); |
| } |
| ciclo vuoto() { |
| uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
| uint16_t Rosso, Verde, Blu; |
| Read_RawValue(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
| // Prendi un valore assoluto |
| Ax = myAbs(AccelX); |
| Ay = myAbs(AccelY); |
| Az = myAbs(AccelZ); |
| // Scala nell'intervallo |
| Rosso = map(Ax, 0, 16384, 0, 1023); |
| Verde = mappa(Ay, 0, 16384, 0, 1023); |
| Blu = mappa(Az, 0, 16384, 0, 1023); |
| // Stampa seriale da controllare |
| //Serial.print("Rosso: "); Serial.print(Rosso); |
| //Serial.print("Verde: "); Serial.print(Verde); |
| //Serial.print("Blu: "); Serial.print(Blu); |
| // Scrivi analogico su LED |
| analogWrite(R, Rosso); // R |
| analogWrite(G, Verde); // G |
| analogWrite(B, Blu); // B |
| ritardo(200); |
| } |
| void I2C_Write(uint8_t deviceAddress, uint8_t regAddress, uint8_t data){ |
| Wire.beginTransmission(deviceAddress); |
| Wire.write(regAddress); |
| Wire.write(dati); |
| Wire.endTransmission(); |
| } |
| // Leggi tutti i 14 registri |
| 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()); |
| GiroX = (((int16_t)Wire.read()<<8) | Wire.read()); |
| GiroY = (((int16_t)Wire.read()<<8) | Wire.read()); |
| GiroZ = (((int16_t)Wire.read()<<8) | Wire.read()); |
| } |
| // Configura MPU6050 |
| void MPU6050_Init(){ |
| ritardo(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);//imposta +/-250 gradi/secondo fondo scala |
| I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00);// imposta +/- 2g fondo scala |
| 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); |
| } |
| // Valore assoluto |
| galleggia myAbs(fluttua dentro){ |
| return (in)>0?(in):-(in); |
| } |
visualizza rawINTERACTIVE LAMP PROGRAM ospitato con ❤ da GitHub
Passaggio 7: PROGRAMMA DI CONTROLLO WIRELESS E APPLICAZIONE ANDROID
In un altro modo, possiamo utilizzare l'app Android per controllare i LED RGB con Android nella rete WiFi. Collega l'app Android: APP LED RGB di controllo NODEMCU
Per il programma Arduino, puoi fare riferimento a:
microcontrollerkits.blogspot.com/2016/05/es…
Dopo aver caricato il programma su NodeMCU, la prima esecuzione ci darà l'indirizzo IP del NodeMCU sulla stampa seriale. Nel mio caso, è: 192.164.1.39 alla porta 80.
Ora possiamo controllare la lampada wireless con laptop/tablet/cellulare inserendo l'indirizzo sopra in Internet Explorer.
Oppure utilizzando l'app Android:
Fase 8: ALCUNE IMMAGINI
Consigliato:
FLEXBALL - Una Sfera PCB Flessibile da Cento Pixel con WiFi: 6 Passaggi (con Immagini)
FLEXBALL: una sfera PCB flessibile da cento pixel con WiFi: Ciao produttori, è il produttore moekoe! Flexball si basa su un PCB flessibile dotato di 100 LED indirizzabili WS2812 2020. È controllato da un ESP8285-01f, il più piccolo modulo basato su ESP di Espressif. Inoltre ha un accelerometro ADXL345
Lampada solare a bassa tecnologia con batterie riutilizzate: 9 passaggi (con immagini)
Lampada solare a bassa tecnologia con batterie riutilizzate: questo tutorial ti consente di realizzare una lampada solare dotata di un caricabatterie USB. Utilizza celle al litio che vengono riutilizzate da un laptop vecchio o danneggiato. Questo sistema, con un giorno di sole, può caricare completamente uno smartphone e avere 4 ore di luce. Questa tecnica
Matrice LED trasparente flessibile enorme a meno di $ 150. Facile da realizzare: 8 passaggi (con immagini)
Matrice LED trasparente flessibile enorme a meno di $ 150. Facile da realizzare.: Voglio iniziare dicendo che non sono un professionista, non ho una laurea in elettronica. Mi piace semplicemente lavorare con le mie mani e capire le cose. Lo dico per incoraggiare tutti voi non professionisti come me. Hai la capacità di
Artiglio flessibile: 24 passaggi (con immagini)
Flex Claw: questo istruttivo è stato creato in adempimento dei requisiti del progetto del Makecourse presso l'Università della Florida del sud (www.makecourse.com). Il Flex Claw è il prossimo miglior progetto per qualsiasi studente, ingegnere e stagnista allo stesso modo che sarà sicuramente G
Braccio magnetico per fotocamera: 5 passaggi (con immagini)
Braccio magnetico per fotocamera: ho realizzato questo supporto magnetico per fotocamera per aiutarmi a realizzare i miei video su Youtube. Questo è un progetto facile da completare. Tutte le parti sono facili da trovare da Amazon e dal tuo negozio di ferramenta locale
