Sisukord:
- Samm: koguge materjalid kokku
- 2. samm: lambi struktuuri ehitamine
- Samm: 3D -kujundid
- 4. samm: komponentide skeem
- Samm: kood
- 6. samm: lambi juhtimine
- Samm: nautige oma meeleolulampi
Video: Bluetooth nutitelefoniga juhitav nutikas LED-lamp: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Ma unistan alati oma valgustite juhtimisest. Siis tegi keegi uskumatult värvilise LED -lambi. Sattusin hiljuti Youtube'is kokku Joseph Casha LED -lambiga. Sellest inspireerituna otsustasin lisada mitu funktsiooni, säilitades samas kaasaegse disaini.
Plaan on muuta lamp kasutajasõbralikumaks, lisades Bluetooth-mooduli ja adresseeritava WS2812B RGB LED-riba. See võimaldas juhtida valgustuse värvi lihtsalt nutitelefoni rakenduse abil.
Samm: koguge materjalid kokku
Tööriistad:
• jootmisjaam
• Küttepuhur
• Puurmasin
• Ketassaag
• Pusle
• Traadilõikuri tangid
• Kitsa ninaga tangid
Materjalid:
• Läbipaistev akrüülplaat
• Jaapani küpressipuit (või võite kasutada mis tahes puitu, kui see on stabiilne ja piisavalt tugev)
• Kruvid
• Roostevabast terasest kepp
• Juhtmed (ma kasutan punast ja musta traati)
• Tina jootmine
Elektroonika komponendid:
• Arduino Nano
• Bluetooth-moodul HC-05 (otsustasin seda kasutada, kuna seda on lihtsam kodeerida kui Wifi-moodulit ESP8266)
• WS2812B Aadressitav RGB LED -riba
• LM2596 astmemoodul
• Alalisvoolu tünni pistik
2. samm: lambi struktuuri ehitamine
Selles etapis on mul lampide struktuuri ehitamiseks kaks võimalust- puidutöötlusmeetod ja 3D-printimismeetod. Ma kasutan esimest meetodit. Kui eelistate seda teha 3D -printeri abil, jätke minu kavandatud mudeli juurde 2. samm.
Lambi ülemise osa jaoks kuumutan ja painutan akrüülplaati 90 ° nurga all, nagu ülal näidatud. Mul läheb päris kaua aega, et seda nii täiusliku nurga ja suunaga painutada.
Järgmisena lambi alumise osa jaoks. Kahjuks… päeval, mil ma töötan lambi alumise osa kallal, unustasin ma konstruktsioonist pilti teha! Sain sellest aru, kui selle projekti lõpetasin. Aga ma annan endast parima, et pakkuda teile lambi alumise osa mõõtmist.
Põhimõtteliselt peate lihtsalt lõikama neli puitplokki, mille mõõtmed on 13x6x2cm (LxHxW). Järgmisena peate puidu serva lõikama trepitaolise lõike. Pilt kuvatakse ülal.
Samm: 3D -kujundid
Igaüks, kellel on oma 3D -printer, on õige samm. See muutis selle lambi kasutajasõbralikuks.
Ausalt öeldes oli see kõige raskem samm, mida tegin. See on esimene asi, mida ma tegin kohe pärast tarkvara installimist!
Kasutan Sketchup Pro -d lambi struktuuri kujundamiseks. Kahjuks ei ole ma piisavalt osav selle sisekomponendi kujundamiseks. Minu 3D -mudeli link on allolevas failis.
4. samm: komponentide skeem
Komponentide skeemide koostamiseks kasutan Fritzingit. Skeem on tegelikult üsna lihtne.
Samm: kood
Selle meeleolulambi kodeerimiseks kasutasin mõnda Arduino IDE raamatukogu. Raamatukogud loetletakse 7. sammus.
Koodi jaoks peab teil olema Arduino tarkvara ise. Pakun siia allalaadimise lingi.
Samuti kuvatakse allpool visand või kood?
Esitasin koodi jaoks ka faili saidil Github.com juhuks, kui allolev kood on siia kopeerimiseks liiga pikk;)
#kaasama #kaasama #kaasama #ifdef _AVR_ #kaasama #lõpp
SoftwareSerial BT (10, 11);
#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #defineerige KOHE 0 #define RAINBOW_SPEED 50 CRGB LEDi [NUM_LEDS];
Adafruit_NeoPixel riba = 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;
tühine seadistus () {
FastLED.addLeds (ledid, NUM_LEDS); //////////
BT.algus (9600);
BT.println ("Ühendatud Arduinoga");
strip.setBrightness (BRIGHTNESS);
riba.algus ();
strip.show ();
}
char a;
void loop () {
jaoks (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool Valge = LOW; bool Blue = LOW; bool Punane = LOW; bool Green = LOW; bool Topaas = LOW; bool Lilla = LOW; bool Vikerkaar = LOW; bool rgb = LOW; bool ende; kui (BT. saadaval ()) {a = (char) BT.read ();
kui (a == 'o')
{väljas = HIGH; BT.println ("LEDide väljalülitamine..");
} muud {
väljas = LOW; } // ================================================ ============================================
kui (a == 'w')
{Valge = KÕRGE; BT.println ("VALGED TURNING");
} muud {
Valge = LOW; } // ================================================ ============================================
kui (a == 'b')
{Sinine = KÕRGE; BT.println ("MUUTUMINE SINISEKS"); } muu {Sinine = LOW; }
// ===========================================================================================
kui (a == 'r')
{Punane = KÕRGE; BT.println ("PUNANE MUUTUMINE"); } muu {Punane = LOW; }
// ===========================================================================================
kui (a == 'g')
{Roheline = KÕRGE; BT.println ("ROHELISEKS MUUTUMINE"); } else {Roheline = MADAL; }
// ===========================================================================================
kui (a == 't')
{Topaas = KÕRGE; BT.println ("TOPAZI MUUTMINE"); } muu {Topaas = LOW; }
// ===========================================================================================
kui (a == 'l')
{Lilla = KÕRGE; BT.println ("LILACILE MUUTUMINE"); } muu {Lilla = LOW; }
// ===========================================================================================
kui (a == 'a')
{Vikerkaar = KÕRGE; BT.println ("RAINBOW ANIMATION"); } else {Vikerkaar = LOW; } // ================================================ ============================================
kui (a == 'm')
{rgb = KÕRGE; BT.println ("MIX COLORS"); } muu {rgb = LOW; }} if (väljas == LOW && offOld == HIGH) {delay (20); if (väljas == LOW) {showType = 0; // Väljas animatsioon Tüüp 0 startShow (showType); }}
// ===========================================================================================
kui (valge == MADAL && valge valge == KÕRGE) {
viivitus (20); if (valge == LOW) {showType = 1; // Valge animatsioon Tüüp 1 startShow (showType); }}
// ================================================ =========================================== kui (punane == LOW && RedOld == HIGH) {delay (20); kui (punane == LOW) {showType = 2; // Punane animatsioon Tüüp 2 startShow (showType); }}
// ===========================================================================================
if (roheline == LOW && GreenOld == HIGH) {
viivitus (20); if (roheline == LOW) {showType = 3; // Roheline animatsioon Tüüp 3 startShow (showType); }} // ============================================== ==============================================
kui (sinine == LOW && BlueOld == KÕRGE) {
viivitus (20); kui (sinine == LOW) {showType = 4; // Sinine animatsioon Tüüp 4 startShow (showType); }}
// ===========================================================================================
kui (Topaz == LOW && TopazOld == HIGH) {
viivitus (20); kui (Topaas == LOW) {showType = 5; // Topaasi animatsioon Tüüp 5 startShow (showType); }}
// ===========================================================================================
kui (Lilla == LOW && LilacOld == HIGH) {
viivitus (20); kui (Lilla == LOW) {showType = 6; // Topaasi animatsioon Tüüp 6 startShow (showType); }} // ============================================== ==============================================
kui (vikerkaar == LOW && RainbowOld == HIGH) {
viivitus (20);
kui (vikerkaar == LOW) {
showType = 8; // Vikerkaare animatsioon Tüüp 8 startShow (showType); }}
// ===========================================================================================
kui (rgb == LOW && rgbOld == KÕRGE) {
viivitus (20);
kui (rgb == LOW) {
showType = 7; // Mix animatsioon Tüüp 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = valge;
RedOld = punane; BlueOld = Sinine; GreenOld = roheline; TopazOld = Topaas; LillacOld = Lilla; offOld = väljas; RainbowOld = Vikerkaar; rgbOld = rgb;
}
void startShow (int i) {
lüliti (i) {
juhtum 0: colorWipe (riba. Värv (0, 0, 0), SPEED); // Must/väljas
murda;
juhtum 1: riba.setBrightness (255); // Muudab heleduse väärtuseks MAX
colorWipe (riba. Värv (255, 255, 255), KOHE); // Valge riba.setBrightness (BRIGHTNESS); // Lähtesta heledus vaikeväärtustele;
juhtum 2: colorWipe (riba. Värv (255, 0, 0), SPEED); // Punane
murda;
juhtum 3: colorWipe (riba. Värv (0, 255, 0), SPEED); // Roheline
murda;
juhtum 4: colorWipe (riba. Värv (0, 0, 255), SPEED); // Sinine
murda;
juhtum 5: colorWipe (riba. Värv (0, 250, 255), SPEED); // Topaas
murda;
juhtum 6: colorWipe (riba. Värv (221, 130, 255), SPEED); // Lilla
murda; juhtum 7: colorWipe (riba. Värv (255, 0, 0), SPEED); // Punane värvWipe (riba. Värv (0, 255, 0), SPEED); // Roheline värvPühkige (riba. Värv (0, 0, 255), KIIRUS); // Sinine teaterChase (riba. Värv (0, 0, 127), SPEED); // Sinine teaterChase (riba. Värv (127, 0, 0), SPEED); // Punane teaterChase (riba. Värv (0, 127, 0), SPEED); // Roheline paus;
juhtum 8: vikerkaaretsükkel (25);
murda; }} void colorWipe (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i
void rainbowCycle (uint8_t oota) {
uint16_t i, j;
for (j = 0; j <256*10; j ++) {// 5 tsükli kõiki värve rattal (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); viivitus (oota); }}
void TheaterChase (uint32_t c, uint8_t oota) {
jaoks (int j = 0; j <10; j ++) {// tee 10 jahtimistsüklit (int q = 0; q <3; q ++) {jaoks (int i = 0; i <strip.numPixels (); i = i+3) {rib.setPixelColor (i+q, c); // lülita sisse iga kolmas piksel} riba.show ();
viivitus (oota);
for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // lülita iga kolmas piksel välja}}}}
uint32_t ratas (bait WheelPos) {
WheelPos = 255 - WheelPos; if (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } kui (WheelPos <170) {WheelPos -= 85; tagastusriba. Värv (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; tagastusriba. Värv (WheelPos * 3, 255 - WheelPos * 3, 0); }
6. samm: lambi juhtimine
Lambi värvi saab juhtida nutitelefoni abil.
Esiteks peate Google Play poest või Apple App Store'ist installima rakenduse nimega Bluetooth-terminal HC-05.
Lambi juhtimiseks oma nutitelefoni kaudu toimige järgmiselt.
1. Lülitage nutitelefonis bluetooth sisse.
2. Avage rakendus „Bluetooth-terminal HC-05”.
3. Nüüd peaksite ekraanil nägema seotud seadmeid. Valige 'HC-05'.
4. Nüüd näete nutitelefonis musta ekraani, mis näitab "ühendatud Arduinoga".
5. Siin on lõbus osa, kui sisestate tekstikasti "b", muutub lamp siniseks. Siin on lampide jaoks sisestatava käsu loend:
- w valge jaoks
- b sinise jaoks
- g rohelise jaoks
- r punase jaoks
- t topaasi jaoks
- lill
- vikerkaare animatsiooni jaoks
- o väljalülitamiseks
Lõbus eks?
6. Viimaseks, kuid mitte vähem tähtsaks, saate ka ekraani all olevat nuppu kohandada vastavalt soovitud tekstile, nagu on näidatud ülaltoodud pildil.
Samm: nautige oma meeleolulampi
Loodan, et teile meeldib see juhend. See oli minu jaoks väga keeruline projekt, kuid mul õnnestus see 14-aastase poisina täielikult lõpetada. Andke mulle tagasisidet tulevaste paranduste kohta.
Täname lugemise eest ja häid jõule!
Soovitan:
Nutitelefoniga juhitav lõpmatu kell: 5 sammu (koos piltidega)
Nutitelefoniga juhitav lõpmatu kell: Olen näinud mitmeid lõpmatuspeeglite ja lõpmatusekellade projekte Instructablesis, nii et otsustasin teha oma. See ei pruugi teistest väga erineda … aga ma tegin seda ise, nii see on! Kui te seda veel ei tea: mis on lõpmatus
Lihtsalt paigaldatav valguslüliti Vilgub: nutitelefoniga juhitav BLYNK-iga: 10 sammu
Lihtne monteeritav valguslüliti värelus: nutitelefoniga juhitav BLYNK: IoT-seadmed muutuvad kiiresti üha populaarsemaks, nii et miks mitte õppida ja luua odavaid materjale ja rasket tööd, et teha asju, mida varem ei saanud, oma IoT-seadmeid ? Minu nimed Szehuai ja mina leiame end alati magama jäämas, kuid
Nutitelefoniga juhitav RC -auto Arduino abil: 13 sammu (piltidega)
Nutitelefoniga juhitav RC -auto Arduino abil: see juhend sisaldab nutitelefoniga juhitava Arduino robot -auto valmistamist. Värskendage 25. oktoobril 2016
Nutitelefoniga juhitav nutikas ostukorv: 7 sammu
Nutitelefoniga juhitav nutikas ostukorv: kaubanduskeskuste külastamine võib olla lõbus. Ostukorvi lohistamine kraamiga täitmisel on aga lausa tüütu. Valu suruda see läbi nende kitsaste vahekäikude, teha need teravad pöörded! Niisiis, siin on (selline) pakkumine, mille saate
Nutitelefoniga juhitav auto [prototüüp]: 7 sammu
Nutitelefoniga juhitav auto [prototüüp]: aitame teil täna juhendamisel luua puidust alusega kaugjuhtimisega auto jaoks lihtsa ja elegantse prototüübi, mis sisaldab 3D -trükitud polüpiimhapet (PLA) mootori kinnitamiseks ja adapterit. ühendab mootorid