Turinys:
- 1 žingsnis: Surinkite medžiagas
- 2 žingsnis: Sukurkite lempos struktūrą
- 3 žingsnis: 3D formos
- 4 žingsnis: komponentų schema
- 5 žingsnis: Kodas
- 6 žingsnis: lempos valdymas
- 7 žingsnis: mėgaukitės nuotaikos lempa
Video: „Bluetooth“išmaniuoju telefonu valdoma išmanioji LED lempa: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Visada svajoju valdyti savo apšvietimo prietaisus. Tada kažkas padarė neįtikėtinai spalvingą LED lempą. Neseniai „Youtube“aptikau Joseph Casha LED lempą. Įkvėptas jo, nusprendžiau pridėti keletą funkcijų, išlaikydamas šiuolaikinį dizainą.
Planuojama padaryti lempą patogesnę, pridedant „Bluetooth“modulį ir adresuojamą WS2812B RGB LED juostą. Tai leido valdyti apšvietimo spalvą tiesiog naudojant išmaniojo telefono programą.
1 žingsnis: Surinkite medžiagas
Įrankiai:
• Litavimo stotis
• Šildytuvo pūstuvas
• Gręžimo mašina
• Diskinis pjūklas
• Dėlionės
• Vielos pjovimo replės
• Siauros nosies replės
Medžiagos:
• Permatoma akrilo plokštė
• Japoniška kipariso mediena (arba galite naudoti bet kokią medieną, jei ji yra stabili ir pakankamai tvirta)
• Varžtai
• Nerūdijančio plieno stulpas arba lazda
• Laidai (aš naudoju raudoną ir juodą laidą)
• Alavo litavimas
Elektronikos komponentai:
• „Arduino Nano“
• „Bluetooth“modulis HC-05 (nusprendžiau jį naudoti, nes jį lengviau koduoti nei „Wifi“modulį ESP8266)
• WS2812B Adresuojama RGB LED juostelė
• LM2596 sumažinimo modulis
• DC statinės maitinimo lizdas
2 žingsnis: Sukurkite lempos struktūrą
Šiame etape turiu du būdus, kaip sukurti lempos struktūrą- medžio apdirbimo metodą ir 3D spausdinimo metodą. Aš naudoju pirmąjį metodą. Jei norite tai padaryti naudodami 3D spausdintuvą, nedvejodami pereikite prie mano sukurto modelio 2 veiksmo.
Viršutinėje lempos dalyje aš šildau ir sulenkiu akrilo plokštę 90 ° kampu, kaip parodyta aukščiau. Man gana ilgai reikia jį sulenkti tokiu tobulu kampu ir kryptimi.
Toliau, apatinei lempos daliai. Deja … tą dieną, kai dirbu prie apatinės lempos dalies, visiškai pamiršau nufotografuoti konstrukciją! Tai supratau, kai baigiau šį projektą. Bet aš iš visų jėgų stengiuosi jums parodyti apatinę lempos dalį.
Iš esmės jums tereikia nupjauti keturis medienos blokus, kurių matmenys yra 13x6x2cm (LxHxW). Kitas, jums reikia iškirpti į laiptus panašų pjūvį medžio krašte. Nuotrauka bus parodyta aukščiau.
3 žingsnis: 3D formos
Kiekvienas, kuris turi savo 3D spausdintuvą, yra teisingas žingsnis. Tai padarė šią lempą patogią vartotojui.
Tiesą pasakius, tai buvo sunkiausias žingsnis, kurį padariau. Tai pirmas dalykas, kurį padariau iškart įdiegus programinę įrangą!
Aš naudoju „Sketchup Pro“kurdamas lempos struktūrą. Deja, nesu pakankamai sumanus suprojektuoti jo interjero komponentą. Nuoroda į mano 3D modelį yra žemiau esančiame faile.
4 žingsnis: komponentų schema
Aš naudoju „Fritzing“kurdamas komponentų schemas. Schema iš tikrųjų yra gana paprasta.
5 žingsnis: Kodas
Šios nuotaikos lempos kodavimui naudoju kai kurias „Arduino IDE“bibliotekas. Bibliotekos bus išvardytos 7 veiksme.
Norėdami gauti kodą, turite turėti pačią „Arduino“programinę įrangą. Pateiksiu nuorodą atsisiųsti čia.
Be to, eskizas ar kodas bus rodomi žemiau?
Aš taip pat pateikiau kodo failą „Github.com“, jei toliau pateiktas kodas yra per ilgas, kad jį būtų galima čia nukopijuoti;)
#įtraukti #įtraukti #įtraukti #ifdef _AVR_ #įtraukti #endif
„SoftwareSerial BT“(10, 11);
#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #defineE IMEI 0 0define RAINBOW_SPEED 50 CRGB šviesos diodų [NUM_LEDS];
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
bool offOld = LOW;
bool WhiteOld = LOW; bool RedOld = LOW; bool GreenOld = LOW; bool BlueOld = LOW; bool TopazOld = LOW; bool LilacOld = LOW; bool RainbowOld = LOW; bool rgbOld = LOW; int showType = 0;
void setup () {
FastLED.addLeds (šviesos diodai, NUM_LEDS); //////////
BT. Pradžia (9600);
BT.println („Prisijungta prie„ Arduino “);
strip.setBrightness (BRIGHTNESS);
strip.begin ();
strip.show ();
}
char a;
void loop () {
už (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool Balta = LOW; bool Blue = LOW; bool Red = LOW; bool Green = LOW; bool Topaz = LOW; bool Alyva = LOW; bool Vaivorykštė = LOW; bool rgb = LOW; bool ende; jei (BT.prieinama ()) {a = (char) BT.read ();
jei (a == 'o')
{išjungtas = AUKŠTAS; BT.println ("Šviesos diodų išjungimas..");
}Kitas{
išjungta = LOW; } // ================================================ ============================================
jei (a == 'w')
{Balta = HIGH; BT.
}Kitas{
Balta = LOW; } // ================================================ ============================================
jei (a == 'b')
{Mėlyna = HIGH; BT.println ("PAKEISMAS Į MĖLYNĄ"); } else {Mėlyna = LOW; }
// ===========================================================================================
jei (a == 'r')
{Raudona = HIGH; BT.println („KEITIMAS Į RAUDONĄ“); } else {Raudona = LOW; }
// ===========================================================================================
jei (a == 'g')
{Žalia = HIGH; BT.println („PAKEISIMAS Į ŽALIĄ“); } else {Žalia = LOW; }
// ===========================================================================================
jei (a == 't')
{Topazas = AUKŠTAS; BT.println („KEITIMAS Į TOPAZĄ“); } else {Topaz = LOW; }
// ===========================================================================================
jei (a == 'l')
{Alyvinė = AUKŠTA; BT.println („KEITIMASIS LILACAI“); } else {Lilac = LOW; }
// ===========================================================================================
jei (a == 'a')
{Vaivorykštė = AUKŠTAS; BT.println („RAINBOW ANIMATION“); } else {Vaivorykštė = LOW; } // ================================================ ============================================
jei (a == 'm')
{rgb = AUKŠTAS; BT.println („MIŠINĖS SPALVOS“); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {delay (20); if (išjungta == LOW) {showType = 0; // Išjungta animacija Tipas 0 startShow (showType); }}
// ===========================================================================================
jei (balta == ŽEMA &&BaltaOld == AUKŠTA) {
vėlavimas (20); if (balta == LOW) {showType = 1; // Baltoji animacija Type 1 startShow (showType); }}
// ================================================ =========================================== jei (raudona == LOW && RedOld == HIGH) {delay (20); if (raudona == LOW) {showType = 2; // Raudona animacija 2 tipas startShow (showType); }}
// ===========================================================================================
jei (žalia == LOW && GreenOld == HIGH) {
vėlavimas (20); if (žalia == LOW) {showType = 3; // Žalia animacija Tipas 3 startShow (showType); }} // ============================================== ==============================================
jei (mėlyna == LOW && BlueOld == HIGH) {
vėlavimas (20); if (mėlyna == LOW) {showType = 4; // Mėlyna animacija 4 tipas startShow (showType); }}
// ===========================================================================================
jei (Topaz == LOW && TopazOld == HIGH) {
vėlavimas (20); if (Topaz == LOW) {showType = 5; // Topazo animacija 5 tipas startShow (showType); }}
// ===========================================================================================
jei (alyvinė == LOW && LilacOld == HIGH) {
vėlavimas (20); jei (alyvinė == LOW) {showType = 6; // Topazo animacija 6 tipas startShow (showType); }} // ============================================== ==============================================
jei (vaivorykštė == LOW && RainbowOld == HIGH) {
vėlavimas (20);
jei (vaivorykštė == LOW) {
showType = 8; // Vaivorykštės animacija 8 tipas startShow (showType); }}
// ===========================================================================================
jei (rgb == LOW && rgbOld == HIGH) {
vėlavimas (20);
jei (rgb == LOW) {
showType = 7; // Maišymo animacija Tipas 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = balta;
RedOld = raudona; BlueOld = mėlyna; GreenOld = žalia; TopazOld = Topazas; LilacOld = alyvinė; offOld = išjungta; RainbowOld = Vaivorykštė; rgbOld = rgb;
}
void startShow (int i) {
jungiklis (i) {
atvejis 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Juoda/išjungta
pertrauka;
1 atvejis: strip.setBrightness (255); // Pakeičia ryškumą į MAX
colorWipe (juostelė. Spalva (255, 255, 255), IŠ karto); // Balta juostelė.setBrightness (BRIGHTNESS); // Iš naujo nustatyti ryškumą į numatytąją reikšmių pertrauką;
2 atvejis: colorWipe (juostelė. Spalva (255, 0, 0), SPEED); // Raudona
pertrauka;
3 atvejis: colorWipe (juostelė. Spalva (0, 255, 0), SPEED); // Žalias
pertrauka;
4 atvejis: colorWipe (juostelė. Spalva (0, 0, 255), SPEED); // Mėlyna
pertrauka;
5 atvejis: colorWipe (juostelė. Spalva (0, 250, 255), SPEED); // Topazas
pertrauka;
6 atvejis: colorWipe (juostelė. Spalva (221, 130, 255), SPEED); // Alyvinė
pertrauka; 7 atvejis: colorWipe (juostelė. Spalva (255, 0, 0), SPEED); // Raudona spalvaWipe (strip. Color (0, 255, 0), SPEED); // Žalia spalvaWipe (strip. Color (0, 0, 255), SPEED); // Mėlynasis teatrasChase (strip. Color (0, 0, 127), SPEED); // Mėlynasis teatrasChase (strip. Color (127, 0, 0), SPEED); // Raudonasis teatrasChase (strip. Color (0, 127, 0), SPEED); // Žalioji pertrauka;
8 atvejis: vaivorykštinis ciklas (25);
pertrauka; }} void colorWipe (uint32_t c, uint8_t laukti) {for (uint16_t i = 0; i
void rainbowCycle (uint8_t palaukti) {
uint16_t i, j;
(j = 0; j <256*10; j ++) {// 5 visų rato spalvų ciklai (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Ratas (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); atidėti (laukti); }}
void theatreChase (uint32_t c, uint8_t palaukti) {
(int j = 0; j <10; j ++) {// atlikite 10 persekiojimo ciklų (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // įjungti kas trečią pikselį} strip.show ();
atidėti (laukti);
for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // išjunkite kas trečią tašką}}}}
uint32_t ratas (baitas „WheelPos“) {
WheelPos = 255 - WheelPos; if (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos -= 85; grąžinimo juostelė. Spalva (0, WheelPos * 3, 255 - WheelPos * 3); } „WheelPos“-= 170; grąžinimo juostelė. Spalva („WheelPos“* 3, 255 - „WheelPos“* 3, 0); }
6 žingsnis: lempos valdymas
Lempos spalvą galima valdyti naudojant išmanųjį telefoną.
Pirmiausia turite įdiegti programą „Bluetooth Terminal HC-05“iš „Google Play“parduotuvės arba „Apple App Store“.
Štai žingsniai, kaip valdyti lempą per savo išmanųjį telefoną:
1. Įjunkite „Bluetooth“išmaniajame telefone.
2. Atidarykite programą „Bluetooth Terminal HC-05“.
3. Dabar ekrane turėtumėte matyti suporuotus įrenginius. Pasirinkite „HC-05“.
4. Dabar galite pamatyti, kad jūsų išmaniajame telefone pasirodo juodas ekranas, rodantis „prijungtas prie„ Arduino ““.
5. Čia yra linksmoji dalis: jei teksto laukelyje įvesite „b“, lemputė taps mėlynos spalvos. Čia yra komandos, kurią galite įvesti lempai, sąrašas:
- w už baltą
- b - mėlyna
- g už žalią
- r už raudoną
- t topazui
- l už alyvinę
- vaivorykštės animacijai
- o išjungti
Smagu tiesa?
6. Paskutinis, bet ne mažiau svarbus dalykas - taip pat galite pritaikyti mygtuką po ekranu pagal norimą tekstą, kaip parodyta aukščiau esančiame paveikslėlyje.
7 žingsnis: mėgaukitės nuotaikos lempa
Tikiuosi, kad jums patinka šios instrukcijos. Man tai buvo labai sudėtingas projektas, bet man pavyko jį užbaigti kaip 14 metų berniukui. Pateikite man atsiliepimų apie būsimus patobulinimus.
Ačiū, kad skaitote ir linksmų Kalėdų!
Rekomenduojamas:
Kaip sukurti išmaniuoju telefonu valdomą automobilį: 5 žingsniai
Kaip sukurti išmaniuoju telefonu valdomą automobilį: Visi mėgsta žaisti su išmaniuoju telefonu valdomu nuotoliniu automobiliu. Šis vaizdo įrašas yra apie tai, kaip tai padaryti
Saulės energija valdoma „išmanioji“„WiFi“valdoma drėkinimo sistema: 6 žingsniai (su nuotraukomis)
Saulės energija valdoma „išmanioji“„WiFi“valdoma drėkinimo sistema: šiame projekte naudojamos standartinės „pasidaryk pats“saulės ir 12 voltų dalys iš „ebay“, kartu su „Shelly IoT“įrenginiais ir keletas pagrindinių „openHAB“programavimo būdų, kad būtų sukurtas naminis, visiškai saulės energija varomas, išmanusis sodo elektros tinklas ir drėkinimas sąranka. Sistemos akcentai: Fu
Kaip naudotis išmaniuoju telefonu be akumuliatoriaus: 5 žingsniai
Kaip naudotis išmaniuoju telefonu be akumuliatoriaus: Pirmiausia turite nustatyti ląstelės įvesties kaiščius; kuris yra teigiamas ir neigiamas, kiti du kaiščiai kol kas nesvarbūs. Įdėkite bateriją į mobilųjį telefoną ir nustatykite, kur eina kiekvienas polius (teigiamas ir neigiamas), kaip parodyta paveikslėlyje
Mumijos lempa - „WiFi“valdoma išmanioji lempa: 5 žingsniai (su nuotraukomis)
Mumijos lempa - „WiFi“valdoma išmanioji lempa: Maždaug prieš 230 tūkst. Galime pasakyti, kad tai yra patalpų apšvietimo pradžia. Dabar aš
Kaip sukurti išmaniuoju telefonu valdomą robotą: 3 žingsniai (su nuotraukomis)
Kaip sukurti išmanųjį telefoną valdomą robotą: ar kada nors manote, kad galite valdyti savo robotą belaidžiu būdu arba per išmanųjį telefoną? Jei taip, tada skaitykite tinkamą pranešimą. Šiame įraše aš jums duosiu žingsnis po žingsnio procedūrą. Aš sukūriau paprastą robotą, kurį galima valdyti naudojant išmanųjį telefoną, tačiau galite įdėti keletą