Obsah:

Senzor sodíkového prachu v systéme Android: 6 krokov
Senzor sodíkového prachu v systéme Android: 6 krokov

Video: Senzor sodíkového prachu v systéme Android: 6 krokov

Video: Senzor sodíkového prachu v systéme Android: 6 krokov
Video: Девушка разбила мой компьютер🤬 я отомстил и сломал ей ноутбук🤯 2024, November
Anonim
Senzor sodíkového prachu v systéme Android
Senzor sodíkového prachu v systéme Android

Pred rokom mal môj priateľ víkendový workshop o monitorovaní životného prostredia. Cieľom workshopu bolo vybudovať prachový senzor spojený s malinovou doskou pi, aby sa údaje o meraní dostali na nejaký server, ktorý poskytoval často aktualizované mapy koncentrácie prachu. Môj priateľ sa spýtal, či existuje spôsob, ako získať údaje zo senzorov priamo do jeho smartfónu na monitorovanie a zaznamenávanie. Vykopal som internet pre technický list a zistil som, že senzor má jednoduché rozhranie UART s protokolom 9600Baud 8N1. Ako však prepojiť UART so smartfónom? No to je ľahké. Musel som použiť jeden z tých všadeprítomných malých modulov Bluetooth, ktoré v systéme Android poskytujú emulovaný port. Teraz sa pozrite, ako som to dokázal.

Krok 1: Čo potrebujete

Čo potrebuješ
Čo potrebuješ
Čo potrebuješ
Čo potrebuješ

Potrebujete nasledujúce diely

  • Párujúci konektor JST XH 7-pólový pre rozhranie Sodial s vodičmi. Kúpil som si ten svoj na Ebay.
  • Modul Bluetooth HC05 alebo 06 kompatibilný s konektorom UART
  • Sériový prevodník USB s rozhraním na úrovni TTL. Používame to na to, aby sme BT modulu dali jedinečný názov
  • Sodiálny snímač prachu SDS011. Svoje mám z Ebay
  • kus veroboardu
  • Konektor USB-B
  • drôt
  • Kus dreva, na ktorý sa dá všetko namontovať

Potom budete potrebovať niekoľko jednoduchých nástrojov:

  • Posilňa na rezanie dreva
  • pinzeta
  • spájkovačka a spájka
  • drôtová rezačka
  • Horúca lepiaca pištoľ
  • Kúsok 8 mm silikónovej objímky (nie je na obrázku)

Technický list Sodial SDS011 si môžete stiahnuť tu Datasheet Sodial SDS011

Krok 2: Príprava modulu Bluetooth

Príprava modulu Bluetooth
Príprava modulu Bluetooth
Príprava modulu Bluetooth
Príprava modulu Bluetooth
Príprava modulu Bluetooth
Príprava modulu Bluetooth
Príprava modulu Bluetooth
Príprava modulu Bluetooth

Modul BT má rozhranie UART s úrovňou TTL. Je možné ho prekonfigurovať pomocou príkazov „AT“, ako sme to urobili s internetovými modemami v dávnych dobách. Na pripojenie k terminálovému programu na vašom počítači musíte prispôsobiť UART svojmu počítaču. Použil som prevodník USB-RS232, ktorý som kúpil v Amazone. Použil som konektor pre modul BT a smeroval som 3, 3V napájací zdroj a GND z prevodníka do modulu BT. Potom som prepojil príslušné riadky TxD a RxD v krížení. TxD z USB prevodníka na RxD z BT modulu a naopak.

Mám linuxový stroj a používam cutecom. Po pripojení prevodníka USB bol port „ttyUSB0“. Názvy kompotov nájdete v adresári "/dev" na vašom linuxovom počítači. Pre používateľov systému Windows by som odporučil „hterm“. Ovládanie je jednoduché. Zadajte „AT“a ako odpoveď by ste mali dostať „AT“. Potom zadajte „AT+NameSensor“, aby modul BT dostal názov „Sensor“

Krok 3: Montáž dielov

Montáž dielov
Montáž dielov
Montáž dielov
Montáž dielov
Montáž dielov
Montáž dielov
Montáž dielov
Montáž dielov

Vyrežte kus dreva veľkosti, ktorá je vhodná na odobratie všetkých dielov. Pripojte všetky signály podľa schémy. Na ochranu drôtov je dobré nasadiť silikónové puzdro. Zapájajte konektor USB-B na perfboarde. Slúži len na napájanie. Všetky diely pripevnite skrutkami na drevenú základňu. Nakoniec za horúca lepte káble, aby ste ich pripevnili na drevo.

Krok 4: Párovanie

Párovanie
Párovanie
Párovanie
Párovanie

Napájajte aplikáciu senzora zapojením napájacieho zdroja USB. Na module BT začne blikať červená LED dióda. Nepokúšajte sa ho spárovať so svojim smartfónom s Androidom. Musíte zadať PIN kód. Toto je „1234“. Po zadaní kódu by mal byť váš smartphone spárovaný s modulom BT.

Krok 5: Softvér

Rád píšem aplikácie pre Android na samotnú cieľovú platformu. ušetrí vám to od všetkých tých emulačných vecí, o ktoré sa musíte starať, ak pracujete s Android Studio. Na samotnom Androide som zistil tri vhodné vývojové nástroje

  • Mintoris Basic. Základný tlmočník s bohatou sadou príkazov, ktoré si môžu pohrať s takmer všetkým v systéme Android. Pre svoje aplikácie môžete vytvárať skratky. Mintoris basic neobsahuje kompilátor. Preto musíte mať nainštalovaný Mintoris na každom zariadení, ktoré používate. Musíte však zaplatiť iba raz (asi 7 €)
  • Základné! Extrémne dobrý Základný tlmočník a prekladač (doplnok za približne €). V systéme Android je takmer všetko a môžete zostavovať skutočné aplikácie na distribúciu bez toho, aby ste museli používať aplikáciu Basic! na cieľovom zariadení. Bohužiaľ základné! nemá vynikajúce funkcie diagramov diagramov Mintoris
  • AIDE je poloprofesionálne IDE na vývoj Androidu v Jave pre Android. S AIDE máte maximálnu flexibilitu, ale musíte sa naučiť javu. AIDE má ročné náklady okolo 50 €

Vybral som si Mintoris. V tejto časti vám neposkytnem návod na programovanie v Mintorise, ale krátky popis funkčných blokov

V nasledujúcej časti sú deklarované tri polia pre dva dátové riadky senzora a príslušné časové značky. Údaje časovej pečiatky sa používajú na označenie osi x diagramu. Sodial vydáva dva dátové toky, každý špecifikovaný pre špeciálnu veľkosť častíc. Dve polia prachových údajov nadobúdajú tieto hodnoty.

WakeLock čiastočné

TextColor 100, 75, 10

TextColorA 50, 50, 50

Zarovnanie textu 0

Veľkosť textu 24

CLS

Vyskakovacie okno "Merač prachu (c) ARJ 2017"

Global dustData (), dustDataF (), timeStamp () Globálny index, voľba, maxData, názov súboru $

Stmievať časovú pečiatku (59)

Tlmený prach Údaje (59)

Dim dustDataF (59)

Dim Menu $ (4) = „max. 100 množín údajov“, „max. 1 000 súborov údajov“, „max. 5 000 súborov údajov“, „max. 10 000 súborov údajov“, „Ukončiť“

„Spustite pole

Pre i = 0 až 59

údaje o prachu (i) = 0

dustDataF (i) = 0

časová pečiatka (i) = i

Ďalej i

Ďalej je nakonfigurovaná ponuka zoznamu. Užívateľ má tak možnosť vybrať si maximálnu veľkosť údajov, ktoré sa majú zhromaždiť. Toto je len bezpečnostný vypínač, ktorý má zabrániť tomu, aby smartfón nasával nekonečné množstvo dát. Funkcie BTgetPaired $ () vracia zoznam so všetkými spárovanými zariadeniami v zariadení s Androidom, ich názvami a adresou BT.

Prehľad menu $ (), výber

'Vyberte maximálnu hodnotu, ak sa údaje majú uložiť

runLevel = 1

Vyberte voľbu

Prípad 0 maxData = 100

Prípad 1 maxDate = 1000

Prípad 2 maxData = 5 000

Prípad 3 maxData = 10 000

Prípad 4 maxData = 0

Ukončiť výber

'Pripojte snímač

tmavý pár $ (0)

pár $ () = BTGetPaired $ ()

Ak pár $ (0) = „žiadny“Potom

Vytlačiť „Neboli nájdené žiadne spárované zariadenia. Je BT zapnuté?“Vytlačiť „Program ukončený“

Koniec

Koniec Ak

Zoznam dvojíc $ (), zariadenie $

názov $ = ItemExtract $ (zariadenie $, 0)

adresa $ = ItemExtract $ (zariadenie $, 1)

BTConnect 1, adresa $

„Počkajte na pripojenie

Pokrok ZAPNUTÝ

Vytlačte „Pokúša sa pripojiť k“; adresa $

Pre i = 1 až 20

Pokrok i/2

Ak BTGetstate (1) = 4, potom počkajte 1000

Ďalej i

Priebeh VYPNUTÝ

„Po úspechu sa pripojte k zariadeniu BT

Ak BTGetState (1) = 4, potom vytlačte „Pripojené“, inak sa nedá tlačiť „k“; názov $

Vytlačiť „Program ukončený“

Koniec

Koniec Ak

V nasledujúcom bloku sú uvedené údaje. Pre každú reláciu údajov sa automaticky otvorí súbor s názvom podľa času a dátumu. Potom slučka číta údaje senzora. Údaje sú zabalené v niekoľkých bajtoch. Sada bajtov je identifikovaná dvoma znakmi ASCII 170 a 171. Nasledujúce údaje sú reorganizované a vložené do prachových polí.

Grafika zapnutá

„Otvorte dátový súbor na zápis

názov súboru $ = FormatTime $ (t, "rrrr-MM-dd-kk-mm-ss") + ".dat"

Open 1, fileName $, "w+" Print "Opened datafile"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Písanie 1 „Časový prach 2,5 prachu 10“

'Vyplňte pole nameranými údajmi

data $ = "" paket $ = ""

index = 0

Robiť pri maxData> 0

BTR Prečítajte si 1, balík $ 10

dáta $ = dáta $+paket $

Ak Len (údaje $)> = 10 Potom

Ak (ASCII (vľavo $ (údaje $, 1)) = 170) & (ASCII (vpravo $ (údaje $, 1)) = 171) Potom

dustDataF (index) = ASCII (stred $ (údaje $, 2, 1))

dustDataF (index) = (dustDataF (index)+256*ASCII (stred $ (údaje $, 3, 1)))/10

dustData (index) = ASCII (stred $ (údaje $, 4, 1))

dustData (index) = (dustData (index)+256*ASCII (stred $ (údaje $, 5, 1)))/10

Zápis 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))

údaje $ = ""

maxData = maxData-1

index = index+1

Ak je index> 59, potom index = 0

dustData (index) = 0

dustDataF (index) = 0

Koniec Ak

Koniec Ak

DrawGraph ()

Počkaj 100

Slučka

Zavrieť 1

Grafika vypnutá

Tlač CLS "Program ukončený"

Koniec

Posledná časť je podprogram, ktorý sa volá po každom príjme údajov. Vymaže obrazovku, prekreslí diagram so skutočnými údajmi uloženými v poliach prachových a časových pečiatok.

„Nakreslite súradnice, štítky, kliešte a tiež dátové krivky

Sub DrawGraph ()

'V grafickom režime sa obrazovka vymaže na aktuálnu farbu

Farba 0, 0, 0

CLS

Farba 0, 0, 100

'Nastavte farbu grafiky, ktorá sa použije na kreslenie čiar mriežky

TextColor 100, 100, 100, 50

„TextColor je farba hlavného názvu mriežky

TextColorA 100, 100, 100

„TextColorA sa používa pre názvy osí a anotácie mriežky.

'Nastavte veľkosť textu názvu osi

„Hlavný názov mriežky je dvakrát taký veľký

Veľkosť textu 20

Oprava desatinná 0

'Nastavte na zobrazenie 2 desatinných miest

PadDigits 2

„Nakreslite mriežku pre graf“Nastavte rozsah a názov X & Y

Os AxisX 0, 59, "Čas/s"

Os Y 0, 10 000, "ug/m3"

Mriežka 3, „Koncentrácia prachu“

„Nakreslite prachové grafy

Farba 100, 0, 0

Časová pečiatka GraphXY (), prachové údajeF ()

Farba 0, 100, 0

Časová pečiatka GraphXY (), prachové údaje ()

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

Návrat

Stiahnite si zdrojový kód tu

Krok 6: Test

Image
Image
Test
Test
Test
Test
Test
Test

Zapnite senzor a spustite aplikáciu. V zozname spárovaných zariadení vyberte zariadenie s názvom „Senzor“. Po pripojení senzora sa na obrazovke začnú zobrazovať údaje. Súčasne je alokovaný dátový súbor. Po dokončení módy môžete na zobrazenie údajov použiť GnuPlot. Pomocou súboru „Test.gp“v GnuPlot nakonfigurujte GnuPlot na zobrazenie dátového súboru s názvom „Test.dat“. Nájdete ho aj tu

Ďalšie podrobnosti a testovanie nájdete vo videu. Užite si veľa zábavy a veľa nápadov!

Odporúča: