Sisällysluettelo:

Sodial Pölyanturi Androidissa: 6 vaihetta
Sodial Pölyanturi Androidissa: 6 vaihetta

Video: Sodial Pölyanturi Androidissa: 6 vaihetta

Video: Sodial Pölyanturi Androidissa: 6 vaihetta
Video: The secret to living longer may be your social life | Susan Pinker 2024, Marraskuu
Anonim
Sodial Pölyanturi Androidissa
Sodial Pölyanturi Androidissa

Vuosi sitten ystäväni piti viikonloppuna työpajan ympäristön seurannasta. Työpajan tavoitteena oli rakentaa vadelmapi -levylle kytketty pölyanturi mittaustietojen sijoittamiseksi palvelimelle, joka tarjosi usein päivitettäviä pölypitoisuuskarttoja. Ystäväni kysyi, onko mahdollista saada anturitiedot suoraan älypuhelimeesi seurantaa ja kirjaamista varten. Joten kaivoin Internetistä tietolomakkeen ja näin, että anturilla oli yksinkertainen UART -liitäntä 9600Baud 8N1 -protokollalla. Mutta miten yhdistää UART älypuhelimeen? No se on helppoa. Minun oli vain käytettävä yhtä niistä kaikkialla olevista pienistä Bluetooth -moduuleista, jotka tarjoavat emuloidun yhteensopivuuden Androidissa. Saa nyt nähdä miten onnistuin.

Vaihe 1: Mitä tarvitset

Mitä tarvitset
Mitä tarvitset
Mitä tarvitset
Mitä tarvitset

Tarvitset seuraavat osat

  • Liitosliitin JST XH 7-napainen Sodial-liitäntään, jossa on johdot. Ostin omani Ebaysta.
  • Bluetooth -moduuli HC05 tai 06, joka on yhteensopiva UART -liittimen kanssa
  • USB-sarjamuunnin TTL-tason liitännällä. Käytämme tätä antaaksemme BT-moduulille ainutlaatuisen nimen
  • Sodial SDS011 pölyanturi. Sain omani Ebaysta
  • pala veroboardia
  • USB-B-liitin
  • lanka
  • Puupala kaiken kiinnittämiseen

Sitten tarvitset joitain yksinkertaisia työkaluja:

  • Saha puun leikkaamiseen
  • pinsetit
  • juotosrauta ja juote
  • langanleikkuri
  • Kuuma liimapistooli
  • Pala 8 mm: n piiholkkia (ei kuvassa)

Voit ladata Sodial SDS011 -esitteen täältä Sodial SDS011 -esite

Vaihe 2: Bluetooth -moduulin valmistelu

Bluetooth -moduulin valmistelu
Bluetooth -moduulin valmistelu
Bluetooth -moduulin valmistelu
Bluetooth -moduulin valmistelu
Bluetooth -moduulin valmistelu
Bluetooth -moduulin valmistelu
Bluetooth -moduulin valmistelu
Bluetooth -moduulin valmistelu

BT-moduulissa on UART-liitäntä, jossa on TTL-taso. Se voidaan konfiguroida uudelleen AT -komennoilla, kuten teimme Internet -modeemeilla muinaisina aikoina. Jos haluat liittää sen koneesi pääteohjelmaan, sinun on sovitettava UART tietokoneeseesi. Käytin Amazonista ostamaani USB-RS232-muunninta. Laitoin liittimen BT-moduuliin ja reititin 3, 3 V: n virtalähteen ja GND: n muuntimesta BT-moduuliin. Sitten liitin vastaavat TxD- ja RxD -linjat crossoveriin. TxD USB-muuntimesta RxD: ksi BT-moduulista ja päinvastoin.

Minulla on linux -kone ja käytin cutecomia. USB-muuntimen liittämisen jälkeen portti oli "ttyUSB0". Comport -nimet löytyvät Linux -koneesi "/dev" -hakemistosta. Windows -käyttäjille suosittelen "hterm". Se on helppo käyttää. Kirjoita "AT" ja saat "AT" vastauksena. Kirjoita sitten "AT+NameSensor" antaaksesi BT-moduulille nimen "Sensor"

Vaihe 3: Osien asennus

Osien asennus
Osien asennus
Osien asennus
Osien asennus
Osien asennus
Osien asennus
Osien asennus
Osien asennus

Leikkaa puukappale, jonka koko sopii kaikkien osien ottamiseen. Liitä kaikki signaalit kaavion mukaisesti. Johtojen ympärille on hyvä laittaa piiholkki niiden suojaamiseksi. Juotos USB-B-liitin perfboardiin. Sitä käytetään vain virtalähteenä. Kiinnitä kaikki osat puupohjaan ruuveilla. Lopuksi kuumaliimaa kaapelit kiinnittääksesi ne puuhun.

Vaihe 4: Pariliitos

Pariliitos
Pariliitos
Pariliitos
Pariliitos

Käynnistä anturisovellus kytkemällä USB-virtalähde. BT-moduulin punainen LED alkaa vilkkua. Älä yritä yhdistää sitä Android -älypuhelimeesi. Sinun on annettava PIN -koodi. Tämä on "1234". Koodin syöttämisen jälkeen älypuhelimesi on yhdistettävä BT-moduulin kanssa.

Vaihe 5: Ohjelmisto

Tykkään kirjoittaa Android -sovelluksia itse kohdealustalle. se säästää sinut kaikilta emulointitavaroilta, joista sinun on huolehdittava, jos käytät Android Studiota. Löysin kolme sopivaa kehitystyökalua Androidissa

  • Mintoris Basic. Perustulkki, jossa on runsaasti komentoja, joiden avulla voit käsitellä lähes kaikkea Androidissa. Voit luoda pikakuvakkeita sovelluksillesi. Mintoris basic ei sisällä kääntäjää. Joten sinun on oltava asennettuna Mintoris jokaiseen käyttämääsi laitteeseen. Mutta sinun on maksettava se vain kerran (noin 7 €)
  • Perus! Erittäin hyvä Basic-tulkki ja kääntäjä (lisäosa joillekin euroille). Lähes kaikki Androidin koukut ja voit koota todellisia sovelluksia niiden jakamiseksi ilman Basicia! kohdelaitteessa. Valitettavasti Basic! puuttuu Mintoriksen erinomaisista kaaviotaulukkotoiminnoista
  • AIDE on puoliammattimainen IDE Androidin kehittämiseen javassa Androidilla. AIDE: n avulla sinulla on äärimmäinen joustavuus, mutta sinun on opittava java. AIDE: n vuosikustannukset ovat noin 50 €

Valitsin Mintorin. Tässä osassa en anna sinulle Mintoris -ohjelmoinnin opetusohjelmaa, vaan lyhyen kuvauksen toimintolohkoista

Seuraavassa osassa ilmoitetaan kolme matriisia kahdelle anturitietolinjalle ja vastaaville aikaleimoille. Aikaleiman tietoja käytetään kaavion x-akselin merkitsemiseen. Sodial tuottaa kaksi datavirtaa, joista jokainen on määritetty erityiselle hiukkaskoolle. Kaksi dustdata-taulukkoa ottavat nämä arvot.

Osittainen WakeLock

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

Tekstikoko 24

CLS

Ponnahdusikkuna "Pölyanturimittari (c) ARJ 2017"

Global dustData (), dustDataF (), timeStamp () Global index, choice, maxData, fileName $

Aikamerkin himmennys (59)

Tumma (59)

Himmennä pölyä Data (59)

Dim -valikko $ (4) = "enintään 100 tietojoukkoa", "enintään 1000 tietojoukkoa", "enintään 5000 tietojoukkoa", "enintään 10000 tietojoukkoa", "Poistu"

'Alusta taulukot

I = 0-59

dustData (i) = 0

dustDataF (i) = 0

timeStamp (i) = i

Seuraavaksi minä

Seuraavaksi määritetään luettelovalikko. Tämä antaa käyttäjälle mahdollisuuden valita kerättävän datan enimmäiskoko. Tämä on vain turvakytkin, joka estää älypuhelinta imemästä loputtomia tietoja. Toiminnot BTgetPairs $ () antaa takaisin luettelon kaikista Android-laitteen pariliitetyistä laitteista, niiden nimistä ja BT-osoitteista.

Valikko $ (), valinta

'Valitse tallennettavien tietojen enimmäismäärä

runLevel = 1

Valitse vaihtoehto

Tapaus 0 maxData = 100

Tapaus 1 maxDate = 1000

Tapaus 2 maxData = 5000

Tapaus 3 maxData = 10000

Tapaus 4 maxData = 0

Lopeta Valitse

'' Yhdistä anturi

himmeä pari $ (0)

pari $ () = BTGetPairs $ ()

Jos pari $ (0) = "none" Sitten

Tulosta "Laiteparia ei löydy. Onko BT käytössä?" Tulosta "Ohjelma lopetettu"

Loppu

Loppu Jos

Listapari $ (), laite $

nimi $ = ItemExtract $ (laite $, 0)

osoite $ = ItemExtract $ (laite $, 1)

BTConnect 1, osoite $

'Odota yhteyttä

Edistyminen PÄÄLLÄ

Tulosta "Yritetään muodostaa yhteyttä"; osoite $

Sillä i = 1-20

Edistyminen i/2

Jos BTGetstate (1) = 4, Poistu Odota 1000

Seuraavaksi minä

Edistyminen POIS PÄÄLTÄ

'Onnistu, kun muodostat yhteyden BT -laitteeseen

Jos BTGetState (1) = 4 Tulosta sitten "Yhdistetty" Else Print "Ei voi muodostaa yhteyttä"; nimi $

Tulosta "Ohjelma lopetettu"

Loppu

Loppu Jos

Seuraava lohko näyttää datan keräämisen. Tiedosto avataan automaattisesti jokaiselle tietoistunnolle ja se nimetään kellonajan ja päivämäärän mukaan. Sitten silmukka lukee anturitietoja. Tiedot on pakattu useisiin tavuihin. Tavujoukko tunnistetaan kahdella ASCII-merkillä 170 ja 171. Seuraavat tiedot järjestetään uudelleen ja täytetään pölymatriiseihin

Grafiikka päällä

'Avaa kirjoitettava datatiedosto

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

Avaa 1, fileName $, "w+" Tulosta "Avattu datatiedosto"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Writeln 1, "Time Dust2.5 Dust10"

'Täytä taulukko mitatuilla tiedoilla

data $ = "" paketti $ = ""

indeksi = 0

Tee vaikka maxData> 0

BTRead 1, paketti $ 10

data $ = data $+paketti $

Jos Len (data $)> = 10 Sitten

Jos (ASCII (Left $ (data $, 1)) = 170) & (ASCII (Right $ (data $, 1))) = 171) Sitten

dustDataF (indeksi) = ASCII ($ puoliväli (data $, 2, 1))

dustDataF (hakemisto) = (dustDataF (hakemisto)+256*ASCII (puolivälissä $ (data $, 3, 1)))/10

dustData (indeksi) = ASCII ($ puoliväli (data $, 4, 1))

dustData (indeksi) = (dustData (hakemisto)+256*ASCII ($ puoliväli (data $, 5, 1)))/10

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

data $ = ""

maxData = maxData-1

indeksi = indeksi+1

Jos indeksi> 59 Sitten indeksi = 0

dustData (indeksi) = 0

dustDataF (indeksi) = 0

Loppu Jos

Loppu Jos

DrawGraph ()

Odota 100

Silmukka

Sulje 1

Grafiikka pois päältä

CLS -tulostus "Ohjelma lopetettu"

Loppu

Viimeinen osa on aliohjelma, joka kutsutaan jokaisen datavastaanoton jälkeen. Se tyhjentää näytön, piirtää kaavion uudelleen pöly- ja aikaleimajärjestelmiin tallennetuilla tiedoilla.

'Piirrä koordinaatit, tarrat, punkit ja myös datakäyrät

Sub DrawGraph ()

'Grafiikkatilassa näyttö muuttuu nykyiseksi

Väri 0, 0, 0

CLS

Väri 0, 0, 100

'Aseta ruudukon viivojen piirtämiseen käytettävä grafiikan väri

TextColor 100, 100, 100, 50

'TextColor on ruudukon pääotsikon väri

TextColorA 100, 100, 100

'TextColorA: ta käytetään akselin otsikoihin ja ruudukkomerkintöihin.

'Aseta akselin otsikkotekstin koko

'Ruudukon pääotsikko on 2x tämän kokoinen

Tekstikoko 20

FixDecimal 0

'Aseta näyttämään kaksi desimaalia

PadDigits 2

'Piirrä ruudukko kaavioon' Aseta X & Y: n alue ja otsikko

Akseli AxisX 0, 59, "Aika/s"

AkseliY 0, 10000, "ug/m3"

Ruudukko 3, "Pölypitoisuus"

'Piirrä pölykaaviot

Väri 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Väri 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

Palata

Lataa lähdekoodi täältä

Vaihe 6: Testaa

Image
Image
Testata
Testata
Testata
Testata
Testata
Testata

Käynnistä anturi ja käynnistä sovellus. Valitse pariliitettyjen laitteiden luettelosta "Sensor". Anturin liittämisen jälkeen näyttö alkaa näyttää tietoja. Samalla datatiedosto varataan. Muodin päätyttyä voit näyttää tiedot GnuPlotilla. Määritä GnuPlot GnuPlot -tiedoston "Test.gp" avulla näyttämään datatiedosto nimeltä "Test.dat". Löydät sen myös täältä

Katso videolta lisätietoja ja testaus. Hauskaa ja lisää ideoita!

Suositeltava: