Satura rādītājs:

Bluetooth viedtālruņa vadāma viedā LED lampa: 7 soļi
Bluetooth viedtālruņa vadāma viedā LED lampa: 7 soļi

Video: Bluetooth viedtālruņa vadāma viedā LED lampa: 7 soļi

Video: Bluetooth viedtālruņa vadāma viedā LED lampa: 7 soļi
Video: УЗНАВ ЭТОТ СЕКРЕТ ты больше никогда не выбросишь нерабочий компьютерный БП! 2024, Decembris
Anonim
Image
Image
Bluetooth viedtālruņa vadāma viedā LED lampa
Bluetooth viedtālruņa vadāma viedā LED lampa

Es vienmēr sapņoju kontrolēt savas apgaismes ierīces. Tad kāds izgatavoja neticami krāsainu LED lampu. Nesen Youtube satiku Džozefa Kašas LED lampu. Iedvesmojoties no tā, es nolēmu pievienot vairākas funkcijas, vienlaikus saglabājot mūsdienu dizainu.

Plāns ir padarīt lampu lietotājam draudzīgāku, pievienojot Bluetooth moduli un adresējamu WS2812B RGB LED sloksni. Tas ļāva kontrolēt apgaismojuma krāsu, tikai izmantojot viedtālruņa lietotni.

1. darbība: apkopojiet materiālus

Savāc materiālus
Savāc materiālus
Savāc materiālus
Savāc materiālus

Rīki:

• Lodēšanas stacija

• Sildītāja pūtējs

• Urbjmašīna

• Ripzāģis

• finierzāģis

• Stiepļu griezēju knaibles

• Knaibles ar šauru degunu

Materiāli:

• Caurspīdīga akrila plāksne

• Japāņu cipreses koks (vai arī jūs varat izmantot jebkuru koku, ja vien tas ir stabils un pietiekami stiprs)

• Skrūves

• Nerūsējošā tērauda stabs vai nūja

• Vadi (es izmantoju sarkanu un melnu vadu)

• Alvas lodēšana

Elektronikas komponenti:

• Arduino Nano

• Bluetooth modulis HC-05 (es nolēmu to izmantot, jo kodēt ir vieglāk nekā Wifi moduli ESP8266)

• WS2812B Adresējama RGB LED sloksne

• LM2596 atkāpšanās modulis

• DC Barrel Power Jack

2. solis: lampas struktūras izveide

Lampas struktūras veidošana
Lampas struktūras veidošana
Lampas struktūras veidošana
Lampas struktūras veidošana

Šajā solī man ir divi veidi, kā veidot lampas struktūru- kokapstrādes metode un 3D drukāšanas metode. Es izmantoju pirmo metodi. Ja vēlaties to izgatavot, izmantojot 3D printeri, varat brīvi pāriet uz mana izstrādātā modeļa 2. darbību.

Lampas augšējai daļai es sildu un saliecu akrila plāksni 90 ° leņķī, kā parādīts iepriekš. Man vajadzīgs diezgan ilgs laiks, lai to saliektu tik perfektā leņķī un virzienā.

Tālāk par luktura apakšējo daļu. Diemžēl dienā, kad strādāju pie lampas apakšējās daļas, es pilnīgi aizmirsu nofotografēt konstrukciju! To es sapratu, kad pabeidzu šo projektu. Bet es darīšu visu iespējamo, lai sniegtu jums lampas apakšējās daļas mērījumus.

Būtībā jums vienkārši jāizgriež četri koka bloki, kuru izmērs ir 13x6x2cm (LxHxW). Tālāk koka malā ir jāizgriež kāpnēm līdzīgs griezums. Attēls tiks parādīts iepriekš.

3. darbība: 3D formas

3D formas
3D formas
3D formas
3D formas

Ikvienam, kam ir savs 3D printeris, jūs esat īstajā solī. Tas padarīja šo lampu lietotājam draudzīgu.

Godīgi sakot, tas bija grūtākais solis, ko es izdarīju. Šī ir pirmā lieta, ko es izdarīju uzreiz pēc programmatūras instalēšanas!

Es izmantoju Sketchup Pro, lai izstrādātu luktura struktūru. Diemžēl es neesmu pietiekami prasmīgs, lai izstrādātu tā interjera sastāvdaļu. Saite uz manu 3D modeli ir zemāk esošajā failā.

4. solis: komponentu shēma

Sastāvdaļu shēma
Sastāvdaļu shēma

Es izmantoju Fritzing, lai izveidotu komponentu shēmas. Shēma faktiski ir diezgan vienkārša.

5. darbība: kods

Kods
Kods

Šīs garastāvokļa lampas kodēšanai es izmantoju dažas bibliotēkas no Arduino IDE. Bibliotēkas tiks uzskaitītas 7. darbībā.

Lai iegūtu kodu, jums ir nepieciešama pati Arduino programmatūra. Šeit es sniegšu lejupielādes saiti.

Arī skice vai kods tiks parādīts zemāk?

Es arī norādīju koda failu vietnē Github.com, ja zemāk redzamais kods ir pārāk garš, lai to kopētu šeit;)

#include #include #include #ifdef _AVR_ #include #endif

SoftwareSerial BT (10, 11);

#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #define TŪLĪT 0 0define RAINBOW_SPEED 50 CRGB gaismas diodes [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 (gaismas diodes, NUM_LEDS); //////////

BT.sākt (9600);

BT.println ("Savienots ar Arduino");

strip.setBrightness (BRIGHTNESS);

strip.begin ();

strip.show ();

}

char a;

void loop () {

par (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool White = LOW; bool Blue = LOW; bool Red = LOW; bool Green = LOW; bool Topaz = LOW; bool Ceriņi = LOW; bool Varavīksne = LOW; bool rgb = LOW; bool ende; ja (BT.pieejams ()) {a = (char) BT.read ();

ja (a == 'o')

{izslēgts = HIGH; BT.println ("GAIDU IZSLĒGŠANA..");

} vēl {

izslēgts = LOW; } // ================================================== ==============================================

ja (a == 'w')

{Balts = HIGH; BT.println ("GALVENO GAISMU BALTAS");

} vēl {

Balts = LOW; } // ================================================== ==============================================

ja (a == 'b')

{Zils = HIGH; BT.println ("MAINĪŠANĀS UZ ZILO"); } cits {zils = ZEMS; }

// ===========================================================================================

ja (a == 'r')

{Sarkans = HIGH; BT.println ("MAINĪŠANA SARKANĀ"); } cits {Sarkans = ZEMS; }

// ===========================================================================================

ja (a == 'g')

{Zaļš = HIGH; BT.println ("MAINĪŠANA ZAĻĀ"); } cits {Zaļš = ZEMS; }

// ===========================================================================================

ja (a == 't')

{Topāzs = HIGH; BT.println ("MAINĪŠANA TOPAZĀ"); } cits {Topāzs = LOW; }

// ===========================================================================================

ja (a == 'l')

{Ceriņi = AUGSTS; BT.println ("MAINĪBA UZ LILACU"); } cits {Ceriņi = LOW; }

// ===========================================================================================

ja (a == 'a')

{Varavīksne = HIGH; BT.println ("RAINBOW ANIMATION"); } cits {Varavīksne = LOW; } // ================================================== ==============================================

ja (a == 'm')

{rgb = AUGSTS; BT.println ("MIX COLORS"); } cits {rgb = LOW; }} ja (izslēgts == LOW && offOld == HIGH) {kavēšanās (20); ja (izslēgts == LOW) {showType = 0; // Izslēgta animācija Tips 0 startShow (showType); }}

// ===========================================================================================

ja (balts == LOW &&&BoldOld == HIGH) {

kavēšanās (20); ja (balts == LOW) {showType = 1; // Baltā animācija Type 1 startShow (showType); }}

// ================================================ =========================================== ja (sarkans == LOW && RedOld == HIGH) {kavēšanās (20); ja (sarkans == LOW) {showType = 2; // Sarkanā animācija 2. tips startShow (showType); }}

// ===========================================================================================

ja (zaļa == LOW && GreenOld == HIGH) {

kavēšanās (20); ja (zaļa == LOW) {showType = 3; // Zaļā animācija Type 3 startShow (showType); }} // ============================================== ================================================

ja (zils == LOW && BlueOld == HIGH) {

kavēšanās (20); ja (zils == LOW) {showType = 4; // Zilā animācija Type 4 startShow (showType); }}

// ===========================================================================================

ja (Topaz == LOW && TopazOld == HIGH) {

kavēšanās (20); ja (Topaz == LOW) {showType = 5; // Topāza animācija 5. tips startShow (showType); }}

// ===========================================================================================

ja (ceriņi == LOW && LilacOld == HIGH) {

kavēšanās (20); ja (ceriņi == LOW) {showType = 6; // Topāza animācija 6. tips startShow (showType); }} // ============================================== ================================================

ja (varavīksne == LOW && RainbowOld == HIGH) {

kavēšanās (20);

ja (varavīksne == LOW) {

showType = 8; // Varavīksnes animācija Tips 8 startShow (showType); }}

// ===========================================================================================

ja (rgb == LOW && rgbOld == HIGH) {

kavēšanās (20);

ja (rgb == LOW) {

showType = 7; // Mix animācija Type 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = balts;

RedOld = sarkans; BlueOld = zils; GreenOld = zaļš; TopazOld = Topāzs; CeriņiOld = ceriņi; offOld = izslēgts; RainbowOld = Varavīksne; rgbOld = rgb;

}

void startShow (int i) {

slēdzis (i) {

gadījums 0: colorWipe (sloksne. Krāsa (0, 0, 0), SPEED); // Melns/izslēgts

pārtraukums;

1. gadījums: strip.setBrightness (255); // Maina spilgtumu uz MAX

colorWipe (sloksne. Krāsa (255, 255, 255), NEKAVĒJOTIES); // Baltā sloksne.setBrightness (BRIGHTNESS); // Atiestatīt spilgtumu uz noklusējuma vērtību pārtraukumu;

2. gadījums: colorWipe (sloksne. Krāsa (255, 0, 0), SPEED); // Sarkans

pārtraukums;

3. gadījums: colorWipe (sloksne. Krāsa (0, 255, 0), SPEED); // Zaļš

pārtraukums;

4. gadījums: colorWipe (sloksne. Krāsa (0, 0, 255), SPEED); // Zils

pārtraukums;

5. gadījums: colorWipe (sloksne. Krāsa (0, 250, 255), SPEED); // Topāzs

pārtraukums;

6. gadījums: colorWipe (sloksne. Krāsa (221, 130, 255), SPEED); // Ceriņi

pārtraukums; 7. gadījums: colorWipe (sloksne. Krāsa (255, 0, 0), SPEED); // Red colorWipe (strip. Color (0, 255, 0), SPEED); // Zaļā krāsaWipe (sloksne. Krāsa (0, 0, 255), SPEED); // Zilais teātrisChase (strip. Color (0, 0, 127), SPEED); // Zilais teātrisChase (strip. Color (127, 0, 0), SPEED); // Sarkanais teātrisChase (strip. Color (0, 127, 0), SPEED); // Zaļā pauze;

8. gadījums: varavīksnes cikls (25);

pārtraukums; }} void colorWipe (uint32_t c, uint8_t gaidīt) {for (uint16_t i = 0; i

void rainbowCycle (pagaidiet uint8_t) {

uint16_t i, j;

(j = 0; j <256*10; j ++) {// 5 visu krāsu riteņi uz riteņa (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); aizkavēties (gaidīt); }}

void TheaterChase (uint32_t c, uint8_t gaidīt) {

par (int j = 0; j <10; j ++) {// veic 10 vajāšanas ciklus (int q = 0; q <3; q ++) {par (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // ieslēgt katru trešo pikseļu} strip.show ();

aizkavēties (gaidīt);

par (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // izslēdziet katru trešo pikseļu}}}}

uint32_t ritenis (baits WheelPos) {

WheelPos = 255 - WheelPos; if (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } ja (WheelPos <170) {WheelPos -= 85; atgriešanas sloksne. Krāsa (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; atgriešanas sloksne. Krāsa (WheelPos * 3, 255 - WheelPos * 3, 0); }

6. darbība: lampas vadība

Lampas vadība
Lampas vadība
Lampas vadība
Lampas vadība
Lampas vadība
Lampas vadība

Lampas krāsu var kontrolēt, izmantojot viedtālruni.

Vispirms no Google Play veikala vai Apple App Store jāinstalē lietotne ar nosaukumu Bluetooth terminālis HC-05.

Tālāk ir norādītas darbības, lai kontrolētu lampu, izmantojot savu viedtālruni.

1. Ieslēdziet viedtālrunī Bluetooth.

2. Atveriet lietotni “Bluetooth terminālis HC-05”.

3. Tagad ekrānā vajadzētu redzēt pārī savienotās ierīces. Izvēlieties “HC-05”.

4. Tagad jūs varat redzēt, ka jūsu viedtālrunī parādās melns ekrāns, kas norāda "savienots ar Arduino".

5. Šeit ir jautrā daļa, ja tekstlodziņā ierakstāt “b”, lampa kļūs zilā krāsā. Šeit ir saraksts ar komandu, ko varat ievadīt lampai:

- w par baltu

- b par zilu

- g par zaļo

- r par sarkanu

- t par topāzu

- l par ceriņiem

- varavīksnes animācijai

- o izslēgšanai

Jautri, vai ne?

6. Visbeidzot, jūs varat arī pielāgot pogu zem ekrāna vēlamajam tekstam, kā parādīts attēlā.

7. solis: izbaudiet garastāvokļa lampu

Izbaudiet garastāvokļa lampu !!
Izbaudiet garastāvokļa lampu !!
Izbaudiet garastāvokļa lampu !!
Izbaudiet garastāvokļa lampu !!
Izbaudiet garastāvokļa lampu !!
Izbaudiet garastāvokļa lampu !!

Es ceru, ka jums patīk šī instrukcija. Tas man bija ļoti izaicinošs projekts, bet man izdevās to pabeigt kā 14 gadus vecam zēnam. Sniedziet man atsauksmes par turpmākajiem uzlabojumiem.

Paldies, ka lasījāt un priecīgus Ziemassvētkus!

Ieteicams: