Sisukord:

Naatriumtolmuandur Androidis: 6 sammu
Naatriumtolmuandur Androidis: 6 sammu

Video: Naatriumtolmuandur Androidis: 6 sammu

Video: Naatriumtolmuandur Androidis: 6 sammu
Video: Как ОЧИСТИТЬ ПАМЯТЬ Телефона НИЧЕГО НУЖНОГО НЕ УДАЛЯЯ ? Удаляем Ненужные папки и файлы 💥 2024, November
Anonim
Sodiaalne tolmuandur Androidis
Sodiaalne tolmuandur Androidis

Aasta tagasi oli mu sõbral nädalavahetusel keskkonnaseire teemaline töötuba. Töötoa eesmärk oli ehitada vaarikaplaadiga ühendatud tolmuandur, et panna mõõtmisandmed mõnele serverile, mis pakkus sageli uuendatavaid tolmukontsentratsiooni kaarte. Mu sõber küsis, kas on võimalik saada anduri andmed otse nutitelefoni jälgimiseks ja logimiseks. Nii ma otsisin Internetist andmelehte ja nägin, et anduril oli lihtne UART -liides 9600Baud 8N1 protokolliga. Aga kuidas ühendada UART nutitelefoniga? Noh, see on lihtne. Ma pidin lihtsalt kasutama ühte neist kõikjal levivatest väikestest Bluetooth -moodulitest, mis pakuvad androidis emuleeritud ühilduvust. Vaadake nüüd, kuidas mul see õnnestus.

Samm: mida vajate

Mida sa vajad
Mida sa vajad
Mida sa vajad
Mida sa vajad

Te vajate järgmisi osi

  • Ühendusliides JST XH 7-kontaktiline juhtmetega Sodial liidese jaoks. Ostsin Ebayst oma.
  • Bluetooth -moodul HC05 või 06, mis ühildub UART -pistikuga
  • USB-jadamuundur TTL taseme liidesega. Me kasutame seda, et anda BT-moodulile ainulaadne nimi
  • Sodial SDS011 tolmuandur. Mina sain Ebayst oma
  • tükk veriplaati
  • USB-B pistik
  • traat
  • Tükk puitu, millele kõik paigaldada

Siis vajate lihtsaid tööriistu:

  • Tagasaag puidu lõikamiseks
  • pintsetid
  • jootekolb ja joodis
  • traadi lõikur
  • Kuum liimipüstol
  • Tükk 8 mm räniümbrist (pole pildil)

Sodial SDS011 andmelehe saate alla laadida siit Sodial SDS011 andmelehe

Samm: Bluetooth -mooduli ettevalmistamine

Bluetooth -mooduli ettevalmistamine
Bluetooth -mooduli ettevalmistamine
Bluetooth -mooduli ettevalmistamine
Bluetooth -mooduli ettevalmistamine
Bluetooth -mooduli ettevalmistamine
Bluetooth -mooduli ettevalmistamine
Bluetooth -mooduli ettevalmistamine
Bluetooth -mooduli ettevalmistamine

BT-moodulil on UART-liides TTL-tasemega. Seda saab ümber konfigureerida AT -käskudega, nagu tegime Interneti -modemitega iidsetel aegadel. Selle ühendamiseks oma arvuti terminaliprogrammiga peate kohandama UART arvutiga. Kasutasin Amazonist ostetud USB-RS232 muundurit. Ma rakendasin BT-mooduli pistiku ja suunasin 3, 3 V toiteallika ja GND muundurilt BT-moodulile. Seejärel ühendasin ristumisel vastavad TxD ja RxD liinid. TxD USB-muundurist RxD-le BT-moodulist ja vastupidi.

Mul on Linuxi masin ja kasutasin cutecomi. Pärast USB-muunduri ühendamist oli port "ttyUSB0". Komportide nimed leiate oma Linuxi masina kataloogist "/dev". Windowsi kasutajatele soovitaksin "hterm". Seda on lihtne kasutada. Sisestage "AT" ja vastuseks peaksite saama "AT". Seejärel tippige "AT+NameSensor", et anda BT-moodulile nimi "Sensor"

3. samm: osade paigaldamine

Osade paigaldamine
Osade paigaldamine
Osade paigaldamine
Osade paigaldamine
Osade paigaldamine
Osade paigaldamine
Osade paigaldamine
Osade paigaldamine

Lõika puutükk sellise suurusega, mis sobib kõigi osade võtmiseks. Ühendage kõik signaalid vastavalt skeemile. Nende kaitsmiseks on hea panna juhtmete ümber räniümbris. Jootke USB-B pistik perfboardil. Seda kasutatakse ainult toiteallika jaoks. Kinnitage kõik osad kruvidega puidust alusele. Lõpuks liimige kaablid kuumalt, et need puidule kinnitada.

4. samm: sidumine

Sidumine
Sidumine
Sidumine
Sidumine

Lülitage andurirakendus sisse, ühendades USB-toiteallika. BT-mooduli punane LED hakkab vilkuma. Ärge proovige seda siduda oma Android -nutitelefoniga. Peate sisestama PIN -koodi. See on "1234". Pärast koodi sisestamist tuleb nutitelefon siduda BT-mooduliga.

Samm 5: Tarkvara

Mulle meeldib kirjutada Androidi rakendusi sihtplatvormile endale. see säästab teid kõigist emuleerivatest asjadest, millest peate hoolitsema, kui töötate Android Studioga. Leidsin Androidist kolm sobivat arendustööriista

  • Mintoris Basic. Põhitõlk, millel on rikkalik käskude komplekt, et peaaegu kõike Androidis ringi vaadata. Saate oma rakendustele otseteid luua. Mintoris basic ei sisalda kompilaatorit. Nii et teil peab olema Mintoris installitud igasse seadmesse, mida kasutate. Kuid selle eest peate maksma ainult ühe korra (umbes 7 €)
  • Põhiline! Äärmiselt hea Basic tõlk ja kompilaator (lisandmoodul mõne euro eest). Peaaegu haakub Androidis kõigega ja saate nende levitamiseks koostada tõelisi rakendusi ilma Basicu omamata! sihtseadmes. Kahjuks elementaarne! puuduvad Mintorise suurepärased diagrammifunktsioonid
  • AIDE on poolprofessionaalne IDE Androidi arendamiseks javas Androidis. AIDE abil on teil ülim paindlikkus, kuid peate õppima java. AIDE aastased kulud on umbes 50 eurot

Valisin Mintoris. Selles osas ei anna ma teile Mintoris programmeerimise õpetust, vaid funktsioonide plokkide lühikirjeldust

Järgmises osas esitatakse kahe anduri andmeliini ja vastavate ajatemplite jaoks kolm massiivi. Ajatempli andmeid kasutatakse diagrammi x-telje märgistamiseks. Sodial väljastab kaks andmevoogu, millest igaüks on määratud konkreetse osakese suuruse jaoks. Kaks tolmuandmete massiivi võtavad need väärtused.

WakeLock osaline

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

Tekstisuurus 24

CLS

Hüpikaken "Tolmuandur (c) ARJ 2017"

Global dustData (), dustDataF (), timeStamp () Globaalne indeks, valik, maxData, fileName $

Aja hämaruse aeg (59)

Andmed (59)

Dim tolm Andmed (59)

Dim Menüü $ (4) = "max 100 andmekogumit", "max 1000 andmekogumit", "max 5000 andmekogumit", "max 10000 andmekogumit", "Välju"

'Alustage massiive

I = 0 kuni 59

tolmuandmed (i) = 0

tolmuandmedF (i) = 0

ajatempel (i) = i

Edasi i

Järgmisena konfigureeritakse loendimenüü. See annab kasutajale võimaluse valida kogutavate andmete maksimaalne suurus. See on lihtsalt turvalüliti, mis hoiab ära nutitelefoni lõputute andmete imemise. Funktsioonid BTgetPairs $ () annab tagasi loendi kõigi Android-seadmega seotud seadmete, nende nimede ja BT-aadresside kohta.

Menüü $ (), valik

'Valige salvestatavate andmete jaoks maksimaalne kogus

runLevel = 1

Valige valik

Juhtum 0 maxData = 100

Juhtum 1 maxDate = 1000

Juhtum 2 maxData = 5000

Juhtum 3 maxData = 10000

Juhtum 4 maxData = 0

Lõpp Vali

'' Ühendage andur

hämar paar $ (0)

paar $ () = BTGetPairs $ ()

Kui paar $ (0) = "none" Siis

Prindi "Seotud seadmeid ei leitud. Kas BT on sisse lülitatud?" Trükk "Programm lõpetatud"

Lõpp

Endif

Loendipaar $ (), seade $

nimi $ = ItemExtract $ (seade $, 0)

aadress $ = ItemExtract $ (seade $, 1)

BTConnect 1, aadress $

'Oota ühendust

Edenemine SEES

Prindi "Proovin ühendust luua"; aadress $

I = 1 kuni 20

Edusammud i/2

Kui BTGetstate (1) = 4, siis väljuge oodake 1000

Edasi i

Edenemine VÄLJAS

'Edu korral looge ühendus BT -seadmega

Kui BTGetState (1) = 4, siis printige "Ühendatud", muidu printige "Ei saanud ühendust luua"; nimi $

Trükk "Programm lõpetatud"

Lõpp

Endif

Järgmine plokk näitab andmete kogumist. Iga andmeseansi jaoks avatakse fail automaatselt ja antakse nime kellaaja ja kuupäeva järgi. Seejärel loeb tsükkel anduri andmeid. Andmed on pakitud mitmesse baiti. Baitide komplekti identifitseerivad kaks ASCII märki 170 ja 171. Järgmised andmed korraldatakse ümber ja täidetakse tolmumassiividesse

Graafika sees

'Avage kirjutamiseks andmefail

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

Ava 1, fileName $, "w+" Prindi "Avatud andmefail"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Writeln 1, "Time Dust2.5 Dust10"

'Täitke massiiv mõõdetud andmetega

andmed $ = "" pakett $ = ""

indeks = 0

Kas ajal maxData> 0

BTRead 1, pakett $, 10

andmed $ = andmed $+pakett $

Kui Len (andmed $)> = 10 Siis

Kui (ASCII (vasak $ (andmed $, 1)) = 170) & (ASCII (parem $ (andmed $, 1))) = 171) siis

dustDataF (indeks) = ASCII (keskmine $ (andmed $, 2, 1))

dustDataF (indeks) = (dustDataF (indeks)+256*ASCII (keskmine $ (andmed $, 3, 1)))/10

dustData (indeks) = ASCII (keskmine $ (andmed $, 4, 1))

dustData (indeks) = (dustData (indeks)+256*ASCII ($ $ (andmed $, 5, 1)))/10

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

andmed $ = ""

maxData = maxData-1

indeks = indeks+1

Kui indeks> 59, siis indeks = 0

dustData (indeks) = 0

dustDataF (indeks) = 0

Endif

Endif

DrawGraph ()

Oota 100

Loop

Sule 1

Graafika välja

CLS -print "Programm lõpetatud"

Lõpp

Viimane osa on alamprogramm, mis kutsutakse välja pärast iga andmete vastuvõtmist. See tühjendab ekraani, joonistab diagrammi uuesti koos tolmu- ja ajatempli massiividesse salvestatud andmetega.

„Joonistage koordinaadid, sildid, linnukesed ja ka andmekõverad

Alamjoonistusgraafik ()

'Graafikarežiimis muutub ekraan praeguseks

Värv 0, 0, 0

CLS

Värv 0, 0, 100

'Määrake ruudustiku joonistamiseks kasutatav graafika värv

TextColor 100, 100, 100, 50

„TextColor on ruudustiku pealkirja värv

Tekstivärv: 100, 100, 100

„TextColorA -d kasutatakse telgede pealkirjade ja ruudustiku märkuste jaoks.

'Määrake telje pealkirja teksti suurus

„Võrgu pealkiri on 2x suurem

Tekstisuurus 20

FixDecimal 0

'Seadistage kuvama kaks kohta pärast koma

PadDigits 2

'Joonista graafikule ruudustik' Määra X & Y vahemik ja pealkiri

Telg Telg X 0, 59, "Aeg/s"

Telg Y 0, 10000, "ug/m3"

Võrk 3, "Tolmu kontsentratsioon"

'Joonista tolmugraafikud

Värv 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Värv 0, 100, 0

GraphXY timeStamp (), dustData ()

TextColor 100, 0, 0

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

Tekstivärv 0, 100, 0

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

TextColor 100, 100, 100, 50

Tagasi

Laadige lähtekood alla siit

6. samm: testige

Image
Image
Test
Test
Test
Test
Test
Test

Lülitage andur sisse ja käivitage rakendus. Seotud seadmete loendist valige seade nimega "Andur". Pärast anduri ühendamist kuvatakse ekraanil andmeid. Samal ajal eraldatakse andmefail. Pärast moe lõpetamist saate andmete kuvamiseks kasutada GnuPloti. Kasutage GnuPloti faili "Test.gp", et konfigureerida GnuPlot andmefaili nimega "Test.dat" kuvamiseks. Selle leiate ka siit

Lisateavet ja testimist leiate videost. Palju nalja ja rohkem ideid!

Soovitan: