Оглавление:

СОЛНЕЧНАЯ БЕСПРОВОДНАЯ ЛАМПА С МАГНИТНОЙ ГИБКОЙ РУКОЯТКОЙ: 8 ступеней (с изображениями)
СОЛНЕЧНАЯ БЕСПРОВОДНАЯ ЛАМПА С МАГНИТНОЙ ГИБКОЙ РУКОЯТКОЙ: 8 ступеней (с изображениями)

Видео: СОЛНЕЧНАЯ БЕСПРОВОДНАЯ ЛАМПА С МАГНИТНОЙ ГИБКОЙ РУКОЯТКОЙ: 8 ступеней (с изображениями)

Видео: СОЛНЕЧНАЯ БЕСПРОВОДНАЯ ЛАМПА С МАГНИТНОЙ ГИБКОЙ РУКОЯТКОЙ: 8 ступеней (с изображениями)
Видео: Студенты российского вуза разработали вечный двигатель #вечныйдвигатель #изобретения 2024, Ноябрь
Anonim
БЕСПРОВОДНАЯ СОЛНЕЧНАЯ ЛАМПА С ГИБКОЙ МАГНИТНОЙ РУКОЯТКОЙ
БЕСПРОВОДНАЯ СОЛНЕЧНАЯ ЛАМПА С ГИБКОЙ МАГНИТНОЙ РУКОЯТКОЙ
СОЛНЕЧНАЯ БЕСПРОВОДНАЯ ЛАМПА С ГИБКОЙ МАГНИТНОЙ РУКОЯТКОЙ
СОЛНЕЧНАЯ БЕСПРОВОДНАЯ ЛАМПА С ГИБКОЙ МАГНИТНОЙ РУКОЯТКОЙ

Этот проект был сделан из разбитой лампы и nodeMCU. Этот декоративный светильник можно регулировать в любом направлении, прикрепить к магнитным материалам или поставить на стол. Им можно управлять в двух следующих режимах:

- Режим беспроводного управления, см. Ссылку на YouTube ниже:

- Интерактивный режим управления, как на YouTube по ссылке ниже:

Шаг 1: СЧЕТ МАТЕРИАЛОВ

Список B. O. M:

Изображение
Изображение

В интерактивном режиме я использую MPU6050 для получения данных гироскопа от NodeMCU для управления цветом лампы.

Изображение материалов для этого проекта:

Изображение
Изображение

Шаг 2: ЦЕПЬ

СХЕМА
СХЕМА

Это очень простая схема, как показано на схеме Фритцинга выше, с 1 общим анодом RGB Led и тремя резисторами ограничения тока R100 и MPU6050.

Отражатель используется от любых разбитых ламп и соединяется с основанием nodeMCU двумя болтами или приклеивается прочным клеем.

Монтажные работы:

Изображение
Изображение
Изображение
Изображение

Схема ниже:

Изображение
Изображение

Шаг 3: МАГНИТНАЯ БАЗА - ГИБКАЯ РЫЧАГ

МАГНИТНОЕ ОСНОВАНИЕ - ГИБКАЯ РЫЧАГ
МАГНИТНОЕ ОСНОВАНИЕ - ГИБКАЯ РЫЧАГ

Гибкий рычаг можно использовать повторно из сломанных гибких водопроводных кранов. Что-то подобное:

Изображение
Изображение

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

Шаг 4: СОЛНЕЧНОЕ УСТРОЙСТВО - ЗАРЯДНОЕ УСТРОЙСТВО

СОЛНЕЧНОЕ ЗАРЯДНОЕ УСТРОЙСТВО
СОЛНЕЧНОЕ ЗАРЯДНОЕ УСТРОЙСТВО

Дело в поврежденной зарядной лампе. Я добавил к nodeMCU переключатель включения / выключения и подачу проводов питания. Он также имеет одну розетку для порта USB и одну вилку для зарядного устройства.

Шаг 5: СОЕДИНИТЕ ВСЕХ ВМЕСТЕ

СВЯЗАТЬ ВСЕ ВМЕСТЕ
СВЯЗАТЬ ВСЕ ВМЕСТЕ

Соединение всех частей: NodeMCU и отражателя, солнечных батарей и батарей, гибкого кронштейна вместе.

КОНЕЦ

Изображение
Изображение

РЕЖИМ ЗАРЯДКИ

Изображение
Изображение

Шаг 6: ПРОГРАММА ИНТЕРАКТИВНОГО УПРАВЛЕНИЯ

Цвет изменится, когда мы отрегулируем гибкий рычаг или повернем лампу.

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

#включают
// Адрес ведомого устройства MPU6050
const uint8_t MPU6050SlaveAddress = 0x68;
// Выберите выводы SDA и SCL для связи I2C - Вывод по умолчанию в БИБЛИОТЕКЕ ПРОВОДОВ: 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 несколько адресов регистров конфигурации
константа 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;
константа 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, ВЫХОД);
pinMode (G, ВЫХОД);
pinMode (B, ВЫХОД);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
void loop () {
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz;
uint16_t Красный, Зеленый, Синий;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Принимаем абсолютное значение
Ax = myAbs (AccelX);
Ay = myAbs (Ускорение);
Az = myAbs (AccelZ);
// Масштабировать в диапазоне
Красный = карта (Ax, 0, 16384, 0, 1023);
Зеленый = карта (Ay, 0, 16384, 0, 1023);
Синий = карта (Az, 0, 16384, 0, 1023);
// Последовательная печать для проверки
//Serial.print("Red: "); Serial.print (красный);
//Serial.print("Green: "); Serial.print (зеленый);
//Serial.print("Blue: "); Serial.print (синий);
// Записываем аналог на светодиод
analogWrite (R, красный); // Р
analogWrite (G, зеленый); // ГРАММ
analogWrite (B, синий); // B
задержка (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (адрес устройства);
Wire.write (regAddress);
Wire.write (данные);
Wire.endTransmission ();
}
// Читаем все 14 регистров
void Read_RawValue (uint8_t deviceAddress, uint8_t regAddress) {
Wire.beginTransmission (адрес устройства);
Wire.write (regAddress);
Wire.endTransmission ();
Wire.requestFrom (адрес устройства, (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 (вход)> 0? (вход):-(вход);
}

просмотреть rawINTERACTIVE LAMP PROGRAM, размещенную на ❤ на GitHub

Шаг 7: ПРОГРАММА БЕСПРОВОДНОГО УПРАВЛЕНИЯ И ПРИЛОЖЕНИЕ ДЛЯ ANDROID

ПРОГРАММА БЕСПРОВОДНОГО УПРАВЛЕНИЯ И ПРИЛОЖЕНИЕ ДЛЯ ANDROID
ПРОГРАММА БЕСПРОВОДНОГО УПРАВЛЕНИЯ И ПРИЛОЖЕНИЕ ДЛЯ ANDROID

Другой способ, мы можем использовать приложение Android для управления светодиодом RGB с Android в сети Wi-Fi. Ссылка на приложение для Android: приложение NODEMCU control RGB LED

Для программы Arduino вы можете обратиться к:

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

После загрузки программы в NodeMCU при первом запуске мы получим IP-адрес NodeMCU на серийной печати. В моем случае это: 192.164.1.39 на порту 80.

Изображение
Изображение

Теперь мы можем управлять беспроводной лампой с ноутбука / планшета / мобильного телефона, введя адрес выше в Internet Explorer.

Изображение
Изображение

Или с помощью приложения для Android:

Изображение
Изображение

Шаг 8: НЕКОТОРЫЕ ФОТОГРАФИИ

Рекомендуемые: