Përmbajtje:

Sensori i Pluhurit Sodial në Android: 6 hapa
Sensori i Pluhurit Sodial në Android: 6 hapa

Video: Sensori i Pluhurit Sodial në Android: 6 hapa

Video: Sensori i Pluhurit Sodial në Android: 6 hapa
Video: Haval DARGO Хавал в котором есть ВСЕ!!! Когда купил Дарго 2024, Nëntor
Anonim
Sensori i Pluhurit Sodial në Android
Sensori i Pluhurit Sodial në Android

Një vit më parë një miku im kishte një punëtori gjatë fundjavës për monitorimin e mjedisit. Qëllimi i punëtorisë ishte të ndërtonte një sensor pluhuri të lidhur me një bord të mjedrës pi për të vendosur të dhëna matëse në disa serverë që siguronin harta të përqendrimit të pluhurit të përditësuara shpesh. Miku im pyeti nëse ka një mënyrë për të marrë të dhënat e sensorit direkt në smartphone -in e tij për monitorim dhe regjistrim. Kështu që unë gërmova internetin për një fletë të të dhënave dhe pashë që sensori kishte një ndërfaqe të thjeshtë UART me protokollin 9600Baud 8N1. Por si të lidhni një UART me një smartphone? Epo, është e lehtë. Thjesht më duhej të përdorja një nga ato module të kudogjendura të vogla Bluetooth që ofrojnë një komplet të emuluar në android. Tani shikoni se si e arrita.

Hapi 1: Ajo që ju nevojitet

Ajo që ju nevojitet
Ajo që ju nevojitet
Ajo që ju nevojitet
Ajo që ju nevojitet

Keni nevojë për pjesët e mëposhtme

  • Një lidhës çiftëzimi JST XH 7-pin për ndërfaqen Sodial me tela. Bleva timen në Ebay.
  • Një modul Bluetooth HC05 ose 06 i pajtueshëm me lidhësin UART
  • Një konvertues serik USB me ndërfaqe të nivelit TTL. Ne e përdorim këtë për t'i dhënë modulit BT një emër unik
  • Sensori pluhur sodial SDS011. Unë e mora nga Ebay
  • një copë veroboard
  • Lidhës USB-B
  • tela
  • Një copë druri për të montuar gjithçka

Atëherë do t'ju duhet disa mjete të thjeshta:

  • Një sharrë metalike për prerjen e drurit
  • piskatore
  • lidhës hekuri dhe lidhës
  • prerës teli
  • Armë me zam të nxehtë
  • Një copë mëngë silikoni 8 mm (jo në foto)

Ju mund të shkarkoni fletën e të dhënave Sodial SDS011 këtu Fletën e të dhënave Sodial SDS011

Hapi 2: Përgatitja e modulit Bluetooth

Përgatitja e modulit Bluetooth
Përgatitja e modulit Bluetooth
Përgatitja e modulit Bluetooth
Përgatitja e modulit Bluetooth
Përgatitja e modulit Bluetooth
Përgatitja e modulit Bluetooth
Përgatitja e modulit Bluetooth
Përgatitja e modulit Bluetooth

Moduli BT ka një ndërfaqe UART me nivelin TTL. Mund të rikonfigurohet me komandat "AT" siç bëmë me modemët e internetit në kohët e lashta. Për ta lidhur atë me një program terminal në kompjuterin tuaj, duhet të përshtatni UART me kompjuterin tuaj. Kam përdorur një konvertues USB-RS232 që bleva në amazon. Unë aplikova një lidhës për modulin BT dhe drejtova furnizimin me energji elektrike 3, 3V dhe GND nga konvertuesi në modulin BT. Pastaj lidha linjat përkatëse TxD dhe RxD në kryqëzim. TxD nga konvertuesi USB në RxD nga moduli BT dhe anasjelltas.

Unë kam një makinë linux dhe përdor cutecom. Pas lidhjes së konvertuesit USB, komporti ishte "ttyUSB0". Ju mund t'i gjeni emrat e komportit në drejtorinë "/dev" në makinën tuaj linux. Për përdoruesit e Windows unë do të rekomandoja "hterm". Easyshtë e lehtë për të vepruar. Shkruani "AT" dhe ju duhet të merrni "AT" si përgjigje. Pastaj shtypni "AT+NameSensor" për t'i dhënë modulit BT emrin "Sensor"

Hapi 3: Montimi i pjesëve

Montimi i pjesëve
Montimi i pjesëve
Montimi i pjesëve
Montimi i pjesëve
Montimi i pjesëve
Montimi i pjesëve
Montimi i pjesëve
Montimi i pjesëve

Pritini një copë druri në një madhësi të përshtatshme për marrjen e të gjitha pjesëve. Lidhni të gjitha sinjalet siç tregohet në skemë. Ideashtë një ide e mirë të vendosni një mëngë silikoni rreth telave për t'i mbrojtur ato. Ngjiteni prizën USB-B në tabelën e shpinës. Përdoret vetëm për furnizimin me energji elektrike. Fiksoni të gjitha pjesët me vida në bazën prej druri. Më në fund ngjitni nxehtësisht kabllot për t'i fiksuar ato në dru.

Hapi 4: Çiftimi

Çiftimi
Çiftimi
Çiftimi
Çiftimi

Fikni aplikacionin e sensorit duke lidhur një furnizim me energji USB. Një LED i kuq në modulin BT do të fillojë të pulsojë. Asnjëherë mos u përpiqni ta çiftoni me smartphone tuaj android. Duhet të futni një kod pin. Kjo është "1234". Pasi të keni futur kodin, smartphone juaj duhet të çiftohet me modulin BT.

Hapi 5: Softueri

Më pëlqen të shkruaj aplikacione Android në vetë platformën e synuar. ju kursen nga të gjitha gjërat imituese për të cilat duhet të kujdeseni nëse punoni me Android Studio. Kam gjetur tre mjete të përshtatshme zhvillimi në vetë Android

  • Mintoris Basic. Një përkthyes bazë me një sërë komandash të pasura për të ngatërruar me pothuajse gjithçka në android. Mund të krijoni shkurtore për aplikacionet tuaja. Mintoris bazë nuk përmban një përpilues. Pra, duhet të keni instaluar Mintoris në çdo pajisje që përdorni. Por ju duhet të paguani për të vetëm një herë (rreth 7 €)
  • Themelore! Përkthyes dhe përpilues jashtëzakonisht i mirë bazë (shtesë për disa €). Pothuajse lidhet me gjithçka në android dhe mund të përpiloni aplikacione të vërteta për t'i shpërndarë ato pa pasur Basic! në pajisjen e synuar. Mjerisht Themelore! i mungojnë funksionet e shkëlqyera të grafikut të diagramit të Mintoris
  • AIDE është një IDE gjysmë profesionale për zhvillimin e android në java në android. Me AIDE ju keni fleksibilitetin më të madh, por ju duhet të mësoni java. AIDE ka kosto vjetore prej rreth 50 €

Zgjodha Mintoris. Në këtë pjesë nuk do t'ju jap një tutorial të programimit në Mintoris, por një përshkrim të shkurtër të blloqeve të funksioneve

Në pjesën vijuese, tre vargje deklarohen për dy linjat e të dhënave të sensorit dhe afatet kohore përkatëse. Të dhënat kohore përdoren për etiketimin e boshtit x të diagramës. Sodial nxjerr dy rryma të dhënash secila të specifikuara për një madhësi të veçantë të grimcave. Dy vargjet e të dhënave të të dhënave marrin këto vlera.

WakeLock i pjesshëm

Ngjyra e tekstit 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

Madhësia e tekstit 24

CLS

Dritarja "Matësi i sensorit të pluhurit (c) ARJ 2017"

Pluhuri global Data (), dustDataF (), timeStamp () Indeksi global, zgjedhja, maksData, emri i skedarit $

Koha e zbehur Pulla (59)

Pluhur i zbehtë Të dhëna (59)

Pluhur i zbehtëDataF (59)

Menuja e zbehtë $ (4) = "max. 100 grupe të të dhënave", "max. 1000 grupe të të dhënave", "max. 5000 grupe të të dhënave", "max. 10000 grupe të dhënash", "Exit"

'Filloni vargjet

Për i = 0 deri në 59

pluhurData (i) = 0

dustDataF (i) = 0

vula kohore (i) = i

Tjetra i

Tjetra një menu List është konfiguruar. Kjo i jep përdoruesit një zgjedhje për të zgjedhur madhësinë maksimale të të dhënave për të mbledhur. Ky është vetëm një çelës sigurie për të parandaluar që smartphone të thithë të dhëna të pafundme. Funksionet BTgetPaired $ () kthen një listë me të gjitha pajisjet e çiftuara në pajisjen android, emrat e tyre dhe adresën BT.

L ist Menu $ (), e zgjedhur

'Zgjidhni shumën maksimale nëse të dhënat do të ruhen

runLevel = 1

Zgjidhni zgjedhjen

Rasti 0 maxData = 100

Rasti 1 maxData = 1000

Rasti 2 maxData = 5000

Rasti 3 maxData = 10000

Rasti 4 maxData = 0

Zgjedhja e Fundit

'' Lidh sensorin

palë e zbehtë $ (0)

palë $ () = BTGetPaired $ ()

Nëse palë $ (0) = "asnjë" Atëherë

Shtyp "Nuk u gjetën pajisje të çiftuara. A është BT i ndezur?" Shtyp "Programi përfundoi"

Fund

Endif

Listoni palën $ (), pajisjen $

emri $ = ItemExtract $ (pajisja $, 0)

adresa $ = ItemExtract $ (pajisja $, 1)

BTConnect 1, adresa $

'Prisni lidhjen

Progresi ON

Shtypni "Duke u përpjekur të lidheni me"; adresa $

Për i = 1 deri në 20

Përparimi i/2

Nëse BTGetstate (1) = 4 Pastaj dilni për Prisni 1000

Tjetra i

Progresi OFF

'Me sukses lidheni me pajisjen BT

Nëse BTGetState (1) = 4 Pastaj Shtypni "Lidhur" Tjetër Shtyp "Nuk mund të lidhet me"; emri $

Shtyp "Programi përfundoi"

Fund

Endif

Blloku tjetër tregon marrjen e të dhënave. Për secilën sesion të të dhënave një skedar hapet automatikisht dhe emërohet sipas kohës dhe datës. Pastaj lak po lexon të dhënat e sensorit. Të dhënat paketohen në disa byte. Një grup bajtësh identifikohet nga dy karaktere ASCII 170 dhe 171. Të dhënat e mëposhtme riorganizohen dhe mbushen në grupimet e pluhurit

Grafika Aktive

'Hapni skedarin e të dhënave për të shkruar

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

Hap 1, fileName $, "w+" Print "Datafile e hapur"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Writeln 1, "Pluhuri i kohës 2.5 pluhuri10"

'Plotësoni grupin me të dhënat e matura

të dhëna $ = "" pako $ = ""

indeksi = 0

Bëni ndërsa maxData> 0

BTRead 1, pako $, 10

të dhëna $ = të dhëna $+pako $

Nëse Len (të dhëna $)> = 10 Atëherë

Nëse (ASCII (Majtas $ (të dhëna $, 1)) = 170) & (ASCII (Djathtas $ (të dhëna $, 1)) = 171) Atëherë

dustDataF (indeksi) = ASCII (Mes $ (të dhëna $, 2, 1))

dustDataF (indeksi) = (dustDataF (indeksi)+256*ASCII (Mes $ (të dhëna $, 3, 1)))/10

dustData (indeksi) = ASCII (Mes $ (të dhëna $, 4, 1))

dustData (indeksi) = (dustData (indeksi)+256*ASCII (Mes $ (të dhëna $, 5, 1)))/10

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

të dhëna $ = ""

maxData = maxData-1

indeks = indeks+1

Nëse indeksi> 59 Pastaj indeksi = 0

pluhurData (indeksi) = 0

dustDataF (indeksi) = 0

Endif

Endif

DrawGraph ()

Prisni 100

Lak

Mbylle 1

Grafika joaktive

CLS Print "Programi përfundoi"

Fund

Pjesa e fundit është një nëngrup që thirret pas çdo marrjeje të të dhënave. Pastron ekranin, rishikon diagramin me të dhënat aktuale të ruajtura në vargjet e pluhurit dhe kohëzgjatjes.

'Vizatoni koordinatat, etiketat, rriqrat dhe gjithashtu kthesat e të dhënave

Nën DrawGraph ()

'Në modalitetin Grafik, ekrani pastrohet në ngjyrën aktuale

Ngjyra 0, 0, 0

CLS

Ngjyra 0, 0, 100

'Vendosni ngjyrën grafike që do të përdoret për të vizatuar linjat e rrjetit

TextColor 100, 100, 100, 50

'TextColor është ngjyra e titullit kryesor të rrjetit

TextColorA 100, 100, 100

'TextColorA përdoret për titujt e Boshtit dhe shënimet e rrjetit.

'Vendosni madhësinë e tekstit të titullit të boshtit

'Titulli kryesor i rrjetit është 2 herë në këtë madhësi

Madhësia e tekstit 20

FixDecimal 0

'Vendos që të shfaqen 2 vende dhjetore

PadDigits 2

'Vizatoni një rrjet për grafikun' Vendosni diapazonin dhe titullin e X & Y

Aksi AxisX 0, 59, "Koha/s"

AksiY 0, 10000, "ug/m3"

Rrjeti 3, "Përqendrimi i pluhurit"

'Vizatoni grafikë pluhuri

Ngjyra 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Ngjyra 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

Kthehu

Shkarkoni kodin burimor këtu

Hapi 6: Testoni

Image
Image
Test
Test
Test
Test
Test
Test

Ndizni sensorin dhe filloni aplikacionin. Nga lista e pajisjeve të çiftuara zgjidhni atë të quajtur "Sensor". Pas lidhjes së sensorit, ekrani do të fillojë të shfaqë të dhënat. Njëkohësisht shpërndahet skedari i të dhënave. Pas përfundimit të modës, mund të përdorni GnuPlot për të shfaqur të dhënat. Përdorni skedarin "Test.gp" në GnuPlot për të konfiguruar GnuPlot për shfaqjen e një skedari të dhënash të quajtur "Test.dat". Mund ta gjeni edhe këtu

Shikoni videon për më shumë detaje dhe testime. Keni shumë argëtim dhe më shumë ide!

Recommended: