Съдържание:

СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА: 8 стъпки (със снимки)
СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА: 8 стъпки (със снимки)

Видео: СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА: 8 стъпки (със снимки)

Видео: СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА: 8 стъпки (със снимки)
Видео: НАПИТКИТЕ МИ HACK vs PRIME! #kriskata #challenge #hackdrinks 2024, Юли
Anonim
СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА
СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА
СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА
СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА

Този проект е направен от счупена лампа и nodeMCU. Тази декоративна лампа може да се регулира във всяка посока и да се прикрепи към магнитни материали или да се постави на масата. Може да се управлява в два режима, както следва:

- Режим на безжично управление, като връзката YouTube по -долу:

- Интерактивен режим на управление, като връзката YouTube по -долу:

Стъпка 1: СТРАНИЦА НА МАТЕРИАЛИТЕ

Списък на B. O. M:

Образ
Образ

За интерактивен режим използвам MPU6050, за да получавам жироскопични данни от NodeMCU, за да контролирам цвета на лампата.

Снимка на материалите за този проект:

Образ
Образ

Стъпка 2: КРЪГ

ВРЪЖКА
ВРЪЖКА

Това е много проста схема, както е описана по -горе на схемата на Fritzing, с 1 общ аноден тип RGB Led, три резистора за граничен ток R100 и MPU6050.

Отражателят се използва от всякакви счупени лампи и е свързан към основата на nodeMCU с 2 болта или ги залепва със силно лепило.

Монтажни работи:

Образ
Образ
Образ
Образ

Схемата по -долу:

Образ
Образ

Стъпка 3: МАГНИТНА БАЗА - ГЪВКАВА РЪКА

МАГНИТНА БАЗА - ГЪВКАВА РЪКА
МАГНИТНА БАЗА - ГЪВКАВА РЪКА

Гъвкавото рамо може да се използва повторно от счупени гъвкави кранове за вода. Нещо такова:

Образ
Образ

С някои съвети се опитваме да ги свържем към основата с постоянен магнит в долната част на гъвкавото рамо. Отгоре направихме пробивна дупка за свързване към нашата платка и слънчево/зарядно устройство за батерии. С тази основа можем да поставим лампа върху повърхност като маса, подове …; или може да бъде прикрепен към магнитни материали като стоманен стълб, стоманена конструкция.

Стъпка 4: СЛЪНЧЕВА - ЗАРЯДНА АКУМУЛАТОРА

СЛЪНЧЕВО - ЗАРЯДНО АКУМУЛАТОР
СЛЪНЧЕВО - ЗАРЯДНО АКУМУЛАТОР

Идва от повредена лампа за зареждане. Добавих превключвател за включване/изключване и захранване на проводници към nodeMCU. Той също така има един USB порт и един щепсел за зарядно устройство за батерии.

Стъпка 5: СВЪРЗВАЙТЕ ВСИЧКО ЗАЕДНО

СВЪРЗВАЙТЕ ВСИЧКО ЗАЕДНО
СВЪРЗВАЙТЕ ВСИЧКО ЗАЕДНО

Свързване на всички части: NodeMCU и рефлектор, слънчеви и акумулаторни клетки, гъвкаво рамо заедно.

ЗАВЪРШЕК

Образ
Образ

РЕЖИМ НА ЗАРЯВАНЕ

Образ
Образ

Стъпка 6: ПРОГРАМА ЗА ИНТЕРАКТИВНО УПРАВЛЕНИЕ

Цветът ще се промени, когато регулираме гъвкавото рамо или завъртим лампата.

ИНТЕРАКТИВНА ЛАМПА

#включва
// MPU6050 Адрес на подчинено устройство
const uint8_t MPU6050SlaveAddress = 0x68;
// Изберете SDA и SCL щифтове за I2C комуникация - Пин по подразбиране в WIRE LIBRARY: SCL - D1 & SDA - D2 на NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 няколко адреса на регистъра за конфигуриране
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, Температура, GyroX, GyroY, GyroZ;
void setup () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
void loop () {
uint16_t Axe, Ay, Az, T, Gx, Gy, Gz;
uint16_t Червено, Зелено, Синьо;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Вземете абсолютна стойност
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Мащаб в обхват
Червено = карта (Axe, 0, 16384, 0, 1023);
Зелено = карта (Ay, 0, 16384, 0, 1023);
Синьо = карта (Az, 0, 16384, 0, 1023);
// Сериен печат за проверка
//Serial.print(" Червено: "); Serial.print (червен);
//Serial.print(" Зелено: "); Serial.print (зелен);
//Serial.print(" Blue: "); Serial.print (Синьо);
// Запис на аналог към LED
analogWrite (R, червено); // R
analogWrite (G, Зелено); // G
analogWrite (B, синьо); // B
забавяне (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t данни) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (данни);
Wire.endTransmission ();
}
// Прочетете всички 14 регистри
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 ());
Температура = ((((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 ());
}
// Конфигуриране на MPU6050
void MPU6050_Init () {
забавяне (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); // задайте +/- 250 градуса/секунда пълна скала
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // задайте +/- 2g пълна скала
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);
}
// Абсолютна стойност
float myAbs (float in) {
return (in)> 0? (in):-(in);
}

вижте rawINTERACTIVE LAMP PROGRAM, хоствана с ❤ от GitHub

Стъпка 7: ПРОГРАМА ЗА БЕЗЖИЧНО КОНТРОЛ И АНДРОИДНО ПРИЛОЖЕНИЕ

ПРОГРАМА ЗА БЕЗЖИЧНО КОНТРОЛ И АНДРОИДНО ПРИЛОЖЕНИЕ
ПРОГРАМА ЗА БЕЗЖИЧНО КОНТРОЛ И АНДРОИДНО ПРИЛОЖЕНИЕ

Друг начин е да използваме приложението за Android за управление на RGB LED с Android в WiFi мрежа. Свържете приложение за Android: NODEMCU управление RGB LED APP

За програмата Arduino можете да се обърнете към:

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

След качване на програма в NodeMCU, първото стартиране ще ни даде IP адреса на NodeMCU при сериен печат. В моя случай това е: 192.164.1.39 на порт 80.

Образ
Образ

Сега можем да контролираме безжичната лампа с лаптоп/ таблет/ мобилен телефон, като въведем адреса по -горе в Internet Explorer.

Образ
Образ

Или чрез приложение за Android:

Образ
Образ

Стъпка 8: НЯКОИ СНИМКИ

Препоръчано: