Spisu treści:
- Krok 1: ZESTAWIENIE MATERIAŁÓW
- Krok 2: OBWÓD
- Krok 3: PODSTAWA MAGNETYCZNA - ELASTYCZNE RAMIĘ
- Krok 4: SOLAR – ŁADOWARKA AKUMULATORA
- Krok 5: POŁĄCZ WSZYSTKO RAZEM
- Krok 6: INTERAKTYWNY PROGRAM STEROWANIA
- Krok 7: BEZPRZEWODOWY PROGRAM STEROWANIA I APLIKACJA NA ANDROID
- Krok 8: NIEKTÓRE ZDJĘCIA
Wideo: BEZPRZEWODOWA LAMPA SOLARNA Z MAGNETYCZNYM ELASTYCZNYM RAMIĘ: 8 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Ten projekt został wykonany z rozbitej lampy i nodeMCU. Tę dekoracyjną lampę można regulować w dowolnym kierunku i przymocować na materiałach magnetycznych lub postawić na stole. Można nim sterować w dwóch następujących trybach:
- Tryb sterowania bezprzewodowego, jak link do YouTube poniżej:
- Interaktywny tryb sterowania, jak link YouTube poniżej:
Krok 1: ZESTAWIENIE MATERIAŁÓW
Lista BOM:
W trybie interaktywnym używam MPU6050, aby uzyskać dane żyroskopowe z NodeMCU w celu kontrolowania koloru lampy.
Zdjęcie materiałów do tego projektu:
Krok 2: OBWÓD
Jest to bardzo prosty układ, jak na schemacie Fritzinga powyżej, ze wspólną anodą 1 RGB Led, trzema rezystorami ograniczającymi prąd R100 i MPU6050.
Odbłyśnik jest używany z wszelkich zepsutych lamp i podłączony do bazy nodeMCU za pomocą 2 śrub lub przyklej je mocnym klejem.
Roboty instalacyjne:
Schemat poniżej:
Krok 3: PODSTAWA MAGNETYCZNA - ELASTYCZNE RAMIĘ
Elastyczne ramię można ponownie wykorzystać z uszkodzonych elastycznych kranów. Coś w tym stylu:
Z kilkoma wskazówkami próbujemy połączyć je z podstawą magnesu trwałego na dole elastycznego ramienia. Na górze wykonaliśmy otwór do podłączenia do naszej płytki drukowanej i ładowarki słonecznej/akumulatorowej. Dzięki tej podstawie możemy umieścić lampę na powierzchni, takiej jak stół, podłoga….; lub może być przymocowany do materiałów magnetycznych, takich jak stalowy słupek, stalowa konstrukcja.
Krok 4: SOLAR – ŁADOWARKA AKUMULATORA
Pochodził z uszkodzonej lampy ładującej. Dodałem włącznik/wyłącznik i zasilanie przewodów zasilających do nodeMCU. Posiada również jedno gniazdo portu USB i jedną wtyczkę do ładowarki baterii.
Krok 5: POŁĄCZ WSZYSTKO RAZEM
Łączenie wszystkich części: NodeMCU i reflektor, ogniwa słoneczne i akumulatorowe, elastyczne ramię razem.
KONIEC
TRYB ŁADOWANIA
Krok 6: INTERAKTYWNY PROGRAM STEROWANIA
Kolor zmieni się, gdy dopasujemy elastyczne ramię lub obrócimy lampę.
INTERAKTYWNA LAMPA
#włączać |
// Adres urządzenia podrzędnego MPU6050 |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Wybierz piny SDA i SCL do komunikacji I2C - Domyślny pin w WIRE LIBRARY: SCL - D1 & SDA - D2 na NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 kilka adresów rejestru konfiguracji |
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; |
pusta konfiguracja () { |
pinMode(R, WYJŚCIE); |
pinMode(G, WYJŚCIE); |
pinMode(B, WYJŚCIE); |
//Serial.begin(9600); |
Wire.początek(SDA, SCL); |
MPU6050_Init(); |
} |
pusta pętla () { |
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
uint16_t Czerwony, Zielony, Niebieski; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Weź wartość bezwzględną |
Topór = mój Abs(AccelX); |
Ay = mój Abs(Przyspieszenie); |
Az = mój Abs(PrzyspieszenieZ); |
// Skaluj w zakresie |
Czerwony = mapa(Ax, 0, 16384, 0, 1023); |
Zielony = mapa(Ay, 0, 16384, 0, 1023); |
Niebieski = mapa(Az, 0, 16384, 0, 1023); |
// Wydruk seryjny do sprawdzenia |
//Serial.print("Czerwony:"); Serial.print(czerwony); |
//Serial.print("Zielony: "); Serial.print (zielony); |
//Serial.print("Niebieski: "); Serial.print (niebieski); |
// Napisz analog do LED |
analogZapis(R, czerwony); // R |
analogZapis(G, zielony); // G |
analogowyZapis(B, Niebieski); // B |
opóźnienie(200); |
} |
void I2C_Write(uint8_t deviceAddress, uint8_t regAddress, uint8_t data){ |
Wire.beginTransmission(adres urządzenia); |
Wire.write(regAddress); |
Drut.zapis(dane); |
Wire.endTransmission(); |
} |
// Odczytaj wszystkie 14 rejestrów |
void Read_RawValue(uint8_t deviceAddress, uint8_t regAddress){ |
Wire.beginTransmission(adres urządzenia); |
Wire.write(regAddress); |
Wire.endTransmission(); |
Wire.requestFrom(adres urządzenia, (uint8_t)14); |
AccelX = (((int16_t)Przewód.odczyt()<<8) | Przew.odczyt()); |
AccelY = (((int16_t)Przewód.odczyt()<<8) | Przew.odczyt()); |
AccelZ = (((int16_t)Przewód.odczyt()<<8) | Przew.odczyt()); |
Temperatura = (((int16_t)Przewód.odczyt()<<8) | Przew.odczyt()); |
GyroX = (((int16_t)Przewód.odczyt()<<8) | Przew..odczyt()); |
Żyroskop = (((int16_t)Przewód.odczyt()<<8) | Przew..odczyt()); |
Żyroskop = (((int16_t)Przewód.odczyt()<<8) | Przew..odczyt()); |
} |
// Konfiguracja MPU6050 |
nieważne MPU6050_Init(){ |
opóźnienie(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);//ustaw +/-250 stopni/sekundę pełnej skali |
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00);// ustaw +/- 2g pełna skala |
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); |
} |
// Całkowita wartość |
float myAbs(float in){ |
zwróć (w)>0?(w):-(w); |
} |
zobacz rawPROGRAM LAMP INTERAKTYWNYCH hostowany przez ❤ by GitHub
Krok 7: BEZPRZEWODOWY PROGRAM STEROWANIA I APLIKACJA NA ANDROID
Innym sposobem możemy wykorzystać aplikację na Androida do sterowania LED RGB za pomocą Androida w sieci WiFi. Połącz aplikację na Androida: sterowanie NODEMCU aplikacja LED RGB
W przypadku programu Arduino możesz odwołać się do:
microcontrollerkits.blogspot.com/2016/05/es…
Po wgraniu programu do NodeMCU, pierwsze uruchomienie da nam adres IP NodeMCU na wydruku szeregowym. W moim przypadku jest to: 192.164.1.39 na porcie 80.
Teraz możemy sterować lampą bezprzewodową za pomocą laptopa/tabletu/telefonu komórkowego wpisując powyższy adres do przeglądarki internetowej.
Lub za pomocą aplikacji na Androida:
Krok 8: NIEKTÓRE ZDJĘCIA
Zalecana:
Łatwa bezprzewodowa lampa z kostką Rubika zmieniająca kolor w oparciu o pochylenie: 10 kroków (ze zdjęciami)
Bezprzewodowa lampa kostka Rubika z łatwą zmianą kolorów w oparciu o pochylenie: Dzisiaj zbudujemy tę niesamowitą lampę w kształcie kostki Rubika, która zmienia kolor w zależności od tego, która strona jest uniesiona. Kostka działa na małej baterii LiPo, ładowanej standardowym kablem micro-usb, a w moich testach ma żywotność baterii kilka dni. Ten
RAMIĘ ROBOTYCZNE Xbox 360 [ARDUINO]: RAMIĘ AXIOM: 4 kroki
RAMIĘ ROBOTYCZNE Xbox 360 [ARDUINO]: RAMIĘ AXIOM:
JAK ZŁOŻYĆ IMPONUJĄCE DREWNIANE RAMIĘ ROBOTA (CZĘŚĆ 3: RAMIĘ ROBOTA) -- W OPARCIU O MIKRO: WĘDZIK: 8 kroków
JAK ZŁOŻYĆ IMPONUJĄCE DREWNIANE RAMIĘ ROBOTA (CZĘŚĆ 3: RAMIĘ ROBOTA) -- W OPARCIU O MIKRO: BITN: Kolejny proces instalacji opiera się na zakończeniu trybu omijania przeszkód. Proces instalacji w poprzedniej sekcji jest taki sam, jak proces instalacji w trybie śledzenia linii. Następnie spójrzmy na ostateczną formę A
Bezprzewodowa ładowarka solarna: 5 kroków (ze zdjęciami)
Bezprzewodowa ładowarka słoneczna: Każdy uczeń zna trudności związane ze znalezieniem gniazdka do ładowania telefonu. Ta codzienna walka zmotywowała nas do znalezienia kreatywnego rozwiązania. Chcieliśmy stworzyć urządzenie ładujące, które w żadnych okolicznościach nie wymagało gniazdka, a także miało
Gra w Ponga na elastycznym ekranie na koszuli: 8 kroków (ze zdjęciami)
Pong Playing Flexible Screen on a Shirt: To jest mój kostium na Halloween na rok 2013. Prace nad nim trwały około roku, a jego stworzenie zajęło sporo godzin. Ekran ma 14 na 15 pikseli, więc dość niska rozdzielczość, ale wciąż może robić fajne rzeczy. To fizycznie ucieka