Obsah:

Sodiální prachový senzor pro Android: 6 kroků
Sodiální prachový senzor pro Android: 6 kroků

Video: Sodiální prachový senzor pro Android: 6 kroků

Video: Sodiální prachový senzor pro Android: 6 kroků
Video: Jak vyměnit vzpěru předního tlumiče na autě BMW 3 (E46) [NÁVOD AUTODOC] 2024, Listopad
Anonim
Sodiální senzor prachu na Androidu
Sodiální senzor prachu na Androidu

Před rokem měl můj přítel víkendový workshop o monitorování životního prostředí. Cílem workshopu bylo vybudovat prachový senzor připojený k malinové pi desce, aby byla data měření umístěna na nějaký server, který poskytoval často aktualizované mapy koncentrace prachu. Můj přítel se zeptal, zda existuje způsob, jak získat data ze senzorů přímo do jeho smartphonu pro monitorování a protokolování. Vykopal jsem tedy internet pro datový list a viděl, že senzor má jednoduché rozhraní UART s protokolem 9600Baud 8N1. Jak ale propojit UART se smartphonem? No, to je snadné. Jen jsem musel použít jeden z těch všudypřítomných malých modulů Bluetooth, které poskytují emulovaný port pro Android. Nyní se podívejte, jak jsem to dokázal.

Krok 1: Co potřebujete

Co potřebuješ
Co potřebuješ
Co potřebuješ
Co potřebuješ

Potřebujete následující díly

  • Odpovídající konektor JST XH 7pinový pro rozhraní Sodial s vodiči. Koupil jsem svůj na Ebay.
  • Modul Bluetooth HC05 nebo 06 kompatibilní s konektorem UART
  • Převodník USB na sériové rozhraní s rozhraním úrovně TTL. Používáme to k tomu, abychom dali BT modulu jedinečný název
  • Prachový senzor Sodial SDS011. Svůj jsem dostal z Ebay
  • kousek veroboardu
  • Konektor USB-B
  • drát
  • Kus dřeva, na který lze namontovat vše

Pak budete potřebovat několik jednoduchých nástrojů:

  • Bucksaw pro řezání dřeva
  • pinzeta
  • páječka a pájka
  • štípačky
  • Horká lepicí pistole
  • Kus 8mm silikonové objímky (není na obrázku)

Datový list Sodial SDS011 si můžete stáhnout zde Datasheet Sodial SDS011

Krok 2: Příprava modulu Bluetooth

Příprava modulu Bluetooth
Příprava modulu Bluetooth
Příprava modulu Bluetooth
Příprava modulu Bluetooth
Příprava modulu Bluetooth
Příprava modulu Bluetooth
Příprava modulu Bluetooth
Příprava modulu Bluetooth

Modul BT má rozhraní UART s úrovní TTL. Lze jej překonfigurovat pomocí příkazů „AT“, jako jsme to udělali u internetových modemů v dávných dobách. Chcete -li jej připojit k terminálovému programu na vašem počítači, musíte přizpůsobit UART vašemu počítači. Použil jsem převodník USB-RS232, který jsem koupil na Amazonu. Použil jsem konektor pro modul BT a směroval jsem napájení 3, 3 V a GND z převodníku do modulu BT. Pak jsem připojil příslušné TxD a RxD linky v crossoveru. TxD z USB převodníku na RxD z BT modulu a naopak.

Mám linuxový stroj a používám cutecom. Po připojení USB převodníku byl port „ttyUSB0“. Jména komportů najdete v adresáři "/dev" na vašem linuxovém počítači. Pro uživatele Windows bych doporučil "hterm". Ovládání je snadné. Zadejte „AT“a jako odpověď byste měli dostat „AT“. Poté zadejte „AT+NameSensor“, aby BT modul dostal název „Sensor“

Krok 3: Montáž dílů

Montáž dílů
Montáž dílů
Montáž dílů
Montáž dílů
Montáž dílů
Montáž dílů
Montáž dílů
Montáž dílů

Uřízněte kus dřeva o velikosti vhodné k odebrání všech dílů. Připojte všechny signály podle schématu. Je dobré kolem vodičů nasadit silikonové pouzdro, které je chrání. Pájejte zástrčku USB-B na perfboardu. Slouží pouze k napájení. Všechny díly upevněte šrouby na dřevěném podstavci. Nakonec kabely za horka přilepte a upevněte na dřevo.

Krok 4: Párování

Párování
Párování
Párování
Párování

Napájejte aplikaci senzoru připojením napájecího zdroje USB. Na modulu BT začne blikat červená LED dioda. Nepokoušejte se spárovat se svým smartphonem Android. Musíte zadat PIN kód. Toto je „1234“. Po zadání kódu by měl být váš smartphone spárován s modulem BT.

Krok 5: Software

Rád píšu aplikace pro Android na samotnou cílovou platformu. ušetří vám to všechny emulace, o které se musíte starat, pokud pracujete s Android Studio. Na samotném Androidu jsem zjistil tři vhodné vývojové nástroje

  • Mintoris Basic. Základní tlumočník s bohatou sadou příkazů, se kterými si můžete pohrát téměř se vším na Androidu. Pro své aplikace můžete vytvářet zástupce. Mintoris basic neobsahuje kompilátor. Takže musíte mít nainstalovaný Mintoris na každém zařízení, které používáte. Musíte však zaplatit pouze jednou (asi 7 EUR)
  • Základní! Extrémně dobrý Základní tlumočník a překladač (doplněk za nějaké €). V Androidu je téměř vše a můžete sestavit skutečné aplikace pro jejich distribuci, aniž byste měli Basic! na cílovém zařízení. Bohužel základní! postrádá vynikající funkce diagramu diagramu Mintoris
  • AIDE je poloprofesionální IDE pro vývoj Androidu v Javě pro Android. S AIDE máte maximální flexibilitu, ale musíte se naučit javu. AIDE má roční náklady kolem 50 €

Vybral jsem Mintoris. V této části vám nedám návod k programování v Mintorisu, ale krátký popis funkčních bloků

V následující části jsou deklarována tři pole pro dva datové řádky senzoru a příslušná časová razítka. Data časového razítka se používají k označení osy x diagramu. Sodial vydává dva datové toky, každý specifikovaný pro speciální velikost částic. Dvě pole prachových dat nabývají těchto hodnot.

WakeLock částečný

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

Velikost textu 24

CLS

Vyskakovací okno „Měřič prachu (c) ARJ 2017“

Global dustData (), dustDataF (), timeStamp () Globální index, volba, maxData, název souboru $

Razítko ztlumení času (59)

Dim dustData (59)

Dim dustDataF (59)

Dim Menu $ (4) = „max. 100 datových sad“, „max. 1000 datových sad“, „max. 5000 datových sad“, „max. 10 000 datových sad“, „Exit“

„Inicializujte pole

Pro i = 0 až 59

dustData (i) = 0

dustDataF (i) = 0

časové razítko (i) = i

Příště já

Dále je nakonfigurováno menu seznamu. To dává uživateli možnost vybrat si maximální velikost dat, která se mají shromažďovat. Toto je jen bezpečnostní spínač, který má zabránit tomu, aby smartphone nasával nekonečná data. Funkce BTgetPaired $ () vrací seznam se všemi spárovanými zařízeními v zařízení Android, jejich jmény a adresami BT.

Seznam menu $ (), volba

'Vyberte maximální množství, pokud chcete data uložit

runLevel = 1

Vyberte volbu

Případ 0 max. Data = 100

Případ 1 maxDate = 1000

Případ 2 max. Data = 5 000

Případ 3 maxData = 10 000

Případ 4 maxData = 0

Konec Vybrat

'Připojte senzor

tlumený pár $ (0)

pár $ () = BTGetPaired $ ()

Pokud spárujete $ (0) = „žádný“, pak

Tisk "Nebyla nalezena žádná spárovaná zařízení. Je BT zapnuto?" Tisk "Program ukončen"

Konec

Endif

Seznam párů $ (), zařízení $

name $ = ItemExtract $ (zařízení $, 0)

adresa $ = ItemExtract $ (zařízení $, 1)

BTConnect 1, adresa $

„Počkejte na připojení

Pokrok ZAPNUT

Vytiskněte „Pokouším se připojit k“; adresa $

Pro i = 1 až 20

Pokrok i/2

Pokud BTGetstate (1) = 4, pak Exit For Wait 1000

Příště já

Průběh VYPNUT

„Po úspěchu se připojte k zařízení BT

Pokud BTGetState (1) = 4, pak vytiskněte „Připojeno“Jiný tisk „Nelze se připojit k“; název $

Tisk "Program ukončen"

Konec

Endif

V dalším bloku jsou zobrazeny údaje. Pro každou relaci dat se automaticky otevře soubor s názvem podle času a data. Poté smyčka čte data senzoru. Data jsou zabalena v několika bajtech. Sada bajtů je identifikována dvěma znaky ASCII 170 a 171. Následující data jsou reorganizována a naplněna do prachových polí

Zapnutá grafika

„Otevřete datový soubor pro zápis

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

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

Napsal 1, „Time Dust2.5 Dust10“

„Vyplňte pole naměřenými daty

data $ = "" paket $ = ""

index = 0

Do While maxData> 0

BTR Přečíst 1, balíček $, 10

data $ = data $+paket $

Pokud Len (data $)> = 10 Then

If (ASCII (Left $ (data $, 1)) = 170) & (ASCII (Right $ (data $, 1)) = 171) Then

dustDataF (index) = ASCII (střední $ (data $, 2, 1))

dustDataF (index) = (dustDataF (index)+256*ASCII (střední $ (data $, 3, 1)))/10

dustData (index) = ASCII (Mid $ (data $, 4, 1))

dustData (index) = (dustData (index)+256*ASCII (Mid $ (data $, 5, 1)))/10

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

data $ = ""

maxData = maxData-1

index = index+1

Pokud index> 59 Pak index = 0

dustData (index) = 0

dustDataF (index) = 0

Endif

Endif

DrawGraph ()

Počkej 100

Smyčka

Zavřít 1

Grafika vypnuta

Tisk CLS "Program ukončen"

Konec

Poslední částí je podprogram, který je vyvolán po každém příjmu dat. Vymaže obrazovku, překreslí diagram se skutečnými daty uloženými v poli prachu a časových razítek.

„Nakreslete souřadnice, popisky, zatržítka a také datové křivky

Sub DrawGraph ()

'V grafickém režimu se obrazovka vymaže na aktuální barvu

Barva 0, 0, 0

CLS

Barva 0, 0, 100

'Nastavte barvu grafiky, která bude použita k vykreslení čar mřížky.'

TextColor 100, 100, 100, 50

„TextColor je barva hlavního názvu mřížky

TextColorA 100, 100, 100

'TextColorA se používá pro názvy os a anotace mřížky.'

'Nastavte velikost textu názvu osy

„Hlavní název mřížky je dvakrát větší

Velikost textu 20

FixDecimal 0

'Nastaveno na zobrazení 2 desetinných míst

PadDigits 2

„Nakreslete mřížku pro graf“Nastavte rozsah a název X & Y

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

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

Mřížka 3, „Koncentrace prachu“

„Nakreslete prachové grafy

Barva 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Barva 0, 100, 0

Časové razítko GraphXY (), prachová data ()

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

Vrátit se

Stáhněte si zdrojový kód zde

Krok 6: Test

Image
Image
Test
Test
Test
Test
Test
Test

Zapněte senzor a spusťte aplikaci. Ze seznamu spárovaných zařízení vyberte zařízení s názvem „Senzor“. Po připojení senzoru se na obrazovce začnou zobrazovat data. Současně je přidělován datový soubor. Po dokončení módy můžete použít GnuPlot k zobrazení dat. Pomocí souboru „Test.gp“v GnuPlot nakonfigurujte GnuPlot pro zobrazení datového souboru s názvem „Test.dat“. Najdete ho také zde

Další podrobnosti a testování najdete ve videu. Užijte si spoustu zábavy a více nápadů!

Doporučuje: