Obsah:
- Krok 1: Zhromaždite materiály
- Krok 2: Budovanie štruktúry žiarovky
- Krok 3: 3D tvary
- Krok 4: Schéma komponentov
- Krok 5: Kód
- Krok 6: Ovládanie žiarovky
- Krok 7: Užite si lampu nálady !
Video: Bluetooth Smart LED ovládaná inteligentným telefónom: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Vždy snívam o ovládaní svojich svetelných zariadení. Potom niekto vyrobil neuveriteľnú farebnú LED lampu. Nedávno som na Youtube narazil na LED lampu od Josepha Cashu. Inšpirovaný tým, rozhodol som sa pridať niekoľko funkcií pri zachovaní súčasného dizajnu.
Plánuje sa, aby bola lampa užívateľsky prívetivejšia pridaním modulu Bluetooth a adresovateľného LED pásika WS2812B RGB. Vďaka tomu bolo možné ovládať farbu osvetlenia iba pomocou aplikácie pre smartfóny.
Krok 1: Zhromaždite materiály
Náradie:
• Spájkovacia stanica
• Ohrievacia dúchacia pištoľ
• Vŕtačka
• Kotúčová píla
• Skladačka
• Kliešte na rezanie drôtu
• Kliešte s úzkym nosom
Materiály:
• Priesvitná akrylová doska
• Japonské cyprusové drevo (alebo môžete použiť akékoľvek drevo, pokiaľ je dostatočne stabilné a pevné)
• Skrutky
• Tyč alebo tyč z nehrdzavejúcej ocele
• Drôty (používam červený a čierny drôt)
• Cín spájkovačka
Komponenty elektroniky:
• Arduino Nano
• Modul Bluetooth HC-05 (rozhodol som sa ho použiť, pretože je jednoduchšie kódovať ako modul Wifi ESP8266)
• Adresovateľný RGB LED pás WS2812B
• Znižovací modul LM2596
• DC konektor hlavne
Krok 2: Budovanie štruktúry žiarovky
V tomto kroku mám dva spôsoby budovania štruktúry metódy lampového spracovania dreva a metódy 3D tlače. Používam prvú metódu. Ak to radšej robíte pomocou 3D tlačiarne, pokojne preskočte na krok 2 pre model, ktorý som navrhol.
Pre hornú časť žiarovky zohrievam a ohýbam akrylovú dosku pod uhlom 90 °, ako je to znázornené vyššie. Trvá mi dosť dlho, kým to ohnem do tak dokonalého uhla a smeru.
Ďalej pre spodnú časť žiarovky. Bohužiaľ … v deň, keď pracujem na spodnej časti žiarovky, som úplne zabudol odfotiť konštrukciu! Uvedomil som si to, keď som dokončil tento projekt. Ale pokúsim sa urobiť všetko pre to, aby som vám poskytol meranie spodnej časti žiarovky.
V zásade stačí narezať štyri bloky dreva s rozmermi 13 x 6 x 2 cm (d x v x š). Ďalej musíte na okraji dreva vyrezať schodiskový rez. Obrázok bude zobrazený vyššie.
Krok 3: 3D tvary
Každý, kto má vlastnú 3D tlačiareň, ste na správnom kroku. Vďaka tomu bola táto lampa užívateľsky prívetivá.
Ak mám byť úprimný, bol to najťažší krok, ktorý som urobil. Toto je prvá vec, ktorú som urobil hneď po inštalácii softvéru!
Na návrh štruktúry žiarovky používam Sketchup Pro. Bohužiaľ nie som natoľko šikovný, aby som mohol navrhnúť jeho interiérový komponent. Odkaz na môj 3D model je v súbore nižšie.
Krok 4: Schéma komponentov
Na zostavenie schémy komponentov používam Fritzing. Schéma je v skutočnosti veľmi jednoduchá.
Krok 5: Kód
Na kódovanie tejto náladovej žiarovky som použil niektoré knižnice z Arduino IDE. Knižnice budú uvedené v zozname v kroku 7.
Na kód musíte mať samotný softvér Arduino. Tu poskytnem odkaz na stiahnutie.
Tiež sa nižšie zobrazí náčrt alebo kód?
Súbor s kódom som poskytol aj na Github.com v prípade, že nižšie uvedený kód je príliš dlhý na kopírovanie;)
#include #include #include #ifdef _AVR_ #include #endif
Softvér Sériový BT (10, 11);
#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #define OKAMŽITE 0 #define RAINBOW_SPEED 50 LED diód CRGB [NUM_LEDS];
Pásik Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
bool offStarý = NÍZKY;
bool WhiteOld = NÍZKA; bool RedOld = NÍZKA; bool GreenOld = NÍZKA; bool BlueOld = NÍZKA; bool TopazOld = NÍZKY; bool LilacOld = NÍZKA; bool RainbowOld = NÍZKY; bool rgbOld = NÍZKY; int showType = 0;
neplatné nastavenie () {
FastLED.addLeds (LED diódy, NUM_LEDS); //////////
BT.begin (9600);
BT.println („Pripojené k Arduinu“);
strip.setBrightness (BRIGHTNESS);
strip.begin ();
strip.show ();
}
char a;
prázdna slučka () {
pre (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = NÍZKY; bool Biela = NÍZKA; bool Modrá = NÍZKA; bool Červená = NÍZKA; bool Zelená = NÍZKA; bool Topaz = NÍZKA; bool Lilac = NÍZKA; bool Dúha = NÍZKA; bool rgb = NÍZKA; bool ende; if (BT.available ()) {a = (char) BT.read ();
ak (a == 'o')
{vypnuté = VYSOKÉ; BT.println („VYPNUTIE LED diód..“);
} else {
vypnuté = NÍZKE; } // ===================================================================== =============================================================
ak (a == 'w')
{Biela = VYSOKÁ; BT.println („OTOČNÉ LED diódy BIELE“);
} else {
Biela = NÍZKA; } // ===================================================================== =============================================================
ak (a == 'b')
{Modrá = VYSOKÁ; BT.println („ZMENA NA MODRÚ“); } else {Modrá = NÍZKA; }
// ===========================================================================================
ak (a == 'r')
{Červená = VYSOKÁ; BT.println („ZMENA NA ČERVENÚ“); } else {Červená = NÍZKA; }
// ===========================================================================================
ak (a == 'g')
{Zelená = VYSOKÁ; BT.println („ZMENA NA ZELENÚ“); } else {Zelená = NÍZKA; }
// ===========================================================================================
ak (a == 't')
{Topaz = VYSOKÝ; BT.println („ZMENA NA TOPAZ“); } else {Topaz = LOW; }
// ===========================================================================================
ak (a == 'l')
{Lilac = HIGH; BT.println („ZMENA NA LILAC“); } else {Lilac = NÍZKA; }
// ===========================================================================================
ak (a == 'a')
{Rainbow = VYSOKÝ; BT.println („ANIMÁCIA DÚHA“); } else {Rainbow = LOW; } // ===================================================================== =============================================================
ak (a == 'm')
{rgb = HIGH; BT.println („MIX FARIEB“); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {delay (20); if (off == LOW) {showType = 0; // Vypnutá animácia Typ 0 startShow (showType); }}
// ===========================================================================================
ak (biela == NÍZKA && WhiteOld == VYSOKÁ) {
oneskorenie (20); ak (biely == NÍZKY) {showType = 1; // Biela animácia Typ 1 startShow (showType); }}
// ======================================================================= ================================================ if (červená == NÍZKA && RedOld == HIGH) {oneskorenie (20); if (Red == LOW) {showType = 2; // Červená animácia Typ 2 startShow (showType); }}
// ===========================================================================================
ak (zelená == NÍZKA && GreenOld == VYSOKÁ) {
oneskorenie (20); if (Zelená == NÍZKA) {showType = 3; // Zelená animácia Typ 3 startShow (showType); }} // ==================================================================== =================================================================
ak (modrá == NÍZKA && BlueOld == VYSOKÁ) {
oneskorenie (20); if (Modrá == NÍZKA) {showType = 4; // Modrá animácia Typ 4 startShow (showType); }}
// ===========================================================================================
ak (Topaz == NÍZKA && TopazOld == VYSOKÁ) {
oneskorenie (20); if (Topaz == LOW) {showType = 5; // Animácia Topaz Typ 5 startShow (showType); }}
// ===========================================================================================
if (Lilac == LOW && LilacOld == HIGH) {
oneskorenie (20); if (Lilac == LOW) {showType = 6; // Animácia Topaz Typ 6 startShow (showType); }} // ===================================================================== =================================================================
ak (Rainbow == LOW && RainbowOld == HIGH) {
oneskorenie (20);
if (Rainbow == LOW) {
showType = 8; // Animácia dúhy Typ 8 startShow (showType); }}
// ===========================================================================================
if (rgb == LOW && rgbOld == HIGH) {
oneskorenie (20);
if (rgb == LOW) {
showType = 7; // Mix animácie Typ 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = biela;
RedOld = červená; BlueOld = Modrá; GreenOld = Zelená; TopazOld = Topaz; LilacOld = orgován; offOld = vypnuté; RainbowOld = Rainbow; rgbOld = rgb;
}
void startShow (int i) {
prepínač (i) {
prípad 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Čierna/vypnutá
prestávka;
prípad 1: strip.setBrightness (255); // Mení jas na MAX
colorWipe (pásik. Farba (255, 255, 255), IHNEĎ); // White strip.setBrightness (BRIGHTNESS); // Reset jasu na predvolenú hodnotu;
prípad 2: colorWipe (pás. Farba (255, 0, 0), RÝCHLOSŤ); // Červená
prestávka;
prípad 3: colorWipe (pásik. Farba (0, 255, 0), RÝCHLOSŤ); // Zelená
prestávka;
prípad 4: colorWipe (pásik. Farba (0, 0, 255), RÝCHLOSŤ); // Modrá
prestávka;
prípad 5: colorWipe (pás. Farba (0, 250, 255), RÝCHLOSŤ); // Topaz
prestávka;
prípad 6: colorWipe (pás. Farba (221, 130, 255), RÝCHLOSŤ); // Lilac
prestávka; prípad 7: colorWipe (pás. Farba (255, 0, 0), RÝCHLOSŤ); // Red colorWipe (strip. Color (0, 255, 0), SPEED); // Zelená farbaWipe (strip. Color (0, 0, 255), SPEED); // Blue TheaterChase (strip. Color (0, 0, 127), SPEED); // Blue TheaterChase (strip. Color (127, 0, 0), SPEED); // Červené divadloChase (strip. Color (0, 127, 0), SPEED); // Zelená prestávka;
prípad 8: rainbowCycle (25);
prestávka; }} void colorWipe (uint32_t c, uint8_t čakať) {for (uint16_t i = 0; i
void rainbowCycle (uint8_t wait) {
uint16_t i, j;
for (j = 0; j <256*10; j ++) {// 5 cyklov všetkých farieb na koliesku pre (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); oneskorenie (čakanie); }}
neplatné divadloChase (uint32_t c, uint8_t čakať) {
for (int j = 0; j <10; j ++) {// urobte 10 cyklov honenia za (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // zapnite každý tretí pixel}} strip.show ();
oneskorenie (čakanie);
pre (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // vypnite každý tretí pixel}}}}
uint32_t Wheel (byte WheelPos) {
WheelPos = 255 - WheelPos; if (WheelPos <85) {spätný pás. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos -= 85; spätný pás. Farba (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; spätný pás. Farba (WheelPos * 3, 255 - WheelPos * 3, 0); }
Krok 6: Ovládanie žiarovky
Farbu žiarovky je možné ovládať pomocou smartfónu.
Najprv si musíte nainštalovať aplikáciu s názvom „Bluetooth Terminal HC-05“z Obchodu Google Play alebo Apple App Store.
Nasledujú kroky na ovládanie žiarovky pomocou vlastného smartfónu:
1. Zapnite vo svojom smartfóne bluetooth.
2. Otvorte aplikáciu „Bluetooth Terminal HC-05“.
3. Teraz by ste mali spárované zariadenia vidieť na obrazovke. Vyberte „HC-05“.
4. Teraz môžete na svojom smartfóne vidieť čiernu obrazovku, ktorá bude znamenať „pripojené k Arduinu“.
5. Toto je zábavná časť. Ak do textového poľa zadáte „b“, lampa sa zmení na modrú. Tu je zoznam príkazov, ktoré môžete pre lampu napísať:
- w pre bielu
- b pre modrú
- g pre zelenú
- r pre červenú
- t pre topaz
- l pre orgován
- a pre dúhovú animáciu
- o na vypnutie
Zábava nie?
6. V neposlednom rade môžete tiež prispôsobiť tlačidlo pod obrazovkou požadovanému textu, ako je to znázornené na obrázku vyššie.
Krok 7: Užite si lampu nálady !
Dúfam, že sa vám tento návod páči. Bol to pre mňa veľmi náročný projekt, ale podarilo sa mi ho úplne dokončiť ako 14-ročný chlapec. Poskytnite mi spätnú väzbu pre budúce zlepšenia.
Ďakujem za prečítanie a Veselé Vianoce!
Odporúča:
DIY fitness hodinky s inteligentným oximetrom a srdcovou frekvenciou - Modulárne elektronické moduly od TinyCircuits - Najmenšia arkáda: 6 krokov
Inteligentné hodinky DIY Fitness Tracker s oxymetrom a srdcovou frekvenciou | Modulárne elektronické moduly od TinyCircuits | Najmenšia arkáda: Hej, čo sa deje, chlapci! Akarsh tu od CETech. Dnes tu máme niektoré zo senzorových modulov, ktoré sú veľmi užitočné v našom každodennom živote, ale v malej verzii. Senzory, ktoré dnes máme, sú veľmi malé v porovnaní s
KAMEŇ LCD s inteligentným domom: 5 krokov
KAMERA LCD so systémom Smart Home: Dnes som dostal displej jednotky STONE so sériovým portom, ktorý dokáže komunikovať prostredníctvom sériového portu MCU, a návrh logiky používateľského rozhrania tohto displeja je možné navrhnúť priamo pomocou softvéru VGUS, ktorý je k dispozícii na oficiálnych webových stránkach spoločnosti STONE, čo je veľmi dôležité. presvedčiť
Nasledujte ma - Sprievodca inteligentným dronom Raspberry Pi: 9 krokov
Nasledujte ma - Sprievodca inteligentným dronom Raspberry Pi: Zaujímalo vás vždy, ako vyrobiť dron od A -Z? Tento tutoriál vám ukáže, ako urobiť kvadrokoptéru 450 mm krok za krokom od nákupu dielov po testovanie vášho leteckého robota pri jeho prvom lete. Navyše s Raspberry Pi a PiCamera môžete
SONOFF pridáva hlasové ovládanie Alexa a Google Home k inteligentným zariadeniam ZigBee: 3 kroky
SONOFF pridáva hlasové ovládanie Alexa a Google Home k inteligentným zariadeniam ZigBee: Od inteligentných prepínačov a konektorov Wi-Fi po inteligentné prepínače a zásuvky ZigBee je hlasové ovládanie obľúbeným vstupným bodom inteligentného ovládania bez použitia rúk. Vďaka práci s Amazon Alexa alebo Google Home vám inteligentné zásuvky umožňujú priamo ovládať pripojený domov
Zbytočný stroj alebo dialóg so superkapacitorom s inteligentným chlapom: 7 krokov (s obrázkami)
Zbytočný stroj alebo dialóg so superkapacitorom s programom Smart Guy: Smart Guy. Čo?! Zbytočný stroj! Opäť! Stovky a tisíce z nich, ktoré upchávajú kanály YouTube, nestačia? Väčšina z nich je vyrobená s prepínačom, tento má kolískový spínač. SG. No a čo? Každý vie, že fungujú rovnako. A vy už