Satura rādītājs:
- 1. darbība: apkopojiet materiālus
- 2. solis: lampas struktūras izveide
- 3. darbība: 3D formas
- 4. solis: komponentu shēma
- 5. darbība: kods
- 6. darbība: lampas vadība
- 7. solis: izbaudiet garastāvokļa lampu
Video: Bluetooth viedtālruņa vadāma viedā LED lampa: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
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
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
Š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
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
Es izmantoju Fritzing, lai izveidotu komponentu shēmas. Shēma faktiski ir diezgan vienkārša.
5. darbība: 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 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
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:
Neizmantotā viedtālruņa pārvēršana viedā displejā: 6 soļi (ar attēliem)
Pārvērtiet neizmantoto viedtālruni viedā displejā: Deze apmācība ir pieejama Engels, vai nu Nederlandse versie klik hier. Vai jums ir (vecs) neizmantots viedtālrunis? Pārvērtiet to par viedo displeju, izmantojot Google izklājlapas un kādu pildspalvu un papīru, izpildot šo vienkāršo soli pa solim apmācību. Kad esat pabeidzis
Lēta viedtālruņa vadāma roka (+ opciju saglabāšanas pozīcija): 5 soļi
Lēta viedtālruņa vadāma roka (+ opciju saglabāšanas pozīcija): Projekts Vadiet robotu ar viedtālruni, izmantojot Bluetooth ierīci. Režīma bonuss: mums ir poga, kas ļauj arduino atcerēties pozīciju. Kad vien vēlamies, mēs varam doties uz šo saglabāto pozīciju ar citu pogu. FRLE PROJET komanda
Māmiņu lampa - ar Wi -Fi vadāma viedā lampa: 5 soļi (ar attēliem)
Māmiņu lampa - ar Wi -Fi kontrolēta viedā lampiņa: Apmēram pirms 230 tūkstošiem gadu cilvēks iemācījās kontrolēt uguni, tas noved pie būtiskām izmaiņām viņa dzīvesveidā, jo viņš sāka strādāt naktī, arī izmantojot uguns gaismu. Mēs varam teikt, ka tas ir iekštelpu apgaismojuma sākums. Tagad es
Vienkārša 5 ASV dolāru viedā lampa ar viedtālruņa tīmekļa saskarni: 4 soļi
Vienkārša 5 ASV dolāru viedā lampa ar viedtālruņa tīmekļa saskarni: Sveiki! Mani sauc Rafaels. Šī ir mana pirmā pamācība! Mans galvenais šīs lampas radīšanas motīvs ir palīdzēt cilvēkiem ar kustību traucējumiem. Kādu dienu mums nebūs slēdžu pie sienām vai grūti sasniedzamiem kontaktdakšām, bet drīzāk mūsu viedtālruņiem, lai kontrolētu
Viedtālruņa vadāma automašīna [prototips]: 7 soļi
Ar viedtālruni vadāma automašīna [prototips]: šodienas instrukcijās mēs palīdzam jums izveidot vienkāršu un elegantu prototipu tālvadāmai automašīnai ar koka pamatni, kas ietver 3D drukātu polipienskābi (PLA) motora stiprināšanai un adapteri. savieno motorus ar