Obsah:
- Krok 1: Co potřebujete
- Krok 2: Příprava modulu Bluetooth
- Krok 3: Montáž dílů
- Krok 4: Párování
- Krok 5: Software
- Krok 6: Test
Video: Sodiální prachový senzor pro Android: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
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
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
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ů
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í
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
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:
DIY dechový senzor s Arduino (vodivý pletený strečový senzor): 7 kroků (s obrázky)
DIY dechový senzor s Arduino (vodivý pletený strečový senzor): Tento DIY senzor bude mít formu vodivého pleteného strečového senzoru. Omotá se kolem vašeho hrudníku/žaludku, a když se váš hrudník/žaludek roztahuje a smršťuje, rozšíří se senzor a následně i vstupní data, která jsou přiváděna do Arduina. Tak
Jak vytvořit aplikaci pro Android pomocí Android Studio: 8 kroků (s obrázky)
Jak vytvořit aplikaci pro Android pomocí Android Studio: Tento tutoriál vás naučí základy vytváření aplikace pro Android pomocí vývojového prostředí Android Studio. Jak jsou zařízení Android stále běžnější, poptávka po nových aplikacích se bude jen zvyšovat. Android Studio se snadno používá (
Vytvoření aplikace pro Android pro malé firmy pomocí MIT APP a Google Fusion Table: 7 kroků
Vytváření aplikace pro Android pro malé firmy pomocí MIT APP a Google Fusion Table: Chtěli jste někdy vytvořit vlastní aplikaci, která bude k dispozici v obchodě Google Play !!! Pokud podnikáte, pak vám tento návod změní život. Po pečlivém přečtení si budete moci vytvořit vlastní aplikaci. Před
Aplikace pro Android/iOS pro vzdálený přístup k routeru OpenWrt: 11 kroků
Aplikace pro Android/iOS pro vzdálený přístup k routeru OpenWrt: Nedávno jsem si koupil nový router (Xiaomi Mi Router 3G). A samozřejmě mě tento nový, úžasný kus hardwaru inspiroval, abych začal pracovat na tomto projektu;)
Dotykový senzor a zvukový senzor ovládající světla AC/DC: 5 kroků
Dotykový senzor a zvukový senzor ovládající světla AC/DC: Toto je můj první projekt, který funguje na základě dvou základních senzorů, jeden je dotykový senzor a druhý je zvukový senzor, když stisknete dotykovou podložku na dotykovém senzoru, přepne se světlo AC ZAPNUTO, pokud jej uvolníte, Světlo bude VYPNUTO a totéž