Tartalomjegyzék:

Nátrium -por érzékelő Androidon: 6 lépés
Nátrium -por érzékelő Androidon: 6 lépés

Videó: Nátrium -por érzékelő Androidon: 6 lépés

Videó: Nátrium -por érzékelő Androidon: 6 lépés
Videó: How To Install Android 6.0 Marshmallow On Your Pc 2024, November
Anonim
Nátrium -por érzékelő Androidon
Nátrium -por érzékelő Androidon

Egy évvel ezelőtt egy barátom tartott egy hétvégi workshopot a környezeti monitorozásról. A műhely célja az volt, hogy felépítsenek egy porérzékelőt, amely egy málna pi táblához van csatlakoztatva, hogy a mérési adatokat el lehessen helyezni egy olyan kiszolgálón, amely gyakran frissített porkoncentrációs térképeket szolgáltatott. A barátom megkérdezte, van -e mód arra, hogy az érzékelő adatait közvetlenül okostelefonjára szerezze be megfigyelésre és naplózásra. Ezért az interneten kikerestem egy adatlapot, és láttam, hogy az érzékelő egyszerű UART interfésszel rendelkezik, 9600Baud 8N1 protokollal. De hogyan lehet az UART -ot okostelefonhoz csatlakoztatni? Hát ez könnyű. Csak az egyik mindenütt jelenlévő kis Bluetooth -modult kellett használnom, amelyek emulált kompatibilitást biztosítanak androidon. Most nézd meg, hogyan sikerült.

1. lépés: Amire szüksége van

Amire szükséged van
Amire szükséged van
Amire szükséged van
Amire szükséged van

A következő alkatrészekre van szüksége

  • Párosító csatlakozó JST XH 7 pólusú a Sodial interfészhez vezetékekkel. Ebayen vettem az enyémet.
  • A HC05 vagy 06 Bluetooth modul kompatibilis UART csatlakozóval
  • USB soros átalakító TTL szintű interfésszel. Ezt használjuk, hogy egyedi nevet adjunk a BT modulnak
  • Sodial SDS011 porérzékelő. Az enyémet az Ebay -ről kaptam
  • egy darab veroboard
  • USB-B csatlakozó
  • huzal
  • Egy fadarab, amire mindent fel lehet szerelni

Akkor szüksége lesz néhány egyszerű eszközre:

  • Egy fűrész a fa vágásához
  • csipesz
  • forrasztópáka és forrasztópáka
  • drótvágó
  • Ragasztópisztoly
  • Egy darab 8 mm -es szilikon hüvely (nem a képen)

A Sodial SDS011 adatlapját itt töltheti le. Sodial SDS011 adatlapja

2. lépés: A Bluetooth modul előkészítése

A Bluetooth modul előkészítése
A Bluetooth modul előkészítése
A Bluetooth modul előkészítése
A Bluetooth modul előkészítése
A Bluetooth modul előkészítése
A Bluetooth modul előkészítése
A Bluetooth modul előkészítése
A Bluetooth modul előkészítése

A BT-modul UART interfésszel rendelkezik, TTL szintű. Átkonfigurálható "AT" parancsokkal, mint az internetes modemekkel az ókorban. Ahhoz, hogy a számítógép terminálprogramjához csatlakoztassa, hozzá kell igazítania az UART -ot a számítógépéhez. Az Amazonon vásárolt USB-RS232 átalakítót használtam. Csatlakozót használtam a BT-modulhoz, és a 3, 3 V-os tápegységet és a GND-t a konverterről a BT-modulra irányítottam. Ezután csatlakoztattam a megfelelő TxD és RxD vonalakat a crossoverben. TxD az USB-konverterről az RxD-re a BT-modulból és fordítva.

Van egy linuxos gépem és cutecom -ot használtam. Az USB-átalakító csatlakoztatása után a port "ttyUSB0" volt. A comport neveket a Linux gép "/dev" könyvtárában találja. Windows felhasználóknak a "hterm" -t javaslom. Könnyen kezelhető. Írja be az "AT" -t, és válaszként az "AT" -t kell kapnia. Ezután írja be az "AT+NameSensor" parancsot, hogy a BT-modul "Sensor" nevet kapjon

3. lépés: Az alkatrészek felszerelése

Az alkatrészek felszerelése
Az alkatrészek felszerelése
Az alkatrészek felszerelése
Az alkatrészek felszerelése
Az alkatrészek felszerelése
Az alkatrészek felszerelése
Az alkatrészek felszerelése
Az alkatrészek felszerelése

Vágjon le egy fadarabot olyan méretűre, amely alkalmas az összes rész kivételére. Csatlakoztassa az összes jelet a vázlat szerint. Érdemes szilikon hüvelyt tenni a vezetékek köré, hogy megvédje őket. Forrasztja az USB-B csatlakozót a perfboardon. Csak tápellátásra használják. Rögzítse az összes alkatrészt csavarokkal a fa alapon. Végül forró ragasztóval rögzítse a kábeleket a fához.

4. lépés: Párosítás

Párosítás
Párosítás
Párosítás
Párosítás

Táplálja az érzékelőalkalmazást USB-tápegység csatlakoztatásával. A BT-modul piros LED-je villogni kezd. Ne próbálja párosítani androidos okostelefonjával. Meg kell adnia egy PIN kódot. Ez az "1234". A kód megadása után az okostelefont párosítani kell a BT-modullal.

5. lépés: A szoftver

Szeretek Android -alkalmazásokat írni magára a célplatformra. megkímél minden olyan emulációs dologtól, amellyel törődnie kell, ha az Android Stúdióval dolgozik. Három alkalmas fejlesztőeszközt találtam ki az Androidon

  • Mintoris Basic. Alapvető tolmács, gazdag parancskészlettel, hogy szinte minden androidos dolgot elbűvölhessen. Parancsikonokat hozhat létre az alkalmazásokhoz. A Mintoris basic nem tartalmaz fordítót. Tehát minden használt eszközre telepítenie kell a Mintoris programot. De csak egyszer kell fizetnie (kb. 7 €)
  • Alapvető! Rendkívül jó Alapszintű tolmács és fordító (kiegészítő néhány euróért). Szinte mindenre ráakad az androidon, és valódi alkalmazásokat állíthat össze azok elosztásához anélkül, hogy rendelkezne Basic -el! a céleszközön. Sajnos alap! hiányzik a Mintoris kiváló diagramdiagram funkciója
  • Az AIDE egy félig professzionális IDE az android fejlesztéséhez a java Androidon. Az AIDE segítségével a legnagyobb rugalmassággal rendelkezik, de meg kell tanulnia a java -t. Az AIDE éves költsége körülbelül 50 €

Én a Mintoris -t választottam. Ebben a részben nem a Mintoris programozását ismertetem, hanem a funkcióblokkok rövid leírását

A következő részben három tömböt adunk meg a két érzékelő adatvonalához és a megfelelő időbélyegekhez. Az időbélyegző adatai a diagram x tengelyének címkézésére szolgálnak. A Sodial két adatfolyamot ad ki, amelyek mindegyike egy speciális részecskemérethez van megadva. A két dustdata-tömb ezeket az értékeket veszi fel.

WakeLock Részleges

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

TextSize 24

CLS

Felugró "Porérzékelő mérő (c) ARJ 2017"

Global dustData (), dustDataF (), timeStamp () Globális index, választás, maxData, fileName $

Halvány időbélyegző (59)

Halvány por Adatok (59)

Halvány porDataF (59)

Dim menü $ (4) = "max. 100 adatkészlet", "max. 1000 adatkészlet", "max. 5000 adatkészlet", "max. 10000 adatkészlet", "Kilépés"

'Kezdje a tömböket

I = 0 és 59 között

dustData (i) = 0

dustDataF (i) = 0

timeStamp (i) = i

Következő i

Ezután konfigurálódik a Lista menü. Ezzel a felhasználó választhat a begyűjtendő adatok maximális méretének kiválasztása mellett. Ez csak egy biztonsági kapcsoló, amely megakadályozza, hogy az okostelefon végtelen adatokat szívjon be. A BTgetPairs $ () függvények listát adnak vissza az androidos eszköz összes párosított eszközéről, azok nevéről és BT-címéről.

List Menu $ (), választás

'Válassza ki a maximális összeget, ha adatokat szeretne tárolni

runLevel = 1

Válassza ki a választást

0. eset maxData = 100

1. eset maxDate = 1000

2. eset maxData = 5000

3. eset maxData = 10000

4. eset maxData = 0

Vége Kiválasztás

'' Csatlakoztassa az érzékelőt

halvány pár $ (0)

pár $ () = BTGetPairs $ ()

Ha pár $ (0) = "nincs" Akkor

Nyomtatás "Nem található párosított eszköz. Be van kapcsolva a BT?" Nyomtatás "A program befejeződött"

Vége

Endif

Listapár $ (), eszköz $

név $ = ItemExtract $ (eszköz $, 0)

cím $ = ItemExtract $ (eszköz $, 1)

BTConnect 1, $ cím

'Várja meg a kapcsolatot

Haladás BE

Nyomtatás "Próbál csatlakozni"; cím $

I = 1-20

Haladás i/2

Ha BTGetstate (1) = 4, akkor lépjen ki várni 1000 -re

Következő i

Folyamat KI

'Siker esetén csatlakozzon a BT eszközhöz

Ha a BTGetState (1) = 4, akkor a "Csatlakoztatva" nyomtatás "Más nyomtatás" Nem sikerült csatlakozni a következőhöz: name $

Nyomtatás "A program befejeződött"

Vége

Endif

A következő blokk az adatgyűjtést mutatja. Minden adatmunkamenet során egy fájl automatikusan megnyílik, és elnevezi az időt és a dátumot. Ezután a hurok olvassa az érzékelő adatait. Az adatok több bájtba vannak csomagolva. Egy bájthalmazt két ASCII 170 és 171 karakter azonosít.

Grafika be

'Nyissa meg az írni kívánt adatfájlt

fileName $ = FormatTime $ (t, "yyyy-MM-dd-kk-mm-ss") + ".dat"

Nyissa meg 1, fileName $, "w+" Nyomtatás "Megnyílt adatfájl"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")

Writeln 1, "Time Dust2.5 Dust10"

'Töltse fel a tömböt a mért adatokkal

data $ = "" packet $ = ""

index = 0

Do while maxData> 0

BTRead 1, csomag $, 10

adatok $ = adatok $+csomag $

Ha Len (adatok $)> = 10 Akkor

Ha (ASCII (Left $ (data $, 1)) = 170) & (ASCII (Right $ (data $, 1))) = 171) Akkor

dustDataF (index) = ASCII ($ közepes ($ $, 2, 1))

dustDataF (index) = (dustDataF (index)+256*ASCII ($ közepén ($ $, 3, 1)))/10

dustData (index) = ASCII ($ közepén ($ $, 4, 1))

dustData (index) = (dustData (index)+256*ASCII ($ közepén ($ $, 5, 1)))/10

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

adatok $ = ""

maxData = maxData-1

index = index+1

Ha az index> 59, akkor az index = 0

dustData (index) = 0

dustDataF (index) = 0

Endif

Endif

DrawGraph ()

Várj 100

Hurok

Bezárás 1

Grafika kikapcsolva

CLS nyomtatás "A program leállt"

Vége

Az utolsó rész egy alprogram, amelyet minden adatfogadás után meghívnak. Törli a képernyőt, újrarajzolja a diagramot a por- és időbélyeg-tömbökben tárolt tényleges adatokkal.

Rajzolja le a koordinátákat, a címkéket, a kullancsokat és az adatgörbéket

Sub DrawGraph ()

'Grafikus módban a képernyő az aktuális színre vált

Szín 0, 0, 0

CLS

Szín 0, 0, 100

'Állítsa be a rácsvonalak rajzolásához használni kívánt grafikus színt

TextColor 100, 100, 100, 50

„A TextColor a rács főcímének színe

TextColorA 100, 100, 100

'A TextColorA tengelycímekhez és rácsjegyzetekhez használatos.

'Állítsa be a tengelycím szövegének méretét

'A rács főcíme kétszer ekkora

TextSize 20

FixDecimal 0

'2 tizedesjegy megjelenítésére állítsa be

PadDigits 2

'Rajzoljon rácsot a grafikonhoz' Állítsa be az X & Y tartományát és címét

Tengely AxisX 0, 59, "Idő/s"

TengelyY 0, 10000, "ug/m3"

3. rács, "Porkoncentráció"

'Rajzoljon porgrafikonokat

Szín 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Szín: 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

Visszatérés

Töltse le a forráskódot innen

6. lépés: Teszt

Image
Image
Teszt
Teszt
Teszt
Teszt
Teszt
Teszt

Kapcsolja be az érzékelőt, és indítsa el az alkalmazást. A párosított eszközök listájából válassza ki az "Érzékelő" nevet. Az érzékelő csatlakoztatása után a képernyő elkezdi megjeleníteni az adatokat. Ezzel egyidejűleg kiosztásra kerül az adatfájl. A divat befejezése után a GnuPlot segítségével megjelenítheti az adatokat. Használja a GnuPlot "Test.gp" fájlját a GnuPlot konfigurálásához a "Test.dat" nevű adatfájl megjelenítéséhez. Itt is megtalálhatja

További részletekért és tesztelésért tekintse meg a videót. Jó szórakozást és további ötleteket!

Ajánlott: