Kazalo:
- 1. korak: Kaj potrebujete
- 2. korak: Priprava modula Bluetooth
- 3. korak: Montaža delov
- 4. korak: Seznanjanje
- 5. korak: programska oprema
- 6. korak: Preizkusite
Video: Senzor natrijevega prahu v sistemu Android: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:06
Pred letom dni je imela moja prijateljica vikend delavnico o spremljanju okolja. Cilj delavnice je bil izdelati senzor za prah, povezan z malinovo pi ploščo, da bi na nek strežnik dal merilne podatke, ki so zagotavljali pogosto posodobljene zemljevide koncentracije prahu. Moj prijatelj je vprašal, ali obstaja način, kako podatke senzorja dobiti neposredno na svoj pametni telefon za spremljanje in beleženje. Tako sem po internetu poiskal podatkovni list in videl, da ima senzor preprost vmesnik UART s protokolom 9600Baud 8N1. Toda kako povezati UART s pametnim telefonom? No, to je enostavno. Pravkar sem moral uporabiti enega od tistih vseprisotnih majhnih modulov Bluetooth, ki zagotavljajo emuliran primer na androidu. Zdaj pa poglejte, kako mi je to uspelo.
1. korak: Kaj potrebujete
Potrebujete naslednje dele
- Parni konektor JST XH 7-pinski za vmesnik Sodial z žicami. Jaz sem svojega kupil na Ebayu.
- Modul Bluetooth HC05 ali 06, združljiv s priključkom UART
- Serijski pretvornik USB z vmesnikom na ravni TTL. S tem uporabimo modul BT edinstveno ime
- Natrijev senzor za prah SDS011. Jaz sem svojega dobil z Ebaya
- kos veroboarda
- Priključek USB-B
- žica
- Kos lesa, na katerega lahko pritrdite vse
Potem boste potrebovali nekaj preprostih orodij:
- Žaga za rezanje lesa
- pinceto
- spajkalnik in spajkanje
- rezalnik žice
- Pištola za vroče lepilo
- Kos 8 mm silikonskega tulca (ni na sliki)
Podatkovni list Sodial SDS011 lahko prenesete tukaj Sodialni SDS011 podatkovni list
2. korak: Priprava modula Bluetooth
Modul BT ima UART vmesnik na ravni TTL. Lahko ga znova konfigurirate z ukazi "AT", kot smo to počeli v internetnih modemih v starih časih. Če ga želite povezati s terminalskim programom v napravi, morate UART prilagoditi računalniku. Uporabil sem pretvornik USB-RS232, ki sem ga kupil pri Amazonu. Uporabil sem konektor za BT-modul in 3, 3V napajanje in GND preusmeril iz pretvornika v BT-modul. Nato sem v križanju povezal ustrezne linije TxD in RxD. TxD iz pretvornika USB v RxD iz modula BT in obratno.
Imam stroj za Linux in uporabljam cutecom. Po priključitvi pretvornika USB je bil primerjal »ttyUSB0«. Imena komport najdete v imeniku "/dev" na vašem računalniku s sistemom Linux. Za uporabnike operacijskega sistema Windows priporočam "hterm". Je enostaven za upravljanje. Vnesite "AT" in kot odgovor bi morali dobiti "AT". Nato vnesite "AT+NameSensor", da modul BT poimenujete "Sensor"
3. korak: Montaža delov
Odrežite kos lesa v velikosti, ki je primerna za prevzem vseh delov. Povežite vse signale, kot je prikazano na shemi. Za zaščito je dobro, da okoli žic postavite silikonski tulec. Spajite vtič USB-B na ploščo. Uporablja se samo za napajanje. Vse dele pritrdite z vijaki na leseno podlago. Na koncu vroče lepite kable, da jih pritrdite na les.
4. korak: Seznanjanje
Aplikacijo senzorja vklopite tako, da priključite napajalnik USB. Rdeča LED na modulu BT bo začela utripati. Ne poskušajte ga povezati s pametnim telefonom Android. Vnesti morate pin kodo. To je "1234". Po vnosu kode mora biti vaš pametni telefon seznanjen z modulom BT.
5. korak: programska oprema
Rada pišem aplikacije za Android na sami ciljni platformi. rešuje vas pred vsemi stvarmi emulacije, za katere morate skrbeti, če delate z Android Studiom. Na samem Androidu sem odkril tri ustrezna razvojna orodja
- Mintoris Basic. Osnovni tolmač z bogatim naborom ukazov, s katerimi se lahko ukvarjate s skoraj vsem na androidu. Ustvarite lahko bližnjice za svoje aplikacije. Mintoris basic ne vsebuje prevajalnika. Torej morate imeti nameščen Mintoris na vsaki napravi, ki jo uporabljate. Plačati morate le enkrat (približno 7 €)
- Osnovno! Izjemno dober tolmač in prevajalnik Basic (dodatek za nekaj €). Skoraj vse poveže v androidu in lahko sestavite prave aplikacije za njihovo distribucijo, ne da bi imeli Basic! na ciljni napravi. Žal Osnovno! nima odličnih funkcij diagramov Mintorisa
- AIDE je polprofesionalni IDE za razvoj androida v javi na androidu. Z AIDE imate največjo prilagodljivost, vendar se morate naučiti jave. AIDE ima letne stroške približno 50 €
Izbral sem Mintoris. V tem razdelku vam ne bom dal vadnice programiranja v Mintorisu, ampak kratek opis funkcijskih blokov
V naslednjem delu so za dve podatkovni liniji senzorjev in ustrezne časovne žige razglašeni tri matrike. Podatki o časovnem žigu se uporabljajo za označevanje osi x diagrama. Sodial oddaja dva podatkovna toka, od katerih je vsak določen za posebno velikost delcev. Dva niza podatkov o prahu sprejmeta te vrednosti.
Delno WakeLock
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
Velikost besedila 24
CLS
Pojavno okno "Merilnik senzorja prahu (c) ARJ 2017"
Global dustData (), dustDataF (), timeStamp () Globalni indeks, izbira, maxData, fileName $
Zatemni časovni žig (59)
Zatemnjen prah Podatki (59)
Zatemnjen prah DataF (59)
Dim Menu $ (4) = "največ 100 naborov podatkov", "največ 1000 naborov podatkov", "največ 5000 naborov podatkov", "največ 10000 naborov podatkov", "Izhod"
'Začetek nizov
Za i = 0 do 59
dustData (i) = 0
dustDataF (i) = 0
časovni žig (i) = i
Naprej i
Nato je konfiguriran meni s seznamom. To daje uporabniku možnost izbire največje velikosti podatkov za zbiranje. To je samo varnostno stikalo, ki preprečuje, da bi pametni telefon sesal neskončne podatke. Funkcije BTgetPaired $ () vračajo seznam vseh povezanih naprav v napravi Android, njihovih imen in BT-naslova.
List Menu $ (), izbira
'Če želite shraniti podatke, izberite največjo količino
runLevel = 1
Izberite izbiro
Primer 0 maxData = 100
Primer 1 maxDate = 1000
Primer 2 maxData = 5000
Primer 3 maxData = 10000
Primer 4 maxData = 0
Konec Izberite
'' Priključite senzor
dim par $ (0)
par $ () = BTGetPaired $ ()
Če je par $ (0) = "nič", potem
Natisni "Ni mogoče najti nobene seznanjene naprave. Ali je BT vklopljen?" Natisni "Program zaključen"
Konec
Endif
Seznam par $ (), naprava $
name $ = ItemExtract $ (naprava $, 0)
naslov $ = ItemExtract $ (naprava $, 1)
BTConnect 1, naslov $
'Počakajte na povezavo
Napredek VKLOPLJEN
Natisnite "Poskušam se povezati"; naslov $
Za i = 1 do 20
Napredek i/2
Če je BTGetstate (1) = 4, potem zapustite za čakanje 1000
Naprej i
Napredek IZKLOPLJEN
'Ko je uspelo, se povežite z napravo BT
Če je BTGetState (1) = 4 Nato natisnite »Povezano« Drugače Natisnite »Ni mogoče vzpostaviti povezave z«; ime $
Natisni "Program zaključen"
Konec
Endif
Naslednji blok prikazuje zahteve po podatkih. Za vsako podatkovno sejo se datoteka samodejno odpre in poimenuje po času in datumu. Nato zanka bere podatke senzorja. Podatki so pakirani v več bajtov. Niz bajtov sta označena z dvema znakoma ASCII 170 in 171. Naslednji podatki so reorganizirani in napolnjeni v matrike prahu.
Grafika vklopljena
'Za pisanje odprite podatkovno datoteko
fileName $ = FormatTime $ (t, "yyyy-MM-dd-kk-mm-ss") + ".dat"
Odprite 1, fileName $, "w+" Natisnite "Odprto datoteko podatkov"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Napišite 1, "Časovni prah2,5 Dust10"
„Polje napolnite z izmerjenimi podatki
data $ = "" paket $ = ""
indeks = 0
Ali Med maxData> 0
BTRead 1, paket $ 10
podatki $ = podatki $+paket $
Če je Len (podatki $)> = 10 Potem
Če je (ASCII (Levo $ (podatki $, 1)) = 170) & (ASCII (Desno $ (podatki $, 1)) = 171) Potem
dustDataF (indeks) = ASCII (sredina $ (podatki $, 2, 1))
dustDataF (indeks) = (dustDataF (indeks)+256*ASCII (sredina $ (podatki $, 3, 1)))/10
dustData (indeks) = ASCII (sredina $ (podatki $, 4, 1))
dustData (indeks) = (dustData (indeks)+256*ASCII (sredina $ (podatki $, 5, 1)))/10
Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (indeks)) + "" + Str $ (dustData (indeks))
podatki $ = ""
maxData = maxData-1
indeks = indeks+1
Če je indeks> 59, potem je indeks = 0
dustData (indeks) = 0
dustDataF (indeks) = 0
Endif
Endif
DrawGraph ()
Počakaj 100
Zanka
Zapri 1
Grafika izklopljena
CLS Natisni "Program zaključen"
Konec
Zadnji del je podprogram, ki se pokliče po vsakem sprejemu podatkov. Počisti zaslon, nariše diagram z dejanskimi podatki, shranjenimi v matrikah prahu in časovnih žigov.
'Narišite koordinate, oznake, kljukice in tudi krivulje podatkov
Sub DrawGraph ()
'V grafičnem načinu se zaslon počisti na trenutno barvo
Barva 0, 0, 0
CLS
Barva 0, 0, 100
'Nastavite barvo grafike za risanje linij mreže
TextColor 100, 100, 100, 50
'TextColor je barva glavnega naslova mreže
TextColorA 100, 100, 100
'TextColorA se uporablja za naslove osi in opombe v mreži.
'Nastavite velikost besedila naslova osi
Glavni naslov mreže je 2x te velikosti
Velikost besedila 20
FixDecimal 0
'Nastavljeno za prikaz dveh decimalk
PadDigits 2
'Nariši mrežo za graf' Nastavi obseg in naslov X & Y
Os AxisX 0, 59, "Čas/s"
Os 0, 10000, "ug/m3"
Mreža 3, "Koncentracija prahu"
'Nariši grafe prahu
Barva 100, 0, 0
GraphXY timeStamp (), dustDataF ()
Barva 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
Vrnitev
Prenesite izvorno kodo tukaj
6. korak: Preizkusite
Vklopite senzor in zaženite aplikacijo. S seznama seznanjenih naprav izberite eno z imenom "Senzor". Po priključitvi senzorja bo zaslon začel prikazovati podatke. Hkrati je dodeljena podatkovna datoteka. Ko končate modo, lahko za prikaz podatkov uporabite GnuPlot. Uporabite datoteko "Test.gp" v GnuPlotu, da konfigurirate GnuPlot za prikaz podatkovne datoteke z imenom "Test.dat". Lahko ga najdete tudi tukaj
Za več podrobnosti in testiranje si oglejte video. Veliko zabave in več idej!
Priporočena:
Naredite lasten poper v prahu: 6 korakov
Naredite si lasten poper v spreju: Ste si kdaj želeli narediti svoj poper v spreju? Evo kako
Cómo Poner La Ip Estática v sistemu Android: 5 korakov
Cómo Poner La Ip Estática En Android: En el dia de hoy les mostrare como poner la ip est á tica en nuestro dispositivo android. Esto es ú til en caso de que el dispositivo nos se quiera conectar a la red o se queda buscando direcci "; n ip
Študija prahu Arduino: 8 korakov
Študija prahu Arduino: Kako bi bilo živeti na Marsu? Ali zrak diha? Je varno? Koliko je prahu? Kako pogoste so nevihte? Ste se kdaj vprašali odgovor na katero od teh vprašanj?
Odstranitev pokrova zaslona Nokia 6280 za čiščenje prahu: 7 korakov
Odstranitev pokrova zaslona Nokia 6280 za čiščenje prahu: Za razliko od mnogih drugih modelov se zdi, da Nokia 6280 ni narejena tako, da lahko uporabniki sami odstranijo pokrov zaslona. To moti tiste, ki med dejanskim LCD -jem in pokrovom zaslona dobijo prah, kar je veliko lastnikov … Pravzaprav se sčasoma "
Programiranje dirkalne igre v prahu: 7 korakov
Programiranje dirkalne igre v Scratch: Ta vadnica vam bo pokazala, kako programirati dirkaško igro v MIT -ovem Scratchu