Obsah:
- Krok 1: Čo potrebujete
- Krok 2: Príprava modulu Bluetooth
- Krok 3: Montáž dielov
- Krok 4: Párovanie
- Krok 5: Softvér
- Krok 6: Test
Video: Senzor sodíkového prachu v systéme Android: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
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
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
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
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
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
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:
Štúdia prachu Arduino: 8 krokov
Štúdia prachu Arduino: Aké by to bolo žiť na Marse? Je vzduch priedušný? Je to bezpečné? Koľko je tam prachu? Ako často sú búrky? Zaujímala vás niekedy odpoveď na niektorú z týchto otázok?
Ako nastaviť Samsung Galaxy S7 v systéme Android 8.0 na zobrazenie iba obrazovky pre jednu aplikáciu !!: 5 krokov
Ako nastaviť Samsung Galaxy S7 s Androidom 8.0 tak, aby zobrazoval iba obrazovku pre jednu aplikáciu !!: Tento návod vám ukáže, ako nastaviť Samsung Galaxy S7 tak, aby zobrazoval obrazovku iba pre jednu aplikáciu. Je to skvelé, ak máte dieťa/dieťa kto sa rád hrá s vašim telefónom alebo sa chce uistiť, že váš telefón zostane v jednej aplikácii iba vtedy, keď je niekto iný
Ako zabrániť Facebooku v automatickom prehrávaní videí v systéme Android !!: 10 krokov
Ako zastaviť Facebook z automatického prehrávania videí v systéme Android !!: Tento návod vám ukáže, ako zastaviť facebook v automatickom prehrávaní videí v údajoch aj v sieti Wi -Fi na zariadení s Androidom. Prihláste sa na odber môjho kanála. Ďakujem
Odstránenie krytu displeja Nokia 6280 na čistenie prachu: 7 krokov
Odstránenie krytu displeja Nokia 6280 na čistenie prachu: Na rozdiel od mnohých iných modelov sa zdá, že telefón Nokia 6280 nie je vyrobený tak, aby si používatelia mohli kryt displeja odstrániť sami. To rozčuľuje tých, ktorí sa dostanú medzi skutočný displej LCD a kryt displeja, čo je veľa majiteľov … V skutočnosti postupom času
Oprava proti prachu z obrazovky Samsung I600/Blackjack: 4 kroky
Oprava odstránenia prachu z obrazovky Samsung I600/Blackjack: Dobrý deň, ak máte (ako ja) Samsung SGH -i600 (alebo blackjack v Amerike) a všimli ste si, že do jednotky vniká prach a hromadí sa v ľavom hornom rohu obrazovky - myslím si Mám pre vás opravu. Pred obrázkom s láskavým súhlasom Tracy