Sadržaj:
- Korak 1: Što vam treba
- Korak 2: Priprema Bluetooth modula
- Korak 3: Montiranje dijelova
- Korak 4: Uparivanje
- Korak 5: Softver
- Korak 6: Testirajte
Video: Senzor natrijeve prašine na Androidu: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
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
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
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
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
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
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:
Uređaj za uklanjanje prašine (Sumo Bot): 4 koraka
Uređaj za uklanjanje prašine (Sumo Bot): Popis alata i materijala Alati i materijali koji se koriste za izradu prašine za izvlačenje prašine vrlo su jednostavni i laki za nabavku. Elektronika: Baterija, servo motori s velikim zakretnim momentom (x3), prijemnik i daljinski upravljač. 3x2 'list pjene jezgre x-a
Arduino studija prašine: 8 koraka
Arduino studija prašine: Kako bi bilo živjeti na Marsu? Da li zrak može disati? Da li je sigurno? Koliko ima prašine? Koliko su oluje česte? Jeste li se ikada zapitali odgovor na bilo koje od ovih pitanja?
Kako očistiti i očistiti računalo od prašine: 5 koraka
Kako očistiti i očistiti računalo od prašine: !!! PROČITAJTE SVE SLIDOVE PRIJE POČETKA KORAKA !!! =========================================== ======== Pozdrav i dobrodošli u možda najvažniju stvar koju ćete vidjeti danas! Naučit ćemo kako pravilno održavati vaše osobno računalo
Arduino stanica za nadzor čestica prašine: 4 koraka (sa slikama)
Arduino stanica za nadzor čestica prašine: Možete prilično jednostavno izgraditi DIY internet uređaj za stvari koji prati zagađenje prašinom u vašem domu za manje od 50 USD i primati obavijesti kada razina prašine postane previsoka kako biste mogli prozračiti sobu ili možete postaviti izađite vani i obavijestite se ako je
Uklanjanje poklopca zaslona Nokia 6280 za čišćenje prašine: 7 koraka
Uklanjanje poklopca zaslona Nokia 6280 za čišćenje prašine: Za razliku od mnogih drugih modela, čini se da Nokia 6280 nije napravljena tako da korisnici mogu sami ukloniti poklopac zaslona. To uznemiruje one koji imaju prašinu između stvarnog LCD -a i poklopca zaslona, što ima puno vlasnika … Zapravo, s vremenom će se