Përmbajtje:
- Hapi 1: Dizajni i ndërfaqes UI
- Hapi 2: Komunikimi MCU
- Hapi 3: Shkrimi i Kodit Logjik
- Hapi 4: Marrja e sensorit
- Hapi 5: Efekti Aktual i Operacionit
Video: LCD STONE Me Smart Home: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Sot, mora ekranin e portit serik të STONE, i cili mund të komunikojë përmes portës serike të MCU, dhe dizajni logjik i UI i këtij ekrani mund të dizajnohet drejtpërdrejt duke përdorur softuerin VGUS të ofruar në faqen zyrtare të STONE, i cili është shumë i përshtatshëm për ne. Kështu që unë planifikoj ta përdor atë për të bërë një kontrollues të thjeshtë të pajisjes, i cili përfshin kontrollin e dritave të ndryshme (dhomen e ndjenjes, kuzhinën, dhomën e fëmijëve, banjën). Në të njëjtën kohë, temperatura e brendshme dhe e jashtme, lagështia dhe cilësia e ajrit mund të mblidhen. Kjo është vetëm një demonstrim i thjeshtë, dhe ju mund të zhvilloni zhvillim dytësor përmes kodit që kam dhënë. Disa mësime themelore në lidhje me ekranin GURIN mund të shkojnë në faqen e internetit:
Faqja e internetit ka një larmi informacioni në lidhje me modelin, përdoruesit dhe dokumentacionin e projektimit, si dhe video mësime. Këtu nuk do të hyj në shumë detaje.
Hapi 1: Dizajni i ndërfaqes UI
Photoshop
Kam krijuar dy faqet e mëposhtme të ndërfaqes së përdoruesit me Photoshop:
Ky projekt ka dy faqet e mësipërme në total. "Drita" dhe "Sensori" në këndin e sipërm të djathtë janë butonat ndërrues të këtyre dy faqeve.
Në faqen "Drita", ju mund të kontrolloni të gjitha llojet e dritave në shtëpinë tuaj. Në faqen "Sensor", mund të kontrolloni vlerat e zbuluara nga sensorë të ndryshëm.
Pas hartimit të dy faqeve të mësipërme, ne mund të bëjmë një dizajn logjik të butonit përmes softuerit STONE TOOL të ofruar në faqen zyrtare të STONE.
Vlen të përmendet se burimi i orës i përdorur për shfaqjen e kohës këtu është burimi i orës i ekranit të ekranit, jo burimi i orës MCU.
Efekti i ndërrimit të faqes TAB
Asnjë komponent i ndërrimit të faqeve TAB nuk u gjet në programin STONE TOOL, kështu që unë mendova për një metodë tjetër për të arritur efektin e ndërrimit të faqes TAB.
Përmes vëzhgimit unë ofroj dy imazhe UI mund të gjenden se dy imazhet e mësipërme janë teksti "Dritë" dhe "Sensor", ndryshimi është madhësia e pikselëve të tyre është e ndryshme, kështu që ne vetëm duhet të vendosim pozicionin me dy piksele të vendosur në i njëjti tekst, dhe pastaj përmes këndit të sipërm të majtë të kohës dhe datës për referencë, mund të arrini efektin TAB për të kaluar.
Logjikë butoni
Merrni si shembull butonin "Living Room". Kur përdoruesi shtyp këtë buton, ekrani i shfaqjes së portës serike STONE do të dërgojë udhëzimet përkatëse të protokollit përmes portës serike. Pas marrjes së këtij udhëzimi, MCU e përdoruesit do të analizojë protokollin për të kontrolluar gjendjen e kalimit të dritave të lidhura me MCU.
Fitimi i sensorit
Merrni për shembull "cilësinë e ajrit": nëse doni të merrni cilësinë e ajrit të brendshëm, ne duhet të kemi një MCU për të mbledhur cilësinë e ajrit, sensorin e cilësisë së ajrit kur MCU numerike mblidhet përmes algoritmit që krahason të mirat dhe të këqijat e cilësisë së ajrit, dhe pastaj MCU dërgohet përmes një porti serik për të shfaqur zonën e ruajtjes së "Mirë" ose "E keqe", për të ndryshuar përmbajtjen e ekranit "Text variable0", dhe pastaj përdoruesi mund të shohë intuitivisht meritat e kontrollit të cilësisë. Këto shpjegohen më vonë në kodin MCU.
Hapi 2: Komunikimi MCU
STM32 është MCU që të gjithë e njohin, dhe është një model i zakonshëm MCU në ndërkombëtar. Prandaj, modeli specifik i STM32 MCU që kam përdorur në këtë projekt është STM32F103RCT6.
Ka shumë seri STM32, të cilat mund të plotësojnë kërkesa të ndryshme të tregut. Kerneli mund të ndahet në lëvore-m0, M3, M4 dhe M7, dhe secili kernel mund të ndahet në rrjedhën kryesore, performancë të lartë dhe konsum të ulët të energjisë.
Thjesht nga perspektiva e të mësuarit, ju mund të zgjidhni F1 dhe F4, F1 përfaqëson llojin bazë, bazuar në kortelin e korteksit-m3, frekuenca kryesore është 72MHZ, F4 përfaqëson performancën e lartë, bazuar në kernelin e korteksit-m4, kryesore frekuenca është 180M.
Sa i përket F1, F4 (seritë 429 e lart), përveç bërthamave të ndryshme dhe përmirësimit të frekuencës kryesore, tipari i dukshëm i azhurnimit është kontrolluesi LCD dhe ndërfaqja e kamerës, mbështetja për SDRAM, këtij ndryshimi do t'i jepet përparësi në përzgjedhjen e projektit. Sidoqoftë, nga këndvështrimi i mësimdhënies universitare dhe mësimit fillestar të përdoruesve, seria F1 është ende zgjedhja e parë. Aktualisht, STM32 i serisë F1 ka sasinë më të madhe të materialeve dhe produkteve në treg.
Në lidhje me instalimin e mjedisit të zhvillimit STM32 SCM dhe metodën e shkarkimit të programit, unë nuk do të bëj prezantimin.
Inicimi i GPIO
Në këtë projekt, ne përdorëm gjithsej 4 GPIO, njëra prej të cilave është kunja dalëse PWM. Le të shikojmë së pari fillimin e tre portave të zakonshëm GPIO:
Ky funksion inicializon PB0 / PB1 / PB2 të STM32F103C8 si pin dalës dhe e thërret atë nga funksioni kryesor. Pas fillimit, ne duhet të kemi një logjikë për të kontrolluar gjendjen e daljes, nivelin e lartë dhe të ulët të këtij GPIO, kështu që unë shkrova funksionin si më poshtë:
Ky është një funksion që mund ta kuptoni në mënyrë intuitive me emrin e ndryshores.
Fillimi i portit serik
Pjesa e inicimit të portit serik është në uart.c:
Pastaj telefononi uart_init në funksionin kryesor për të inicializuar normën e baudit serik të portit prej 115200. Kunjat përdorin PA9/PA10
Inicimi i PWM
Hapat specifik:
1. Vendosni orën RCC;
2. Vendosni orën GPIO; Modaliteti GPIO duhet të vendoset në GPIO_Model_AF_PP, ose në funksionin GPIO_PinRemapConfig () nëse kërkohet rimarrja e pinit.
3. Vendosni regjistrat përkatës të kohëmatësit TIMx;
4. Vendosni regjistrin e lidhur me PWM të kohëmatësit TIMx;
A. Vendosni modalitetin PWM
B. Cikli i caktuar i punës (llogaritja e formulës)
C. Vendosni polaritetin e krahasimit të prodhimit (i prezantuar më parë)
D. Më e rëndësishmja, aktivizoni gjendjen dalëse të TIMx dhe aktivizoni daljen PWM të TIMx; Pasi të keni përfunduar Cilësimet përkatëse, kohëmatësi TIMx ndizet nga TIMx_Cmd () për të marrë daljen PWM. Thirrni këtë TIM3_PWM_Init nga funksioni kryesor.
Hapi 3: Shkrimi i Kodit Logjik
Shfaq definicionin e adresës së komponentit
Komponentët e ekranit kanë adresa të veçanta, dhe këtu i kam shkruar të gjitha si përkufizime makro: Marrja e të dhënave serike
Duke parë informacionin në lidhje me ekranin STONE, mund të shihni që kur shtypet butoni, porta serike në ekran dërgon protokolle në formatin e duhur, të cilat përdoruesi MCU mund t'i marrë dhe analizojë. Kur shtypet butoni, porti serik në ekran dërgon nëntë bajt të dhëna, përfshirë të dhënat e përdoruesit. Marrja e të dhënave serike është shkruar në Handler: Të dhënat e marra ruhen në grupin "USART_RX_BUF". Në këtë projekt, gjatësia e marrjes është fikse. Kur gjatësia e marrjes është më shumë se 9 bajt, fundi i marrjes gjykohet.
Kontrolloni gjendjen e kalimit të llambës
Në funksionin kryesor, unë shkrova një kod logjik për të kontrolluar gjendjen e kalimit të llambës: Siç mund ta shohim, kodi së pari përcakton nëse merren të dhënat e portit serik dhe kur merren të dhënat e portit serik, përcakton cilin buton të përdoruesit shtyp në ekranin e ekranit. Butonat e ndryshëm në ekran kanë adresa të ndryshme, të cilat mund të shihen në programin STONE TOOL: Kur përdoruesi shtyp butonin "Living Room", pjesët e katërt dhe të pestë të të dhënave të dërguara nga porta serike e ekranit të ekranit janë adresa e butonit. Meqenëse biti i katërt i të gjithë butonave të vendosur këtu është 0x00, ne mund të gjykojmë se cilin buton përdoruesi shtyp duke gjykuar drejtpërdrejt të dhënat e bitit të pestë. Pas marrjes së butonit të shtypur nga përdoruesi, ne duhet të gjykojmë të dhënat e përdoruesit të marra kur shtypet butoni, që është shifra e tetë e të dhënave të dërguara nga ekrani i ekranit. Prandaj, ne bëjmë kontrollin e mëposhtëm: shkruani parametrin e adresës së butonit dhe të dhënat e përdoruesit në funksionin "Light_Contral" për të kontrolluar gjendjen e ndezjes-fikjes së dritës. Njësia e funksionit Light_Contral është si më poshtë: Siç mund ta shihni, nëse adresa e butonit është "Living Room" dhe të dhënat e përdoruesit janë "LightOn", atëherë kunja PB0 e MCU është vendosur në dalje të nivelit të lartë dhe drita është e ndezur Me Tre butonat e tjerë janë të ngjashëm, por unë nuk do të vazhdoj këtu.
Dalja PWM
Në UI të krijuar nga unë, ekziston një rregullator rrëshqitës, i cili përdoret për të kontrolluar shkëlqimin e dritës së "Dhoma e Fëmijëve". MCU zbatohet nga PWM. PWM dalëse pin është PB5. Kodi është si më poshtë: Rregulluesi rrëshqitës është vendosur në një vlerë minimale prej 0x00 dhe një vlerë maksimale prej 0x64. Kur rrëshqet, porta serike e ekranit të ekranit gjithashtu do të dërgojë adresa dhe të dhëna përkatëse, dhe më pas do të vendosë raportin e detyrave të prodhimit PWM duke thirrur funksionin e mëposhtëm:
Hapi 4: Marrja e sensorit
Në faqen e "Sensorit" të ekranit të ekranit, ka katër të dhëna të Sensorit.
Të dhënat gjithashtu kanë një adresë ruajtjeje në ekran, dhe ne mund të ndryshojmë përmbajtjen e vërtetë duke shkruar thjesht të dhëna në këto adresa përmes portit serik të MCU.
Këtu kam bërë një zbatim të thjeshtë të kodit:
Të dhënat e ekranit azhurnohen çdo 5 sekonda, dhe unë shkrova vetëm një demonstrim të thjeshtë të funksionit përkatës të mbledhjes së sensorëve, sepse nuk i kam këto sensorë në dorën time.
Në zhvillimin real të projektit, këta sensorë mund të jenë të dhëna të mbledhura nga ADC, ose të dhëna të mbledhura nga ndërfaqet e komunikimit IIC, UART dhe SPI. E tëra çfarë ju duhet të bëni është t'i shkruani këto të dhëna në funksionin përkatës si vlerë kthyese.
Hapi 5: Efekti Aktual i Operacionit
Recommended:
Krijoni një Sistem Smart të Kontrollit të Shtëpisë në STONE HMI Disp: 23 hapa
Bëni një Sistem Smart të Kontrollit të Shtëpisë në STONE HMI Disp: Prezantimi i projektit Udhëzimi i mëposhtëm ju tregon se si të përdorni modulin e ekranit me prekje STONE STVC050WT-01 për të bërë një sistem të thjeshtë të kontrollit të pajisjeve shtëpiake
STONE Display +STM32 +Makinë kafeje: 6 hapa
STONE Display +STM32 +Prodhuesi i kafesë: Unë jam një inxhinier softuerësh MCU, kohët e fundit kam marrë një projekt për të qenë një aparat kafeje, kërkesat shtëpiake me një ekran me prekje, funksioni është i mirë, është mbi zgjedhjen e ekranit mund të mos jetë shumë i mirë, për fat të mirë, këtë projekt mund ta zgjidh
Moduli i gjurmëve të gishtërinjve + STONE TFT-LCD: 3 hapa
Moduli i gjurmëve të gishtërinjve + STONE TFT-LCD: Këtë muaj, kam planifikuar të zhvilloj një projekt të bllokimit të derës së gjurmëve të gishtërinjve. Kur zgjodha modulin e identifikimit të gjurmëve të gishtërinjve, projekti u pezullua. Sidoqoftë, mendova se meqenëse moduli i identifikimit të gjurmëve të gishtërinjve ishte blerë, do ta thjeshtoja
Stone Art Stone: 10 hapa (me fotografi)
Stone Art Dome: Unë u futa në artin e vargut UV vite më parë, por projektet e mia u bënë më të mëdha dhe druri që po përdoreja për korniza nuk do të rindërtohej mirë. Atëherë zbulova se sa e lehtë ishte të ndërtosh kupola dhe kështu ishte fillimi i Kupolës së Teorisë së Vargut. Ajo përparoi në
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 Hapa
Firmware Sonoff B1 Home Automation Openhab Google Home: Më pëlqen vërtet firmware -i Tasmota për çelsat e mi Sonoff. Por a nuk ishte vërtet i kënaqur me firmware-in Tasmota në Sonoff-B1 tim. Unë nuk kam arritur plotësisht ta integroj atë në Openhab tim dhe ta kontrolloj atë përmes Google Home. Prandaj shkrova firmën time