Мазмұны:
- 1 -қадам: материалдарды жинаңыз
- 2 -қадам: Шамның құрылымын құру
- 3 -қадам: 3D пішіндері
- 4 -қадам: Компоненттердің схемасы
- 5 -қадам: Кодекс
- 6 -қадам: шамды басқару
- 7 -қадам: көңіл -күй шамынан рахат алыңыз
Бейне: Bluetooth смартфонмен басқарылатын ақылды жарықдиодты шам: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Мен әрқашан жарықтандыру құрылғыларын басқаруды армандаймын. Содан кейін біреу керемет түсті жарықдиодты шам жасады. Мен жақында Youtube -те Джозеф Кашаның жарықдиодты шамымен кездестім. Бұдан шабыт алып, мен заманауи дизайнды сақтай отырып, бірнеше функцияларды қосуды шештім.
Жоспар-Bluetooth модулін және WS2812B RGB адрестік диодты жолағын қосу арқылы шамды қолданушыға ыңғайлы ету. Бұл жарықтандырудың түсін тек смартфон қосымшасының көмегімен басқаруға мүмкіндік берді.
1 -қадам: материалдарды жинаңыз
Құралдар:
• Дәнекерлеу станциясы
• Жылытқыш үрлегіш
• Бұрғылау машинасы
• Дөңгелек аралау
• Джигсо
• Сым кескіш тістеуік
• Тар мұрынды қысқыштар
Материалдар:
• Мөлдір акрил тақтасы
• Жапон кипарис ағашы (немесе кез келген ағашты қолдануға болады, егер ол тұрақты және берік болса)
• Бұрандалар
• Тот баспайтын болаттан жасалған полюс немесе таяқша
• Сымдар (мен қызыл және қара сымды қолданамын)
• Пісіру қалайы
Электроника компоненттері:
• Ардуино Нано
• HC-05 Bluetooth модулі (мен оны қолдануды шештім, себебі WSP модуліне қарағанда кодтау оңай ESP8266)
• WS2812B адрестелетін RGB жарық диодты жолағы
• LM2596 төмендету модулі
• DC баррель қуат ұясы
2 -қадам: Шамның құрылымын құру
Бұл қадамда менде ағаш өңдеу әдісі мен 3D-басып шығару әдісінің құрылымын құрудың екі әдісі бар. Мен бірінші әдісті қолданамын. Егер сіз оны 3D принтермен жасағыңыз келсе, мен жасаған модель үшін 2 -қадамға өтіңіз.
Шамның жоғарғы бөлігі үшін мен акрил тақтасын жоғарыда көрсетілгендей 90 ° бұрышқа дейін қыздырамын және майыстырамын. Мен оны керемет бұрышқа және бағытқа бүгу үшін көп уақыт қажет.
Әрі қарай, шамның төменгі бөлігі үшін. Өкінішке орай … мен шамның төменгі бөлігінде жұмыс істеп жатқан күні мен құрылысты суретке түсіруді мүлде ұмытып кеттім! Мен бұл жобаны аяқтаған кезде түсіндім. Бірақ мен сізге шамның төменгі бөлігін өлшеуді ұсынуға тырысамын.
Негізінде, сізге 13x6x2cm (LxHxW) өлшемі бар төрт ағаш кесу қажет. Әрі қарай, сіз ағаштың шетінде баспалдақ тәрізді кесуді кесуіңіз керек. Сурет жоғарыда көрсетіледі.
3 -қадам: 3D пішіндері
3D принтері бар кез келген адам үшін сіз дұрыс қадам жасайсыз. Бұл шамды пайдаланушыға ыңғайлы етті.
Шынымды айтсам, бұл мен жасаған ең қиын қадам болды. Бұл бағдарламалық жасақтаманы орнатқаннан кейін бірден жасаған бірінші ісім!
Мен шамның құрылымын жобалау үшін Sketchup Pro қолданамын. Өкінішке орай, мен оның ішкі бөлігін жобалауға шебер емеспін. Менің 3D моделіме сілтеме төмендегі файлда.
4 -қадам: Компоненттердің схемасы
Мен компоненттердің схемасын құру үшін Fritzing қолданамын. Схема іс жүзінде өте қарапайым.
5 -қадам: Кодекс
Бұл көңіл -күй лампасын кодтау үшін мен Arduino IDE кейбір кітапханаларын қолдандым. Кітапханалар 7 -қадамда тізімге енгізіледі.
Кодты алу үшін сізге Arduino бағдарламалық жасақтамасы қажет. Мен жүктеу сілтемесін осында беремін.
Сонымен қатар, эскиз немесе код төменде көрсетіледі?
Мен кодты файлды Github.com сайтында төмендегі кодты көшіру үшін тым ұзақ болған жағдайда ұсындым;)
#қосу #қосу #қосу #ifdef _AVR_ #қосу #endif
SoftwareSerial BT (10, 11);
#LED_PIN 7 анықтау #NUM_LEDS анықтау 60 #ЖАРҚЫНДЫҚТЫ анықтау 200 #ЖЫЛДЫҚТЫ анықтау 10 #ДАСТЫРАА айқындау 0 #RAINBOW_SPEED 50 CRGB светодиодтарын анықтау [NUM_LEDS];
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 = LOW; bool LilacOld = LOW; bool RainbowOld = LOW; bool rgbOld = LOW; int showType = 0;
жарамсыз орнату () {
FastLED.addLeds (leds, NUM_LEDS); //////////
BT.begin (9600);
BT.println («Arduino қосылған»);
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 White = LOW; bool Blue = LOW; bool Қызыл = LOW; bool Green = LOW; bool Топаз = LOW; bool Lilac = LOW; bool Радуга = LOW; bool rgb = LOW; bool ende; if (BT.available ()) {a = (char) BT.read ();
егер (a == 'o')
{өшіру = ЖОҒАРЫ; BT.println («Светодиодтарды өшіру..»);
} басқа {
өшіру = LOW; } // =============================================== ===========================================
егер (a == 'w')
{Ақ = ЖОҒАРЫ; BT.println («Светодиодты ақ түске айналдыру»);
} басқа {
Ақ = LOW; } // =============================================== ===========================================
егер (a == 'b')
{Көк = ЖОҒАРЫ; BT.println («КӨКТІ ӨЗГЕРТУ»); } else {Blue = LOW; }
// ===========================================================================================
егер (a == 'r')
{Қызыл = ЖОҒАРЫ; BT.println («ҚЫЗЫЛҒА ӨЗГЕРУ»); } else {Red = LOW; }
// ===========================================================================================
егер (a == 'g')
{Жасыл = ЖОҒАРЫ; BT.println («ЖАСЫЛҒА ӨЗГЕРУ»); } else {Green = LOW; }
// ===========================================================================================
егер (a == 't')
{Топаз = жоғары; BT.println («ТОПАЗҒА ӨЗГЕРУ»); } else {Topaz = LOW; }
// ===========================================================================================
егер (a == 'l')
{Сирень = жоғары; BT.println («ЖЕЛІСІЗГЕ ӨЗГЕРУ»); } else {Lilac = LOW; }
// ===========================================================================================
егер (a == 'a')
{Радуга = Жоғары; BT.println («Радуга анимациясы»); } else {Rainbow = LOW; } // =============================================== ===========================================
егер (a == 'm')
{rgb = HIGH; BT.println («MIX COLORS»); } else {rgb = LOW; }} if (off == LOW &&OOld == HIGH) {delay (20); if (off == LOW) {showType = 0; // Өшірілген анимация 0 типті startShow (showType); }}
// ===========================================================================================
if (White == LOW && WhiteOld == HIGH) {
кешіктіру (20); if (White == LOW) {showType = 1; // 1 типті ақ анимация startShow (showType); }}
// ================================================ =========================================== if (Қызыл == ТӨМЕН && RedOld == HIGH) {кешіктіру (20); if (Red == LOW) {showType = 2; // Қызыл анимация 2 типті startShow (showType); }}
// ===========================================================================================
if (Green == LOW && GreenOld == HIGH) {
кешіктіру (20); if (Green == LOW) {showType = 3; // Жасыл анимация 3 типті startShow (showType); }} // ============================================== ============================================
if (Blue == LOW && BlueOld == HIGH) {
кешіктіру (20); if (Blue == LOW) {showType = 4; // Көк анимация 4 типті startShow (showType); }}
// ===========================================================================================
егер (Топаз == LOW && TopazOld == HIGH) {
кешіктіру (20); if (Топаз == ТӨМЕН) {showType = 5; // Topaz анимациясы Type 5 startShow (showType); }}
// ===========================================================================================
егер (Lilac == LOW & LilacOld == HIGH) {
кешіктіру (20); if (Lilac == LOW) {showType = 6; // Топаз анимациясы Type 6 startShow (showType); }} // ============================================== ============================================
егер (Rainbow == LOW && RainbowOld == HIGH) {
кешіктіру (20);
егер (кемпірқосақ == төмен) {
showType = 8; // Радуга анимациясы Type 8 startShow (showType); }}
// ===========================================================================================
егер (rgb == LOW && rgbOld == HIGH) {
кешіктіру (20);
егер (rgb == LOW) {
showType = 7; // Микс анимация түрі 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = Ақ;
RedOld = Қызыл; BlueOld = Көк; GreenOld = Жасыл; TopazOld = Топаз; LilacOld = сирень; offOld = өшірулі; RainbowOld = Радуга; rgbOld = rgb;
}
жарамсыз startShow (int i) {
қосқыш (i) {
0 жағдай: colorWipe (жолақ. Түс (0, 0, 0), SPEED); // Қара/өшіру
үзіліс;
1 -жағдай: strip.setBrightness (255); // Жарықтықты MAX мәніне өзгертеді
colorWipe (жолақ. Түс (255, 255, 255), ТЕЗ); // Ақ жолақ.setBrightness (BRIGHTNESS); // Жарықтықты әдепкі мәнге қайтару;
2 -жағдай: colorWipe (жолақ. Түс (255, 0, 0), SPEED); // Қызыл
үзіліс;
3 -жағдай: colorWipe (жолақ. Түс (0, 255, 0), SPEED); // Жасыл
үзіліс;
4 -жағдай: colorWipe (жолақ. Түс (0, 0, 255), SPEED); // Көк
үзіліс;
5 -жағдай: colorWipe (жолақ. Түс (0, 250, 255), SPEED); // Топаз
үзіліс;
6 -жағдай: colorWipe (жолақ. Түс (221, 130, 255), SPEED); // сирень
үзіліс; 7 -жағдай: colorWipe (жолақ. Түс (255, 0, 0), SPEED); // Red colorWipe (жолақ. Color (0, 255, 0), SPEED); // Green colorWipe (жолақ. Түс (0, 0, 255), SPEED); // Көк театрChase (жолақ. Color (0, 0, 127), SPEED); // Көк театрChase (жолақ. Color (127, 0, 0), SPEED); // Қызыл театрChase (жолақ. Color (0, 127, 0), SPEED); // Жасыл үзіліс;
8 -жағдай: кемпірқосақ циклы (25);
үзіліс; }} void colorWipe (uint32_t c, uint8_t күту) {үшін (uint16_t i = 0; i
жарамсыз кемпірқосақ циклы (uint8_t күту) {
uint16_t i, j;
for (j = 0; j <256*10; j ++) {// дөңгелектегі барлық түстің 5 циклы (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); кешіктіру (күту); }}
void teatrChase (uint32_t c, uint8_t күту) {
for (int j = 0; j <10; j ++) {// for (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // әрбір үшінші пиксельді қосу} strip.show ();
кешіктіру (күту);
for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // әрбір үшінші пикселді өшіру}}}}
uint32_t Wheel (байт WheelPos) {
WheelPos = 255 - WheelPos; if (WheelPos <85) {қайтару жолағы. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos -= 85; қайтару жолағы. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; қайтару жолағы. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }
6 -қадам: шамды басқару
Шамның түсін смартфон арқылы басқаруға болады.
Алдымен, Google Play Store немесе Apple App Store дүкенінен 'Bluetooth Terminal HC-05' деп аталатын қосымшаны орнату қажет.
Бұл жеке смартфон арқылы шамды басқаруға арналған қадамдар:
1. Смартфонда bluetooth қосыңыз.
2. 'HC-05 Bluetooth терминалы' қосымшасын ашыңыз.
3. Енді экранда жұптастырылған құрылғыларды көру керек. «HC-05» таңдаңыз.
4. Енді сіз смартфоныңызда «Arduino -ға қосылған» белгісін беретін қара экранды көре аласыз.
5. Міне, қызықты жері, егер мәтін ұясына 'b' терсеңіз, шам көк түске айналады. Міне шамға теруге болатын командалардың тізімі:
- ақ түс үшін
- көк үшін b
- g үшін жасыл
- қызыл түс үшін
- топаз үшін
- мен сирень үшін
- кемпірқосақ анимациясына арналған
- o өшіру үшін
Көңілді, дұрыс па?
6. Соңында, бірақ сіз жоғарыдағы суретте көрсетілгендей экранның астындағы түймені өзіңіз қалаған мәтінге теңшей аласыз.
7 -қадам: көңіл -күй шамынан рахат алыңыз
Сізге бұл нұсқаулық ұнайды деп үміттенемін. Бұл мен үшін өте қиын жоба болды, бірақ мен оны 14 жасымда аяқтадым. Болашақ жақсартулар үшін маған кері байланыс беріңіз.
Оқығаныңыз үшін рахмет және Рождество мерекесі!
Ұсынылған:
Bluetooth арқылы басқарылатын DIY ақылды жарықдиодты диммер: 7 қадам
Bluetooth арқылы басқарылатын DIY ақылды светодиодты диммер: Бұл нұсқаулықта ақылды сандық диммерді қалай құру керектігі сипатталған. Диммер - бұл үйлерде, қонақ үйлерде және басқа да көптеген ғимараттарда қолданылатын қарапайым жарық қосқышы. Диммерлік қосқыштардың ескі нұсқалары қолмен жұмыс істейтін және әдетте айналмалы қосқышты қосатын еді
Мумия шамы - WiFi басқарылатын ақылды шам: 5 қадам (суреттермен)
Мумия шамы - WiFi басқарылатын ақылды шам: шамамен 230 мың жыл бұрын адам отты басқаруды үйренді, бұл оның өмір салтын түбегейлі өзгертуге әкеледі, өйткені ол түнде жұмыс істей бастады. Бұл ішкі жарықтандырудың басталуы деп айта аламыз. Енді мен
Микроскоптарға арналған жарықдиодты жарықдиодты жарықдиодты жарықдиодты тақта!: 6 қадам (суреттермен)
Микроскоптар үшін DIY жарықдиодты жарықдиодты PCB! Мен электрониканы қолдануға арналған екінші микроскопты сатып алдым және сіз
Смартфонмен басқарылатын Bluetooth жарық диодтары (Live Music Sync көмегімен): 7 қадам
Смартфонмен басқарылатын Bluetooth светодиодтары (Live Music Sync көмегімен): Мен әрқашан құрылыс салуды ұнататынмын, менің жаңа колледж жатақханамда қорқынышты жарық бар екенін білген соң, мен оны аздап дәмдеуді шештім. *** ЕСКЕРТУ *** бұл жоба менің қондырғыммен бірдей, сіз лайықты мөлшерде жұмыс жасайсыз
Ескі LiIon батареясынан қайта зарядталатын жарықдиодты шам / шам: 15 қадам
Ескі LiIon батареясынан қайта зарядталатын жарықдиодты шам / шам: сәлем, арзан ebay компоненттерінен және ескі электроникадан LI-иондық батареялардан бірнеше қайта зарядталатын шамдар жасадым