Përmbajtje:
- Hapi 1: Mblidhni materialet
- Hapi 2: Ndërtimi i strukturës së llambës
- Hapi 3: Format 3D
- Hapi 4: Skema e Komponentëve
- Hapi 5: Kodi
- Hapi 6: Kontrolli i llambës
- Hapi 7: Shijoni llambën tuaj të humorit !
Video: Bluetooth Llambë Smart Smart e kontrolluar nga smartphone: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:12
Unë gjithmonë ëndërroj të kontrolloj pajisjet e mia të ndriçimit. Pastaj dikush bëri një llambë LED të jashtëzakonshme shumëngjyrëshe. Kohët e fundit hasa në një Llambë LED nga Joseph Casha në Youtube. Duke u frymëzuar nga ajo, vendosa të shtoj disa funksione duke ruajtur modelin bashkëkohor.
Plani është që llamba të jetë më miqësore për përdoruesit duke shtuar një Modul Bluetooth dhe një shirit LED të adresueshëm WS2812B RGB. Kjo bëri të mundur kontrollin e ngjyrës së ndriçimit vetëm duke përdorur një aplikacion smartphone.
Hapi 1: Mblidhni materialet
Mjetet:
• Stacioni i saldimit
• Armë me ventilator ngrohës
• Makineri stërvitore
• Sharrë rrethore
• Jigsaw
• Pincë për prerjen e telave
• Pincë me hundë të ngushtë
Materiale:
• Pllakë akrilike e tejdukshme
• Druri i Qiparisit Japonez (ose mund të përdorni çdo dru për aq kohë sa është i qëndrueshëm dhe mjaft i fortë)
• Vida
• Shtylla ose shkop Stainless Steel
• Tela (unë përdor tela të kuq dhe të zi)
• Kallaji i saldimit
Komponentët elektronikë:
• Arduino Nano
• Moduli Bluetooth HC-05 (vendosa ta përdor këtë pasi është më e lehtë të kodosh sesa Moduli Wifi ESP8266)
• Rrip LED i adresueshëm WS2812B RGB
• LM2596 Moduli i Shkallëzimit
• Fuqia e fuçisë DC
Hapi 2: Ndërtimi i strukturës së llambës
Në këtë hap, unë kam dy mënyra për të ndërtuar strukturën e llambës- metoda e përpunimit të drurit dhe metoda e printimit 3D. Unë përdor metodën e parë. Nëse preferoni ta bëni atë duke përdorur një printer 3D, mos ngurroni të kaloni në hapin 2 për modelin që kam projektuar.
Për pjesën e sipërme të llambës, e ngroh dhe e përkul bordin akrilik në një kënd prej 90 ° siç tregohet më sipër. Më duhet shumë kohë për ta përkulur atë në një kënd dhe drejtim kaq të përsosur.
Tjetra, për pjesën e poshtme të llambës. Fatkeqësisht … ditën kur jam duke punuar në pjesën e poshtme të llambës, kam harruar plotësisht të bëj një fotografi të konstruksionit! E kuptova kur e mbarova këtë projekt. Por unë do të përpiqem më të mirën për t'ju siguruar matjen e pjesës së poshtme të llambës.
Në thelb, ju vetëm duhet të prerë katër blloqe druri që matin 13x6x2cm (LxHxW). Tjetra, ju duhet të prerë një prerje të ngjashme me shkallët në buzë të drurit. Fotografia do të shfaqet më lart.
Hapi 3: Format 3D
Për këdo që ka printerin e tij 3D, ju jeni në hapin e duhur. Kjo e bëri këtë llambë miqësore për përdoruesit.
Për të qenë i sinqertë, ky ishte hapi më i vështirë që kam bërë. Kjo është gjëja e parë që bëra menjëherë pas instalimit të softuerit!
Unë përdor Sketchup Pro për të hartuar strukturën e llambës. Fatkeqësisht, nuk jam aq i aftë sa të dizajnoj përbërësin e tij të brendshëm. Lidhja me modelin tim 3D është në skedarin më poshtë.
Hapi 4: Skema e Komponentëve
Unë përdor Fritzing për të ndërtuar skemat e përbërësve. Skema është në të vërtetë mjaft e lehtë.
Hapi 5: Kodi
Për kodimin e kësaj llambë të humorit, kam përdorur disa biblioteka nga Arduino IDE. Bibliotekat do të renditen në hapin 7.
Për kodin, duhet të keni vetë softuerin Arduino. Unë do të jap lidhjen për ta shkarkuar këtu.
Gjithashtu, skica ose kodi do të shfaqen më poshtë?
Unë gjithashtu sigurova skedarin për kodin në Github.com në rast se kodi më poshtë është shumë i gjatë për tu kopjuar këtu;)
#përfshi #përfshi #përfshi #ifdef _AVR_ #përfshi #endif
SoftwareSerial BT (10, 11);
#përcakto LED_PIN 7 #përcakto NUM_LEDS 60 #përcakto SHKURT 200SIN 200 #përcakto SHPEJTSIN #10 #përcakto MENJIHER 0 #përcakto RAINBOW_SPEED 50 led CRGB [NUM_LEDS];
Rrip Adafruit_NeoPixel = 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 = I UL; bool LilacOld = I UL; bool RainbowOld = LOW; bool rgbOld = I UL;; int showType = 0;
void setup () {
FastLED.addLeds (leds, NUM_LEDS); ///////////
BT.filloj (9600);
BT.println ("Lidhur me Arduino");
strip.setBrightness (BRIGHTNESS);
strip.filloj ();
shirit.shfaq ();
}
char a;
lak void () {
për (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.shfaq (); } bool off = LOW; bool White = LOW; bool Blu = LOW; bool Red = LOW; bool Green = LOW; bool Topaz = I UL; bool Lilac = I UL;; bool Rainbow = LOW; bool rgb = I UL; bool ende; nëse (BT. në dispozicion ()) {a = (char) BT.read ();
nëse (a == 'o')
{off = LART; BT.println ("FIKJA E LED -ve..");
} tjetër {
joaktiv = I UL; } // =============================================== ============================================
nëse (a == 'w')
{E bardhë = E LART; BT.println ("KTHIMI I ZHELIT T WH BARDH");
} tjetër {
E bardhë = E ULT; } // =============================================== ============================================
nëse (a == 'b')
{Blu = LART; BT.println ("NDRYSHIMI N BL BLU"); } else {Blu = LOW; }
// ===========================================================================================
nëse (a == 'r')
{E kuqe = LART; BT.println ("NDRYSHIMI N TO KUQ"); } else {E kuqe = LOW; }
// ===========================================================================================
nëse (a == 'g')
{E gjelbër = LART; BT.println ("NDRYSHIMI N G GJELBR"); } else {E gjelbër = LOW; }
// ===========================================================================================
nëse (a == 't')
{Topaz = LART; BT.println ("NDRYSHIMI N TO TOPAZ"); } tjetër {Topaz = LOW; }
// ===========================================================================================
nëse (a == 'l')
{Jargavani = LART; BT.println ("NDRYSHIMI N L LILAC"); } else {Jargavan = I UL;; }
// ===========================================================================================
nëse (a == 'a')
{Ylber = LART; BT.println ("ANIMIMI I YLERIT"); } else {Rainbow = LOW; } // =============================================== ============================================
nëse (a == 'm')
{rgb = LART; BT.println ("NGJYRA PIXRZIER"); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {vonesë (20); if (off == LOW) {showType = 0; // Fikur animacion Lloji 0 startShow (showType); }}
// ===========================================================================================
nëse (E bardhë == LOW && WhiteOld == LART) {
vonesa (20); nëse (E bardhë == LOW) {showType = 1; // Animacion i bardhë Lloji 1 startShow (showType); }}
// ================================================ ========================================= nëse (E kuqe == LOW && RedOld == LART {vonesë (20); nëse (E kuqe == LOW) {showType = 2; // Animacion i kuq Lloji 2 startShow (showType); }}
// ===========================================================================================
nëse (E gjelbër == LOW && GreenOld == LART) {
vonesa (20); nëse (E gjelbër == LOW) {showType = 3; // Animacion i gjelbër Lloji 3 startShow (showType); }} // ============================================= =============================================
nëse (Blu == LOW && BlueOld == LART) {
vonesa (20); nëse (Blu == LOW) {showType = 4; // Animacion blu i tipit 4 startShow (showType); }}
// ===========================================================================================
nëse (Topaz == LOW && TopazOld == LART) {
vonesa (20); nëse (Topaz == LOW) {showType = 5; // Animacioni Topaz Lloji 5 startShow (showType); }}
// ===========================================================================================
nëse (jargavan == LOW && LilacOld == LART) {
vonesa (20); nëse (jargavan == LOW) {showType = 6; // Animacioni Topaz Lloji 6 startShow (showType); }} // ============================================= =============================================
nëse (Rainbow == LOW && RainbowOld == LART) {
vonesa (20);
nëse (Rainbow == LOW) {
showType = 8; // Animacion Rainbow Type 8 startShow (showType); }}
// ===========================================================================================
nëse (rgb == LOW && rgbOld == LART) {
vonesa (20);
nëse (rgb == LOW) {
showType = 7; // Mix animacion Lloji 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = E bardhë;
RedOld = E kuqe; BlueOld = Blu; GreenOld = E gjelbër; TopazOld = Topaz; LilacOld = jargavan; offOld = joaktiv; RainbowOld = Ylber; rgbOld = rgb;
}
void startShow (int i) {
kaloni (i) {
rasti 0: colorWipe (shirit. Ngjyra (0, 0, 0), SPEED); // E zezë/fikur
pushim;
rasti 1: strip.setBrightness (255); // Ndryshon Shkëlqimin në MAX
colorWipe (shirit. Ngjyra (255, 255, 255), MENJIHER); // Rrip i bardhë.setBrightness (BRIGHTNESS); // Rivendos ndërprerjen e vlerës së Ndriçimit në Default;
rast 2: colorWipe (shirit. Ngjyra (255, 0, 0), SPEED); // E kuqe
pushim;
rasti 3: colorWipe (shirit. Ngjyra (0, 255, 0), SPEED); // E gjelbër
pushim;
rasti 4: colorWipe (shirit. Ngjyra (0, 0, 255), SPEED); // Blu
pushim;
rasti 5: colorWipe (shirit. Ngjyra (0, 250, 255), SPEED); // Topaz
pushim;
rasti 6: colorWipe (shirit. Ngjyra (221, 130, 255), SPEED); // jargavan
pushim; rast 7: colorWipe (shirit. Ngjyra (255, 0, 0), SPEED); // Fshirje me ngjyrë të kuqe (shirit. Ngjyra (0, 255, 0), SHPEJTSI); // Ngjyra e gjelbër Fshij (shirit. Ngjyra (0, 0, 255), SPEED); // Teatri bluChase (shirit. Ngjyra (0, 0, 127), SPEED); // Teatri bluChase (shirit. Ngjyra (127, 0, 0), SPEED); // Teatri i kuqChase (shirit. Ngjyra (0, 127, 0), SPEED); // Pushim jeshil;
rasti 8: rainbowCycle (25);
pushim; }} ngjyra e pavlefshme Fshij (uint32_t c, uint8_t pres) {për (uint16_t i = 0; i
void rainbowCycle (uint8_t prisni) {
uint16_t i, j;
për (j = 0; j <256*10; j ++) {// 5 cikle të të gjitha ngjyrave në timon për (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Rrota (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.shfaq (); vonesë (pritje); }}
void theaterChase (uint32_t c, uint8_t pres) {
për (int j = 0; j <10; j ++) {// bëni 10 cikle ndjekjeje për (int q = 0; q <3; q ++) {për (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // ndizni çdo piksel të tretë në} strip.show ();
vonesë (pritje);
për (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // fik çdo piksel të tretë}}}}
uint32_t Rrota (byte WheelPos) {
WheelPos = 255 - WheelPos; nëse (WheelPos <85) {shiriti i kthimit. Color (255 - WheelPos * 3, 0, WheelPos * 3); } nëse (WheelPos <170) {WheelPos -= 85; shiriti i kthimit. Ngjyra (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; shiriti i kthimit. Ngjyra (WheelPos * 3, 255 - WheelPos * 3, 0); }
Hapi 6: Kontrolli i llambës
Ngjyra e llambës mund të kontrollohet duke përdorur smartphone tuaj.
Së pari, duhet të instaloni aplikacionin e quajtur 'Bluetooth Terminal HC-05' nga Google Play Store ose Apple App Store.
Këtu janë hapat për të kontrolluar llambën përmes smartphone -it tuaj:
1. Ndizni bluetooth -in në telefonin tuaj të mençur.
2. Hapni aplikacionin i cili është 'Bluetooth Terminal HC-05'.
3. Tani duhet të shihni pajisjet e çiftuara në ekran. Zgjidhni 'HC-05'.
4. Tani mund të shihni që shfaqet një ekran i zi në smartphone tuaj i cili do të tregojë 'i lidhur me Arduino'.
5. Këtu është pjesa argëtuese, nëse shkruani 'b' në kutinë e tekstit, llamba do të kthehet në ngjyrë blu. Këtu është lista e komandës që mund të shtypni për llambën:
- w për të bardhë
- b për ngjyrën blu
- g për të gjelbër
- r për të kuqen
- t për topaz
- l për jargavan
- një animacion për ylberin
- o për fikje
Argëtim apo jo?
6. Së fundmi, por jo më pak e rëndësishme, gjithashtu mund të personalizoni butonin poshtë ekranit në tekstin tuaj të dëshiruar siç tregohet në figurën e mësipërme.
Hapi 7: Shijoni llambën tuaj të humorit !
Shpresoj se ju pëlqen kjo Instructables. Ishte një projekt shumë sfidues për mua, por arrita ta përfundoj plotësisht si një djalë 14 vjeç. Më jepni disa komente për përmirësimet e ardhshme.
Faleminderit për leximin dhe Gëzuar Krishtlindjet!
Recommended:
Automatizimi llafazan -- Audio Nga Arduino -- Automatizimi i kontrolluar nga zëri -- HC - 05 Moduli Bluetooth: 9 hapa (me fotografi)
Automatizimi llafazan || Audio Nga Arduino || Automatizimi i kontrolluar nga zëri || HC - 05 Moduli Bluetooth: …………………………. Ju lutemi SUBSCRIBE në kanalin tim në YouTube për më shumë video …. …. Në këtë video ne kemi ndërtuar një Automatizim Bisedues .. Kur do të dërgoni një komandë zanore përmes celularit, atëherë ai do të ndezë pajisjet shtëpiake dhe do të dërgojë reagime për
ESP 8266 Nodemcu Ws 2812 Llambë LED MOOD e bazuar në neopixel e kontrolluar nga serveri lokal në internet: 6 hapa
ESP 8266 Nodemcu Ws 2812 Llamba LED MOOD e bazuar në Neopixel e kontrolluar nga Web Serveri lokal: ESP 8266 Nodemcu Ws 2812 Llamba LED MOOD LED me bazë Neopixel e kontrolluar duke përdorur serverin e uebit
Rrip LED Neopixel Ws 2812 Me Arduino i kontrolluar nga Bluetooth nga Android ose Iphone: 4 hapa
Neopixel Ws 2812 LED Rrip Me Arduino i kontrolluar nga Bluetooth Nga Android ose Iphone: Përshëndetje djema në këtë udhëzues kam diskutuar se si të kontrolloni një shirit led neopixel ose shirit led ws2812 nga telefoni juaj Android ose iphone duke përdorur lidhshmërinë Bluetooth. Në mënyrë që të mundeni shtoni shiritin neopixel led në shtëpinë tuaj së bashku me Arduino me
Avioni Rc i kontrolluar nga Bluetooth (i papërshkueshëm nga rrëzimi): 8 hapa
RC Aeroplani i kontrolluar nga Bluetooth (i papërshkueshëm nga rrëzimi): Të dashur, kalofshi një ditë të mrekullueshme !!! Pasi punova për më shumë se disa vjet tani jam në gjendje të bëj rc aeroplan rc të kontrolluar me kosto të ulët Bluetooth, i cili është gjithashtu i vogël dhe i qëndrueshëm gjithashtu. lidhjen e videos mund ta gjeni më poshtë.https: //youtu.be/R8zGcuEch48Planet tërheqin gjithmonë m
Smartphone i kontrolluar nga Smartphone Shporta: 7 hapa
Smartphone Kontrolli i Smart Smart Cart: Vizitimi i qendrave tregtare mund të jetë kënaqësi. Por zvarritja e Shportës së Blerjes ndërsa e mbushni me gjëra është diçka që është absolutisht e bezdisshme. Dhimbja e shtyrjes përmes atyre rreshtave të ngushtë, duke bërë ato kthesa të mprehta! Pra, këtu (një lloj) oferte që ju mund të