Sadržaj:

Senzor natrijeve prašine na Androidu: 6 koraka
Senzor natrijeve prašine na Androidu: 6 koraka

Video: Senzor natrijeve prašine na Androidu: 6 koraka

Video: Senzor natrijeve prašine na Androidu: 6 koraka
Video: 💦Blackview BV9200 ЧЕСТНЫЙ ОБЗОР ПРОТИВОУДАРНОГО 2024, Srpanj
Anonim
Senzor natrijeve prašine na Androidu
Senzor natrijeve prašine na Androidu

Prije godinu dana moj prijatelj je imao vikend radionicu o praćenju okoliša. Cilj radionice bio je izgraditi senzor prašine spojen na malinu pi ploču za postavljanje mjernih podataka na neki poslužitelj koji je davao često ažurirane karte koncentracije prašine. Moj prijatelj je pitao postoji li način da podatke senzora unese izravno na svoj pametni telefon radi praćenja i evidentiranja. Pa sam iskopao internet za podatkovnu tablicu i vidio da senzor ima jednostavno UART sučelje s 9600Baud 8N1 protokolom. Ali kako spojiti UART na pametni telefon? Pa to je lako. Morao sam samo upotrijebiti jedan od onih sveprisutnih malih Bluetooth modula koji pružaju emulirani komport na androidu. Sada vidi kako sam uspio.

Korak 1: Što vam treba

Što trebaš
Što trebaš
Što trebaš
Što trebaš

Potrebni su vam sljedeći dijelovi

  • Konektor za spajanje JST XH 7-pinski za sučelje Sodial sa žicama. Ja sam svoj kupio na Ebayu.
  • Bluetooth modul HC05 ili 06 kompatibilan s UART priključkom
  • USB-serijski pretvarač sa sučeljem na razini TTL. Koristimo ovo kako bismo BT-modulu dali jedinstveno ime
  • Natrijev SDS011 senzor za prašinu. Ja sam svoje nabavio sa Ebaya
  • komad veroboarda
  • USB-B konektor
  • žica
  • Komad drveta na koji se može sve montirati

Tada će vam trebati nekoliko jednostavnih alata:

  • Testera za rezanje drva
  • pinceta
  • lemilica i lemljenje
  • rezač žice
  • Pištolj za vruće ljepilo
  • Komad silikonske čahure od 8 mm (nije na slici)

Tehnički list Sodial SDS011 možete preuzeti ovdje Sodial SDS011 podatkovni list

Korak 2: Priprema Bluetooth modula

Priprema Bluetooth modula
Priprema Bluetooth modula
Priprema Bluetooth modula
Priprema Bluetooth modula
Priprema Bluetooth modula
Priprema Bluetooth modula
Priprema Bluetooth modula
Priprema Bluetooth modula

BT-modul ima UART sučelje s razinom TTL. Može se ponovno konfigurirati pomoću "AT" naredbi kao što smo to radili s internetskim modemima u davna vremena. Da biste ga povezali s terminalnim programom na svom računalu, morate prilagoditi UART računalu. Koristio sam USB-RS232 pretvarač koji sam kupio u Amazonu. Primijenio sam konektor za BT-modul i preusmjerio 3, 3V napajanje i GND iz pretvarača u BT-modul. Zatim sam povezao odgovarajuće linije TxD i RxD u križanju. TxD iz USB-pretvarača u RxD iz BT-modula i obrnuto.

Imam stroj za Linux i koristio sam cutecom. Nakon povezivanja USB-pretvarača usporedba je bila "ttyUSB0". Nazive za usporedbu možete pronaći u direktoriju "/dev" na vašem Linux stroju. Korisnicima sustava Windows preporučio bih "hterm". Lako je upravljati. Upišite "AT" i trebali biste dobiti "AT" kao odgovor. Zatim upišite "AT+NameSensor" da biste BT-modulu dali ime "Sensor"

Korak 3: Montiranje dijelova

Montaža dijelova
Montaža dijelova
Montaža dijelova
Montaža dijelova
Montaža dijelova
Montaža dijelova
Montaža dijelova
Montaža dijelova

Izrežite komad drveta u veličini prikladnoj za uzimanje svih dijelova. Spojite sve signale kako je prikazano na shemi. Bilo bi dobro staviti silikonski omotač oko žica kako biste ih zaštitili. Lemite USB-B utikač na ploču. Koristi se samo za napajanje. Sve dijelove pričvrstite vijcima na drvenu podlogu. Na kraju vruće zalijepite kabele kako biste ih učvrstili na drvo.

Korak 4: Uparivanje

Uparivanje
Uparivanje
Uparivanje
Uparivanje

Uključite aplikaciju senzora uključivanjem USB napajanja. Crvena LED dioda na BT-modulu će početi treptati. Ne pokušavajte ga upariti sa svojim Android pametnim telefonom. Morate unijeti pin kod. Ovo je "1234". Nakon unosa koda, vaš bi pametni telefon trebao biti uparen s BT-modulom.

Korak 5: Softver

Volim pisati Android aplikacije na samoj ciljnoj platformi. štedi vas od svih stvari o emulaciji o kojima morate brinuti ako radite s Android Studiom. Otkrio sam tri prikladna razvojna alata na samom Androidu

  • Mintoris Basic. Osnovni tumač s bogatim skupom naredbi za petljanje po gotovo svemu na androidu. Možete stvoriti prečace za svoje aplikacije. Mintoris basic ne sadrži prevoditelj. Dakle, morate instalirati Mintoris na svaki uređaj koji koristite. Ali to morate platiti samo jednom (oko 7 €)
  • Osnovni, temeljni! Izuzetno dobar osnovni tumač i prevoditelj (dodatak za nekih €). Gotovo se zakači za sve u androidu i možete sastaviti prave aplikacije za njihovu distribuciju bez osnovnog! na ciljnom uređaju. Nažalost Osnovno! nedostaju izvrsne funkcije grafikona dijagrama Mintorisa
  • AIDE je poluprofesionalni IDE za razvoj androida u javi na androidu. S AIDE -om imate najveću fleksibilnost, ali morate naučiti java. AIDE ima godišnje troškove od oko 50 €

Ja sam odabrao Mintoris. U ovom odjeljku neću vam dati vodič o programiranju u Mintorisu, već kratak opis funkcionalnih blokova

U sljedećem dijelu tri polja su deklarirana za dvije podatkovne linije senzora i odgovarajuće vremenske oznake. Podaci vremenske oznake koriste se za označavanje osi x dijagrama. Sodial emitira dva toka podataka od kojih je svaki specificiran za posebnu veličinu čestica. Dva polja podataka podataka uzimaju te vrijednosti.

Djelomično WakeLock

TextColor 100, 75, 10

Boja tekstaA 50, 50, 50

Poravnaj tekst 0

Veličina teksta 24

CLS

Skočni prozor "Mjerač osjetnika prašine (c) ARJ 2017"

Global dustData (), dustDataF (), timeStamp () Globalni indeks, izbor, maxData, fileName $

Zatamnjena vremenska oznaka (59)

Prigušena prašina Podaci (59)

Prigušena prašina DataF (59)

Dim Menu $ (4) = "max. 100 skupova podataka", "max. 1000 skupova podataka", "max. 5000 skupova podataka", "max. 10000 skupova podataka", "Izlaz"

'Pokreni nizove

Za i = 0 do 59

dustData (i) = 0

dustDataF (i) = 0

vremenska oznaka (i) = i

Sljedeći i

Zatim se konfigurira izbornik Popis. To daje korisniku mogućnost odabira maksimalne veličine podataka za prikupljanje. Ovo je samo sigurnosni prekidač koji sprječava pametni telefon da usisa beskrajne podatke. Funkcije BTgetPaired $ () vraćaju popis svih uparenih uređaja na android uređaju, njihova imena i BT adresu.

Popis izbornika $ (), izbor

'Odaberite maksimalni iznos ako želite pohraniti podatke

runLevel = 1

Odaberite izbor

Slučaj 0 maxData = 100

Slučaj 1 maxDate = 1000

Slučaj 2 maxData = 5000

Slučaj 3 maxData = 10000

Slučaj 4 maxData = 0

Kraj Odaberite

'' Spojite senzor

prigušen par $ (0)

par $ () = BTGetPaired $ ()

Ako je par $ (0) = "none" Tada

Ispis "Nisu pronađeni upareni uređaji. Je li BT uključen?" Ispis "Program je prekinut"

Kraj

Završi ako

Par popisa $ (), uređaj $

naziv $ = ItemExtract $ (uređaj $, 0)

adresa $ = ItemExtract $ (uređaj $, 1)

BTConnect 1, adresa $

'Pričekajte vezu

Napredak UKLJUČEN

Ispišite "Pokušavam se povezati s"; adresa $

Za i = 1 do 20

Napredak i/2

Ako je BTGetstate (1) = 4, tada izađite na čekanje 1000

Sljedeći i

Napredak ISKLJUČEN

'Nakon uspješnog povezivanja s BT uređajem

Ako je BTGetState (1) = 4 Zatim ispišite "Povezano" Inače Ispis "Ne mogu se povezati s"; naziv $

Ispis "Program je prekinut"

Kraj

Završi ako

Sljedeći blok prikazuje potrebne podatke. Za svaku podatkovnu sesiju datoteka se automatski otvara i imenuje po vremenu i datumu. Zatim petlja čita podatke senzora. Podaci su pakirani u nekoliko bajtova. Skup bajtova identificiran je s dva ASCII znaka 170 i 171. Sljedeći su podaci reorganizirani i ispunjeni u polja prašine

Grafika uključena

'Otvorite datoteku podataka za pisanje

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

Otvorite 1, fileName $, "w+" Ispiši "Otvorena datoteka podataka"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Napišite 1, "Vremenska prašina2,5 prašina10"

'Ispunite niz izmjerenim podacima

podaci $ = "" paket $ = ""

indeks = 0

Učiniti Dok maxData> 0

BTRead 1, paket $ 10

podaci $ = podaci $+paket $

Ako je Len (podatak $)> = 10 Tada

Ako je (ASCII (lijevo $ (podaci $, 1)) = 170) & (ASCII (desno $ (podaci $, 1)) = 171) Tada

dustDataF (indeks) = ASCII (sredina $ (podaci $, 2, 1))

dustDataF (indeks) = (dustDataF (indeks)+256*ASCII (sredina $ (podaci $, 3, 1)))/10

dustData (indeks) = ASCII (sredina $ (podaci $, 4, 1))

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

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

podaci $ = ""

maxData = maxData-1

indeks = indeks+1

Ako je indeks> 59, tada je indeks = 0

dustData (indeks) = 0

dustDataF (indeks) = 0

Završi ako

Završi ako

DrawGraph ()

Čekaj 100

Petlja

Zatvori 1

Grafika isključena

CLS Ispis "Program je završen"

Kraj

Posljednji dio je potprogram koji se poziva nakon svakog prijema podataka. Očisti zaslon, ponovno iscrtava dijagram sa stvarnim podacima pohranjenim u nizovima prašine i vremenske oznake.

'Nacrtajte koordinate, oznake, kvačice i krivulje podataka

Sub DrawGraph ()

'U grafičkom načinu rada zaslon postaje jasniji u trenutnoj boji

Boja 0, 0, 0

CLS

Boja 0, 0, 100

'Postavite boju grafike koja će se koristiti za crtanje linija mreže

TextColor 100, 100, 100, 50

'TextColor je boja glavnog naslova mreže

Boja tekstaA 100, 100, 100

'TextColorA koristi se za naslove osi i napomene u mreži.

'Postavite veličinu teksta naslova osi

'Glavni naslov mreže je 2x ove veličine

Veličina teksta 20

FixDecimal 0

'Postavljeno za prikaz 2 decimalna mjesta

PadDigits 2

'Nacrtajte mrežu za grafikon' Postavite raspon i naslov X & Y

Os AxisX 0, 59, "Vrijeme/s"

Osovina 0, 10000, "ug/m3"

Mreža 3, "Koncentracija prašine"

'Nacrtajte grafikone prašine

Boja 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Boja 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

Povratak

Izvorni kod preuzmite ovdje

Korak 6: Testirajte

Image
Image
Test
Test
Test
Test
Test
Test

Uključite senzor i pokrenite aplikaciju. S popisa uparenih uređaja odaberite onaj pod nazivom "Senzor". Nakon povezivanja senzora, zaslon će početi prikazivati podatke. Istodobno se dodjeljuje podatkovna datoteka. Nakon završetka mode možete koristiti GnuPlot za prikaz podataka. Upotrijebite datoteku "Test.gp" u GnuPlotu da biste konfigurirali GnuPlot za prikaz datoteke s imenom "Test.dat". Možete ga pronaći i ovdje

Za više detalja i testiranje pogledajte video. Zabavite se i više ideja!

Preporučeni: