Мазмұны:

Android жүйесіндегі шаңды датчик: 6 қадам
Android жүйесіндегі шаңды датчик: 6 қадам

Бейне: Android жүйесіндегі шаңды датчик: 6 қадам

Бейне: Android жүйесіндегі шаңды датчик: 6 қадам
Бейне: Телефоннын зарядкасын тез жүз пайыз қылту шын😱😱 2024, Қараша
Anonim
Android жүйесіндегі натрий шаңының сенсоры
Android жүйесіндегі натрий шаңының сенсоры

Бір жыл бұрын менің досым экологиялық мониторинг бойынша демалыс күндері семинар өткізді. Семинардың мақсаты - шаң концентрациясының картасын жиі жаңартатын кейбір серверге өлшеу деректерін енгізу үшін таңқурай пи тақтасына қосылған шаң датчигін құру. Менің досым сенсорлық деректерді бақылау және тіркеу үшін смартфоннан тікелей алуға болатынын сұрады. Мен Интернетті деректер кестесін іздедім және сенсорда 9600Baud 8N1 протоколы бар қарапайым UART интерфейсі бар екенін көрдім. Бірақ UART -ты смартфонға қалай қосуға болады? Жақсы, бұл оңай. Маған тек Android -де эмуляцияланған компортты қамтамасыз ететін Bluetooth модульдерінің барлығын қолдануға тура келді. Енді менің қалай жеткенімді қараңыз.

1 -қадам: Сізге не қажет

Сізге не керек
Сізге не керек
Сізге не керек
Сізге не керек

Сізге келесі бөліктер қажет

  • JST XH 7-істікшелі қосқыш сымдармен натриялық интерфейске арналған. Мен өзімді Ebay -де сатып алдым.
  • UART қосқышымен үйлесімді HC05 немесе 06 Bluetooth модулі
  • TTL деңгейлі интерфейсі бар USB сериялық түрлендіргіші. Біз мұны BT-модуліне бірегей атау беру үшін қолданамыз
  • Sodial SDS011 шаң датчигі. Мен өз ақшамды Ebay -ден алдым
  • вертолеттің бір бөлігі
  • USB-B қосқышы
  • сым
  • Бәрін бекітуге болатын ағаш

Содан кейін сізге бірнеше қарапайым құралдар қажет:

  • Ағаш кесуге арналған табақ
  • пинцет
  • дәнекерленген темір мен дәнекер
  • сым кескіш
  • Ыстық желім қаруы
  • 8 мм кремний жеңінің бөлігі (суретте жоқ)

Sodial SDS011 мәліметтер кестесін мына жерден жүктей аласыз

2 -қадам: Bluetooth модулін дайындау

Bluetooth модулін дайындау
Bluetooth модулін дайындау
Bluetooth модулін дайындау
Bluetooth модулін дайындау
Bluetooth модулін дайындау
Bluetooth модулін дайындау
Bluetooth модулін дайындау
Bluetooth модулін дайындау

BT-модулінде TTL деңгейіндегі UART интерфейсі бар. Оны ежелгі уақытта интернет -модемдердегідей «AT» командаларымен қайта конфигурациялауға болады. Оны компьютердегі терминалдық бағдарламаға қосу үшін UART -ты компьютерге бейімдеу қажет. Мен Amazon-да сатып алған USB-RS232 түрлендіргішін қолдандым. Мен BT-модуліне қосқышты қолдандым және 3, 3V қуат көзі мен GND-ны конвертерден BT-модуліне бағыттадым. Содан кейін мен сәйкес TxD және RxD желілерін кроссовермен қостым. TxD USB-түрлендіргіштен Bx-модулден RxD-ге және керісінше.

Менде Linux машинасы және cutecom қолданылған. USB-түрлендіргішті қосқаннан кейін компорт «ttyUSB0» болды. Компьютер атауларын Linux машинасындағы «/dev» каталогынан таба аласыз. Windows пайдаланушылары үшін мен «hterm» ұсынар едім. Операциялау оңай. «AT» теріңіз, сіз жауап ретінде «AT» алуыңыз керек. Содан кейін BT модуліне «Sensor» атауын беру үшін «AT+NameSensor» теріңіз.

3 -қадам: бөлшектерді монтаждау

Бөлшектерді монтаждау
Бөлшектерді монтаждау
Бөлшектерді монтаждау
Бөлшектерді монтаждау
Бөлшектерді монтаждау
Бөлшектерді монтаждау
Бөлшектерді монтаждау
Бөлшектерді монтаждау

Ағаштың барлық бөліктерін алуға ыңғайлы мөлшерде кесіңіз. Барлық сигналдарды схемада көрсетілгендей қосыңыз. Сымдарды қорғау үшін олардың айналасына кремний қаптамасын киген дұрыс. Пернетақтадағы USB-B ашасын дәнекерлеңіз. Ол тек электрмен жабдықтау үшін қолданылады. Барлық бөлшектерді ағаш негізге бұрандалармен бекітіңіз. Соңында кабельдерді ағашқа бекіту үшін ыстық желіммен жабыстырыңыз.

4 -қадам: жұптастыру

Жұптау
Жұптау
Жұптау
Жұптау

Сенсор қосымшасын USB қуат көзіне қосу арқылы қосыңыз. BT-модуліндегі қызыл жарық диоды жыпылықтай бастайды. Оны Android смартфонымен жұптастыруға тырыспаңыз. Сіз пин -кодты енгізуіңіз керек. Бұл «1234». Кодты енгізгеннен кейін смартфонды BT модулімен жұптастыру қажет.

5 -қадам: Бағдарламалық қамтамасыз ету

Мен Android қосымшаларын мақсатты платформаның өзінде жазғанды ұнатамын. бұл сізді Android Studio -мен жұмыс жасайтын болсаңыз, эмуляциялаудан сақтайды. Мен Android -тің дамуының үш қолайлы құралын білдім

  • Mintoris Basic. Android -дегі барлық нәрсені ойластыруға арналған көптеген командалар жиынтығы бар негізгі аудармашы. Қолданбалар үшін сілтемелер жасай аласыз. Mintoris basic құрамында компилятор жоқ. Сондықтан сіз Mintoris қолданатын әрбір құрылғыға орнатқан болуыңыз керек. Бірақ сіз оны тек бір рет төлеуіңіз керек (шамамен 7 €)
  • Негізгі! Негізгі аудармашы мен компилятор өте жақсы (кейбір € үшін қосымша). Android -дегі барлық нәрселер дерлік ілінеді және сіз оларды Basic жоқ тарату үшін нақты қосымшаларды құрастыра аласыз! мақсатты құрылғыда. Өкінішке орай негізгі! Mintoris диаграммасының тамаша функциялары жоқ
  • AIDE - бұл Android жүйесінде java -да андроид әзірлеуге арналған жартылай кәсіби IDE. AIDE көмегімен сізде өте икемділік бар, бірақ сіз java -ны үйренуіңіз керек. AIDE жылдық шығындары шамамен 50 евро

Мен Минтористі таңдадым. Бұл бөлімде мен сізге Mintoris бағдарламалау бойынша оқулық бермеймін, бірақ функционалды блоктардың қысқаша сипаттамасын беремін

Келесі бөлімде сенсордың екі деректер желісі мен сәйкес уақыт белгілері үшін үш массив жарияланған. Уақыт белгісі диаграмманың х осін белгілеу үшін қолданылады. Sodial әрқайсысы бөлшектердің арнайы өлшемі үшін көрсетілген екі деректер ағынын шығарады. Екі шаң деректер жиынтығы осы мәндерді қабылдайды.

WakeLock ішінара

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

TextSize 24

CLS

Қалқымалы терезе «Шаң сенсоры (c) ARJ 2017»

Global dustData (), dustDataF (), timeStamp () Жаһандық индекс, таңдау, maxData, fileName $

Күңгірт уақыт белгісі (59)

Қараңғы шаң Деректер (59)

Dim DustF (59)

Dim мәзірі $ (4) = «max. 100 деректер жиынтығы», «max. 1000 деректер жиынтығы», «max. 5000 деректер жиынтығы», «max. 10000 деректер жиынтығы”, »Шығу”

'Массивтерді енгізіңіз

I = 0 -ден 59 -ға дейін

dustData (i) = 0

dustDataF (i) = 0

timeStamp (i) = i

Келесі i

Содан кейін тізім мәзірі конфигурацияланады. Бұл пайдаланушыға жиналатын деректердің максималды көлемін таңдау мүмкіндігін береді. Бұл смартфонның шексіз деректерді сорып алуын болдырмайтын қауіпсіздік қосқышы. BTgetPaired $ () функциялары андроид құрылғысындағы барлық жұптастырылған құрылғылардың тізімін, олардың атаулары мен BT-адрестерін береді.

$ () Мәзірі, таңдау

'Егер деректер сақталатын болса, максималды мөлшерді таңдаңыз

runLevel = 1

Таңдауды таңдаңыз

0 жағдай maxData = 100

1 жағдай maxDate = 1000

2 жағдай maxData = 5000

3 жағдай maxData = 10000

4 жағдай maxData = 0

Таңдауды аяқтау

'' Сенсорды қосыңыз

күңгірт жұп $ (0)

жұп $ () = BTGetPaired $ ()

Егер $ (0) = «жоқ» жұбы болса

«Жұпталған құрылғылар табылмады. BT қосылған ба?» «Бағдарлама тоқтатылды» басып шығару

Соңы

Endif

$ () Тізім жұбы, $ құрылғысы

аты $ = ItemExtract $ (құрылғы $, 0)

$ = ItemExtract $ (құрылғы $, 1)

BTConnect 1, $ мекенжайы

'Қосылымды күтіңіз

Бару ҚОСУ

«Қосылуға тырысуда» басып шығарыңыз; $ адресі

I = 1 -ден 20 -ға дейін

І/2 барысы

Егер BTGetstate (1) = 4 болса, онда 1000 күту үшін шығыңыз

Келесі i

Прогресс ӨШІРІЛДІ

'Сәтті болғанда BT құрылғысына қосылыңыз

Егер BTGetState (1) = 4 болса, онда «Қосылды» Басып шығару Басқа Басып шығару «Қосылу мүмкін емес»; аты $

«Бағдарлама тоқтатылды» басып шығару

Соңы

Endif

Келесі блок деректерді алуды көрсетеді. Әрбір деректер сеансы үшін файл автоматты түрде ашылады және уақыт пен күннің атымен аталады. Содан кейін цикл сенсор деректерін оқиды. Деректер бірнеше байтқа жинақталған. Байттар жиынтығы екі ASCII 170 және 171 таңбаларымен анықталады. Келесі деректер қайта реттеледі және шаң массивтеріне толтырылады.

Графика қосулы

Жазу үшін деректер файлын ашыңыз

fileName $ = FormatTime $ (t, «yyyy-MM-dd-kk-mm-ss») + «.dat»

Open 1, fileName $, «w+» Print «Ашылған деректер файлын»; fileName $ Writeln 1, FormatTime $ (Time (), «yy-MM-dd»)

Жазба 1, «Уақыт шаңы2.5 шаң10»

'Массивті өлшенген мәліметтермен толтырыңыз

деректер $ = «» пакеті $ = «»

индекс = 0

MaxData> 0 кезінде орындаңыз

BTR 1, пакет $, 10

деректер $ = деректер $+пакет $

Егер Len (деректер $)> = 10 болса

Егер (ASCII (Сол жақ $ (деректер $, 1)) = 170) & (ASCII (Оң жақ $ (деректер $, 1)) = 171) Сонда

dustDataF (индекс) = ASCII (Орта $ (деректер $, 2, 1))

dustDataF (индекс) = (dustDataF (индекс)+256*ASCII (Орта $ (деректер $, 3, 1)))/10

dustData (индекс) = ASCII (Орта $ (деректер $, 4, 1))

dustData (индекс) = (dustData (индекс)+256*ASCII (Орта $ (деректер $, 5, 1)))/10

Writeln 1, FormatTime $ (Time (), «kk: mm: ss») + «» + Str $ (dustDataF (index)) + «» + Str $ (dustData (index))

деректер $ = «»

maxData = maxData-1

индекс = индекс+1

Егер индекс> 59 болса, онда индекс = 0

dustData (индекс) = 0

dustDataF (индекс) = 0

Endif

Endif

DrawGraph ()

100 күтіңіз

Цикл

Жабу 1

Графика өшірулі

CLS Print «Бағдарлама тоқтатылды»

Соңы

Соңғы бөлім - бұл әрбір бағдарлама қабылданғаннан кейін шақырылатын қосалқы бағдарлама. Ол экранды тазартады, диаграмманы шаң мен уақыт белгісінде сақталған нақты деректермен қайта өңдейді.

'Координаттарды, белгілерді, кенелерді, сондай -ақ мәліметтер қисығын сызыңыз

Ішкі DrawGraph ()

'Графика режимінде экран ағымдағы түске ауысады

Түс 0, 0, 0

CLS

Түс 0, 0, 100

'Тор сызықтарын салу үшін қолданылатын графикалық түсті орнатыңыз

TextColor 100, 100, 100, 50

'TextColor - тордың негізгі атауының түсі

TextColorA 100, 100, 100

'TextColorA Axis тақырыптары мен торға аннотациялар үшін қолданылады.

'Ось тақырыбының мәтінінің өлшемін орнатыңыз

'Тордың негізгі атауы осы өлшемнен 2 есе үлкен

Мәтін көлемі 20

FixDecimal 0

'2 ондық бөлшекті көрсетуге орнатыңыз

PadDigits 2

'Графикке тор салу' X & Y диапазоны мен атауын орнатыңыз

Axis AxisX 0, 59, «Уақыт/с»

AxisY 0, 10000, «ug/m3»

3 -тор, «Шаңның концентрациясы»

'Шаң графиктерін салыңыз

Түс 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Түс 0, 100, 0

GraphXY timeStamp (), dustData ()

TextColor 100, 0, 0

DrawText «PM2.5», 30, Int (ScreenY ()-60), 90, 1

TextColor 0, 100, 0

DrawText «PM10», 30, Int (ScreenY ()-150), 90, 1

TextColor 100, 100, 100, 50

Қайту

Бастапқы кодты мына жерден жүктеңіз

6 -қадам: Тест

Image
Image
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ

Сенсорды қосыңыз және бағдарламаны іске қосыңыз. Жұпталған құрылғылар тізімінен «Сенсор» деп аталатын біреуін таңдаңыз. Сенсорды қосқаннан кейін экран деректерді көрсете бастайды. Бір мезгілде деректер файлы бөлінеді. Сән аяқталғаннан кейін мәліметтерді көрсету үшін GnuPlot пайдалануға болады. GnuPlot -те «Test.dat» деп аталатын деректер файлын көрсету үшін конфигурациялау үшін «Test.gp» файлын пайдаланыңыз. Сіз оны осы жерден таба аласыз

Толығырақ және тестілеу үшін бейнені қараңыз. Көңілді және көп идеялар көп болсын!

Ұсынылған: