Kazalo:
- 1. korak: Zberite materiale
- 2. korak: Izdelava strukture svetilke
- 3. korak: 3D oblike
- 4. korak: Shema komponent
- 5. korak: Koda
- Korak 6: Upravljanje svetilke
- 7. korak: Uživajte v svetilki razpoloženja !
Video: Pametna LED svetilka, ki jo upravlja pametni telefon Bluetooth: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Vedno sanjam o nadzoru svojih svetlobnih naprav. Potem je nekdo naredil neverjetno pisano LED svetilko. Pred kratkim sem na Youtubu naletel na LED svetilko Josepha Cashe. Po navdihu sem se odločil dodati več funkcij, hkrati pa ohraniti sodoben dizajn.
V načrtu je, da bo svetilka prijaznejša do uporabnika z dodajanjem modula Bluetooth in naslovljivega WS2812B RGB LED traku. To je omogočilo nadzor barve osvetlitve samo z uporabo aplikacije za pametni telefon.
1. korak: Zberite materiale
Orodja:
• Spajkalna postaja
• Pištola za gretje
• Vrtalni stroj
• Krožna žaga
• sestavljanka
• Klešče za rezanje žice
• Klešče z ozkim nosom
Materiali:
• Prosojna akrilna plošča
• japonski les cipres (ali pa lahko uporabite kateri koli les, če je stabilen in dovolj močan)
• Vijaki
• Palica ali palica iz nerjavečega jekla
• Žice (uporabljam rdečo in črno žico)
• Spajkalnik
Komponente elektronike:
• Arduino Nano
• Modul Bluetooth HC-05 (odločil sem se, da ga bom uporabil, ker ga je lažje kodirati kot modul Wifi ESP8266)
• WS2812B naslovljiv RGB LED trak
• LM2596 Nadomestni modul
• DC Barrel Power Jack
2. korak: Izdelava strukture svetilke
V tem koraku imam dva načina za izgradnjo strukture metode obdelave lesa svetilke in metode 3D-tiskanja. Uporabljam prvo metodo. Če vam je ljubše to narediti s 3D tiskalnikom, lahko preskočite na 2. korak za model, ki sem ga oblikoval.
Za zgornji del svetilke segrejem in upognem akrilno ploščo pod kotom 90 °, kot je prikazano zgoraj. Potrebujem precej časa, da ga upognem do tako popolnega kota in smeri.
Nato za spodnji del svetilke. Na žalost … na dan, ko delam na spodnjem delu svetilke, sem popolnoma pozabil poslikati konstrukcijo! To sem spoznal, ko sem končal ta projekt. Se bom pa po svojih najboljših močeh potrudil, da vam posredujem merjenje spodnjega dela svetilke.
V bistvu morate le rezati štiri bloke lesa, ki merijo 13x6x2cm (DxHxW). Nato morate na robu lesa odrezati stopničast rez. Slika bo prikazana zgoraj.
3. korak: 3D oblike
Za vsakogar, ki ima svoj 3D tiskalnik, ste na pravem koraku. Zaradi tega je bila svetilka prijazna do uporabnika.
Če sem iskren, je bil to najtežji korak, ki sem ga naredil. To je prva stvar, ki sem jo naredil takoj po namestitvi programske opreme!
Sketchup Pro uporabljam za oblikovanje strukture svetilke. Na žalost nisem dovolj spreten, da bi oblikoval notranjo opremo. Povezava do mojega 3D modela je v spodnji datoteki.
4. korak: Shema komponent
Za izdelavo shem komponent uporabljam Fritzing. Shema je pravzaprav precej enostavna.
5. korak: Koda
Za kodiranje te svetilke razpoloženja sem uporabil nekaj knjižnic iz Arduino IDE. Knjižnice bodo navedene na 7. koraku.
Za kodo morate imeti samo programsko opremo Arduino. Tukaj bom dal povezavo za prenos.
Tudi skica ali koda bo prikazana spodaj?
Datoteko za kodo sem posredoval tudi na spletnem mestu Github.com, če je spodnja koda predolga za kopiranje;)
#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 IME HITNO 0 #define RAINBOW_SPEED 50 CRGB LED [NUM_LEDS];
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
bool offOld = NIZKO;
bool WhiteOld = NIZKA; bool RedOld = NIZKA; bool GreenOld = NIZKA; bool BlueOld = NIZKA; bool TopazStaro = NIZKO; bool LilacOld = NIZKA; bool RainbowOld = NIZKA; bool rgbOld = NIZKA; int showType = 0;
void setup () {
FastLED.addLeds (LED, NUM_LEDS); //////////
BT.začetek (9600);
BT.println ("Povezano z Arduinom");
strip.setBrightness (BRIGHTNESS);
strip.begin ();
strip.show ();
}
char a;
void loop () {
for (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool Bela = NIZKA; bool Modra = NIZKA; bool Rdeča = NIZKA; bool zelena = NIZKA; bool Topaz = NIZKA; bool Lila = NIZKA; bool Mavrica = NIZKA; bool rgb = NIZKA; bool ende; če je (BT.available ()) {a = (char) BT.read ();
če (a == 'o')
{off = HIGH; BT.println ("IZKLOP LED -diod..");
} drugo {
izklopljeno = NIZKO; } // =============================================== ============================================
če (a == 'w')
{Bela = VISOKA; BT.println ("VKLOPNE LED diode BELE");
} drugo {
Bela = NIZKA; } // =============================================== ============================================
če (a == 'b')
{Modra = VISOKA; BT.println ("SPREMEMBA V MODRO"); } else {Blue = LOW; }
// ===========================================================================================
če (a == 'r')
{Rdeča = VISOKA; BT.println ("SPREMEMBA V RDEČO"); } else {Rdeča = NIZKA; }
// ===========================================================================================
če (a == 'g')
{Zelena = VISOKA; BT.println ("SPREMEMBA V ZELENO"); } else {Zelena = NIZKA; }
// ===========================================================================================
če (a == 't')
{Topaz = VISOKO; BT.println ("SPREMEMBA NA TOPAZ"); } else {Topaz = NIZKA; }
// ===========================================================================================
če (a == 'l')
{Lila = VISOKA; BT.println ("SPREMEMBA V LILAC"); } else {Lilac = LOW; }
// ===========================================================================================
če (a == 'a')
{Mavrica = VISOKA; BT.println ("RAINBOW ANIMATION"); } else {Mavrica = NIZKA; } // =============================================== ============================================
če (a == 'm')
{rgb = VISOKO; BT.println ("MEŠAJ BARVE"); } else {rgb = NIZKA; }} if (off == LOW && offOld == HIGH) {zakasnitev (20); if (off == LOW) {showType = 0; // Izklop animacije Vrsta 0 startShow (showType); }}
// ===========================================================================================
if (Belo == NIZKO && Belo Staro == VISOKO) {
zamuda (20); if (Bela == NIZKA) {showType = 1; // Bela animacija Tip 1 startShow (showType); }}
// ================================================ =========================================== if (Rdeča == NIZKA && RedOld == HIGH) {zakasnitev (20); if (Rdeča == NIZKA) {showType = 2; // Rdeča animacija Tip 2 startShow (showType); }}
// ===========================================================================================
if (Zelena == NIZKA && ZelenaStara == VISOKA) {
zamuda (20); if (Zelena == NIZKA) {showType = 3; // Zelena animacija Tip 3 startShow (showType); }} // ============================================== ==============================================
if (Modra == NIZKA && BlueOld == VISOKA) {
zamuda (20); if (Modra == NIZKA) {showType = 4; // Modra animacija Tip 4 startShow (showType); }}
// ===========================================================================================
if (Topaz == LOW && TopazOld == HIGH) {
zamuda (20); if (Topaz == LOW) {showType = 5; // animacija Topaz Type 5 startShow (showType); }}
// ===========================================================================================
if (Lila == LOW && LilacOld == HIGH) {
zamuda (20); if (Lila == LOW) {showType = 6; // animacija Topaz Tip 6 startShow (showType); }} // ============================================== ================================================
if (Rainbow == LOW && RainbowOld == HIGH) {
zamuda (20);
if (Mavrica == LOW) {
showType = 8; // Mavrična animacija Tip 8 startShow (showType); }}
// ===========================================================================================
if (rgb == NIZKA && rgbOld == VISOKA) {
zamuda (20);
če (rgb == NIZKA) {
showType = 7; // Mešana animacija Tip 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = Bela;
RedOld = Rdeča; BlueOld = Modra; GreenOld = Zelena; TopazOld = Topaz; LilaStar = Lila; offOld = izklopljeno; RainbowOld = Mavrica; rgbOld = rgb;
}
void startShow (int i) {
switch (i) {
primer 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Črna/izklopljena
zlom;
primer 1: strip.setBrightness (255); // Spremeni svetlost na MAX
colorWipe (strip. Color (255, 255, 255), TAKOJ); // Beli trak.setBrightness (BRIGHTNESS); // Ponastavi svetlost na privzeto vrednost;
primer 2: colorWipe (strip. Color (255, 0, 0), SPEED); // Rdeča
zlom;
primer 3: colorWipe (strip. Color (0, 255, 0), SPEED); // Zelena
zlom;
primer 4: colorWipe (strip. Color (0, 0, 255), SPEED); // Modra
zlom;
primer 5: colorWipe (strip. Color (0, 250, 255), SPEED); // Topaz
zlom;
primer 6: colorWipe (strip. Color (221, 130, 255), SPEED); // Lila
zlom; primer 7: colorWipe (strip. Color (255, 0, 0), SPEED); // Rdeča colorWipe (strip. Color (0, 255, 0), SPEED); // zelena colorWipe (strip. Color (0, 0, 255), SPEED); // Blue theatreChase (strip. Color (0, 0, 127), SPEED); // Blue theatreChase (strip. Color (127, 0, 0), SPEED); // Rdeče gledališčeChase (strip. Color (0, 127, 0), SPEED); // Zeleni prelom;
primer 8: rainbowCycle (25);
zlom; }} void colorWipe (uint32_t c, uint8_t čakanje) {for (uint16_t i = 0; i
void rainbowCycle (uint8_t čakanje) {
uint16_t i, j;
za (j = 0; j <256*10; j ++) {// 5 ciklov vseh barv na kolesu za (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); zamuda (čakanje); }}
void theatreChase (uint32_t c, uint8_t čakaj) {
for (int j = 0; j <10; j ++) {// naredimo 10 ciklov lova za (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // vklopi vsak tretji pik} strip.show ();
zamuda (čakanje);
for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // izklopi vsak tretji slikovni pik}}}}
uint32_t kolo (bajt WheelPos) {
WheelPos = 255 - WheelPos; if (WheelPos <85) {povratni trak. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos -= 85; povratni trak. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; povratni trak. Barva (WheelPos * 3, 255 - WheelPos * 3, 0); }
Korak 6: Upravljanje svetilke
Barvo svetilke lahko nadzirate s pametnim telefonom.
Najprej morate namestiti aplikacijo z imenom Bluetooth Terminal HC-05 iz trgovine Google Play ali Apple App Store.
To so koraki za upravljanje svetilke prek lastnega pametnega telefona:
1. V pametnem telefonu vklopite bluetooth.
2. Odprite aplikacijo "Bluetooth Terminal HC-05".
3. Zdaj bi morali na zaslonu videti seznanjene naprave. Izberite 'HC-05'.
4. Zdaj lahko vidite, da se v pametnem telefonu prikaže črn zaslon, ki označuje "povezan z Arduinom".
5. Tu je zabaven del: če v polje za besedilo vnesete 'b', se bo svetilka obarvala modro. Tu je seznam ukazov, ki jih lahko vnesete za svetilko:
- w za belo
- b za modro
- g za zeleno
- r za rdečo
- t za topaz
- l za lila
- a za mavrično animacijo
- o za izklop
Zabavno kajne?
6. Nenazadnje lahko gumb pod zaslonom prilagodite želenemu besedilu, kot je prikazano na zgornji sliki.
7. korak: Uživajte v svetilki razpoloženja !
Upam, da vam je ta Instructables všeč. To je bil zame zelo zahteven projekt, vendar mi ga je uspelo dokončati kot 14-letnemu dečku. Dajte mi povratne informacije za prihodnje izboljšave.
Hvala za branje in vesel božič!
Priporočena:
Robot, ki ga upravlja pametni telefon, z uporabo BLE 4.0 !!!: 5 korakov
ROBOT, KI NAMERA SMARTPHONE, Z UPORABO BLE 4.0 !!!: V prejšnjih navodilih sem z vami delil, kako lahko uporabite modul Bluetooth (natančneje HM10 BLE v4.0) z Arduinom za nadzor LED z uporabo pametnega telefona. To lahko preverite tukaj. V tem navodilu vam bom pokazal, kako sestaviti robota, ki je lahko
Mumijasta svetilka - pametna svetilka z nadzorom WiFi: 5 korakov (s slikami)
Mumijasta svetilka - pametna svetilka z WiFi -krmiljenjem: Pred približno 230 tisoč leti se je človek naučil obvladovati ogenj, kar vodi do velike spremembe v njegovem življenjskem slogu, saj je ponoči začel delati tudi z uporabo svetlobe ognja. Lahko rečemo, da je to začetek notranje razsvetljave. Zdaj sem
LED -diode Bluetooth, ki jih upravlja pametni telefon (s sinhronizacijo glasbe v živo): 7 korakov
LED -diode Bluetooth, ki jih nadzoruje pametni telefon (s sinhronizacijo glasbe v živo): Vedno sem rad ustvarjal stvari, potem ko sem ugotovil, da ima moja nova študentska domova grozno razsvetljavo, sem se odločil, da ga malo popestrim. *** OPOZORILO *** Če gradite ta projekt v istem obsegu kot moja postavitev, boste delali z dostojno količino ele
RC avto, ki ga upravlja pametni telefon z uporabo Arduina: 13 korakov (s slikami)
RC avtomobil, upravljan s pametnim telefonom, z uporabo Arduina: Ta navodila kažejo, kako narediti avtomobil Arduino, ki ga upravlja pametni telefon. Posodobite 25. oktobra 2016
Kako narediti robota, ki ga upravlja pametni telefon: 3 koraki (s slikami)
Kako narediti robota, ki ga nadzoruje pametni telefon: Ali kdaj pomislite, da bi robota upravljali brezžično ali prek pametnega telefona? Če da, potem je vaše pravo branje. V tem prispevku vam bom predstavil postopek po korakih. Naredil sem preprostega robota, ki ga je mogoče upravljati s pametnim telefonom, lahko pa ga postavite