
Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46


Ce projet a été réalisé à partir d'une lampe cassée et d'un nodeMCU. Cette lampe décorative peut être ajustée dans toutes les directions et fixée sur des matériaux magnétiques ou posée sur la table. Il peut être contrôlé en deux modes comme suit:
- Mode de contrôle sans fil, comme lien YouTube ci-dessous:
- Mode de contrôle interactif, comme lien YouTube ci-dessous:
Étape 1: Nomenclature
Liste de nomenclature:

Pour le mode interactif, j'utilise MPU6050 pour obtenir des données gyroscopiques de NodeMCU afin de contrôler la couleur de la lampe.
Image des matériaux pour ce projet:

Étape 2: CIRCUIT

C'est un circuit très simple, comme le schéma de Fritzing ci-dessus, avec 1 type d'anode commune à LED RVB, trois résistances de courant limite R100 et MPU6050.
Le réflecteur est utilisé à partir de toutes les lampes cassées et connecté à la base nodeMCU par 2 boulons ou collez-les avec de la colle forte.
Travaux d'installation:


Schéma ci-dessous:

Étape 3: BASE MAGNÉTIQUE - BRAS FLEXIBLE

Le bras flexible peut être réutilisé à partir de robinets flexibles cassés. Quelque chose comme ca:

Avec quelques astuces, nous essayons de les connecter à la base de l'aimant permanent au bas du bras flexible. Sur le dessus, nous avons percé un trou pour connecter notre carte de circuit imprimé et notre chargeur solaire/batterie. Avec cette base, nous pouvons mettre la lampe sur une surface comme une table, des sols….; ou il peut être fixé sur des matériaux magnétiques comme un pilier en acier, une structure en acier.
Étape 4: SOLAIRE – CHARGEUR DE BATTERIE

Cela venait d'une lampe de charge endommagée. J'ai ajouté un interrupteur marche/arrêt et une alimentation électrique au nodeMCU. Il dispose également d'une prise de port USB et d'une prise pour chargeur de batterie.
Étape 5: CONNECTER TOUS ENSEMBLE

Connexion de toutes les pièces: NodeMCU et réflecteur, cellules solaires et de batterie, bras flexible ensemble.
TERMINER

MODE DE CHARGE

Étape 6: PROGRAMME DE CONTRLE INTERACTIF
La couleur sera modifiée lorsque nous ajustons le bras flexible ou faisons pivoter la lampe.
LAMPE INTERACTIVE
#comprendre |
// Adresse du périphérique esclave MPU6050 |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Sélectionnez les broches SDA et SCL pour la communication I2C - Broche par défaut dans WIRE LIBRARY: SCL - D1 & SDA - D2 sur NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const entier G = 12; |
const int B = 13; |
// MPU6050 quelques adresses de registre de configuration |
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, Température, GyroX, GyroY, GyroZ; |
void setup() { |
pinMode(R, SORTIE); |
pinMode(G, SORTIE); |
pinMode(B, SORTIE); |
//Serial.begin(9600); |
Wire.begin(SDA, SCL); |
MPU6050_Init(); |
} |
boucle vide() { |
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
uint16_t Rouge, Vert, Bleu; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Prend la valeur absolue |
Ax = mesAbs(AccelX); |
Ay = mesAbs(AccelY); |
Az = mesAbs(AccelZ); |
// Échelle dans la plage |
Rouge = carte(Ax, 0, 16384, 0, 1023); |
Vert = carte(Ay, 0, 16384, 0, 1023); |
Bleu = carte(Az, 0, 16384, 0, 1023); |
// Impression en série à vérifier |
//Série.print("Rouge: "); Serial.print(Rouge); |
//Série.print("Vert: "); Serial.print(Vert); |
//Série.print("Bleu: "); Serial.print (Bleu); |
// Ecriture analogique sur LED |
analogWrite(R, Rouge); // R |
analogWrite(G, Vert); // G |
analogWrite(B, Bleu); //B |
retard (200); |
} |
void I2C_Write(uint8_t deviceAddress, uint8_t regAddress, uint8_t data){ |
Wire.beginTransmission(deviceAddress); |
Wire.write(regAddress); |
Wire.write(données); |
Wire.endTransmission(); |
} |
// Lecture des 14 registres |
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()); |
Température = (((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()); |
} |
// Configurer le 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); // définir +/- 250 degrés/seconde pleine échelle |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // définir +/- 2g pleine échelle |
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); |
} |
// Valeur absolue |
flotter mesAbs(flotter){ |
return (in)>0?(in):-(in); |
} |
voir rawPROGRAMME DE LAMPE INTERACTIVE hébergé avec ❤ par GitHub
Étape 7: PROGRAMME DE CONTRLE SANS FIL ET APPLICATION ANDROID

Une autre façon, nous pouvons utiliser l'application Android pour contrôler les LED RVB avec Android dans le réseau WiFi. Lien App Android: APP LED RVB de contrôle NODEMCU
Pour le programme Arduino, vous pouvez vous référer à:
microcontrollerkits.blogspot.com/2016/05/es…
Après avoir téléchargé le programme sur NodeMCU, la première exécution nous donnera l'adresse IP du NodeMCU lors de l'impression série. Dans mon cas, c'est: 192.164.1.39 au port 80.

Maintenant, nous pouvons contrôler la lampe sans fil avec un ordinateur portable/tablette/téléphone portable en entrant l'adresse ci-dessus dans Internet Explorer.

Ou en utilisant l'application Android:

Étape 8: QUELQUES IMAGES
Conseillé:
Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes

Robot Arduino sans fil utilisant le module sans fil HC12 : Salut les gars, bon retour. Dans mon article précédent, j'ai expliqué ce qu'est un circuit de pont en H, un circuit intégré de pilote de moteur L293D, un circuit de pilote de moteur L293D superposé pour piloter des pilotes de moteur à courant élevé et comment vous pouvez concevoir et fabriquer votre propre carte de pilote de moteur L293D
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch: 6 étapes

Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch : Raspberry Pi est idéal pour créer des points d'accès sans fil sécurisés mais il n'a pas une bonne portée, j'ai utilisé un adaptateur sans fil USB TP Link WN7200ND pour l'étendre. Je veux partager comment le fairePourquoi est-ce que je veux utiliser un Raspberry Pi au lieu d'un routeur ?T
Chargeur solaire sans fil : 5 étapes (avec photos)

Chargeur solaire sans fil : chaque étudiant connaît la difficulté de trouver une prise pour recharger son téléphone. Ce combat quotidien nous a motivés à trouver une solution créative. Nous voulions créer un dispositif de charge qui ne nécessitait en aucun cas une prise de courant et qui avait également
Système DIY de micro sans fil pour guitare sans fil : 4 étapes

DIY Wireless Mic to Wireless Guitar System: J'ai regardé des vidéos et des groupes et presque tous utilisent un système sans fil à la guitare. Devenir fou, bouger, marcher et faire ce qu'ils veulent sans le cordon alors je rêve d'en avoir un.. Mais.. pour moi maintenant c'est trop cher alors je suis arrivé à ça
Pirater une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : 4 étapes

Piratage d'une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : j'ai récemment construit un système d'alarme et je l'ai installé dans ma maison. J'ai utilisé des interrupteurs magnétiques sur les portes et les ai câblés à travers le grenier. Les fenêtres étaient une autre histoire et leur câblage n'était pas une option. J'avais besoin d'une solution sans fil et c'est