Tartalomjegyzék:
- 1. lépés: Amire szüksége van
- 2. lépés: A Bluetooth modul előkészítése
- 3. lépés: Az alkatrészek felszerelése
- 4. lépés: Párosítás
- 5. lépés: A szoftver
- 6. lépés: Teszt
Videó: Nátrium -por érzékelő Androidon: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
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
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 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
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
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
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:
Hordozható funkciógenerátor WiFi -n és Androidon: 10 lépés
Hordozható funkciógenerátor WiFi -n és Androidon: A 20. század vége felé különféle technológiai újítások jelentek meg, különösen a kommunikáció területén; de nem csak. Számunkra a felhasználók, a fogyasztók és a mérnökök felfedezték az elektronikus eszközök gyors fejlődését, amelyek életünket teszik
Valós idejű grafikon rajzolása Androidon az Arduino-tól a HC-05-ig: 3 lépés
Valós idejű grafikon ábrázolása Androidon Arduino-tól HC-05-ig: Üdv, itt van egy oktatóanyag arról, hogyan lehet valós idejű grafikonot ábrázolni egy mikrovezérlőről, például egy Arduino-ról az alkalmazásra. Bluetooth-modult, például a HC-05-t használ üzenetküldő eszközként az adatok továbbítására és fogadására az Ar
Bluetooth otthoni automatizálás Androidon keresztül: 3 lépés
Bluetooth otthoni automatizálás Androidon keresztül: A 21. században élünk az automatizálás századában, azonban nem mindenki rendelkezik ezzel a luxussal, ne aggódjon! Ez az utasítás pontosan megmondja, hogyan kell automatizálni a készülékeit, hogy be- vagy kikapcsolhassa őket a gomb megnyomásával
Hogyan lehet megakadályozni a Facebook automatikus videolejátszását Androidon !!: 10 lépés
Hogyan lehet leállítani a Facebookot a videók automatikus lejátszásától Androidon !!: Ez az utasítás megmutatja, hogyan lehet megakadályozni, hogy a Facebook automatikusan lejátssza a videókat mind az adatokon, mind a wifi -n egy androidos készüléken. Kérjük, iratkozzon fel a csatornámra! Köszönjük
Como Hacer Un Guante Con Sensores Flex Y Conexión Androidon: 9 lépés
Como Hacer Un Guante Con Sensores Flex Y Conexión Android: El objetivo de este proyecto es crear un system de entrada para dispositivos m ó viles, que est á Az oktatóanyag angol nyelvű megtekintéséhez kattintson ide: ht