INHOUDSOPGAWE:

Sodial stofsensor op Android: 6 stappe
Sodial stofsensor op Android: 6 stappe

Video: Sodial stofsensor op Android: 6 stappe

Video: Sodial stofsensor op Android: 6 stappe
Video: ЗЛО ЕЩЕ ЗДЕСЬ ЖУТКАЯ НОЧЬ В СТРАШНОМ ДОМЕ / EVIL IS STILL HERE A TERRIBLE NIGHT IN A TERRIBLE HOUSE 2024, Julie
Anonim
Sodial stofsensor op Android
Sodial stofsensor op Android

'N Jaar gelede het 'n vriend van my 'n naweek -werkswinkel oor omgewingsmonitering gehou. Die doel van die werkswinkel was om 'n stofsensor op te bou wat gekoppel is aan 'n framboos -pi -bord om metingsdata op 'n bediener te plaas wat gereeld stofkonsentrasiekaarte verskaf. My vriend het gevra of daar 'n manier is om die sensordata direk op sy slimfoon te kry vir monitering en aanmelding. Ek soek die internet vir 'n datablad en sien dat die sensor 'n eenvoudige UART -koppelvlak met 'n 9600Baud 8N1 -protokol het. Maar hoe kan u 'n UART aan 'n slimfoon koppel? Wel, dit is maklik. Ek moes net een van die alomteenwoordige klein Bluetooth -modules gebruik wat 'n nabootsingskomponent op Android bied. Kyk nou hoe ek dit gemaak het.

Stap 1: wat u benodig

Wat jy nodig het
Wat jy nodig het
Wat jy nodig het
Wat jy nodig het

U benodig die volgende dele

  • 'N Koppelstuk JST XH 7-pen vir die Sodial-koppelvlak met drade. Ek het myne op Ebay gekoop.
  • 'N Bluetooth -module HC05 of 06 verenigbaar met UART -aansluiting
  • 'N USB-reeksomskakelaar met 'n TTL-vlak-koppelvlak. Ons gebruik dit om die BT-module 'n unieke naam te gee
  • Sodial SDS011 stofsensor. Ek het myne by Ebay gekry
  • 'n stuk veroboard
  • USB-B-aansluiting
  • draad
  • 'N Stukkie hout om alles op te monteer

Dan benodig u 'n paar eenvoudige gereedskap:

  • 'N Geldsaag om die hout te sny
  • pincet
  • soldeerbout en soldeer
  • draad snyer
  • Warm gom geweer
  • 'N Stukkie 8 mm silikonmou (nie op die foto nie)

U kan die Sodial SDS011 -datablad hier aflaai Sodial SDS011 -datablad

Stap 2: Berei die Bluetooth -module voor

Berei die Bluetooth -module voor
Berei die Bluetooth -module voor
Berei die Bluetooth -module voor
Berei die Bluetooth -module voor
Berei die Bluetooth -module voor
Berei die Bluetooth -module voor
Berei die Bluetooth -module voor
Berei die Bluetooth -module voor

Die BT-module het 'n UART-koppelvlak met TTL-vlak. Dit kan herkonfigureer word met 'AT' -opdragte, soos ons met internetmodems in die ou tyd gedoen het. Om dit aan 'n terminale program op u masjien te koppel, moet u die UART aanpas by u rekenaar. Ek gebruik 'n USB-RS232-omskakelaar wat ek by Amazon gekoop het. Ek het 'n aansluiting vir die BT-module aangewend en die 3, 3V kragtoevoer en GND van die omskakelaar na die BT-module gestuur. Toe verbind ek die onderskeie TxD- en RxD -lyne in crossover. TxD van USB-omskakelaar na RxD van BT-module en omgekeerd.

Ek het 'n linux masjien en gebruik cutecom. Na die aansluiting van die USB-omskakelaar was die komport "ttyUSB0". U kan die komporte name vind in die gids "/dev" op u Linux -masjien. Vir Windows -gebruikers sal ek 'hterm' aanbeveel. Dit is maklik om te bedryf. Tik 'AT' en u moet 'AT' kry as antwoord. Tik dan "AT+NameSensor" om die BT-module die naam "Sensor" te gee

Stap 3: Monteer die onderdele

Montering van die onderdele
Montering van die onderdele
Montering van die onderdele
Montering van die onderdele
Montering van die onderdele
Montering van die onderdele
Montering van die onderdele
Montering van die onderdele

Sny 'n stuk hout in 'n grootte wat geskik is om al die dele te neem. Verbind alle seine soos aangedui in die skema. Dit is 'n goeie idee om 'n silikonmou om die drade te sit om dit te beskerm. Soldeer die USB-B-prop op die perfboard. Dit word net gebruik vir die kragtoevoer. Maak alle dele vas met skroewe op die houtbasis. Plak uiteindelik die kabels warm om dit op die hout vas te maak.

Stap 4: Koppel

Paring
Paring
Paring
Paring

Skakel die sensortoepassing aan deur 'n USB-kragbron in te sluit. 'N Rooi LED op die BT-module sal begin knipper. Moenie probeer om dit met u Android -slimfoon te koppel nie. U moet 'n PIN -kode invoer. Dit is "1234". Nadat u die kode ingevoer het, moet u slimfoon gekoppel word aan die BT-module.

Stap 5: Die sagteware

Ek skryf graag Android -programme op die doelplatform self. dit red u van al die emulasie -dinge waaraan u moet omgee as u met Android Studio werk. Ek het drie geskikte ontwikkelingshulpmiddels op Android self uitgevind

  • Mintoris Basic. 'N Basiese tolk met 'n uitgebreide reeks opdragte om byna alles op Android aan te pak. U kan kortpaaie vir u programme skep. Mintoris basic bevat nie 'n samesteller nie. U moet dus Mintoris geïnstalleer het op elke toestel wat u gebruik. Maar u hoef dit slegs een keer te betaal (ongeveer 7 €)
  • Basies! Uiters goeie basiese tolk en samesteller (byvoeging vir ongeveer €). Haak amper alles in Android aan, en u kan regte programme saamstel om dit te versprei sonder om Basic te hê! op die teikenapparaat. Ongelukkig basies! ontbreek die uitstekende diagramgrafiekfunksies van Mintoris
  • AIDE is 'n semi -professionele IDE vir die ontwikkeling van Android in Java op Android. Met AIDE het u die grootste buigsaamheid, maar u moet java leer. AIDE het 'n jaarlikse koste van ongeveer 50 €

Ek het Mintoris gekies. In hierdie afdeling gee ek u nie 'n tutoriaal oor programmering in Mintoris nie, maar 'n kort beskrywing van die funksieblokke

In die volgende deel word drie skikkings verklaar vir die twee sensordatalyne en die onderskeie tydstempels. Die tydstempeldata word gebruik om die x-as van die diagram te merk. Die Sodial lewer twee datastrome uit wat elk gespesifiseer is vir 'n spesiale deeltjiegrootte. Die twee stofdata-skikkings neem hierdie waardes aan.

WakeLock gedeeltelik

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

Teksgrootte 24

CLS

Opspring "Stofsensormeter (c) ARJ 2017"

Globale dustData (), dustDataF (), timeStamp () Globale indeks, keuse, maxData, fileName $

Dim tydstempel (59)

Dowwe stof Data (59)

Dim stof DataF (59)

Dim menu $ (4) = "maks. 100 datastelle", "maks. 1000 datastelle", "maks. 5000 datastelle", "maks. 10000 datastelle", "Uitgang"

'Begin die skikkings

Vir i = 0 tot 59

dustData (i) = 0

dustDataF (i) = 0

timeStamp (i) = i

Volgende i

Vervolgens word 'n lysmenu opgestel. Dit gee die gebruiker die keuse om die maksimum grootte data te versamel. Dit is slegs 'n veiligheidsskakelaar om te verhoed dat die slimfoon eindelose data insuig. Die funksies BTgetPaired $ () gee 'n lys terug met alle gekoppelde toestelle op die Android-toestel, hul name en BT-adres.

L ist Menu $ (), keuse

'Kies die maksimum hoeveelheid as data gestoor moet word

runLevel = 1

Kies keuse

Geval 0 maxData = 100

Geval 1 maxDate = 1000

Geval 2 maxData = 5000

Geval 3 maxData = 10000

Geval 4 maxData = 0

Einde Kies

'' Koppel sensor

dowwe paar $ (0)

paar $ () = BTGetPaired $ ()

As paar $ (0) = "none" Dan

Druk "Geen gekoppelde toestelle gevind nie. Is BT aangeskakel?" Druk "Program beëindig"

Einde

Endif

Lyspaar $ (), toestel $

naam $ = ItemExtract $ (toestel $, 0)

adres $ = ItemExtract $ (toestel $, 1)

BTC Connect 1, adres $

'Wag vir verbinding

Vordering AAN

Druk 'probeer om aan te sluit'; adres $

Vir i = 1 tot 20

Vordering i/2

As BTGetstate (1) = 4, verlaat dan vir wag 1000

Volgende i

Vordering AF

'Koppel met die BT -toestel na sukses

As BTGetState (1) = 4 Druk dan "Gekoppel", anders druk "Kon nie aan" nie; noem $

Druk "Program beëindig"

Einde

Endif

Die volgende blok toon die data -vereiste. Vir elke datasessie word 'n lêer outomaties oopgemaak en vernoem na tyd en datum. Dan lees die lus die sensordata. Die data is verpak in verskeie grepe. 'N Stel grepe word geïdentifiseer deur twee ASCII-karakters 170 en 171. Die volgende data word herorganiseer en in die stofskikkings gevul

Grafika aan

'Maak die lêer oop om te skryf

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

Open 1, fileName $, "w+" Print "Opened datafile"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Skrywe 1, "Tydstof2.5 Stof10"

'Vul skikking met die gemete data

data $ = "" pakkie $ = ""

indeks = 0

Doen Terwyl maxData> 0

B Lees 1, pakkie $ 10

data $ = data $+pakkie $

As Len (data $)> = 10 Dan

As (ASCII (Left $ (data $, 1)) = 170) & (ASCII (Right $ (data $, 1)) = 171) Dan

dustDataF (indeks) = ASCII (middel $ (data $, 2, 1))

dustDataF (indeks) = (dustDataF (indeks)+256*ASCII (middel $ (data $, 3, 1))))/10

dustData (indeks) = ASCII (middel $ (data $, 4, 1))

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

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

data $ = ""

maxData = maxData-1

indeks = indeks+1

As indeks> 59 Dan is indeks = 0

dustData (indeks) = 0

dustDataF (indeks) = 0

Endif

Endif

DrawGraph ()

Wag 100

Lus

Sluit 1

Grafiese af

CLS Druk "Program beëindig"

Einde

Die laaste deel is 'n subroutine wat na elke data -ontvangs gebel word. Dit maak die skerm skoon, teken die diagram weer met die werklike data wat in die stof- en tydstempelskikkings gestoor is.

'Teken die koördinate, die etikette, bosluise en ook die datakurwes

Sub DrawGraph ()

'In die grafiese modus word die skerm na die huidige kleur verander

Kleur 0, 0, 0

CLS

Kleur 0, 0, 100

'Stel die grafiese kleur in wat gebruik moet word om die roosterlyne te teken

TextColor 100, 100, 100, 50

'TextColor is die kleur van die roostertitel

TextColorA 100, 100, 100

'TextColorA word gebruik vir as -titels en roosteraantekeninge.

'Stel die grootte van die as se titelteks in

'Die titel van die rooster is 2x hierdie grootte

Teksgrootte 20

Fix Desimaal 0

'Stel om 2 desimale plekke te vertoon

PadDigits 2

'Teken 'n rooster vir die grafiek' Stel die omvang en titel van die X & Y in

As AxisX 0, 59, "Tyd/s"

As Y 0, 10000, "ug/m3"

Rooster 3, "Stofkonsentrasie"

'Teken stofgrafieke

Kleur 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Kleur 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

Keer terug

Laai die bronkode hier af

Stap 6: Toets

Image
Image
Toets
Toets
Toets
Toets
Toets
Toets

Skakel die sensor aan en begin die app. Kies die een met die naam "Sensor" uit die lys met gekoppelde toestelle. Na die aansluiting van die sensor, sal die skerm die data begin wys. Terselfdertyd word die datalêer toegeken. Nadat u die mode voltooi het, kan u GnuPlot gebruik om die data te vertoon. Gebruik die lêer "Test.gp" in GnuPlot om GnuPlot op te stel vir die vertoon van 'n datafile met die naam "Test.dat". U kan dit ook hier vind

Sien die video vir meer besonderhede en toetse. Baie plesier en nog meer idees!

Aanbeveel: