Innholdsfortegnelse:
- Trinn 1: Det du trenger
- Trinn 2: Klargjøring av Bluetooth -modulen
- Trinn 3: Montering av delene
- Trinn 4: Sammenkobling
- Trinn 5: Programvaren
- Trinn 6: Test
Video: Sodial Dust Sensor på Android: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
For et år siden hadde en venn av meg en helgworkshop om miljøovervåking. Målet med verkstedet var å bygge opp en støvsensor koblet til et bringebær -pi -brett for å sette måledata på noen servere som ga ofte oppdaterte støvkonsentrasjonskart. Vennen min spurte om det er en måte å få sensordataene direkte på smarttelefonen for overvåking og logging. Så jeg gravde internett etter et datablad og så at sensoren hadde et enkelt UART -grensesnitt med 9600Baud 8N1 -protokollen. Men hvordan koble en UART til en smarttelefon? Vel, det er lett. Jeg måtte bare bruke en av de allestedsnærværende små Bluetooth -modulene som gir en emulert komport på Android. Se nå hvordan jeg klarte det.
Trinn 1: Det du trenger
Du trenger følgende deler
- En sammenkoblingskontakt JST XH 7-pinners for Sodial-grensesnittet med ledninger. Jeg kjøpte min på Ebay.
- En Bluetooth -modul HC05 eller 06 kompatibel med UART -kontakt
- En USB-seriell omformer med grensesnitt på TTL-nivå. Vi bruker dette til å gi BT-modulen et unikt navn
- Sodial SDS011 støvsensor. Jeg fikk min fra Ebay
- et stykke veroboard
- USB-B-kontakt
- metalltråd
- Et treverk å montere alt på
Da trenger du noen enkle verktøy:
- En motorsag for å kutte veden
- pinsett
- loddejern og loddetinn
- wire cutter
- Varm limpistol
- Et stykke 8 mm silikonhylse (ikke på bildet)
Du kan laste ned Sodial SDS011 -databladet her Sodial SDS011 -datablad
Trinn 2: Klargjøring av Bluetooth -modulen
BT-modulen har et UART-grensesnitt med TTL-nivå. Det kan omkonfigureres med "AT" -kommandoer som vi gjorde med internettmodemer tilbake i antikken. For å koble den til et terminalprogram på maskinen må du tilpasse UART til datamaskinen. Jeg brukte en USB-RS232-omformer jeg kjøpte på Amazon. Jeg brukte en kontakt for BT-modulen og dirigerte 3, 3V strømforsyningen og GND fra omformeren til BT-modulen. Deretter koblet jeg de respektive TxD- og RxD -linjene i crossover. TxD fra USB-omformer til RxD fra BT-modul og omvendt.
Jeg har en linux -maskin og brukte cutecom. Etter tilkobling av USB-omformeren var komporten "ttyUSB0". Du finner komportnavnene i "/dev" -katalogen på din Linux -maskin. For Windows -brukere vil jeg anbefale "hterm". Den er enkel å betjene. Skriv "AT", og du bør få "AT" som svar. Skriv deretter "AT+NameSensor" for å gi BT-modulen navnet "Sensor"
Trinn 3: Montering av delene
Skjær et treverk i en størrelse som er egnet for å ta alle delene. Koble til alle signaler som angitt i skjemaet. Det er en god idé å sette et silisiumhylse rundt ledningene for å beskytte dem. Lodd USB-B-pluggen på perfboardet. Den brukes bare til strømforsyningen. Fest alle delene med skruer på trebunnen. Til slutt varm lim kablene for å fikse dem på treet.
Trinn 4: Sammenkobling
Slå på sensorprogrammet ved å koble til en USB-strømforsyning. En rød LED på BT-modulen begynner å blinke. Ikke prøv å koble den til din Android -smarttelefon. Du må skrive inn en PIN -kode. Dette er "1234". Etter at du har tastet inn koden, bør smarttelefonen din kobles til BT-modulen.
Trinn 5: Programvaren
Jeg liker å skrive Android -apper på selve målplattformen. det sparer deg for alt det emuleringene du må bry deg om hvis du jobber med Android Studio. Jeg fant ut tre passende utviklingsverktøy på selve Android
- Mintoris Basic. En grunnleggende tolk med et rikt sett med kommandoer for å tinke rundt med nesten alt på Android. Du kan lage snarveier for appene dine. Mintoris basic inneholder ikke en kompilator. Så du må ha installert Mintoris på hver enhet du bruker. Men du trenger bare å betale for det en gang (ca 7 €)
- Grunnleggende! Ekstremt god Grunnleggende tolk og kompilator (tillegg for noen €). Nesten kroker på alt i Android, og du kan kompilere ekte apper for å distribuere dem uten å ha Basic! på målenheten. Dessverre grunnleggende! mangler de utmerkede diagramdiagramfunksjonene til Mintoris
- AIDE er en semi -profesjonell IDE for Android -utvikling i Java på Android. Med AIDE har du den største fleksibiliteten, men du må lære java. AIDE har årlige kostnader på omtrent 50 €
Jeg valgte Mintoris. I denne delen vil jeg ikke gi deg en opplæring i programmering i Mintoris, men en kort beskrivelse av funksjonsblokkene
I den følgende delen deklareres tre matriser for de to sensordatalinjene og de respektive tidsstemplene. Tidsstempeldataene brukes til å merke x-aksen til diagrammet. Sodial sender ut to datastrømmer hver spesifisert for en spesiell partikkelstørrelse. De to støvdata-matrisene tar disse verdiene.
WakeLock delvis
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
Tekststørrelse 24
CLS
Popup "støvfølermåler (c) ARJ 2017"
Global dustData (), dustDataF (), timeStamp () Global index, choice, maxData, fileName $
Dim timeStamp (59)
Dim støv Data (59)
Dim støv DataF (59)
Dimmeny $ (4) = "maks. 100 datasett", "maks. 1000 datasett", "maks. 5000 datasett", "maks. 10000 datasett", "Avslutt"
'Start oppsettene
For i = 0 til 59
dustData (i) = 0
dustDataF (i) = 0
timeStamp (i) = i
Neste jeg
Deretter er en Liste -meny konfigurert. Dette gir brukeren et valg om å velge maksimal størrelse på data som skal samles inn. Dette er bare en sikkerhetsbryter for å forhindre at smarttelefonen suger til seg endeløse data. Funksjonene BTgetPaired $ () gir tilbake en liste med alle sammenkoblede enheter på Android-enheten, navnene deres og BT-adressen.
L ist Meny $ (), valg
'Velg maks mengde hvis data skal lagres
runLevel = 1
Velg valg
Sak 0 maxData = 100
Sak 1 maxDate = 1000
Case 2 maxData = 5000
Case 3 maxData = 10000
Case 4 maxData = 0
Avslutt Velg
'' Koble til sensor
dim pair $ (0)
par $ () = BTGetPaired $ ()
If pair $ (0) = "none" Da
Skriv ut "Ingen sammenkoblede enheter funnet. Er BT slått på?" Skriv ut "Program avsluttet"
Slutt
Slutt om
Listepar $ (), enhet $
name $ = ItemExtract $ (enhet $, 0)
adresse $ = ItemExtract $ (enhet $, 1)
BTC Connect 1, adresse $
'Vent på tilkoblingen
Fremgang PÅ
Skriv ut "Prøver å koble til"; adresse $
For i = 1 til 20
Fremgang i/2
Hvis BTGetstate (1) = 4 Avslutt deretter vent 1000
Neste jeg
Fremgang AV
'Etter suksess koble til BT -enheten
Hvis BTGetState (1) = 4 Skriv ut "Tilkoblet" Annet utskrift "Kan ikke koble til"; navngi $
Skriv ut "Program avsluttet"
Slutt
Slutt om
Den neste blokken viser datakravet. For hver datasession åpnes en fil automatisk og navngis etter tid og dato. Deretter leser sløyfen sensordata. Dataene er pakket inn i flere byte. Et sett med byte identifiseres med to ASCII-tegn 170 og 171. Følgende data omorganiseres og fylles inn i støv-matriser
Grafikk på
'Åpne datafilen for å skrive
filnavn $ = FormatTime $ (t, "åååå-MM-dd-kk-mm-ss") + ".dat"
Åpne 1, filnavn $, "w+" Skriv ut "Åpnet datafil"; filnavn $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Writeln 1, "Time Dust2.5 Dust10"
'Fyll matrisen med de målte dataene
data $ = "" pakke $ = ""
indeks = 0
Gjør While maxData> 0
BTRead 1, pakke $, 10
data $ = data $+pakke $
Hvis Len (data $)> = 10 Da
Hvis (ASCII (Venstre $ (data $, 1)) = 170) & (ASCII (Høyre $ (data $, 1)) = 171) Da
dustDataF (index) = ASCII (Mid $ (data $, 2, 1))
dustDataF (index) = (dustDataF (index)+256*ASCII (Mid $ (data $, 3, 1))))/10
dustData (index) = ASCII (Mid $ (data $, 4, 1))
dustData (index) = (dustData (index)+256*ASCII (Mid $ (data $, 5, 1))))/10
Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))
data $ = ""
maxData = maxData-1
indeks = indeks+1
Hvis indeks> 59 Så indeks = 0
dustData (indeks) = 0
dustDataF (indeks) = 0
Slutt om
Slutt om
DrawGraph ()
Vent 100
Løkke
Lukk 1
Grafikk av
CLS Skriv ut "Program avsluttet"
Slutt
Den siste delen er en subrutine som kalles etter hver datamottak. Det tømmer skjermen, tegner diagrammet med de faktiske dataene som er lagret i støv- og tidsstempelarrayene.
'Tegn koordinatene, etikettene, flåttene og også datakurvene
Sub DrawGraph ()
'I grafikkmodus sletter skjermen til gjeldende farge
Farge 0, 0, 0
CLS
Farge 0, 0, 100
'Still inn grafikkfargen som skal brukes til å tegne rutenettlinjene
TextColor 100, 100, 100, 50
'TextColor er fargen på rutenettet hovedtittel
TextColorA 100, 100, 100
'TextColorA brukes for aksetitler og rutenettkommentarer.
'Angi størrelsen på aksetittelteksten
'Hovedtittelen på rutenettet er 2x denne størrelsen
Tekststørrelse 20
FixDecimal 0
'Sett til å vise 2 desimaler
PadDigits 2
'Tegn et rutenett for grafen' Angi området og tittelen på X & Y
Axis AxisX 0, 59, "Time/s"
Akse Y 0, 10000, "ug/m3"
Rutenett 3, "Støvkonsentrasjon"
'Tegn støvgrafer
Farge 100, 0, 0
GraphXY timeStamp (), dustDataF ()
Farge 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
Komme tilbake
Last ned kildekoden her
Trinn 6: Test
Slå på sensoren og start appen. Velg den som heter "Sensor" fra listen over sammenkoblede enheter. Etter tilkobling av sensoren begynner skjermen å vise dataene. Samtidig blir datafilen tildelt. Etter å ha fullført moten kan du bruke GnuPlot til å vise dataene. Bruk filen "Test.gp" i GnuPlot til å konfigurere GnuPlot for å vise en datafil med navnet "Test.dat". Du finner den også her
Se videoen for mer informasjon og testing. Ha det gøy og flere ideer!
Anbefalt:
Hvordan lage en Android -app med Android Studio: 8 trinn (med bilder)
Hvordan lage en Android -app med Android Studio: Denne opplæringen lærer deg det grunnleggende om hvordan du bygger en Android -app ved hjelp av utviklingsmiljøet for Android Studio. Etter hvert som Android -enheter blir stadig mer vanlige, vil etterspørselen etter nye apper bare øke. Android Studio er en enkel å bruke (en
The Dust Ruffler (Sumo Bot): 4 trinn
The Dust Ruffler (Sumo Bot): Liste over verktøy og materialer Verktøyene og materialene som brukes for å konstruere Dust Ruffler er veldig enkle og enkle å skaffe. Elektronikk: Batteripakke, kontinuerlig rotasjon med høyt dreiemoment servoer (x3), mottaker og fjernkontroll. 3x2 'ark skumkjerne x-a
Arduino Dust Study: 8 trinn
Arduino Dust Study: Hvordan ville det være å leve på Mars? Er luften pustende? Er det trygt? Hvor mye støv er det? Hvor hyppige er stormene? Har du noen gang lurt på svaret på noen av disse spørsmålene?
Arduino Powered Dust Particles Monitoring Station: 4 trinn (med bilder)
Arduino Powered Dust Particles Monitoring Station: Du kan ganske enkelt bygge en DIY -ting med ting som overvåker støvforurensning i hjemmet ditt for mindre enn $ 50 og bli varslet når støvnivået blir for høyt, slik at du kan lufte rommet, eller du kan stille det utenfor og bli varslet hvis det er
Samsung I600/Blackjack Screen Dust Fix: 4 trinn
Samsung I600/Blackjack Screen Dust Fix: Hei alle sammen, hvis du (som meg) har en Samsung SGH -i600 (eller blackjack i Amerika) og har lagt merke til støv som kommer inn i enheten og samler seg i øverste venstre hjørne av skjermen - tror jeg Jeg har en løsning for deg. Før bildet med god tillatelse fra Tracy