Мазмұны:
- 1 -қадам: Сізге не қажет
- 2 -қадам: Bluetooth модулін дайындау
- 3 -қадам: бөлшектерді монтаждау
- 4 -қадам: жұптастыру
- 5 -қадам: Бағдарламалық қамтамасыз ету
- 6 -қадам: Тест
Бейне: Android жүйесіндегі шаңды датчик: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бір жыл бұрын менің досым экологиялық мониторинг бойынша демалыс күндері семинар өткізді. Семинардың мақсаты - шаң концентрациясының картасын жиі жаңартатын кейбір серверге өлшеу деректерін енгізу үшін таңқурай пи тақтасына қосылған шаң датчигін құру. Менің досым сенсорлық деректерді бақылау және тіркеу үшін смартфоннан тікелей алуға болатынын сұрады. Мен Интернетті деректер кестесін іздедім және сенсорда 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 модулін дайындау
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 -қадам: Тест
Сенсорды қосыңыз және бағдарламаны іске қосыңыз. Жұпталған құрылғылар тізімінен «Сенсор» деп аталатын біреуін таңдаңыз. Сенсорды қосқаннан кейін экран деректерді көрсете бастайды. Бір мезгілде деректер файлы бөлінеді. Сән аяқталғаннан кейін мәліметтерді көрсету үшін GnuPlot пайдалануға болады. GnuPlot -те «Test.dat» деп аталатын деректер файлын көрсету үшін конфигурациялау үшін «Test.gp» файлын пайдаланыңыз. Сіз оны осы жерден таба аласыз
Толығырақ және тестілеу үшін бейнені қараңыз. Көңілді және көп идеялар көп болсын!
Ұсынылған:
Ноутбуктың қызмет ету мерзімін ұзартыңыз! Шаңды жылу сіңіргіштен тазалаңыз: 3 қадам
Ноутбуктың қызмет ету мерзімін ұзартыңыз! Тозаңды шаңнан тазартыңыз: Toshiba ноутбукінің жылу қабылдағышының шаңын қалай тазартқаны туралы қарапайым шолу. Онда көп нәрсе болды! Мен бұл тәжірибені өндірушілер ұсынбайды және көтермейді деп сенбеймін. Егер шаң ауаның кіруі мен шығуына кедергі келтірсе және
Vision 4all - Visais Assistida жүйесіндегі кемшіліктер Visais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 қадам
Vision 4all - Visao Assistida Para тапшылығы жүйесі Visais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRI & Ccedil à autonomia para deficientes visuais se locomoverem ememientes como casas ou shopping centers e aeroportos.A locomo ç mapeados pode ou n ã o s
Шаңды кетіргіш (Sumo Bot): 4 қадам
Dust Ruffler (Sumo Bot): Құралдар мен материалдар тізімі Dust Ruffler жасау үшін қолданылатын құралдар мен материалдар өте қарапайым және сатып алуға оңай. Электроника: Батарея жиынтығы, үздіксіз айналатын жоғары моментті серво (x3), қабылдағыш және пульт. 3x2 'көбік өзегі х-а
Шаңды қабырға Arduino анимациялық жарық шамы: 11 қадам (суреттермен)
Шаңды қабырға Arduino жарық эффектісі бар анимациялық жарықдиодты шам: Мен нәресте көтердім, оның жатын бөлмесін жасағаннан кейін маған қабырғаға жарық қажет болды. Мен светодиодты жақсы көретіндіктен, мен бірдеңе жасауды шештім, маған жалпы ұшақ ұнайды, сондықтан неге қабырғаға мультфильмнен ұшақ салуға болмайды?
Nokia 6280 шаңды тазалауға арналған дисплей қақпағын алу: 7 қадам
Nokia 6280 шаңды тазалауға арналған дисплей қақпағын алып тастау: көптеген басқа модельдерден айырмашылығы, Nokia 6280 қолданушылар дисплей қақпағын өздері шеше алатындай етіп жасалмаған сияқты. Бұл нақты СКД мен дисплей қақпағының арасында шаң пайда болғандарды ашуландырады, бұл көптеген иелері … Шын мәнінде, уақыт өте келе, бұл