Sadržaj:
- Korak 1: Šta 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 izmjena: 2024-01-30 08:08
Prije godinu dana moj prijatelj je imao vikend radionicu o monitoringu okoliša. Cilj radionice je bio izgraditi senzor za prašinu spojen na malinu pi ploču za postavljanje mjernih podataka na neki server koji je pružao često ažurirane karte koncentracije prašine. Moj prijatelj je pitao postoji li način da se podaci senzora unesu direktno na njegov pametni telefon radi praćenja i evidentiranja. Pa sam iskopao internet za podatkovnu tablicu i vidio da senzor ima jednostavno UART sučelje sa 9600Baud 8N1 protokolom. Ali kako spojiti UART na pametni telefon? Pa, to je lako. Morao sam samo koristiti jedan od onih sveprisutnih malih Bluetooth modula koji pružaju oponašanje kompjutera na androidu. Sada pogledajte kako sam uspio.
Korak 1: Šta vam treba
Potrebni su vam sledeći delovi
- Konektor za spajanje JST XH 7-pinski za Sodial interfejs sa žicama. Ja sam svoj kupio na Ebayu.
- Bluetooth modul HC05 ili 06 kompatibilan sa UART konektorom
- USB serijski pretvarač sa interfejsom na nivou 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:
- Motorna pila za rezanje drva
- pinceta
- lemilica i lemljenje
- rezač žice
- Pištolj za vruće ljepilo
- Komad silikonske čaure 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 interfejs sa TTL nivoom. Može se ponovo konfigurirati pomoću "AT" naredbi kao što smo to radili s internetskim modemima u davna vremena. Da biste ga povezali s terminalnim programom na računaru, morate prilagoditi UART računaru. 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 skretnici. TxD sa USB-pretvarača na RxD sa BT-modula i obrnuto.
Imam linux mašinu i koristio sam cutecom. Nakon povezivanja USB-pretvarača, usporedba je bila "ttyUSB0". Nazive za sortiranje možete pronaći u direktoriju "/dev" na vašoj Linux mašini. Korisnicima operativnog sistema Windows preporučio bih "hterm". Lako je rukovati. 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 veličine prikladne za uzimanje svih dijelova. Povežite 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. Pričvrstite sve dijelove vijcima na drvenu podlogu. Na kraju vruće zalijepite kablove kako biste ih pričvrstili na drvo.
Korak 4: Uparivanje
Uključite aplikaciju senzora uključivanjem USB izvora 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š pametni telefon treba upariti 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 kompajler. Dakle, morate instalirati Mintoris na svaki uređaj koji koristite. Ali morate to platiti samo jednom (oko 7 €)
- Osnovno! Izuzetno dobar osnovni tumač i kompajler (dodatak za nekih €). Gotovo se zakači na sve u androidu i možete sastaviti prave aplikacije za njihovu distribuciju bez osnovnog! na ciljnom uređaju. Nažalost osnovno! nedostaju odlične 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 izabrao Mintoris. U ovom odjeljku neću vam dati vodič o programiranju u Mintorisu, već kratak opis funkcionalnih blokova
U sljedećem dijelu tri niza su deklarirana za dvije linije podataka senzora i odgovarajuće vremenske oznake. Podaci vremenske oznake koriste se za označavanje osi x dijagrama. Sodial emituje dva toka podataka od kojih je svaki specificiran za posebnu veličinu čestica. Dva matrična polja podataka uzimaju ove vrijednosti.
WakeLock Partial
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
TextSize 24
CLS
Skočni prozor "Mjerač senzora prašine (c) ARJ 2017"
Global dustData (), dustDataF (), timeStamp () Globalni indeks, izbor, maxData, fileName $
Zatamnjena vremenska oznaka (59)
Prigušena prašinaPodaci (59)
Prigušena prašinaDataF (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
Next i
Zatim je konfiguriran izbornik List. Ovo daje korisniku izbor da odabere maksimalnu veličinu podataka za prikupljanje. Ovo je samo sigurnosni prekidač koji sprječava pametni telefon da usisa beskonačne podatke. Funkcije BTgetPaired $ () vraćaju listu sa svim uparenim uređajima na android uređaju, njihova imena i BT adresu.
Lista 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
'' Povežite senzor
prigušen par $ (0)
par $ () = BTGetPaired $ ()
Ako je par $ (0) = "none" Tada
Ispis "Nije pronađen nijedan upareni uređaj. Je li BT uključen?" Odštampaj "Program je prekinut"
Kraj
Endif
List lista $ (), uređaj $
naziv $ = ItemExtract $ (uređaj $, 0)
adresa $ = ItemExtract $ (uređaj $, 1)
BTConnect 1, adresa $
'Sač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, onda izađite na čekanje 1000
Next i
Napredak ISKLJUČEN
'Nakon uspješnog povezivanja na BT uređaj
Ako je BTGetState (1) = 4, tada ispišite "Povezano". U suprotnom ispišite "Nije moguće povezati se s"; naziv $
Odštampaj "Program je prekinut"
Kraj
Endif
Sljedeći blok prikazuje potrebu za podacima. Za svaku sesiju podataka datoteka se automatski otvara i imenuje po vremenu i datumu. Zatim petlja čita podatke senzora. Podaci su upakovani u nekoliko bajtova. Skup bajtova identificiran je s dva ASCII znaka 170 i 171. Sljedeći podaci su 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, ime datoteke $, "w+" Ispiši "Otvorena datoteka podataka"; ime datoteke $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Napišite 1, "Vremenska prašina 2,5 Dust10"
'Napunite 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) = (prašinaDataF (indeks)+256*ASCII (sredina $ (podaci $, 3, 1)))/10
dustData (indeks) = ASCII (sredina $ (podaci $, 4, 1))
dustData (index) = (dustData (index)+256*ASCII (sredina $ (podaci $, 5, 1)))/10
Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))
podaci $ = ""
maxData = maxData-1
indeks = indeks+1
Ako je indeks> 59, tada je indeks = 0
dustData (indeks) = 0
dustDataF (indeks) = 0
Endif
Endif
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 ekran, ponovo 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 ekran postaje jasniji u trenutnoj boji
Boja 0, 0, 0
CLS
Boja 0, 0, 100
'Postavite boju grafike koja će se koristiti za iscrtavanje linija mreže
TextColor 100, 100, 100, 50
'TextColor je boja glavnog naslova mreže
TextColorA 100, 100, 100
'TextColorA se koristi za naslove osi i napomene u mreži.
'Postavite veličinu teksta naslova osi
'Glavni naslov mreže je 2x ove veličine
TextSize 20
FixDecimal 0
'Postavljeno za prikaz 2 decimalna mjesta
PadDigits 2
'Nacrtajte mrežu za grafikon' Postavite raspon i naslov X & Y
Osa 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. Istovremeno se dodjeljuje datoteka podataka. 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čuje se:
Prijenosni generator funkcija na WiFi i Androidu: 10 koraka
Prijenosni generator funkcija na WiFi i Androidu: Krajem 20. stoljeća pojavile su se razne tehnološke inovacije, posebno u području komunikacija; ali ne samo. Za nas, korisnike, potrošače i inženjere došlo je do brzog razvoja elektroničkih uređaja koji nam mogu učiniti živote
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 konstrukciju uređaja za uklanjanje prašine vrlo su jednostavni i laki za nabavku. Elektronika: Baterija, servo motori s velikim zakretnim momentom (x3), prijemnik i daljinski upravljač. 3x2 'list jezgre od pjene x-a
Arduino studija prašine: 8 koraka
Arduino studija prašine: Kako bi bilo živjeti na Marsu? Da li zrak može disati? Je li sigurno? Koliko ima prašine? Koliko su oluje česte? Jeste li se ikada zapitali odgovor na bilo koje od ovih pitanja?
Arduino stanica za nadzor čestica prašine: 4 koraka (sa slikama)
Arduino stanica za praćenje čestica prašine: Možete prilično jednostavno izgraditi uređaj za internet sa stvarima „uradi sam“koji prati zagađenje prašinom u vašem domu za manje od 50 USD i primati obavijesti kada nivo prašine postane previsok kako biste mogli provjetriti prostoriju ili možete postaviti izađite napolje 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 uznemirava one koji imaju prašinu između stvarnog LCD -a i poklopca ekrana, što ima puno vlasnika … Zapravo, s vremenom će se