Мазмұны:
- 1 -қадам: Барлығын бөлшектеңіз
- 2 -қадам: Сандық параметрлерге арналған түймелер
- 3 -қадам: қозғалтқыш конденсаторы
- 4 -қадам: Сағаттың жаңа беті
- 5 -қадам: Ескі ұялы телефоннан сандық дисплей
- 6 -қадам: тізбектерді қосу
- 7 -қадам: Оңай қосылуға арналған біріктіру тақтасы
- 8 -қадам: қуатты орнату
- 9 -қадам: микробағдарламаны зарядтауға және жаңартуға арналған шағын USB
- 10 -қадам: Қорытынды жиналыс
- 11 -қадам: Кодекс
- 12-қадам: Қадамдық бейне
- 13 -қадам: Қорытынды сөздер
Бейне: Ескі дабыл мен Arduino көмегімен ауа райы болжамы: 13 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Менде бұзылған оятқыш болды, мен оны сағаттық және ауа райын болжайтын станцияға айналдыру туралы ой келді.
Бұл жоба үшін сізге қажет:
- Ескі дөңгелек оятқыш
- Ардуино Нано
- BME280 сенсорлық модулі (температура, ылғалдылық, қысым)
- СКД дисплей модулі Nokia 5110
- DS1307 RTC сағаты
- TP4056 литий аккумуляторы
- Ескі Li-ion батареясы ұялы телефоннан шығарылды
- Шағын 3.7 -тен 5 -ке дейін күшейткіш модуль
- Жарыққа тәуелді резистор (LDR - жарық өлшегіш)
- Зумер (ескі компьютерден құтқарылған)
- 3 түйме
- Көптеген резисторлар (2x10k, 270 Ом) және транзистор (2N2222A немесе ұқсас)
- Кейбір кең таралатын түтік
- алдыңғы пластинаны безендіру ретінде пайдалану үшін ПХД сынықтары
- Micro-USB ұзартқыш кабелі (әйелдер мен ерлердің екеуі де Micro-USB)
- 2х8 см прототип тақтасы және кейбір сымдар
1 -қадам: Барлығын бөлшектеңіз
Алдымен мен ескі сағатты бөлшектедім. Қоңырау, мотор, сынған сағат механизмі …
2 -қадам: Сандық параметрлерге арналған түймелер
Жаңа сағат толықтай цифрлы болатындықтан, оның ішінде шағын компьютер бар, мен бүйіріне әдемі 3 қарапайым түймені қостым.
Алюминийдің сынық бөлігін пайдаланып, жапсырма жасау үшін қабатты қиып алдым. Жапсырмаларға арналған әріптер әріптер мен қара маркердің көмегімен жасалды.
3 -қадам: қозғалтқыш конденсаторы
Мен дабылды мотормен қосу үшін ескі қоңырауларды сақтаймын. Ескі сынған сағат механизмінде 104 белгісі бар керамикалық конденсатор болды. Мен оны тақтадан алып тастадым және тікелей қозғалтқышқа дәнекерледім - бұл дабыл кезінде қозғалтқышты қосқанда қуаттың көтерілуін болдырмауға көмектеседі. Айта кету керек, қозғалтқыш транзистор арқылы басқарылады, бірақ бұл туралы кейінірек.
4 -қадам: Сағаттың жаңа беті
Мен сағаттарға жаңа бетті жасауды шешкендіктен - мен қоқыс үйіндісінен электр тақтасын алдым және барлық компоненттерді тез жою үшін құрылысшы мылтықты қолдандым. Ортасындағы тесік жаңа сағаттың цифрлық экранына арналған.
5 -қадам: Ескі ұялы телефоннан сандық дисплей
Бұл жоба үшін мен ескі Nokia 5110 ұялы телефонының СКД экранын пайдалануды шештім. Бұл экрандар модуль ретінде сатылымда кеңінен таралған, олар өте аз қуат алады және Arduino үшін жақсы кітапханалар бар. Егер сіз 5110 экраны бар жаңа модуль сатып алсаңыз - сіз планетаны құтқарасыз, себебі барлық жаңа модульдер құтқарылған 5110, 3110 және 3210 телефондарынан жасалған!
6 -қадам: тізбектерді қосу
Сіз бұл сағатты басқару үшін Arduino тақтасын қолдануды жоспарлап отырмын деп болжаған боларсыз. Жоба тіпті жаңадан Arduino жанкүйерлері үшін де қайталануы мүмкін, себебі мен өзімнің жеке тақталарымды жасаған жоқпын. Бұл Arduino Nano тақтасы, оған модульдері қосылған - BME280 температурасы, қысымы мен ылғалдылығы сенсоры, DS1307 RTC сағаты, TP4056 литийлі аккумуляторлық зарядтағыш, кіші 3.7в -5в күшейткіш модулі, жарыққа тәуелді резистор (LDR - жарық өлшегіш) және дыбыстық сигнал (ескі компьютерден алынған).
Эскиздерді де қараңыз - олар барлық байланыстарды көрсетеді. Менің ойымша, бәрін оқу және түсіну өте оңай, бірақ егер сізде сұрақтар болса, төмендегі түсініктемелерде сұраңыз.
Орнату туралы бірнеше ескертулер:
- Қозғалтқыш батареядан тікелей транзистор арқылы қосылады. Arduino транзисторды резистор мен DW P5 түйреуіші арқылы басқарады.
- S7 коннекторы үшін D7-12 түйреуіштері қолданылады. Жерге және ВКС байланыс тақтасындағы рельске қосылған.
- LDR сағат тіліне орнатылды және резистор + 3 шығатын сымдар сағат тілінің артқы жағына дәнекерленген.
- Түймені қосу үшін мен Arduino ішіндегі ішкі PULLUP функциясын қолдандым. Мәзір түймесі үзіліске бекітілген, мен кейін ғана үзіліс үшін ішкі PULLUP қолдануға болатынын түсіндім. Мәзір түймесінің үзілуі код түймелердің күйін үнемі сканерлемеуі үшін қажет.
- Сағат батареяның күйін бақылайды және көрсетеді, сондықтан батарея A0 түйреуішіне тікелей қосылады. Батареяның кернеуі ешқашан 4.2 В жоғары болмайды, сондықтан батареяны Arduino аналогтық істікшесіне тікелей қосу қауіпсіз.
- Дыбыстық сигнал PWM D6 істігіне тікелей қосылған. Бұл жақсы тәжірибе болмаса да, мен одан бас тарттым, өйткені Arduino Nano жоғарыда айтылғаннан жоғары спецификацияны өңдей алады, сонымен қатар дыбыстық сигнал үздіксіз жұмыс істемейді. Дәл осындай қондырғы ESP тақталарындағы түйреуіштерді оңай күйдіріп жібереді, сондықтан мұндай жағдайларда мен транзисторлық басқаруды қолдануды ұсынамын.
- Сағаттың қосқышы болды, сондықтан мен оны қолдануға шешім қабылдадым. Бұл артқы жағында табиғи көрінеді.
7 -қадам: Оңай қосылуға арналған біріктіру тақтасы
Барлық модульдер оң және жерге қосылымды қажет етеді, сондықтан мен 2x8 см прототиптік тақтаны қолдануды шештім және оған 5В және жердегі рельстерді дәнекерледім. Мен сонымен қатар I2C шағын рельсін жасадым, себебі менде I2C интерфейсін қолданатын бірнеше модуль болды.
Екінші жағынан, мен қажет болған жағдайда модульдерді қосу және ажырату үшін стандартты түйреуіштерді дәнекерледім.
Кейбір қосымша компоненттер сонымен қатар моторды басқаруға арналған транзистор мен резистор және Үзілісті пайдаланатын Мәзір түймесінің резисторы сияқты дәнекерленген. Мен схеманы алдыңғы бөлімде көрсеттім.
btw Бірінші суретте LDR сенсоры сағат бетіне орнатылғанын көре аласыз ба?
8 -қадам: қуатты орнату
Мен бұл сағатты қосу үшін ұялы телефоннан ескі литий-иондық батареяны қолдандым. Әдетте ауыстырылатын ұялы телефон батареялары әлі де жақсы сыйымдылыққа ие (жаңадан болғанның кем дегенде жартысы). Олардың артықшылығы-оларда кірістірілген разрядтан қорғау тізбегі бар және олар өте жұқа, сондықтан оларды шағын ғарыштық сценарийлерде қолдануға болады.
Батареяны қосу үшін сымды аккумулятордағы + және - түйреуіштерге дәнекерлеңіз. Уайымдамаңыз, сіз ұяшыққа зақым келтірмейсіз, себебі контроллер және түйреуіштер мен жасушаның химиялық заттарының арасында бос орын бар.
Бұл суретте сіз батареяны, сонымен қатар TP4056 заряд контроллерін, 5В күшейткішті бірге және батареяға қосылғанын көре аласыз. Мен бәрін оқшауланған және жинақы етіп жасау үшін қысқартатын түтікті қолдандым.
9 -қадам: микробағдарламаны зарядтауға және жаңартуға арналған шағын USB
Мен бәрін дәнекерлегеннен кейін, артқы панельдегі дыбыстық сигналды және температура/қысым/ылғалдылық сенсорын желімдедім. Олардың барлығы ескі сағатты басқару пультінің қолданыстағы ұяларына жақсы орнатылған.
Енді артқы жағында Micro USB портын орнату уақыты келді. Нано Mini USB қолданса, неге Micro USB? Себебі, үйде USB кабельдерінің көпшілігі ұялы телефоннан шығарылған, сондықтан сағаттар оны қабылдай алса ыңғайлы болар еді.
Мен оны сағаттар мен ауа райының функцияларын зарядтау үшін де, жаңарту үшін де қолданғым келгендіктен - мен USB кабелін алып тастадым, қуат сымдарын TP4056 зарядтау құрылғысы мен Data+/Data сымдары арқылы Arduino Nano USB розеткасына жібердім. Сіз мұны алдыңғы тарауларда көрсеткен схемадан көре аласыз.
10 -қадам: Қорытынды жиналыс
Енді бәрін бастапқы сағатқа жинайтын уақыт келді. Мен компоненттер мен модульдерді оқшаулау үшін қысқарту түтігін қолдандым. Тіпті Arduino шөгілетін түтікке оралған.
Әр компоненттің қайда орналастырылғанын білу үшін бірінші фотосуретке апарыңыз.
11 -қадам: Кодекс
Көріп отырғаныңыздай, сағат ішіне толық салынған. Бұл, әрине, бағдарламалау дағдылары бар екенін ескере отырып, менде болған ескі сағатқа қарағанда күрделі нәрсе жасауға мүмкіндік берді. Мен бастапқы кодты жаздым, бірақ досымнан маған көмектесуін сұрадым.
Әзірге, сағаттан басқа, бұл жоба қолдайтын функциялар:
- Уақыт пен күнді көрсету (сол экрандағы дабылдың уақыты мен қосылуы)
- Экран қараңғы жерде немесе қозғалыс анықталғанда жанады (жарықтың өзгеруіне байланысты)
- Ауа райы болжамы (шуақты, бұлтты, жаңбырлы)
- Температураны, қысымды және ылғалдылықты көрсету (ылғалдылық үшін ол оның тым құрғақ екенін көрсетеді)
- Параметрлер мәзірі: дабыл, уақытты өзгерту, күнді көрсетуді қосу/өшіру, ауа райының өзгеруі туралы дыбыстық хабарландыруларды қосу/өшіру және империялық және метрикалық бірліктер арасында ауысу
- Дабыл параметрлері - қосу/өшіру, уақытты орнату, әуенді және/немесе хабарландыруларға арналған қоңырауларды орнату
Соңғы код:
Келешекте код жаңа мүмкіндіктермен жаңартылады, сондықтан микробағдарламалық жасақтаманың жаңартылғанын тексеріңіз:-)
Егер сіз Arduino әлемінде жаңадан болсаңыз, мына қадамдарды орындауды ұсынар едім:
- Тақтаға USB драйверін орнатыңыз (мысалы, CH340)
- Arduino IDE орнатыңыз
- Бұл жобада пайдаланылатын кітапханаларды орнатыңыз
- GitHub -тен жүктеп алыңыз және Micro USB кабелі арқылы сағатқа жобаның соңғы кодын жүктеңіз (ұялы телефоннан қолдануға болады)
Болжау алгоритмі келесідей:
Arduino Nano әр 12 минут сайын BME280 сенсорынан жаңа деректер алады. Өлшеу циклы 3 сағатты құрайды. 3 сағаттан кейін қысымды бақылау диапазоны (3 сағат ішінде максималды және минималды мән) ағымдағы диапазондағы және ағымдағы қысым мәніндегі орташа мәндерге қатысты ауысады. Қысымның бағыты ағымдағы қысым мәнімен әр сағат сайын сақталады. болжамды есептеу үшін кПа бірліктері қолданылады.
Нано жадының шектеулі болуына байланысты болжау алгоритмін жеңілдетуге тура келді. Бірақ жеңілдетулерге қарамастан, ол жауын -шашын мөлшерін алдағы 12-24 сағат ішінде болжай алады, дегенмен бұл болжам пессимистік болып табылады - әдепкі мән - бұлтты ауа райы.
«Күн шуақты ауа райы» - қысымның ағымдағы мәні нормадан 7 балға жоғары, қысым төмендемейді және соңғы 3 сағат ішінде минималды және максималды мәндер арасындағы айырмашылық 2 балдан аспайды.
Ықтимал жауын -шашын «Жаңбырлы ауа райы» - ағымдағы қысым нормадан 15 баллға төмен, ал минимум мен максималды мәндер арасындағы айырмашылық 2 баллдан асады НЕМЕСЕ қысым төмендейді және ағымдағы мән мен норма арасындағы айырмашылық 3 - 30 балл.
Болжаудың сапасын жақсарту үшін негізгі код файлындағы «биіктігін» өзгерту ұсынылады. Сіз өзіңіздің биіктігіңізді мына жерден ала аласыз, мысалы:
12-қадам: Қадамдық бейне
Егер жоғарыда айтқанымды орындау қиын болса, мұнда барлық қадамдары бар бейне нұсқасы бар.
13 -қадам: Қорытынды сөздер
Жалпы, менің көзқарасым бойынша, бұл жобаның күрделілік деңгейі жоғары емес және оны кез келген адам жасай алады. Егер сізде ескі сағат болмаса, жергілікті барахолкадан арзан бағаны таба аласыз.
Барлық компоненттер төмен бағаға ие және Sparkfun/Aliexpress/eBay/Amazon -да қол жетімді.
Бұл оқулық сіз үшін қызықты болды деп үміттенемін және егер сіз менің сағаттағы алғашқы нұсқаулықты қолдайтын болсаңыз, риза болар едіңіз.
Сағат сайысында екінші орын
Ұсынылған:
DIY қарапайым Arduino ауа райы болжамы: 3 қадам
DIY қарапайым Arduino ауа райы болжамы: Бұл қысқа мерзімді жергілікті ауа райы болжауының тамаша құралы
Ауа райы болжамы маяк: 4 қадам (суреттермен)
Ауа райы болжамы маяк: Бұл жобада мен келесі күннің ауа райы болжамына қол жеткізу үшін 3D басып шығаруды, жарық диодты жолақтарды, қуат көзін және Wi -Fi байланысы бар Arduino тақтасын қолданған жергілікті ауа райы маяк үлгісін ұсынамын. Шараның негізгі мақсаты
Бұлтты ауа райы болжамы: 11 қадам (суреттермен)
Ауа райын болжау бұлты: Бұл жоба Raspberry Pi Zero W. көмегімен ауа райы бұлтын жасайды, ол Yahoo Weather API -мен қосылады және келесі күнге арналған болжамға байланысты түстерді өзгертеді. Мен Висконсин газ ғимаратынан шабыт алдым, оның төбесінде жалын өзгереді
3 күндік ауа райы болжамы: 4 қадам
3 күндік ауа райы болжамы: 3 күндік ауа райы болжамы сіз қалаған жерде немесе сіздің IP мекенжайыңыздың орналасқан жеріне негізделген 3 күндік ауа райы болжамын ұсынады. Жоба Wunderground Weather API қызметін қолданады, ол JSON форматындағы жауаптарды береді
Ауа райы шамы - Ауа райы мен температура бір қарағанда: 8 қадам
Ауа райы шамы - Ауа райы мен температура бір қарағанда: Бұл сиқырлы шамды қолдана отырып, сіз ағымдағы температура мен жағдайды бірден біле аласыз