Indholdsfortegnelse:
- Trin 1: Design af brugergrænseflader
- Trin 2: MCU -kommunikation
- Trin 3: Skrivning af logisk kode
- Trin 4: Sensoranskaffelse
- Trin 5: Faktisk driftseffekt
Video: STONE LCD Med Smart Home: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
I dag fik jeg STONEs serielle portdisplay, som kan kommunikere via MCU's serielle port, og UI -logikdesignet på denne skærm kan designes direkte ved hjælp af VGUS -softwaren på STONEs officielle websted, hvilket er meget praktisk for os. Så jeg planlægger at bruge den til at lave en simpel apparatcontroller, som inkluderer styring af forskellige lys (stue, køkken, børneværelse, badeværelse). På samme tid kan indendørs og udendørstemperatur, fugtighed og luftkvalitet opsamles. Dette er bare en simpel demo, og du kan udføre sekundær udvikling gennem den kode, jeg har givet. Nogle grundlæggende selvstudier om STONE -skærmen kan gå til webstedet:
Websitet har en række oplysninger om modellen, brugeren og designdokumentationen samt video -tutorials. Jeg vil ikke gå for meget i detaljer her.
Trin 1: Design af brugergrænseflader
Photoshop
Jeg designede følgende to UI -sider med Photoshop:
Dette projekt har de to ovenstående sider i alt. "Lys" og "Sensor" i øverste højre hjørne er switch -knapperne på disse to sider.
På siden "Lys" kan du styre alle slags lys i dit hjem. På siden "Sensor" kan du kontrollere de værdier, der registreres af forskellige sensorer.
Efter udformningen af de ovenstående to sider kan vi udføre et knaplogikdesign gennem STONE TOOL -softwaren, der findes på STONEs officielle websted.
Det er værd at bemærke, at den urkilde, der bruges til tidsvisningen her, er urets kilde på skærmen, ikke MCU -urkilden.
TAB -sideomskiftningseffekt
Der blev ikke fundet nogen TAB -sideomskiftningskomponent i STONE TOOL -softwaren, så jeg tænkte på en anden metode til at opnå TAB -sideomskiftningseffekten.
Gennem observationen giver jeg to UI-billeder kan findes, at de to billeder ovenfor er "Lys" og "Sensor" tekst, forskellen er, at deres pixelstørrelse er forskellig, så vi behøver kun at sætte to-pixel-positionen er indstillet til samme tekst, og derefter gennem det øverste venstre hjørne af tid og dato for reference, kan du opnå TAB'et for at skifte effekt.
Knappelogik
Tag knappen "Stue" som et eksempel. Når brugeren trykker på denne knap, vil skærmen STONE seriel port vise tilhørende protokolinstruktioner gennem den serielle port. Efter at have modtaget denne instruktion, vil brugerens MCU analysere protokollen for at kontrollere skiftetilstanden for lysene, der er forbundet med MCU'en.
Sensoroptagelse
Tag "luftkvalitet" for eksempel: hvis du vil have indendørs luftkvalitet, skal vi have en MCU til at indsamle luftkvalitet, luftkvalitetssensor, når MCU -numerisk indsamles gennem algoritme, der sammenligner fordele og ulemper ved luftkvalitet, og derefter MCU sendt via en seriel port for at vise lagerområdet for "Godt" eller "Dårligt", for at ændre "Tekstvariabel0" -indhold, og derefter kan brugeren intuitivt se kvalitetsstyringens fordele. Disse forklares senere i MCU -koden.
Trin 2: MCU -kommunikation
STM32 er MCU, som alle kender, og det er en fælles MCU -model i international. Derfor er den specifikke model af STM32 MCU, jeg brugte i dette projekt, STM32F103RCT6.
Der er mange serier af STM32, som kan opfylde forskellige krav på markedet. Kernen kan opdeles i cortex-m0, M3, M4 og M7, og hver kerne kan opdeles i mainstream, høj ydeevne og lavt strømforbrug.
Rent ud fra læringsperspektivet kan du vælge F1 og F4, F1 repræsenterer grundtypen, baseret på cortex-m3-kernen, hovedfrekvensen er 72MHZ, F4 repræsenterer den høje ydeevne, baseret på cortex-m4-kernen, den vigtigste frekvensen er 180 mio.
Hvad angår F1, F4 (429 -serien og nyere), bortset fra forskellige kerner og forbedring af hovedfrekvensen, er den oplagte funktion ved opgraderingen LCD -controller og kameragrænseflade, understøttelse af SDRAM, denne forskel vil blive prioriteret i projektvalg. Set fra universitetsundervisningen og brugernes indledende læring er F1 -serien dog stadig det første valg. I øjeblikket har STM32 i F1 -serien den største mængde materialer og produkter på markedet.
Om STM32 SCM udviklingsmiljø installation og program download metode, vil jeg ikke gøre introduktionen.
GPIO -initialisering
I dette projekt brugte vi i alt 4 GPIO, hvoraf den ene er PWM -udgangsstiften. Lad os først se på initialiseringen af tre almindelige GPIO -porte:
Denne funktion initialiserer PB0 / PB1 / PB2 for STM32F103C8 som output -pin og kalder den fra hovedfunktionen. Efter initialisering skal vi have en logik til at styre udgangstilstanden, højt og lavt niveau for denne GPIO, så jeg skrev funktionen som nedenfor:
Dette er en funktion, som du intuitivt kan forstå ved navnet på variablen.
Serial portinitialisering
Initialiseringsdelen af den serielle port er i uart.c:
Ring derefter til uart_init i hovedfunktionen for at initialisere den serielle ports baudhastighed på 115200. Pins bruger PA9/PA10
PWM -initialisering
Specifikke trin:
1. Indstil RCC -ur;
2. Indstil GPIO -uret. GPIO -tilstanden skal indstilles til GPIO_Model_AF_PP eller til GPIO_PinRemapConfig () -funktionen, hvis pin -omlægning er påkrævet.
3. Indstil relevante registre over TIMx -timer;
4. Indstil PWM -relateret register over TIMx -timer;
A. Indstil PWM -tilstand
B. Indstil driftscyklus (formelberegning)
C. Indstil output sammenligning polaritet (tidligere introduceret)
D. Vigtigst er det, at TIMx's output -tilstand aktiveres og PIM -output for TIMx aktiveres; Når de relevante indstillinger er fuldført, tændes TIMx -timeren af TIMx_Cmd () for at opnå PWM -output. Kald dette TIM3_PWM_Init fra hovedfunktionen.
Trin 3: Skrivning af logisk kode
Vis komponentadressedefinition
Komponenterne i displayet har separate adresser, og her har jeg skrevet dem alle som makrodefinitioner: Seriel datamodtagelse
Når man ser på oplysninger om STONE -displayet, kan man se, at når der trykkes på knappen, sender den serielle port på displayet protokoller i det passende format, som brugerens MCU kan modtage og analysere. Når der trykkes på knappen, sender den serielle port på displayet ni byte data, inklusive brugerdata. Seriel datamodtagelse skrives i Handler: De modtagne data gemmes i arrayet "USART_RX_BUF". I dette projekt er modtagelængden fast. Når modtagelængden er mere end 9 bytes, bedømmes den modtagende ende.
Kontroller lampens koblingstilstand
I hovedfunktionen skrev jeg en logisk kode for at styre lampens switch -tilstand: Som vi kan se, bestemmer koden først, om dataene i den serielle port modtages, og når serielle portdata modtages, bestemmer den hvilken knap brugeren trykker på displayet. Forskellige knapper på displayet har forskellige adresser, som kan ses i STONE TOOL -softwaren: Når brugeren trykker på "Living Room" -knappen, er den fjerde og femte bit af de data, der sendes ud af den serielle port på displayskærmen, adresse på knappen. Da den fjerde bit af alle knapperne her er 0x00, kan vi bedømme hvilken knap brugeren trykker på ved direkte at bedømme dataene for den femte bit. Efter at have opnået den knap, der trykkes af brugeren, skal vi bedømme de modtagne brugerdata, når der trykkes på knappen, hvilket er det ottende ciffer i de data, der sendes fra displayet. Derfor foretager vi følgende kontrol: skriv knapadresseparameteren og brugerdata i funktionen "Light_Contral" for at styre lysets tændtilstand. Light_Contral-funktionsenheden er som følger: Som du kan se, hvis knapadressen er "Living Room" og brugerdataene er "LightOn", er PB0-stiften på MCU'en indstillet til output på højt niveau, og lyset er tændt. De tre andre knapper ligner hinanden, men jeg vil ikke fortsætte her.
PWM output
I brugergrænsefladen, der er designet af mig, er der en glidende regulator, som bruges til at styre lysstyrken i lyset i "Børneværelse". MCU implementeres af PWM. PWM output pin er PB5. Koden er som følger: Glidestilleren er indstillet til en minimumsværdi på 0x00 og en maksimalværdi på 0x64. Ved glidning vil den serielle port på skærmen også sende relevante adresser og data og derefter indstille driftsforholdet for PWM -output ved at kalde følgende funktion:
Trin 4: Sensoranskaffelse
På siden med "Sensor" på displayet er der fire sensordata.
Dataene har også en lagringsadresse i displayet, og vi kan ændre det virkelige indhold ved blot at skrive data til disse adresser via den serielle port på MCU'en.
Her lavede jeg en simpel kodeimplementering:
Displaydataene opdateres hvert 5. sekund, og jeg skrev kun en simpel demo af den relevante sensoropsamlingsfunktion, fordi jeg ikke har disse sensorer i hånden.
I reel projektudvikling kan disse sensorer være data indsamlet af ADC eller data indsamlet af IIC-, UART- og SPI -kommunikationsgrænseflader. Alt du skal gøre er at skrive disse data i den tilsvarende funktion som returværdien.
Trin 5: Faktisk driftseffekt
Anbefalede:
STONE LCD -skærm til bilens instrumentbræt: 5 trin
STONE LCD -skærm til bilens instrumentbræt: Med den hurtige udvikling af økonomien og den gradvise forbedring af folks forbrugskraft er biler blevet de daglige nødvendigheder for almindelige familier, og alle lægger mere vægt på komfort og sikkerhed i biler
Lav et Smart Home -kontrolsystem på STONE HMI Disp: 23 trin
Lav et Smart Home Control System på STONE HMI Disp: Projekt introduktion Følgende vejledning viser dig, hvordan du bruger STONE STVC050WT-01 berøringsskærmsmodul til at lave et simpelt kontrolsystem til husholdningsapparater
Medicinsk ventilator + STONE LCD + Arduino UNO: 6 trin
Medicinsk ventilator + STONE LCD + Arduino UNO: Siden 8. december 2019 er der rapporteret om flere tilfælde af lungebetændelse med ukendt ætiologi i Wuhan City, Hubei -provinsen, Kina. I de seneste måneder er næsten 80000 bekræftede tilfælde blevet forårsaget i hele landet, og virkningen af epidemien har
Sådan vises puls på STONE LCD med Ar: 31 trin
Sådan vises puls på STONE LCD Med Ar: kort introduktion For noget tid siden fandt jeg et pulssensormodul MAX30100 i shopping online. Dette modul kan indsamle brugerens ilt- og pulsdata i blodet, hvilket også er enkelt og praktisk at bruge. Ifølge dataene fandt jeg ud af, at der
Stone Lcd + accelerationsgyroskopsensor: 5 trin
Stone Lcd +accelerationsgyroskopsensor: Dette dokument lærer dig, hvordan du bruger en STM32 MCU +MPU6050 accelerometer gyroskopsensor +STONE STVC070WT seriel portvisning til en DEMO.STVC070WT er seriens display i vores virksomhed, dens udvikling er enkel, let at bruge , du kan gå til vi