Мазмұны:

Күннің шығуын басқаратын жарқын жарық: 6 қадам
Күннің шығуын басқаратын жарқын жарық: 6 қадам

Бейне: Күннің шығуын басқаратын жарқын жарық: 6 қадам

Бейне: Күннің шығуын басқаратын жарқын жарық: 6 қадам
Бейне: Басқа тышты деген осы 😡 2024, Қараша
Anonim
Күннің шығуын басқаратын жарқын шам
Күннің шығуын басқаратын жарқын шам
Күннің шығуын басқаратын жарқын шам
Күннің шығуын басқаратын жарқын шам

Сіз жұмыс орнынан оянуыңыз қажет әдеттегі уақытта 7 -де ояндыңыз ба, және сіз қараңғылыққа тап болдыңыз ба? Қыс - қорқынышты уақыт, иә? Сіз түн ортасында оянуыңыз керек (әйтпесе неге қараңғы?), Төсегіңізді жұлып алып, жартылай саналы денеңізді душқа жіберіңіз.

Бұл жоба мәселенің бірін шешуге бағытталған - таң қараңғылығы.

Айналасында күн сәулесінен шығатын арзан шамдар көп, бірақ олардың барлығы қуаты аз және бозғылт. Олар түнгі шамға ұқсайды, бұл сіздің ұйқыңызды жақсартады. Мен қалағандай емес.

Сонымен қатар, жарқын шамды қосу сізді бірден оятады, бірақ жұмсақ емес. Мен қалаған нәрсе - бұл екі тәсілдің комбинациясы - төмен жарықтықпен жану, баяу толық жылдамдыққа жету, содан кейін нақты дабыл сөнеді және сіз енді ұйқысыз боласыз. Оған құстардың әнін қосайық, және сіз күн сайын таңертең аспанда оянасыз!

1 -қадам: шамдар жиыны

Лампа жиыны
Лампа жиыны
Лампа жиыны
Лампа жиыны

Ең алдымен, бізге шамның өзі қажет. Менде ақ қабырғалары мен төбесі бар өте үлкен бөлме бар, сондықтан мен 7 GU10 жарықдиодты шамдарды таңдадым, әрқайсысы 6 Вт, 40 Вт -тан астам таза қуат! Бұл сізге күндізгі уақытты сезіну үшін жеткілікті. Сондай -ақ, оны күндізгі бөлмедегі әдеттегі жарықтандыру ретінде пайдалануға болады.

Сіз оны қалай жинайтыныңыз, қандай лампаларды розеткамен қолданатыныңыз маңызды емес. Барлығы маңызды - бұл сөндіргіш шамдар болуы керек!

Менің жағдайда, менде 7 GU10 розеткасы бар ағаш тақтай бар, барлығы бір -бірімен қосылған. Мен оны кейін пластикалық қорапқа саламын.

2 -қадам: Диминг теориясы

Күңгірттеу теориясы
Күңгірттеу теориясы

Теорияда теория мен практиканың айырмашылығы жоқ. Іс жүзінде бар.

ESP32/Arduino диммерін басқару мен ойлағандай қарапайым емес болып көрінді. Менде RobotDyn айнымалы токтың жарықтандырғыш модульдерінің бірі болды. Өндіруші бұл үшін кітапхананы ұсынады. Ол ESP32-де жұмыс істемейді (және оған бейімделу өте қиын, себебі ол ATMega-ге арналған төмен деңгейдегі реестрге көп кіруді қолданады), Arduino Nano-дағы жұмыстардың орташа төмен жарықтықта қорқынышты жыпылықтауын береді. Сондықтан мен мұның бәрі қалай жұмыс істейтінін зерттеуге және өз жолымды таңдауға біраз уақыт жұмсадым.

Кішкене теория

Таңдалған диммер модулі өте танымал TRIAC: BTA16 пайдаланады. Бұл туралы көптеген мақалалар бар. Мен оны осында қорытындылауға тырысамын.

TRIAC - кіріс оң немесе теріс кернеуді шығысқа жібере алатын немесе оны блоктай алатын модуль. Әдепкі бойынша, ол бәрін блоктайды. Оны ашу үшін біз оған 100 адамға арналған кіру сигналында жоғары сигнал беруіміз керек. Содан кейін ток нөлге дейін төмендейді, ол кіріс кернеуі нөлдік кернеуді кесіп, белгіні өзгерткен кезде болады. Содан кейін келесі циклде біз тағы 100 бізге импульс жасауымыз керек және т.б. Импульсті қашан беру керектігін таңдай отырып, біз жарықтықты басқарамыз: мұны ең басында жасаңыз, ол 100% қуат берілуіне жақын болады. Кейінірек жасаңыз, ол күңгірт болады. Жоғарыдағы сызбаны қараңыз, түсіндіріңіз.

Циклдің бір нүктесінде импульстарды генерациялау үшін, біз оның қашан басталатынын нақты білуіміз керек. Диммер модулінде Zero-Cross детекторы орнатылған. Ол кернеу нөлден асқан сайын сигналды көтереді (біз оны Arduino-да аппараттық үзіліс ретінде аламыз).

3 -қадам: Қараңғылау практикасы

Қараңғылау практикасы
Қараңғылау практикасы

Ия, егер сізде шамның күңгірттенуі болмаса және ұйықтап жатқан көзіңізге 40 Вт қуатты қосса, сіз осылай оянар едіңіз.

Жалпы мәселелер

Біз шешуіміз керек көптеген мәселелер бар.

Жыпылықтау.

Микроконтроллердің уақыты қақпаның шығуын қосу мен өшіруде нақты болуы керек. RobotDyn кітапханасы әр 100us таймердің үзілуін қамтамасыз етеді және тек таймердегі қақпа деңгейін өзгертеді. Бұл оңтайлы мәннен +/- 50 микросекундқа аз болуы мүмкін дегенді білдіреді. Бұл жоғары жарықтықта жақсы нәтиже береді, бірақ төмен жарықтықта көп жыпылықтайды. Егер микроконтроллер көп нәрсені жасаса, ол уақыт дәлдігін төмендетеді, сондықтан диммер үшін арнайы микроконтроллер қолданылуы керек.

Жарық диодты жарықтандырғыштарда орнатылған қуат түрлендіргіші бар, ол жеткіліксіз жұмыс істеуден бас тартады. Менің шамдарым 10-11%бастап жақсы жұмыс істей бастады.

Бұл шаманың өзінде шамдарымның кейбірі іске қосудан бас тартты. Кейінірек жарықтылықты арттырған кезде де олар қараңғыда қалады. Сондықтан біз ӨШІРУ күйінен оң жарықтыққа өткенде, біз 5 циклді қыздыру кезеңінен бастаймыз, біз шамдарға толық қуат береміз. Содан кейін біз қалаған жарықтықты жалғастырамыз. Бұл дерлік байқалмайды, бірақ шынымен көмектеседі.

Желі жиілігі 50/60 Гц. Келесі нөлге дейін қанша күту керектігін білу керек. Бұл өте қарапайым - біз соңғы екі үзіліс арасындағы уақыт айырмашылығын қарастырамыз.

Жарықтылықтың біртіндеп өзгеруі. ESP32 өте баяу, HTTP немесе тіпті WebSocket сұранысын өңдеуге 0,5 секунд кетеді, сондықтан жарықтықтың біркелкі ауысуын күтпеңіз, оны қандай да бір түрде диммер деңгейінде енгізу қажет. Сондықтан, ол сериялық порттан жаңа жарықтық алған кезде, ол мақсатты ғана қояды, содан кейін уақыт өте келе оған баяу жақындайды.

Шешім

Міне диммер үшін менің қарапайым Arduino коды. Ол сериялық кірістен пәрменді күтеді (жаңа байтпен бір байт), Zero-Cross үзулерін өңдейді, TRIAC-ты басқарады, жоғарыдағы барлық мәселелерді шешеді.

4 -қадам: Шам контроллері (ESP32)

Шам контроллері (ESP32)
Шам контроллері (ESP32)
Шам контроллері (ESP32)
Шам контроллері (ESP32)

Міне, менде бар барлық компоненттердің қосылу схемасы. ESP32 тақтасы мен қолданатыннан өте ерекшеленеді (Heltec), сондықтан таңдалған түйреуіштер біртүрлі көрінеді, бірақ ол әлі де жақсы жұмыс істеуі керек. Жобаңызда әр түрлі түйреуіштерді қолданыңыз.

Міне, бәрін басқаратын код. Бұл өте тікелей.

Негізгі ерекшеліктері

Шам WiFi -ге қосылады, 81 -портта WebSocket серверін іске қосады, командаларды күтеді.

{«command»: «CMD», «data»: {}}

Әзірге тек екі пәрменге қолдау көрсетіледі: «set_brightness» және «update_settings», олар өзін-өзі сипаттайды.

NTP-ден уақыт алу. Мен схеманы нақты уақытты қосқым келмейді. Бізде Интернетке қол жетімділік бар, яғни біз NTP серверінен нақты уақытты ала аламыз, содан кейін жүйелік таймерлердің көмегімен ағымдағы уақытты бақылай аламыз.

Күннің шығуы туралы дабыл. Бір дабылды орнатуға болады. Бұл шын мәнінде не істейді: ең аз жарықтықтан басталады және біртіндеп 10 минут ішінде толық жарықтылыққа өтеді. Содан кейін ол бірнеше сағат бойы қалады. Содан кейін ол 60 секунд ішінде біртіндеп өшеді.

Жоғарыдағы барлық параметрлер конфигурацияланған.

Құстар ән айтады. DFPlayer mini музыканы ойнату үшін қолданылады. Бұл үшін көптеген нұсқаулықтар бар, бірақ сізге тек 0001.mp3 деп аталатын бір файлмен FAT32 форматталған MicroSD картасын қосу қажет. Бұл файл сізге ұнайтын кез келген нәрсеге ие бола алады, менің жағдайда бұл құстардың 15 минут ән салуы (ол айналады), және бұл менің таңымды таң қалдырады. Қуатта үлкен конденсатор бар екенін және сериялық желіде 1 кОм резистор бар екенін ескеріңіз. ESP32 және DFplayer - олар міндетті емес, бірақ шуды азайтуға көмектеседі.

Барлық параметрлер EEPROM -ге жазылады және іске қосылған кезде жүктеледі. Бұл шамды кем дегенде дабыл функциясы бар контроллерсіз пайдалануға мүмкіндік береді.

Кейбір ақпарат OLED экранына шығарылады. Менің Heltec ESP32 қондырылған SSD1306 128X64 I2C экраны бар. Білемін, қорап ұсқынсыз көрінеді, мен кейбір заттарды 3D басып шығардым, саңылаулар мен терезелерді бұрғымен қиып алдым. Тез, лас, бірақ ол жұмыс істейді!

5 -қадам: Басқару тақтасы

Басқару панелі
Басқару панелі
Басқару панелі
Басқару панелі

Бұл жобаның жүрегі. 7-дюймдік түпнұсқасы бар Raspberry Pi, Kivy-дің алдыңғы бөлігінде жұмыс істейді.

Міне толық код.

Ерекшеліктері

Мен Kivy -ді жақсы көремін, бұл пайдаланушы интерфейсіне арналған Python негізі. Өте қарапайым, бірақ икемді және тиімді (жоғары өнімділік пен аппараттық жеделдету үшін көптеген C кодын қолданады).

Ауа райы. Ағымдағы температура мен қысымды сыртта көрсетіңіз. Егер сіз қашықтан басқару сенсорын қоссаңыз - ішкі температура, сонымен қатар келесі 12 сағатқа ауа райы болжамын сұрайды және талдайды және жаңбыр ықтималдығы туралы кеңес береді.

SunriseLamp контроллері Басқа панель дабыл туралы негізгі ақпаратты көрсетеді және жарықтылықты реттеуге мүмкіндік береді. Егер сіз параметрлерге өтсеңіз, сіз шамның кез келген параметрін, соның ішінде дабыл кестесін, дыбыстың максималды дыбыс деңгейін және т.б.

Screensaver. Қандай да бір әрекетсіздіктен кейін экранда «Өмір ойынын» көрсетеді.

Бұрын бұдан да көп болатын, бірақ басқа нәрселер пайдасыз болып көрінді.

Орнату

Мен бәрін Raspbian -ға қолмен орнаттым, енді айта аламын: менің қателіктерімді қайталама. KivyPie пайдаланыңыз, онда бәрі алдын ала орнатылған.

Бұдан басқа, код қоймасындағы орнату нұсқаулығын орындаңыз.

6 -қадам: ләззат алыңыз

Жеке мен бұл құрылғыға ризамын. Мен оны күндізгі уақытта үйде негізгі жарықтандыру ретінде қолданамын, және ол таңертең оянуға мүмкіндік береді, бұл таңқаларлық.

Мен білемін, нұсқаулар өте түйіршікті және сипаттамалы емес. Егер біреу дәл осылай жасаса және проблемалар туындаса - мен көмектесуге қуаныштымын!

Ұсынылған: