Inhoudsopgave:
- Stap 1: MATERIALENSTUK
- Stap 2: CIRCUIT
- Stap 3: MAGNETISCHE BASIS - FLEXIBELE ARM
- Stap 4: ZONNE-ACCULADER
- Stap 5: ALLES SAMEN VERBINDEN
- Stap 6: INTERACTIEF BESTURINGSPROGRAMMA
- Stap 7: DRAADLOOS BESTURINGSPROGRAMMA EN ANDROID-TOEPASSING
- Stap 8: ENKELE FOTO'S
Video: DRAADLOZE ZONNE-LAMP MET MAGNETISCHE FLEXIBELE ARM - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Dit project is gemaakt van een kapotte lamp & nodeMCU. Deze decoratieve lamp kan in alle richtingen worden versteld en op magnetische materialen worden bevestigd of op tafel worden gezet. Het kan als volgt in twee modi worden bestuurd:
- Draadloze bedieningsmodus, zoals YouTube-link hieronder:
- Interactieve bedieningsmodus, zoals YouTube-link hieronder:
Stap 1: MATERIALENSTUK
BOM-lijst:
Voor de interactieve modus gebruik ik MPU6050 om gyrogegevens van NodeMCU te krijgen om de kleur van de lamp te regelen.
Materiaal foto voor dit project:
Stap 2: CIRCUIT
Dit is een heel eenvoudig circuit, zoals het Fritzing-schema hierboven, met 1 RGB Led gemeenschappelijk anodetype, drie limietstroomweerstanden R100 & MPU6050.
De reflector wordt gebruikt van kapotte lampen en is verbonden met de nodeMCU-basis met 2 bouten of plak ze met sterke lijm.
Installatiewerk:
Schema hieronder:
Stap 3: MAGNETISCHE BASIS - FLEXIBELE ARM
Flexibele arm kan worden hergebruikt van kapotte flexibele waterkranen. Zoiets:
Met enkele tips proberen we ze te verbinden met de permanente magneetbasis aan de onderkant van de flexibele arm. Bovenop hebben we een boorgat gemaakt voor aansluiting op onze printplaat en zonne-/batterijlader. Met deze basis kunnen we de lamp op een oppervlak plaatsen zoals tafel, vloeren ….; of het kan worden bevestigd op magnetische materialen zoals stalen pilaar, stalen structuur.
Stap 4: ZONNE-ACCULADER
Het kwam van een beschadigde oplaadlamp. Ik heb een aan/uit-schakelaar en voedingsdraden toegevoegd aan nodeMCU. Het heeft ook een USB-poort en een stekker voor de batterijlader.
Stap 5: ALLES SAMEN VERBINDEN
Alle onderdelen verbinden: NodeMCU & reflector, zonne- & batterijcellen, flexibele arm samen.
FINISH
OPLAADMODUS:
Stap 6: INTERACTIEF BESTURINGSPROGRAMMA
De kleur verandert wanneer we de flexibele arm aanpassen of de lamp draaien.
INTERACTIEVE LAMP
#erbij betrekken |
// MPU6050 Slave-apparaatadres |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Selecteer SDA- en SCL-pinnen voor I2C-communicatie - Pin standaard in WIRE LIBRARY: SCL - D1 & SDA - D2 op NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 weinig configuratieregisteradressen |
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, Temperatuur, GyroX, GyroY, GyroZ; |
ongeldige setup() { |
pinMode(R, UITGANG); |
pinMode (G, UITGANG); |
pinMode (B, UITGANG); |
//Serial.begin (9600); |
Wire.begin (SDA, SCL); |
MPU6050_Init(); |
} |
lege lus() { |
uint16_t Bijl, Ay, Az, T, Gx, Gy, Gz; |
uint16_t Rood, Groen, Blauw; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Neem absolute waarde |
Ax = mijnAbs(AccelX); |
Ay = mijnAbs(AccelY); |
Az = mijnAbs(AccelZ); |
// Schaal binnen bereik |
Rood = kaart (Ax, 0, 16384, 0, 1023); |
Groen = kaart (Ay, 0, 16384, 0, 1023); |
Blauw = kaart (Az, 0, 16384, 0, 1023); |
// Seriële afdruk om te controleren |
//Serial.print("Rood: "); Serieafdruk (Rood); |
//Serial.print ("Groen: "); Serial.print (Groen); |
//Serial.print ("Blauw: "); Serieafdruk (Blauw); |
// Schrijf analoog naar LED |
analoogWrite(R, Rood); // R |
analoogWrite(G, Groen); // G |
analoogWrite(B, Blauw); // B |
vertraging (200); |
} |
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data){ |
Wire.beginTransmission (apparaatadres); |
Wire.write (regAdres); |
Wire.write (gegevens); |
Wire.endTransmission(); |
} |
// Lees alle 14 registers |
void Read_RawValue (uint8_t deviceAddress, uint8_t regAddress){ |
Wire.beginTransmission (apparaatadres); |
Wire.write (regAdres); |
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()); |
Temperatuur = (((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()); |
} |
// Configureer MPU6050 |
ongeldige MPU6050_Init(){ |
vertraging (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 graden/seconde volledige schaal |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00);// set +/- 2g volledige schaal |
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); |
} |
// Absolute waarde |
float myAbs(floating in){ |
retourneer (in)>0?(in):-(in); |
} |
bekijk rawINTERACTIVE LAMP PROGRAMMA gehost met ❤ door GitHub
Stap 7: DRAADLOOS BESTURINGSPROGRAMMA EN ANDROID-TOEPASSING
Op een andere manier kunnen we de Android-app gebruiken om RGB LED te bedienen met Android in WiFi-netwerk. Link Android App:NODEMCU controle RGB LED APP
Voor Arduino-programma kunt u verwijzen naar:
microcontrollerkits.blogspot.com/2016/05/es…
Na het uploaden van het programma naar NodeMCU, geeft de eerste run ons het IP-adres van de NodeMCU op seriële afdruk. In mijn geval is dat: 192.164.1.39 op poort 80.
Nu kunnen we de draadloze lamp bedienen met een laptop/tablet/mobiele telefoon door het adres hierboven in te voeren in Internet Explorer.
Of met de Android-app:
Stap 8: ENKELE FOTO'S
Aanbevolen:
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Enorme flexibele transparante LED-matrix onder $ 150. Makkelijk te maken: 8 stappen (met afbeeldingen)
Enorme flexibele transparante LED-matrix onder $ 150. Makkelijk te maken.: Ik wil beginnen met te zeggen dat ik geen professional ben, ik heb geen diploma in elektronica. Ik vind het gewoon leuk om met mijn handen te werken en dingen uit te zoeken. Ik zeg dat om alle niet-professionals zoals ik aan te moedigen. Je hebt het vermogen om
Flexibele laptop: 5 stappen (met afbeeldingen)
Flexibele laptop: dit was een snel klein project dat ik deed om mijn ontwerp- en prototypingvaardigheden scherp te houden en iets te delen dat niet onder NDA valt of in licentie wordt gegeven aan iemand. Ik dien het in voor de pro-tips-uitdaging en dit is echt een gids voor
Magnetische camera-arm: 5 stappen (met afbeeldingen)
Magnetische camera-arm: ik heb deze magnetische camerabevestiging gemaakt om me te helpen bij het maken van mijn YouTube-video's. Dit is een eenvoudig project om te voltooien. Alle onderdelen zijn gemakkelijk te vinden bij Amazon en uw plaatselijke ijzerhandel
Geleidende stof: maak flexibele circuits met een inkjetprinter: 4 stappen (met afbeeldingen)
Geleidende stof: maak flexibele circuits met behulp van een inkjetprinter.: Extreem flexibele en bijna transparante circuits kunnen worden gemaakt met behulp van geleidende stoffen. Hier zijn enkele van de experimenten die ik heb gedaan met geleidende stoffen. Ze kunnen worden geverfd of getekend met resist en vervolgens worden geëtst als een standaard printplaat. C