Indholdsfortegnelse:
- Trin 1: Hvad du har brug for
- Trin 2: Forberedelse af Bluetooth -modulet
- Trin 3: Montering af delene
- Trin 4: Parring
- Trin 5: Softwaren
- Trin 6: Test
Video: Sodial Dust Sensor på Android: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
For et år siden havde en af mine venner en weekendworkshop om miljøovervågning. Målet med workshoppen var at opbygge en støvføler, der er forbundet til et hindbær -pi -kort, til at lægge måledata på en server, der leverede ofte opdaterede støvkoncentrationskort. Min ven spurgte, om der er en måde at få sensordataene direkte på sin smartphone til overvågning og logning. Så jeg gravede internettet til et datablad og så, at sensoren havde en simpel UART -grænseflade med 9600Baud 8N1 -protokol. Men hvordan tilslutter man en UART til en smartphone? Det er let. Jeg skulle bare bruge et af de allestedsnærværende små Bluetooth -moduler, der giver en emuleret komport på Android. Se nu hvordan jeg lavede det.
Trin 1: Hvad du har brug for
Du har brug for følgende dele
- Et parringsstik JST XH 7-ben til Sodial-interface med ledninger. Jeg købte min på Ebay.
- Et Bluetooth -modul HC05 eller 06 kompatibelt med UART -stik
- En USB-seriel konverter med TTL-niveau-interface. Vi bruger dette til at give BT-modulet et unikt navn
- Sodial SDS011 støvsensor. Jeg fik min fra Ebay
- et stykke veroboard
- USB-B stik
- tråd
- Et stykke træ til at montere alt på
Så skal du bruge nogle enkle værktøjer:
- En pengesav til at skære træet
- pincet
- loddejern og lodde
- trådskærer
- Varm limpistol
- Et stykke 8 mm silicium ærme (ikke på billedet)
Du kan downloade Sodial SDS011 datablad her Sodial SDS011 datablad
Trin 2: Forberedelse af Bluetooth -modulet
BT-modulet har en UART-grænseflade med TTL-niveau. Det kan omkonfigureres med "AT" -kommandoer, som vi gjorde med internetmodemer tilbage i oldtiden. For at tilslutte det til et terminalprogram på din maskine skal du tilpasse UART til din computer. Jeg brugte en USB-RS232-konverter, jeg købte hos Amazon. Jeg anbragte et stik til BT-modulet og dirigerede 3, 3V strømforsyningen og GND fra konverteren til BT-modulet. Derefter forbandt jeg de respektive TxD- og RxD -linjer i crossover. TxD fra USB-konverter til RxD fra BT-modul og omvendt.
Jeg har en linux -maskine og brugte cutecom. Efter tilslutning af USB-konverteren var komporten "ttyUSB0". Du kan finde komportnavnene i "/dev" -mappen på din linux -maskine. For Windows -brugere vil jeg anbefale "hterm". Det er let at betjene. Skriv "AT", og du skal få "AT" som svar. Skriv derefter "AT+NameSensor" for at give BT-modulet navnet "Sensor"
Trin 3: Montering af delene
Skær et stykke træ i en størrelse, der er egnet til at tage alle delene. Tilslut alle signaler som vist i skematisk. Det er en god idé at lægge et siliciumhylster om ledningerne for at beskytte dem. Lodde USB-B-stikket på perfboardet. Det bruges bare til strømforsyningen. Fastgør alle dele med skruer på træbunden. Til sidst limes kablerne fast for at fastgøre dem på træet.
Trin 4: Parring
Tænd sensorapplikationen ved at tilslutte en USB-strømforsyning. En rød LED på BT-modulet begynder at blinke. Prøv ikke at parre det med din Android -smartphone. Du skal indtaste en pinkode. Dette er "1234". Efter indtastning af koden skal din smartphone parres med BT-modulet.
Trin 5: Softwaren
Jeg kan godt lide at skrive Android -apps på selve målplatformen. det sparer dig for alt det emulering, du skal bekymre dig om, hvis du arbejder med Android Studio. Jeg fandt ud af tre egnede udviklingsværktøjer på selve Android
- Mintoris Basic. En grundlæggende tolk med et stort sæt kommandoer til at pille rundt med næsten alt på Android. Du kan oprette genveje til dine apps. Mintoris basic indeholder ikke en compiler. Så du skal have installeret Mintoris på hver enhed, du bruger. Men du skal kun betale for det én gang (ca. 7 €)
- Grundlæggende! Ekstremt god Grundlæggende tolk og kompilator (tilføjelse til nogle €). Næsten hooks på alt i Android, og du kan kompilere rigtige apps til at distribuere dem uden at have Basic! på målenheden. Desværre grundlæggende! mangler de fremragende diagramdiagramfunktioner i Mintoris
- AIDE er en semi -professionel IDE til at lave Android -udvikling i Java på Android. Med AIDE har du den største fleksibilitet, men du skal lære java. AIDE har årlige omkostninger på omkring 50 €
Jeg valgte Mintoris. I dette afsnit giver jeg dig ikke en tutorial om programmering i Mintoris, men en kort beskrivelse af funktionsblokkene
I den følgende del deklareres tre arrays for de to sensordatalinjer og de respektive tidsstempler. Tidsstempeldataene bruges til mærkning af diagrammet x-akse. Sodial udsender to datastrømme, der hver er specificeret for en særlig partikelstørrelse. De to dustdata-arrays tager disse værdier.
WakeLock delvis
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
Tekststørrelse 24
CLS
Popup "støvfølermåler (c) ARJ 2017"
Globalt dustData (), dustDataF (), timeStamp () Globalt indeks, valg, maxData, filnavn $
Dim timeStamp (59)
Dim støv Data (59)
Dim støv DataF (59)
Dim Menu $ (4) = "maks. 100 datasæt", "maks. 1000 datasæt", "maks. 5000 datasæt", "maks. 10000 datasæt", "Afslut"
'Start arrays
For i = 0 til 59
dustData (i) = 0
dustDataF (i) = 0
timeStamp (i) = i
Næste i
Derefter er en Liste -menu konfigureret. Dette giver brugeren et valg om at vælge den maksimale størrelse af data, der skal indsamles. Dette er blot en sikkerhedsafbryder for at forhindre smartphonen i at suge uendelige data til sig. Funktionerne BTgetPaired $ () giver en liste tilbage med alle parrede enheder på Android-enheden, deres navne og BT-adresse.
L ist Menu $ (), valg
'Vælg maksimal mængde, hvis data skal gemmes
runLevel = 1
Vælg valg
Case 0 maxData = 100
Sag 1 maxDate = 1000
Case 2 maxData = 5000
Case 3 maxData = 10000
Case 4 maxData = 0
Afslut Vælg
'' Tilslut sensor
dæmpet par $ (0)
par $ () = BTGetPaired $ ()
Hvis par $ (0) = "none" Så
Udskriv "Ingen parrede enheder fundet. Er BT tændt?" Udskriv "Program afsluttet"
Ende
Afslut Hvis
Listepar $ (), enhed $
navn $ = ItemExtract $ (enhed $, 0)
adresse $ = ItemExtract $ (enhed $, 1)
BTilslut 1, adresse $
'Vent på forbindelsen
Fremskridt TIL
Udskriv "Forsøger at oprette forbindelse til"; adresse $
For i = 1 til 20
Fremskridt i/2
Hvis BTGetstate (1) = 4 Afslut derefter vent 1000
Næste i
Fremskridt OFF
'Tilslut forbindelsen til BT -enheden efter succes
Hvis BTGetState (1) = 4 Print derefter "Tilsluttet" Ellers print "Kunne ikke oprette forbindelse til"; navngiv $
Udskriv "Program afsluttet"
Ende
Afslut Hvis
Den næste blok viser datakravet. For hver datasession åbnes en fil automatisk og navngives efter tidspunkt og dato. Derefter læser sløjfen sensordataene. Dataene er pakket i flere bytes. Et sæt bytes identificeres med to ASCII-tegn 170 og 171. Følgende data omorganiseres og fyldes i støv-arrays
Grafik til
'Åbn datafil for at skrive
filnavn $ = FormatTime $ (t, "åååå-MM-dd-kk-mm-ss") + ".dat"
Åbn 1, filnavn $, "w+" Udskriv "Åbnet datafil"; filnavn $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Writeln 1, "Time Dust2.5 Dust10"
'Fyld array med de målte data
data $ = "" pakke $ = ""
indeks = 0
Gør While maxData> 0
BTRead 1, pakke $, 10
data $ = data $+pakke $
Hvis Len (data $)> = 10 Så
Hvis (ASCII (Venstre $ (data $, 1)) = 170) & (ASCII (Højre $ (data $, 1)) = 171) Så
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
Afslut Hvis
Afslut Hvis
DrawGraph ()
Vent 100
Sløjfe
Luk 1
Grafik slukket
CLS Udskriv "Program afsluttet"
Ende
Den sidste del er en underprogram, der kaldes efter hver datamodtagelse. Det rydder skærmen, tegner diagrammet igen med de faktiske data, der er gemt i støv- og tidsstempelarrays.
'Tegn koordinaterne, etiketterne, flåter og også datakurverne
Sub DrawGraph ()
'I grafiktilstand slettes skærmen til den aktuelle farve
Farve 0, 0, 0
CLS
Farve 0, 0, 100
'Indstil den grafiske farve, der skal bruges til at tegne gitterlinjerne
TextColor 100, 100, 100, 50
'TextColor er farven på gitterets hovedtitel
TextColorA 100, 100, 100
'TextColorA bruges til aksetitler og gitterkommentarer.
'Indstil størrelsen på aksetitelteksten
'Gitterets hovedtitel er 2x denne størrelse
Tekststørrelse 20
FixDecimal 0
'Indstillet til at vise 2 decimaler
PadDigits 2
'Tegn et gitter til grafen' Indstil område og titel for X & Y
Axis AxisX 0, 59, "Time/s"
Akse Y 0, 10000, "ug/m3"
Grid 3, "Støvkoncentration"
'Tegn støvgrafer
Farve 100, 0, 0
GraphXY timeStamp (), dustDataF ()
Farve 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
Vend tilbage
Download kildekoden her
Trin 6: Test
Tænd sensoren, og start appen. Vælg en med navnet "Sensor" på listen over parrede enheder. Efter tilslutning af sensoren begynder skærmen at vise dataene. Samtidig tildeles datafilen. Efter afslutning af mode kan du bruge GnuPlot til at vise dataene. Brug filen "Test.gp" i GnuPlot til at konfigurere GnuPlot til visning af en datafil med navnet "Test.dat". Du kan også finde det her
Se videoen for flere detaljer og test. Hav en masse sjov og flere ideer!
Anbefalede:
Sådan opretter du en Android -app med Android Studio: 8 trin (med billeder)
Sådan opretter du en Android -app med Android Studio: Denne vejledning lærer dig det grundlæggende i, hvordan du opbygger en Android -app ved hjælp af Android Studio -udviklingsmiljøet. Efterhånden som Android -enheder bliver mere og mere almindelige, vil efterspørgslen efter nye apps kun stige. Android Studio er en let at bruge (en
Dust Ruffler (Sumo Bot): 4 trin
Dust Ruffler (Sumo Bot): Liste over værktøjer og materialer Værktøjerne og materialerne, der bruges til at konstruere Dust Ruffler, er meget ligetil og lette at erhverve. Elektronik: Batteripakke, kontinuerlig rotation med højt drejningsmoment servoer (x3), modtager og fjernbetjening. 3x2 'ark skumkerne x-a
Arduino Dust Study: 8 trin
Arduino Dust Study: Hvordan ville det være at bo på Mars? Er luften åndbar? Er det sikkert? Hvor meget støv er der? Hvor hyppige er stormene? Har du nogensinde undret dig over svaret på et af disse spørgsmål?
Arduino Powered Dust Particles Monitoring Station: 4 trin (med billeder)
Arduino Powered Dust Particles Monitoring Station: Du kan temmelig let bygge en DIY internet of things -enhed, der overvåger støvforurening i dit hjem for mindre end $ 50 og få besked, når støvniveauet bliver for højt, så du kan lufte rummet, eller du kan indstille det udenfor og få besked, hvis det er
Samsung I600/Blackjack Screen Dust Fix: 4 trin
Samsung I600/Blackjack Screen Dust Fix: Hej alle sammen, hvis du (ligesom mig) har en Samsung SGH -i600 (eller blackjack i Amerika) og har bemærket støv, der kommer ind i enheden og samler sig i øverste venstre hjørne af skærmen - tror jeg Jeg har en rettelse til dig. Før billede med venlig tilladelse fra Tracy