Orodha ya maudhui:

Sensor ya Vumbi ya Sodial kwenye Android: Hatua 6
Sensor ya Vumbi ya Sodial kwenye Android: Hatua 6

Video: Sensor ya Vumbi ya Sodial kwenye Android: Hatua 6

Video: Sensor ya Vumbi ya Sodial kwenye Android: Hatua 6
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, Novemba
Anonim
Sensor ya Vumbi ya Sodial kwenye Android
Sensor ya Vumbi ya Sodial kwenye Android

Mwaka mmoja uliopita rafiki yangu alikuwa na semina ya wikendi kuhusu ufuatiliaji wa mazingira. Lengo la semina hiyo ilikuwa kujenga sensorer ya vumbi iliyounganishwa na bodi ya rasipberry pi kuweka data ya kipimo kwenye seva fulani ambayo ilitoa ramani za mkusanyiko wa vumbi mara kwa mara. Rafiki yangu aliuliza ikiwa kuna njia ya kupata data ya sensorer moja kwa moja kwenye smartphone yake kwa ufuatiliaji na ukataji miti. Kwa hivyo nikachimba wavuti kwa hati ya data na nikaona kuwa sensa ilikuwa na kiolesura rahisi cha UART na itifaki ya 9600Baud 8N1. Lakini jinsi ya kuunganisha UART kwa smartphone? Kweli, hiyo ni rahisi. Ilinibidi tu nitumie moja wapo ya moduli ndogo ndogo za Bluetooth ambazo zinatoa mwendo ulioiga kwenye android. Sasa angalia jinsi nilivyoifanya.

Hatua ya 1: Unachohitaji

Unachohitaji
Unachohitaji
Unachohitaji
Unachohitaji

Unahitaji sehemu zifuatazo

  • Kontakting ya kupandisha JST XH 7-pin kwa kiunganishi cha Sodial na waya. Nilinunua yangu kwenye Ebay.
  • Moduli ya Bluetooth HC05 au 06 inayoambatana na kiunganishi cha UART
  • Kigeuzi cha USB-serial na kiolesura cha kiwango cha TTL. Tunatumia hii kutoa moduli ya BT jina la kipekee
  • Sensor ya vumbi ya Sodial SDS011. Nilipata yangu kutoka Ebay
  • kipande cha veroboard
  • Kiunganishi cha USB-B
  • Waya
  • Kipande cha kuni kuweka kila kitu juu

Kisha utahitaji zana rahisi:

  • Bucksaw kwa kukata kuni
  • kibano
  • chuma cha solder na solder
  • mkata waya
  • Bunduki ya gundi moto
  • Kipande cha sleeve ya silicon 8mm (sio kwenye picha)

Unaweza kupakua lahajedwali la Sodial SDS011 hapa Jedwali la Sodial SDS011

Hatua ya 2: Kuandaa Moduli ya Bluetooth

Kuandaa Moduli ya Bluetooth
Kuandaa Moduli ya Bluetooth
Kuandaa Moduli ya Bluetooth
Kuandaa Moduli ya Bluetooth
Kuandaa Moduli ya Bluetooth
Kuandaa Moduli ya Bluetooth
Kuandaa Moduli ya Bluetooth
Kuandaa Moduli ya Bluetooth

Moduli ya BT ina kiolesura cha UART na kiwango cha TTL. Inaweza kusanidiwa tena kuwa amri za "AT" kama tulivyofanya na modemu za wavuti zamani katika nyakati za zamani. Ili kuiunganisha na programu ya terminal kwenye mashine yako unahitaji kurekebisha UART kwa kompyuta yako. Nilitumia kibadilishaji cha USB-RS232 nilichonunua saa amazon. Niliweka kontakt kwa moduli ya BT na kupitisha usambazaji wa umeme wa 3, 3V na GND kutoka kwa kibadilishaji kwenda kwa moduli ya BT. Kisha nikaunganisha laini husika za TxD na RxD kwenye crossover. TxD kutoka kwa kibadilishaji cha USB hadi RxD kutoka kwa moduli ya BT na kinyume chake.

Nina mashine ya linux na cutecom iliyotumiwa. Baada ya kuunganisha kibadilishaji cha USB comport ilikuwa "ttyUSB0". Unaweza kupata majina ya comport katika saraka ya "/ dev" kwenye mashine yako ya linux. Kwa watumiaji wa windows ningependekeza "hterm". Ni rahisi kufanya kazi. Andika "AT" na unapaswa kupata "AT" kama jibu. Kisha andika "AT + NameSensor" ili upe moduli ya BT jina "Sensor"

Hatua ya 3: Kuweka Sehemu

Kuweka Sehemu
Kuweka Sehemu
Kuweka Sehemu
Kuweka Sehemu
Kuweka Sehemu
Kuweka Sehemu
Kuweka Sehemu
Kuweka Sehemu

Kata kipande cha kuni kwa saizi inayofaa kuchukua sehemu zote. Unganisha ishara zote kama ilivyoonyeshwa kwenye skimu. Ni wazo nzuri kuweka sleeve ya silicon karibu na waya kuzilinda. Solder kuziba USB-B kwenye ubao wa maandishi. Inatumika tu kwa usambazaji wa umeme. Rekebisha sehemu zote na visu kwenye msingi wa mbao. Mwishowe gundi moto nyaya kuzirekebisha kwenye kuni.

Hatua ya 4: Kuoanisha

Kuoanisha
Kuoanisha
Kuoanisha
Kuoanisha

Imarisha matumizi ya sensorer kwa kuziba usambazaji wa umeme wa USB. LED nyekundu kwenye moduli ya BT itaanza kupepesa. Hakuna kujaribu kuilinganisha na smartphone yako ya admin. Lazima uweke msimbo wa siri. Hii ni "1234". Baada ya kuingiza nambari smartphone yako inapaswa kuunganishwa na moduli ya BT.

Hatua ya 5: Programu

Ninapenda kuandika programu za Android kwenye jukwaa lengwa lenyewe. inakuokoa kutoka kwa vitu vyote vya kuiga ambavyo unapaswa kujali ikiwa unafanya kazi na Studio ya Android. Niligundua zana tatu zinazofaa za maendeleo kwenye Android yenyewe

  • Msingi wa Mintoris. Mkalimani wa kimsingi na seti nyingi za amri za kuzunguka karibu na kila kitu kwenye android. Unaweza kuunda njia za mkato za programu zako. Msingi wa Mintoris hauna mkusanyaji. Kwa hivyo lazima uwe umeweka Mintoris kwenye kila kifaa unachotumia. Lakini lazima ulipe mara moja tu (karibu 7 €)
  • Msingi! Mkalimani mzuri wa msingi na mkusanyaji (nyongeza kwa baadhi ya €). Karibu ndoano kwenye kila kitu kwenye android na unaweza kukusanya programu halisi za kuzisambaza bila kuwa na Basic! kwenye kifaa lengwa. Cha kusikitisha! haina kazi bora ya chati ya mchoro ya Mintoris
  • AIDE ni nusu mtaalamu IDE ya kufanya maendeleo ya android katika java kwenye android. Ukiwa na Msaada una kubadilika kabisa lakini unahitaji kujifunza java. AIDE ina gharama ya kila mwaka ya karibu 50 €

Nilichagua Mintoris. Katika sehemu hii sitakupa mafunzo ya programu katika Mintoris lakini maelezo mafupi ya vitalu vya kazi

Katika sehemu ifuatayo safu tatu zinatangazwa kwa mistari miwili ya data ya sensa na mihuri ya nyakati. Takwimu ya muhuri hutumiwa kwa kuweka mhimili wa x wa mchoro. Matokeo ya Sodial hutoa mitiririko miwili ya data kila iliyoainishwa kwa saizi maalum ya chembe. Safu mbili za safu ya vumbi huchukua maadili haya.

WakeLock Sehemu

NakalaColor 100, 75, 10

NakalaColorA 50, 50, 50

NakalaAlign 0

NakalaSize 24

CLS

Dukizi "Mita ya Sura ya Vumbi (c) ARJ 2017"

Global vumbiData (), vumbiDataF (), Stempu ya wakati () Faharisi ya kimataifa, chaguo, maxData, failiName $

Wakati hafifu Stempu (59)

Data vumbi (59)

Punguza vumbiDataF (59)

Punguza Menyu $ (4) = "seti za data 100", "seti za data 1000", "seti za data 5000", "seti za data 10000", "Toka"

Ingiza safu

Kwa i = 0 hadi 59

vumbiData (i) = 0

vumbiDataF (i) = 0

mudaStamp (i) = i

Ifuatayo i

Ifuatayo orodha ya Orodha imesanidiwa. Hii inampa mtumiaji chaguo kuchagua saizi kubwa ya data kukusanya. Hii ni kubadili tu usalama ili kuzuia smartphone kutoka kwa kunyonya data isiyo na mwisho. Kazi BTgetPaired $ () inarudisha orodha na vifaa vyote vilivyooanishwa kwenye kifaa cha android, majina yao na BT-adress.

L ist Menyu $ (), chaguo

Chagua kiwango cha juu ikiwa data itahifadhiwa

runLevel = 1

Chagua chaguo

Kesi 0 maxData = 100

Kesi 1 maxDate = 1000

Uchunguzi 2 maxData = 5000

Uchunguzi 3 maxData = 10000

Uchunguzi 4 maxData = 0

Mwisho Chagua

Unganisha sensa

jozi hafifu $ (0)

jozi $ () = BTGetPaired $ ()

Ikiwa jozi $ (0) = "hakuna" Basi

Chapisha "Hakuna vifaa vilivyooanishwa vilivyopatikana. Je! BT imewashwa?" Chapisha "Programu imesitishwa"

Mwisho

Endif

Orodhesha jozi $ (), kifaa $

jina $ = ItemToa $ (kifaa $, 0)

anwani $ = ItemToa $ (kifaa $, 1)

BTConnect 1, anwani $

Subiri unganisho

MAENDELEO YAO

Chapisha "Kujaribu kuungana na"; anwani $

Kwa i = 1 hadi 20

Maendeleo i / 2

Ikiwa BTGetstate (1) = 4 Kisha Toka Kusubiri 1000

Ifuatayo i

Maendeleo YAMEZIMA

Kwenye mafanikio unganisha kifaa cha BT

Ikiwa BTGetState (1) = 4 Kisha Chapisha "Imeunganishwa" Chapisho Lingine "Haikuweza kuungana na"; jina $

Chapisha "Programu imesitishwa"

Mwisho

Endif

Kizuizi kinachofuata kinaonyesha ufikiaji wa data. Kwa kila kikao cha data faili hufunguliwa kiatomati na kutajwa baada ya wakati na tarehe. Kisha kitanzi kinasoma data ya sensorer. Takwimu zimejaa ka kadhaa. Seti ya ka hutambuliwa na herufi mbili za ASCII 170 na 171. Takwimu zifuatazo zimepangwa tena na kujazwa kwenye safu za vumbi

Picha zimewashwa

Fungua faili ya data ili uandike

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

Fungua 1, fileName $, "w +" Chapisha "Faili ya data iliyofunguliwa"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Writeln 1, "Vumbi la Muda2.5 Vumbi10"

Jaza safu na data iliyopimwa

data $ = "" pakiti $ = ""

faharisi = 0

Fanya Wakati maxData> 0

BTRead 1, pakiti $, 10

data $ = data $ + pakiti $

Ikiwa Len (data $)> = 10 Basi

Ikiwa (ASCII (kushoto $ (data $, 1)) = 170) & (ASCII (Right $ (data $, 1)) = 171)

vumbiDataF (index) = ASCII (Mid $ (data $, 2, 1))

dustDataF (index) = (dustDataF (index) + 256 * ASCII (Mid $ (data $, 3, 1))) / 10

vumbiData (index) = ASCII (Mid $ (data $, 4, 1))

vumbiData (index) = (vumbiData (faharisi) + 256 * ASCII (Mid $ (data $, 5, 1))) / 10

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

data $ = ""

maxData = maxData-1

index = index + 1

Ikiwa index> 59 Kisha index = 0

vumbiData (index) = 0

vumbiDataF (index) = 0

Endif

Endif

DrawGraph ()

Subiri 100

Kitanzi

Funga 1

Graphics Off

Magazeti ya CLS "Mpango umesitishwa"

Mwisho

Sehemu ya mwisho ni sehemu ndogo inayoitwa baada ya kila upokeaji wa data. Inafuta skrini, inachora tena mchoro na data halisi iliyohifadhiwa kwenye safu ya vumbi- na timestamp.

Chora kuratibu, lebo, kupe na pia curve za data

Draw Draw ndogo ()

'Katika hali ya Picha, skrini inafafanua rangi ya sasa

Rangi 0, 0, 0

CLS

Rangi 0, 0, 100

Weka rangi ya picha kutumika kuteka mistari ya gridi ya taifa

NakalaColor 100, 100, 100, 50

'TextColor ni rangi ya kichwa kikuu cha gridi

NakalaColorA 100, 100, 100

'TextColorA hutumiwa kwa majina ya Axis na ufafanuzi wa gridi ya taifa.

Weka ukubwa wa maandishi ya kichwa cha mhimili

Kichwa kuu cha gridi ni 2x saizi hii

Nambari ya maandishi 20

KurekebishaDecimal 0

'Weka ili kuonyesha maeneo 2 ya desimali

PadDigits 2

'Chora gridi ya grafu' Weka anuwai na kichwa cha X & Y

Mhimili AxisX 0, 59, "Saa / saa"

Mhimili 0, 10000, "ug / m3"

Gridi 3, "Mkusanyiko wa Vumbi"

Chora Grafu za Vumbi

Rangi 100, 0, 0

Wakati wa GrafuXYStamp (), vumbiDataF ()

Rangi 0, 100, 0

Wakati wa GrafuXYStamp (), vumbiData ()

NakalaColor 100, 0, 0

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

NakalaColor 0, 100, 0

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

NakalaColor 100, 100, 100, 50

Kurudi

Pakua nambari ya chanzo hapa

Hatua ya 6: Jaribu

Image
Image
Jaribu
Jaribu
Jaribu
Jaribu
Jaribu
Jaribu

Imarisha sensa na anza programu. Kutoka kwenye orodha ya vifaa vilivyooanishwa chagua ile iitwayo "Sensor". Baada ya kuunganisha sensor skrini itaanza kuonyesha data. Wakati huo huo faili ya data imetengwa. Baada ya kumaliza mtindo unaweza kutumia GnuPlot kuonyesha data. Tumia faili "Test.gp" katika GnuPlot kusanidi GnuPlot kwa kuonyesha faili ya data iitwayo "Test.dat". Unaweza pia kupata makopo hapa

Tazama video kwa maelezo zaidi na upimaji. Kuwa na mawazo mengi ya kufurahisha na zaidi!

Ilipendekeza: