Բովանդակություն:
- Քայլ 1: UI ինտերֆեյսի ձևավորում
- Քայլ 2: MCU հաղորդակցություն
- Քայլ 3: Տրամաբանական ծածկագրի գրառում
- Քայլ 4: Սենսորների ձեռքբերում
- Քայլ 5. Գործողության իրական էֆեկտ
Video: STONE LCD Smart Home- ով ՝ 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Այսօր ես ստացա STONE- ի սերիայի նավահանգստի սկավառակը, որը կարող է հաղորդակցվել MCU- ի սերիական նավահանգստի միջոցով, և այս ցուցադրման UI տրամաբանական դիզայնը կարող է ուղղակիորեն նախագծվել `օգտագործելով STONE- ի պաշտոնական կայքում ներկայացված VGUS ծրագրաշարը, որը մեզ համար շատ հարմար է: Այսպիսով, ես պլանավորում եմ օգտագործել այն պարզ սարքի վերահսկիչ պատրաստելու համար, որը ներառում է տարբեր լույսերի կառավարում (հյուրասենյակ, խոհանոց, մանկասենյակ, լոգարան): Միևնույն ժամանակ, կարելի է հավաքել ներքին և արտաքին ջերմաստիճանը, խոնավությունը և օդի որակը: Սա պարզապես պարզ ցուցադրական ծրագիր է, և դուք կարող եք երկրորդական զարգացում իրականացնել իմ տրամադրած կոդի միջոցով: ՔԱՐԻ էկրանի վերաբերյալ որոշ հիմնական ձեռնարկ կարող է այցելել կայք ՝
Կայքն ունի բազմազան տեղեկատվություն մոդելի, օգտագործողի և դիզայնի փաստաթղթերի, ինչպես նաև վիդեո ձեռնարկների վերաբերյալ: Այստեղ ես շատ մանրամասն չեմ անդրադառնա:
Քայլ 1: UI ինտերֆեյսի ձևավորում
Ֆոտոշոփ
Ես նախագծեցի հետևյալ երկու UI էջերը Photoshop- ով.
Այս նախագիծը ընդհանուր առմամբ ունի վերը նշված երկու էջերը: «Լույս» և «Սենսոր» վերին աջ անկյունում այս երկու էջերի անջատիչ կոճակներն են:
«Լույս» էջում կարող եք վերահսկել ձեր տան բոլոր տեսակի լույսերը: «Սենսոր» էջում կարող եք ստուգել տարբեր սենսորների կողմից հայտնաբերված արժեքները:
Վերոնշյալ երկու էջերի նախագծումից հետո մենք կարող ենք կոճակի տրամաբանական ձևավորում իրականացնել STONE- ի պաշտոնական կայքում ներկայացված STONE TOOL ծրագրաշարի միջոցով:
Հարկ է նշել, որ այստեղ ժամանակի ցուցադրման համար օգտագործվող ժամացույցի աղբյուրը ցուցադրման էկրանի ժամացույցի աղբյուրն է, այլ ոչ թե MCU ժամացույցի աղբյուրը:
TAB էջի փոփոխման էֆեկտ
STONE TOOL ծրագրաշարում TAB էջի միացման բաղադրիչ չի գտնվել, այնպես որ ես մտածեցի TAB էջի անջատման էֆեկտին հասնելու այլ մեթոդի մասին:
Դիտարկման միջոցով ես տրամադրում եմ երկու UI պատկեր, որոնք կարող են հայտնաբերվել, որ վերը նշված երկու պատկերները «Լույս» և «Սենսոր» տեքստ են, տարբերությունն այն է, որ դրանց պիքսելների չափերը տարբեր են, ուստի մեզ մնում է միայն երկու պիքսելանոց դիրքը դնել նույն տեքստը, այնուհետև հղման համար ժամանակի և ամսաթվի վերին ձախ անկյունում կարող եք հասնել TAB- ի ՝ էֆեկտ փոխելու համար:
Կոճակի տրամաբանություն
Որպես օրինակ վերցրեք «Հյուրասենյակ» կոճակը: Երբ օգտվողը սեղմում է այս կոճակը, STONE սերիայի նավահանգստի ցուցադրման էկրանը սերիական նավահանգստի միջոցով կուղարկի համապատասխան արձանագրության ցուցումները: Այս հրահանգը ստանալուց հետո օգտագործողի MCU- ն կվերլուծի արձանագրությունը `MCU- ի հետ կապված լույսերի անջատման վիճակը վերահսկելու համար:
Սենսորների ձեռքբերում
Օրինակ ՝ վերցրեք «օդի որակը». Եթե ցանկանում եք ստանալ օդի որակը ներսում, մենք պետք է ունենանք MCU օդի որակը հավաքելու համար, օդի որակի սենսոր, երբ MCU- ի թվային տվյալները հավաքվում են ալգորիթմի միջոցով ՝ համեմատելով օդի որակի առավելություններն ու թերությունները, այնուհետև MCU- ն ուղարկվում է սերիական նավահանգստի միջոցով `« Լավ »կամ« Վատ »պահեստավորման տարածքը ցուցադրելու,« Տեքստային փոփոխական 0 »ցուցադրման բովանդակությունը փոխելու համար, այնուհետև օգտագործողը կարող է ինտուիտիվ կերպով տեսնել որակի վերահսկման արժանիքները: Դրանք ավելի ուշ բացատրվում են MCU ծածկագրում:
Քայլ 2: MCU հաղորդակցություն
STM32- ը MCU է, որին բոլորը ծանոթ են, և դա միջազգային MCU- ի սովորական մոդել է: Հետևաբար, այս նախագծում օգտագործված STM32 MCU- ի հատուկ մոդելը STM32F103RCT6 է:
Կան բազմաթիվ շարքեր STM32, որոնք կարող են բավարարել շուկայի տարբեր պահանջներ: Միջուկը կարելի է բաժանել cortex-m0, M3, M4 և M7, և յուրաքանչյուր միջուկը կարելի է բաժանել հիմնական հոսանքի, բարձր արդյունավետության և էներգիայի ցածր սպառման:
Learningուտ ուսուցման տեսանկյունից կարող եք ընտրել F1 և F4, F1- ը ներկայացնում է հիմնական տիպը ՝ հիմնված կորտեքս-մ 3 միջուկի վրա, հիմնական հաճախականությունը 72 ՄՀց է, F4- ը ներկայացնում է բարձր կատարողականություն ՝ հիմնվելով կորտեքս-մ 4 միջուկի վրա, հիմնականը հաճախականությունը `180 Մ
Ինչ վերաբերում է F1- ին, F4- ին (429 սերիա և ավելի բարձր), բացի տարբեր միջուկներից և հիմնական հաճախականության բարելավումից, արդիականացման ակնհայտ առանձնահատկությունն LCD վերահսկիչն ու տեսախցիկի ինտերֆեյսն է, SDRAM- ի աջակցությունը: Այս տարբերությունը առաջնահերթություն կտրվի նախագծերի ընտրության հարցում: Այնուամենայնիվ, համալսարանական դասավանդման և օգտագործողների նախնական ուսուցման տեսանկյունից, F1 շարքը դեռ առաջին ընտրությունն է: Ներկայումս F1 շարքի STM32- ն ունի շուկայում ամենամեծ քանակությամբ նյութեր և ապրանքներ:
STM32 SCM- ի զարգացման միջավայրի տեղադրման և ծրագրի ներբեռնման եղանակի մասին, ես ներածություն չեմ անի:
GPIO- ի նախաստորագրում
Այս նախագծում մենք ընդհանուր առմամբ օգտագործեցինք 4 GPIO, որոնցից մեկը PWM ելքային քորոցն է: Եկեք նախ նայենք երեք սովորական GPIO նավահանգստի սկզբնավորմանը.
Այս գործառույթը նախաստորագրում է STM32F103C8- ի PB0 / PB1 / PB2- ը որպես ելքային փին և այն կանչում հիմնական գործառույթից: Նախաստորագրումից հետո մենք պետք է տրամաբանություն ունենանք ՝ վերահսկելու այս GPIO- ի ելքային վիճակը, բարձր և ցածր մակարդակը, ուստի ես ֆունկցիան գրել եմ հետևյալ կերպ.
Սա գործառույթ է, որը դուք կարող եք ինտուիտիվ կերպով հասկանալ փոփոխականի անունով:
Սերիայի պորտի սկզբնավորում
Սերիական նավահանգստի սկզբնավորման մասը գտնվում է uart.c- ում:
Այնուհետև հիմնական գործառույթում զանգահարեք uart_init ՝ 115200 սերիական նավահանգստի բաուդ արագությունը նախաստորագրելու համար: Պիներն օգտագործում են PA9/PA10
PWM- ի նախաստորագրում
Հատուկ քայլեր.
1. Սահմանել RCC ժամացույց;
2. Սահմանեք GPIO ժամացույցը. GPIO ռեժիմը պետք է սահմանվի GPIO_Model_AF_PP կամ GPIO_PinRemapConfig () ֆունկցիայի վրա, եթե անհրաժեշտ է քորոցների վերափոխում:
3. Սահմանել TIMx ժամաչափի համապատասխան գրանցամատյաններ;
4. Սահմանել TIMx ժմչփի PWM- ի հետ կապված գրանցամատյան;
A. Սահմանեք PWM ռեժիմը
B. Սահմանել տուրքի ցիկլը (բանաձևի հաշվարկ)
C. Սահմանել ելքային համեմատության բեւեռականություն (նախկինում ներդրված)
D. Ամենակարևորը `միացնել TIMx- ի ելքային վիճակը և միացնել TIMx- ի PWM ելքը. Համապատասխան Կարգավորումների ավարտից հետո TIMx ժամաչափը միացված է TIMx_Cmd () - ի կողմից ՝ PWM ելք ստանալու համար: Callանգահարեք այս TIM3_PWM_Init հիմնական գործառույթից:
Քայլ 3: Տրամաբանական ծածկագրի գրառում
Displayուցադրել բաղադրիչի հասցեի սահմանումը
Theուցադրման բաղադրիչներն ունեն առանձին հասցեներ, և ահա դրանք բոլորը գրել եմ որպես մակրո սահմանումներ ՝ սերիական տվյալների ընդունում
Նայելով STONE էկրանին վերաբերող տեղեկատվությանը ՝ կարող եք տեսնել, որ կոճակը սեղմելիս ցուցադրման սերիական պորտը համապատասխան ձևաչափով արձանագրություններ է ուղարկում, որոնք MCU օգտագործողը կարող է ստանալ և վերլուծել: Երբ կոճակը սեղմվում է, ցուցադրման սերիական պորտը ուղարկում է ինը բայթ տվյալներ, ներառյալ օգտագործողի տվյալները: Սերիական տվյալների ընդունումը գրված է Handler- ում: Ստացված տվյալները պահվում են «USART_RX_BUF» զանգվածում: Այս նախագծում ընդունման երկարությունը ամրագրված է: Երբ ստացման երկարությունը 9 բայթից ավելի է, ընդունման վերջը դատվում է:
Վերահսկեք լամպի անջատիչ վիճակը
Հիմնական գործառույթում ես որոշ տրամաբանական ծածկագիր եմ գրել ՝ լամպի անջատիչի վիճակը վերահսկելու համար. սեղմում է ցուցադրման էկրանին: Էկրանի տարբեր կոճակներն ունեն տարբեր հասցեներ, որոնք կարելի է տեսնել STONE TOOL ծրագրաշարում. Երբ օգտվողը սեղմում է «Հյուրասենյակ» կոճակը, ցուցադրման էկրանի սերիական պորտով ուղարկված տվյալների չորրորդ և հինգերորդ բիթերն են կոճակի հասցեն: Քանի որ այստեղ դրված բոլոր կոճակների չորրորդ բիթը 0x00 է, մենք կարող ենք դատել, թե օգտվողը որ կոճակին է սեղմում `ուղղակիորեն դատելով հինգերորդ բիտի տվյալները: Օգտագործողի կողմից սեղմված կոճակը ձեռք բերելուց հետո մենք պետք է դատենք կոճակը սեղմելիս ստացված օգտագործողի տվյալները, որը ցուցադրման էկրանից ուղարկված տվյալների ութերորդ նիշն է: Հետևաբար, մենք կատարում ենք հետևյալ հսկողությունը. Գրեք կոճակի հասցեի պարամետրը և օգտվողի տվյալները «Light_Contral» գործառույթի մեջ ՝ լուսավորության անջատման վիճակը վերահսկելու համար: Light_Contral ֆունկցիայի սուբյեկտը հետևյալն է. Ինչպես տեսնում եք, եթե կոճակի հասցեն է «Հյուրասենյակ», իսկ օգտվողի տվյալները ՝ «LightOn», ապա MCU- ի PB0 կապը սահմանվում է բարձր մակարդակի ելքի վրա, և լույսը միացված է:. Մյուս երեք կոճակները նման են, բայց ես այստեղ չեմ շարունակի:
PWM արտադրանք
Իմ նախագծած UI- ում կա լոգարիթմական կարգավորիչ, որն օգտագործվում է «Մանկական սենյակ» -ի լույսի պայծառությունը վերահսկելու համար: MCU- ն իրականացվում է PWM- ի կողմից: PWM ելքային կապը PB5 է: Կոդը հետևյալն է. Լոգարիթմական կարգավորիչը սահմանվում է 0x00 նվազագույն արժեքի և 0x64 առավելագույն արժեքի վրա: Երբ սահում է, ցուցադրման էկրանի սերիական նավահանգիստը կուղարկի նաև համապատասխան հասցեներ և տվյալներ, այնուհետև սահմանում է PWM արտադրանքի հերթապահության հարաբերակցությունը ՝ կանչելով հետևյալ գործառույթը.
Քայլ 4: Սենսորների ձեռքբերում
Theուցադրման էկրանի «Սենսոր» էջում կան չորս սենսորային տվյալներ:
Տվյալները ցուցադրման մեջ ունեն նաև պահեստավորման հասցե, և մենք կարող ենք փոխել իրական բովանդակությունը ՝ պարզապես այս հասցեներին տվյալներ գրելով MCU- ի սերիական նավահանգստի միջոցով:
Այստեղ ես կատարեցի մի պարզ կոդի իրականացում.
Displayուցադրման տվյալները թարմացվում են ամեն 5 վայրկյանը մեկ, և ես գրել եմ սենսորների հավաքման համապատասխան գործառույթի պարզ ցուցադրություն, քանի որ իմ ձեռքում այդ սենսորները չեն:
Projectրագրի իրական զարգացման ընթացքում այս տվիչները կարող են լինել ADC- ի կողմից հավաքված տվյալներ, կամ IIC, UART և SPI հաղորդակցական միջերեսների կողմից հավաքված տվյալներ: Մնում է այս տվյալները համապատասխան գործառույթի մեջ գրել որպես վերադարձելի արժեք:
Քայլ 5. Գործողության իրական էֆեկտ
Խորհուրդ ենք տալիս:
STONE LCD էկրան մեքենայի վահանակի համար `5 քայլ
STONE LCD էկրան մեքենայի վահանակի համար. Տնտեսության արագ զարգացումով և մարդկանց սպառման հզորության աստիճանական բարելավմամբ, մեքենաները դարձել են սովորական ընտանիքների ամենօրյա կարիքները, և բոլորը ավելի մեծ ուշադրություն են դարձնում մեքենաների հարմարավետությանը և անվտանգությանը: Ավտոմոբիլային արդյունաբերություն
Բժշկական օդափոխիչ + STONE LCD + Arduino UNO: 6 քայլ
Բժշկական օդափոխիչ + STONE LCD + Arduino UNO. 2019 թվականի դեկտեմբերի 8 -ից անհայտ պատճառներով թոքաբորբի մի քանի դեպք է գրանցվել Չինաստանի Հուբեյ նահանգի Ուհան քաղաքում: Վերջին ամիսներին ամբողջ երկրում գրանցվել է մոտ 80000 հաստատված դեպք, իսկ համաճարակի ազդեցությունը ՝
Stone Lcd + Արագացման գիրոսկոպի տվիչ ՝ 5 քայլ
Stone Lcd +Acceleration Gyroscope Sensor: Այս փաստաթուղթը կսովորեցնի ձեզ, թե ինչպես օգտագործել STM32 MCU +MPU6050 արագացուցիչի գիրոսկոպի տվիչ +STONE STVC070WT սերիական նավահանգստի ցուցադրում DEMO- ի համար: , կարող եք գնալ մեզ մոտ
Մատնահետքի մոդուլ + STONE TFT-LCD ՝ 3 քայլ
Մատնահետքի մոդուլ + STONE TFT-LCD: Այս ամիս ես նախատեսում էի մշակել մատնահետքի դռների կողպման նախագիծ: Երբ ընտրեցի մատնահետքի նույնականացման մոդուլը, նախագիծը կասեցվեց: Այնուամենայնիվ, ես կարծում էի, որ քանի որ ձեռք է բերվել մատնահետքի նույնականացման մոդուլը, ես կպարզեցնեի
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 քայլ
Sonoff B1 Firmware Home Automation Openhab Google Home. Ինձ իսկապես դուր է գալիս Tasmota- ի որոնվածը իմ Sonoff անջատիչների համար: Բայց a- ն իրականում գոհ չէր իմ Sonoff-B1- ի Tasmota- ի որոնվածից: Ինձ լիովին չհաջողվեց այն ներառել իմ Openhab- ում և վերահսկել այն Google Home- ի միջոցով: Հետևաբար ես գրեցի իմ սեփական ընկերությունը