Мобильді датчиктерді қолданатын бағдарлама жасау

Датчиктер сіздің телефоныңыздың мүмкіндіктерін пайдалану арқылы бағдарламаларға бай функционалдылықты қосуға мүмкіндік береді. Бұл мақалада сіз Power Apps бағдарламасындағы мобильді құрылғыда датчиктерді қолдану туралы ақпарат аласыз.

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

Бірінші экран сценарийін реттеу үшін сіз NFC негізіндегі қоқыс жинауға арналған бағдарлама жасап жатырсыз деп елестетіңіз. Әрбір қатысушы NFC тегін сканерлеу үшін бағдарламаны қолданады, ол оларға келесі орынды көрсететін компастың бағытын, ендік пен бойлықты қамтамасыз етеді. Осы жерде қатысушы басқа тегті сканерлеп, жинаудың соңына жеткенше процесті қайталайды.

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

Мобильді сенсорларды пайдаланатын бағдарламаны құру жолын білу үшін мына бейнені қараңыз:

Алғышарттар

  • Бұл бағдарлама үшін Power Apps лицензиясының кез келген деңгейін пайдалануға болады, себебі деректер қосылымдары қолданылмайды.

  • GPS және акселерометр мүмкіндіктері бар мобильді телефон немесе планшет сияқты мобильді құрылғы қажет болады, өйткені көптеген дербес компьютерлерде датчиктер болмауы мүмкін.

  • NFC қолдау көрсететін құрылғы NFC сканерлеу мүмкіндігі үшін қажет. Сондай-ақ сканерленетін NFC тегтері келесі мысал пішінінде мәтін мәндерін шығару үшін алдын ала конфигурацияланған деп есептеледі:

    "<b>Heading: </b> 80 degrees <br>
    <b>Latitude: </b> 44.4604788 <br>
    <b>Longitude: </b> -110.82813759"
    

    Бұл бағдарлама үшін HTML пішініне қолдау көрсететін мәтінді қамтамасыз етеді. NFC тегтерін орнату бұл мақаланың ауқымынан тыс және қажет болған жағдайда NFC элементтерін елемеуге болады; негізгі назар Power Apps бағдарламасындағы мобильді датчиктерді пайдалану болып табылады.

Құрылғы датчигінің шығыстары үшін тақырып пен HTML мәтінін қосу

Тақырып белгісі

Power Apps бағдарламасы өңдеу үшін ашық болған кезде Мәтін белгісін экранға Кірістіру тақтасынан сүйреп апару арқылы қосыңыз. Оны экранның сол жақ жоғарғы бұрышына орналастырыңыз және сипаттар тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Мәтін "Қоқысты жинау"
Қаріп өлшемі 24
Қаріп қанықтылығы FontWeight.Semibold
Мәтінді туралау Ортасы бойынша туралау
Ені Parent.Width

Содан кейін Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Түсі RGBA(255, 255, 255, 1)
Толтыру RGBA(56, 96, 178, 1)

Бұл экранға тақырып береді.

Құрылғы датчигінің шығыстарына арналған HTML мәтіні

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

"<b><u>Current Location</u></b><br>  
<br>
<b>Compass Heading: </b>" & Round(Compass.Heading, 2) & Char(0176) &
"<br>
<br>
<b>Lat: </b>" & Location.Latitude & "<br>
<b>Long: </b>" & Location.Longitude & "<br>
<b>Alt: </b>" & Round(Location.Altitude, 2) & " m"

Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Өлшем 21
BorderStyle BorderStyle.Solid
BorderThickness 2-көше
Ені 560
Биіктік 576
PaddingTop 16
PaddingRight 16
PaddingBottom 16
PaddingLeft 16

Егер сіз HtmlText мәтініне не жазылғанын зерттесеңіз, онда датчиктің екі түрі қолданылатынын байқауға болады.

Біріншісі Компас датчигі, ол құрылғыдан компас бағытын қамтамасыз ету үшін Тақырып сипатын пайдаланады.

Екіншісі Орналасқан жері датчигі, ол Ендік, Бойлық және Биіктік параметрлерін қамтамасыз етеді. Орналасқан жері туралы екі пікір бар. Біріншіден, егер сіз нүкте операторы мен сипаты жоқ жай ғана орналасқан жерді қолдансаңыз, онда сіз ендік, бойлық және биіктік сипаттары бар жазбаны аласыз. Екіншіден, биіктігі сипаты әдепкі бойынша метрмен болады. Егер сіз оны футқа түрлендіргіңіз келсе, келесі формуланы ауыстырыңыз:

Метрді пайдалану:

Round(Location.Altitude, 2) & " m"

Футты пайдалану:

Round(Location.Altitude \* 3.2808, 2) & " ft"

Ескерім

Бағдарламаны Power Apps Studio жүйесінде алдын ала қарасаңыз, көптеген датчик сипаттары дұрыс жұмыс істемеуі мүмкін. Тексеру мақсатында датчик сипаттарымен жұмыс істеу үшін мобильді телефонды қолданған жөн.

Енді HTML мәтіні басқару элементін экранның төменгі жартысына жақын орналастырыңыз.

NFC сканерлеу мен HTML мәтінін басқару элементі үшін түймешікті қосу

NFC сканерлеу түймешігі

Түймешікті бағдарламаға қосыңыз, оны соңғы қадамда қосқан HTML мәтіні басқару элементінің төменгі жағына орналастырыңыз және кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
OnSelect ClearCollect(colNFCScan, ReadNFC())
Мәтін "NFC тегін сканерлеу"

OnSelect сипатындағы код ReadNFC() функциясын пайдаланады, ол NFC оқу құралын белсендіреді. Содан кейін ол NFC тегінен оқылғандарды colNFCScan деп аталатын жинақта сақтайды. Бұл жинақта төрт өріс болады: RTD, Мәтін, TNF және URI. Бұл өрістердің толық түсіндірмесі осы мақаланың шеңберінен тыс болса да, кейбір түсініктемелер пайдалы болуы мүмкін. TNF өрісі Атау пішімін теруді білдіреді және Жазба түрінің анықтамасы құрылымын анықтау үшін пайдаланылады немесе RTD өрісі өз кезегінде Мәтін және/немесе URI өрістерінде қамтылған жазба түрін анықтайды. URI өрісі Бірыңғай ресурс идентификаторы дегенді білдіреді және бұл негізінен ресурстың мекенжайы болып табылады. Бұл мысалда қолданылатын NFC тегтері үшін осы тақырыптың кіріспесіндегі мысал мәтіні бар Мәтін өрісіне қоса, олар TNF өрісінің мәні 1, және RTD өрісінің мәні Т және URI өрісінің мәні бос болуын қамтиды.

NFC сканерлеу ақпаратын көрсету үшін HTML мәтіндік басқару элементін қосу

Екінші HTML мәтіні басқару элементін қосыңыз және келесі формуланы HTMLText сипатында пайдаланыңыз:

"<b><u>Next Destination</u></b><br>
<br>" &
First(colNFCScan).Text

Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Өлшем 21
BorderStyle BorderStyle.Solid
BorderThickness 2-көше
Ені 560
Биіктік 248
PaddingTop 16
PaddingRight 16
PaddingBottom 16
PaddingLeft 16

NFC деректері болмаса, басқару элементі Келесі мақсатты орынды көрсетеді. NFC тегі сканерленген кезде ол Келесі мақсатты орын параметрін, содан кейін сканерлеуден жиналған деректердегі Мәтін өрісіндегі деректерді көрсетеді.

NFC тегтерінің деректері кіріспеде сипатталғандай конфигурацияланған деп есептесек, пайдаланушы осы тегтердің бірін сканерлегеннен кейін келесі қоқыс жинау орны үшін компастың бағытын, ендік пен бойлық мәндерін көреді.

Компас бағытының ендік және бойлық мәндері

Қолданбаны тексеру

Бағдарламаны сақтаңыз және жариялаңыз. Қажетті датчиктері бар мобильді құрылғыда бағдарламаны ашып, компастың бағытын, ендік, бойлық және биіктік мәндерін бақылаңыз. Датчиктің әртүрлі көрсеткіштеріндегі өзгерістерді көру үшін әртүрлі бағытта бұрыла отырып, жүріп көріңіз.

Әртүрлі бағытта бұрылып, жүріп көру

NFC оқу құралы басқару элементін бақылау үшін NFC тегін сканерлеу түймешігін басыңыз. Егер сізде Мәтін мәнін жасай алатын NFC тегі болса, бағдарламадағы мәтінді бақылау үшін тегті сканерлеңіз. Егер жоқ болса, Бас тарту түймешігін таңдаңыз.

NFC тегін сканерлеу

Екінші экранды қосу және конфигурациялау

Бағдарламаның бұрыш өлшеу бөлігі үшін жаңа Бос экран қосыңыз.

Экранды қосқаннан кейін бірінші экранға оралып, Келесі көрсеткі белгішесін + Кірістіру > Белгішелер > Келесі көрсеткі белгішесін таңдау тармағынан қосыңыз. Оны экранның оң жақ жоғарғы бұрышына орналастырыңыз және кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
OnSelect Navigate(Screen2)
Түсі RGBA(255, 255, 255, 1)

Егер сіз енді қосылған екінші экранның атын өзгерткен болсаңыз, бұл атауды Screen2 атауына Шарлау функциясында өзгертіңіз.

Жаңа қосылған белгішені таңдап бағдарламаны алдын ала қарап шығу арқылы ол сізді жаңа қосылған бос экранға бағыттайтындығын тексеріңіз.

X және Y бұрыштары үшін конфигурация қосу

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

Сипат Мәні
Мәтін "2 осьтік деңгей"
Қаріп өлшемі 24
Қаріп қанықтылығы FontWeight.Semibold
Мәтінді туралау Ортасы бойынша туралау
Ені Parent.Width

Содан кейін Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Түсі RGBA(255, 255, 255, 1)
Толтыру RGBA(56, 96, 178, 1)

Бұл екінші экранға тақырып береді.

Келесі Артқа көрсеткі белгішесін + Кірістіру > Белгішелер > Артқа көрсеткі белгішесін таңдау тармағынан қосыңыз. Оны экранның сол жақ жоғарғы бұрышына орналастырыңыз және Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
OnSelect Navigate(Screen1)
Түсі RGBA(255, 255, 255, 1)

Егер сіз енді қосылған бірінші экранның атын өзгерткен болсаңыз, бұл атауды Screen1 атауына Шарлау функциясында өзгертіңіз.

Соңында HTML мәтіні басқару элементін қосыңыз. Бұл құрылғы датчигінің барлық шығыстарын бір жерде көрсету үшін қолданылады. HTML мәтіні сипатында келесі формуланы қолданыңыз:

"<b><u>Angles:</u></b><br>
<br>
<table width='100%'>
<tr>
<td width='50%'><b>X: </b>" & Abs(Round(Acceleration.X * (90 / 9.81),
0)) & Char(0176) & "</td>
<td width='50%'><b>Y: </b>" & Abs(Round(Acceleration.Y * (90 / 9.81),
0)) & Char(0176) & "</td>
</tr>
</table>"

Кеңейтілген қойыншасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Өлшем 21
BorderStyle BorderStyle.Solid
BorderThickness 2-көше
Ені 560
Биіктік 168
PaddingTop 16
PaddingRight 16
PaddingBottom 16
PaddingLeft 16

Бұл басқару элементін бағдарлама экранының жоғарғы жағына орналастырыңыз.

Егер сіз HtmlText параметріне не орналастырылғанын көрсеңіз, сіз оның X және Y сипаттары бар Жеделдету датчигін пайдаланып жатқандығын байқайсыз. Сондай-ақ біз бұл сценарийде пайдаланбайтын Z сипаты бар.

Бұл датчик үш жазықтықтағы құрылғыдағы тартылыс күштерін анықтайды. Мобильді телефонды мысалға алып, телефонның бүйірінен созылған сызықты елестетіп көріңіз. Бұл X жазықтығы болар еді. Телефонның оң жағын көтеру оң мән береді, ал сол жағын көтеру теріс мән береді. Телефонның үстіңгі және астыңғы жағынан шығатын сызық Y жазықтығын білдіреді. Телефонның жоғарғы жағын көтеру оң мән береді, ал төменгі жағын көтеру теріс мән береді. Соңында экраннан шығатын және телефонның артқы жағынан шығатын сызық Z жазықтығын білдіреді. Экранды жоғары қарату оң мән береді, ал төмен қарату теріс мәнге әкеледі.

Акселерометр құрылғыға әсер ететін күштерді өлшейді, мысалы, егер сіз құрылғыны түсіріп алған болсаңыз және тыныштық күйінде, мысалы, құрылғыны бұрын сипатталған осьтердің бірі немесе бірнешеуі бойынша бұрған кезде. Тыныштық күйінде теориялық мәндер 0 мен +/- 9,81 м/с2 аралығында болуы керек, бұл жерде 0 мәні салыстырмалы ось жерге параллель екенін көрсетеді, датчикте тартылы күші болмайды және 9,81 көрсеткіші салыстырмалы осьтің жерге перпендикуляр екенін көрсетеді және датчикте толық тартылыс күші болады.

Жаңа қосылған HTML мәтіні басқару элементіндегі кодқа қарау арқылы келесі бөлімге назар аударыңыз:

Abs(Round(Acceleration.X * (90 / 9.81), 0))

Бұл формулада ішінен-сыртына алдымен Жеделдету параметрі X жазықтығында (90 / 9,81) мәніне көбейтіледі. Бұл датчиктің көрсеткішін градусқа түрлендіру үшін тыныштық күйіндегі теориялық максималды мәнді қолданады. 90 мәні максималды теориялық мәнде құрылғы сол жазықтықта жерге перпендикуляр болуы арқылы 90 градус өлшемін көрсететіндіктен бар.

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

Ескерім

Жоғарыда көрсетілген мәндер шамамен алынған және дәл өлшемді білдірмейді.

Көрнекі деңгейлерді қосу

Бұл қадамда біз көрнекі мақсатқа жету үшін дәстүрлі емес әдістермен кейбір басқару элементтерін қолданамыз.

Дөңгелек көпіршікті деңгейге ұқсас көрнекі элемент

Бастау үшін экранға Түймешік басқару элементін қосыңыз, оның атауын btnCircleLevel деп өзгертіңіз және Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Мәтін ""
BorderColor RGBA(56, 96, 178, 1)
FocusedBorderThickness 2-көше
Толтыру Мөлдір
DisabledFill Self.Fill
X (Parent.Width - Self.Width) / 2
Y (Parent.Height - Self.Height) / 2
Ені 400
Биіктік Self.Width

Бұл өзгерістердің нәтижесі экранның ортасында өшірілгендіктен басуға болмайтын дөңгелек түймешікті шығаруы керек.

Содан кейін Шеңбер пішінін қосып, оның шекара радиусын 400 етіп орнатыңыз және Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
FocusedBorderThickness 0
X (Parent.Width - Self.Width) / 2 + (Round(Acceleration.X / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2)
Y (Parent.Height - Self.Height) / 2 - (Round(Acceleration.Y / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2)
Ені 42
Биіктік Self.Width
Ені 400
Биіктік Self.Width

X және Y сипаттары Шеңбер пішініне бағдарлама экранының ортасында жылжуға мүмкіндік береді, Жеделдету датчигі мәндерінің салыстырмалы өзгерісі, бірақ btnCircleLevel дөңгелек аймағының ішінде болады.

X және Y ось көпіршік деңгейіне ұқсас көрнекі элемент

Бағдарламаға Жүгірткі басқару элементін қосыңыз, оның атауын sldXValue деп өзгертіңіз және Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
Ең аз -90
Ең көп 90
Әдепкі Round(Acceleration.X * (90 / 9.81), 0)
ValueFill Self.RailFill
X (Parent.Width - Self.Width) / 2
Y btnCircleLevel.Y + btnCircleLevel.Height + 30
Ені btnCircleLevel.Width
Биіктік 70

Бұл жүгірткі басқару элементі көпіршік деңгейіне ұқсас бұрышты көрсетеді: Өңдеу көпіршік деңгейдегі ауа көпіршігіне ұқсас құрылғының көтерілген жағына қарай жылжиды.

Әрі қарай, btnCircleLevel басқару элементін оны таңдау арқылы және Ctrl + C, содан соң Ctrl + V пернелер тіркесімін басу арқылы көшіріңіз. Басқару элементінің атауын btnXValueOverlay деп өзгертіңіз және Кеңейтілген тақтасында келесі сипаттарды өзгертіңіз:

Сипат Мәні
X sldXValue.X - sldXValue.HandleSize / 2
Y sldXValue.Y
Ені sldXValue.Width + sldXValue.HandleSize
Биіктік sldXValue.Height

Бұл өзгертулер оны sldXValue басқару элементінің үстіңгі жағына орналастырады, бұл пайдаланушының мәнді өзгертіп және визуалды жиекті қамтамасыз етуін болдырмайды.

sldXValue басқару элементін btnCircleLevel басқару элементін көшіру үшін қолданылатын әдісті қолдану арқылы көшіріп қойыңыз. Оның атауын sldYValue деп өзгертіңіз және келесі сипаттарды өзгертіңіз:

Сипат Мәні
Құрылымы Layout.Vertical
X btnCircleLevel.X - Self.Width - 30
Y (Parent.Height - Self.Height) / 2
Ені sldXValue.Height
Биіктік sldXValue.Width

btnXValueOverlay басқару элементін көшіріп қойыңыз, атауын btnYValueOverlay деп өзгертіңіз және келесі сипаттарды өзгертіңіз:

Сипат Мәні
X sldYValue.X
Y sldYValue.Y - sldYValue.HandleSize / 2
Ені sldYValue.Width
Биіктік sldYValue.Height + sldYValue.HandleSize

Бұл көпіршік деңгейіне ұқсас визуалды элементті аяқтайды.

Деңгей бағдарламасын тексеру

Қолданбаны тексеру

Бағдарламаны сақтаңыз және жариялаңыз. Қажетті датчиктері бар мобильді құрылғыда бағдарламаны ашып, көпіршікті деңгейдегі көрнекі құралдары бар экранға өтіңіз. Құрылғыны солдан оңға қарай, содан кейін жоғары және төмен, ең соңында барлық бағытта еңкейтіңіз, бұрыштық сипаттардың өзгерістерін және сондай-ақ көрнекі элемент өзгерістерін ескеріңіз. Құрылғыны орналастыру үшін бұрыштық бетті тауып, бұрыштар мен көрнекі элементтерді тағы да ескеріңіз.

Сондай-ақ, келесіні қараңыз