Satura rādītājs:
- 1. darbība. Kas jums nepieciešams
- 2. darbība: Bluetooth moduļa sagatavošana
- 3. solis: detaļu montāža
- 4. darbība: savienošana pārī
- 5. solis: programmatūra
- 6. darbība: pārbaudiet
Video: Nātrija putekļu sensors operētājsistēmā Android: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Pirms gada manam draugam bija nedēļas nogales seminārs par vides monitoringu. Semināra mērķis bija izveidot putekļu sensoru, kas savienots ar aveņu pi plāksni, lai ievietotu mērījumu datus kādā serverī, kas nodrošināja bieži atjauninātas putekļu koncentrācijas kartes. Mans draugs jautāja, vai ir veids, kā iegūt sensoru datus tieši savā viedtālrunī uzraudzībai un reģistrēšanai. Tāpēc es izraku internetā datu lapu un redzēju, ka sensoram ir vienkāršs UART interfeiss ar 9600Baud 8N1 protokolu. Bet kā savienot UART ar viedtālruni? Nu, tas ir viegli. Man vienkārši vajadzēja izmantot vienu no tiem visuresošajiem mazajiem Bluetooth moduļiem, kas nodrošina emulētu saderību Android ierīcēs. Tagad redziet, kā man tas izdevās.
1. darbība. Kas jums nepieciešams
Jums ir nepieciešamas šādas daļas
- Savienojuma savienotājs JST XH 7-pin Sodial interfeisam ar vadiem. Savējo nopirku ebay.
- Bluetooth modulis HC05 vai 06, kas saderīgs ar UART savienotāju
- USB sērijas pārveidotājs ar TTL līmeņa interfeisu. Mēs to izmantojam, lai BT modulim piešķirtu unikālu nosaukumu
- Nātrija SDS011 putekļu sensors. Savējo dabūju no ebay
- gabals verboarda
- USB-B savienotājs
- vads
- Koka gabals, uz kura visu uzstādīt
Tad jums būs nepieciešami daži vienkārši rīki:
- Atslēga zāģēšanai koksnes griešanai
- pincetes
- lodēšanas dzelzs un lodēt
- stieples griezējs
- Karstās līmes pistole
- 8 mm silikona piedurknes gabals (nav attēlā)
Sodial SDS011 datu lapu varat lejupielādēt šeit Sodial SDS011 datu lapa
2. darbība: Bluetooth moduļa sagatavošana
BT modulim ir UART interfeiss ar TTL līmeni. To var pārkonfigurēt ar “AT” komandām, kā mēs to darījām ar interneta modemiem senatnē. Lai to savienotu ar datora termināļa programmu, jums ir jāpielāgo UART datoram. Es izmantoju USB-RS232 pārveidotāju, ko nopirku vietnē amazon. Es uzliku BT moduļa savienotāju un novirzīju 3, 3 V barošanas avotu un GND no pārveidotāja uz BT moduli. Tad es savienoju attiecīgās TxD un RxD līnijas krustojumā. TxD no USB pārveidotāja uz RxD no BT moduļa un otrādi.
Man ir linux mašīna un izmantoju cutecom. Pēc USB pārveidotāja pievienošanas ports bija "ttyUSB0". Komportu nosaukumus varat atrast Linux datora direktorijā "/dev". Windows lietotājiem es ieteiktu "hterm". Tas ir viegli darbināms. Ierakstiet “AT”, un jums vajadzētu saņemt “AT” kā atbildi. Pēc tam ierakstiet "AT+NameSensor", lai BT modulim piešķirtu nosaukumu "Sensor"
3. solis: detaļu montāža
Izgrieziet koka gabalu tādā izmērā, kas piemērots visu detaļu paņemšanai. Pievienojiet visus signālus, kā norādīts shēmā. Lai aizsargātu vadus, ieteicams novietot silīcija uzmavu. Lodējiet USB-B kontaktdakšu uz paneļa. To izmanto tikai barošanas avotam. Piestipriniet visas detaļas ar skrūvēm uz koka pamatnes. Visbeidzot karsti pielīmējiet kabeļus, lai tos piestiprinātu pie koka.
4. darbība: savienošana pārī
Ieslēdziet sensoru lietojumprogrammu, pievienojot USB barošanas avotu. BT moduļa sarkanā gaismas diode sāks mirgot. Nemēģiniet to savienot pārī ar savu Android viedtālruni. Jums jāievada PIN kods. Tas ir "1234". Pēc koda ievadīšanas viedtālrunis ir jāsavieno pārī ar BT moduli.
5. solis: programmatūra
Man patīk rakstīt Android lietotnes pašā mērķa platformā. tas ietaupa jūs no visa, kas jums jārūpējas par emulāciju, ja strādājat ar Android Studio. Es uzzināju trīs piemērotus izstrādes rīkus pašā Android
- Mintoris Basic. Pamata tulks ar bagātīgu komandu kopumu, lai varētu darboties gandrīz visā Android ierīcē. Savām lietotnēm varat izveidot saīsnes. Mintoris basic nesatur kompilatoru. Tātad jums ir jābūt instalētam Mintoris katrā ierīcē, kuru izmantojat. Bet par to jāmaksā tikai vienu reizi (apmēram 7 €)
- Pamata! Ārkārtīgi labs Pamata tulks un kompilators (papildinājums dažiem €). Gandrīz visu saista android, un jūs varat apkopot reālas lietotnes to izplatīšanai, neizmantojot Basic! mērķa ierīcē. Diemžēl elementāri! trūkst Mintoris lielisko diagrammu diagrammas funkciju
- AIDE ir daļēji profesionāla IDE, lai veiktu android attīstību java operētājsistēmā Android. Izmantojot AIDE, jums ir vislielākā elastība, taču jums jāiemācās java. AIDE ikgadējās izmaksas ir aptuveni 50 eiro
Es izvēlējos Mintoris. Šajā sadaļā es jums nedošu Mintoris programmēšanas pamācību, bet gan īsu funkciju bloku aprakstu
Nākamajā daļā ir norādīti trīs masīvi divām sensoru datu līnijām un attiecīgajiem laika zīmogiem. Laika zīmoga dati tiek izmantoti diagrammas x ass marķēšanai. Sodial izvada divas datu plūsmas, katra norādīta īpašam daļiņu izmēram. Abi putekļu datu masīvi ņem šīs vērtības.
WakeLock daļēja
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
Teksta izmērs 24
CLS
Uznirstošais logs "Putekļu sensora mērītājs (c) ARJ 2017"
Global dustData (), dustDataF (), timeStamp () Globālais indekss, izvēle, maxData, fileName $
Laika zīmoga aptumšošana (59)
Dim putekļi Dati (59)
Putekļu blāvumsDataF (59)
Dim izvēlne $ (4) = "maks. 100 datu kopas", "maks. 1000 datu kopas", "maks. 5000 datu kopas", "maks. 10000 datu kopas", "Iziet"
'Sāciet masīvus
Ja i = no 0 līdz 59
dustData (i) = 0
dustDataF (i) = 0
timeStamp (i) = i
Tālāk i
Tālāk tiek konfigurēta saraksta izvēlne. Tas lietotājam dod iespēju izvēlēties maksimālo apkopojamo datu lielumu. Tas ir tikai drošības slēdzis, lai neļautu viedtālrunim iesūkt nebeidzamus datus. Funkcijas BTgetPairs $ () atgriež sarakstu ar visām Android ierīcē pārī savienotajām ierīcēm, to nosaukumiem un BT adresi.
Izvēlne $ (), izvēle
'Izvēlieties maksimālo apjomu, ja dati tiks saglabāti
runLevel = 1
Izvēlieties izvēli
Lieta 0 maxData = 100
1. gadījums maxDate = 1000
2. gadījums maxData = 5000
3. gadījums maxData = 10000
4. gadījums maxData = 0
Beigas Atlasīt
'' Savienojiet sensoru
blāvs pāris $ (0)
pāris $ () = BTGetPairs $ ()
Ja pāris $ (0) = "none" Tad
Drukāt "Nav atrasta pārī savienota ierīce. Vai BT ir ieslēgts?" Drukāt "Programma pārtraukta"
Beigas
Endif
Saraksta pāris $ (), ierīce $
nosaukums $ = ItemExtract $ (ierīce $, 0)
adrese $ = ItemExtract $ (ierīce $, 1)
BTConnect 1, adrese $
'Pagaidiet savienojumu
Progress IESLĒGTS
Drukāt "Mēģinu izveidot savienojumu"; adrese $
Ja i = 1 līdz 20
Progress i/2
Ja BTGetstate (1) = 4, tad izejiet nogaidīt 1000
Tālāk i
Progress OFF
'Veiksmīgi izveidojiet savienojumu ar BT ierīci
Ja BTGetState (1) = 4, tad drukājiet "Savienots" Citu druku "Nevar izveidot savienojumu ar"; nosaukums $
Drukāt "Programma pārtraukta"
Beigas
Endif
Nākamais bloks parāda datu iegūšanu. Katrai datu sesijai fails tiek automātiski atvērts un nosaukts pēc laika un datuma. Tad cilpa nolasa sensora datus. Dati ir iepakoti vairākos baitos. Baitu kopu identificē ar divām ASCII rakstzīmēm 170 un 171. Šie dati tiek pārkārtoti un iepildīti putekļu blokos
Grafika ieslēgta
'Atveriet datu failu rakstīšanai
fileName $ = FormatTime $ (t, "gggg-MM-dd-kk-mm-ss") + ".dat"
Atvērt 1, fileName $, "w+" Drukāt "Atvērts datu fails"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Writeln 1, "Time Dust2.5 Dust10"
“Aizpildiet masīvu ar izmērītajiem datiem
dati $ = "" packet $ = ""
indekss = 0
Darīt, kamēr maxData> 0
BTRead 1, pakete $ 10
dati $ = dati $+pakete $
Ja Len (dati $)> = 10 Tad
Ja (ASCII (pa kreisi $ (dati $, 1)) = 170) & (ASCII (pa labi $ (dati $, 1))) = 171) tad
dustDataF (indekss) = ASCII ($ USD (dati $, 2, 1))
dustDataF (indekss) = (dustDataF (indekss)+256*ASCII ($ USD (dati $, 3, 1)))/10
dustData (indekss) = ASCII ($ USD (dati $, 4, 1))
dustData (indekss) = (dustData (indekss)+256*ASCII ($ USD (dati $, 5, 1)))/10
Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))
dati $ = ""
maxData = maxData-1
indekss = indekss+1
Ja indekss> 59, tad indekss = 0
dustData (indekss) = 0
dustDataF (indekss) = 0
Endif
Endif
DrawGraph ()
Pagaidi 100
Cilpa
Aizvērt 1
Grafika izslēgta
CLS drukāšana "Programma ir pārtraukta"
Beigas
Pēdējā daļa ir apakšprogramma, kas tiek izsaukta pēc katras datu saņemšanas. Tas notīra ekrānu, pārzīmē diagrammu ar faktiskajiem datiem, kas saglabāti putekļu un laika zīmogu blokos.
“Uzzīmējiet koordinātas, etiķetes, ērces un arī datu līknes
Sub DrawGraph ()
'Grafikas režīmā ekrāns attīra pašreizējo krāsu
Krāsa 0, 0, 0
CLS
Krāsa 0, 0, 100
'Iestatiet grafikas krāsu, kas jāizmanto režģa līniju zīmēšanai
TextColor 100, 100, 100, 50
TextColor ir režģa galvenā nosaukuma krāsa
TextColorA 100, 100, 100
“TextColorA tiek izmantots asu nosaukumiem un režģa anotācijām.
'Iestatiet ass nosaukuma teksta lielumu
'Režģa galvenais nosaukums ir 2x lielāks par šo izmēru
Teksta izmērs 20
FixDecimal 0
'Iestatiet, lai tiktu parādītas 2 zīmes aiz komata
PadDigits 2
'Zīmēt režģi grafikam' Iestatiet X & Y diapazonu un nosaukumu
Asis AxisX 0, 59, "Laiks/s"
Ass Y 0, 10000, "ug/m3"
3. režģis "Putekļu koncentrācija"
'Zīmējiet putekļu grafikus
Krāsa 100, 0, 0
GraphXY timeStamp (), dustDataF ()
Krāsa 0, 100, 0
GraphXY timeStamp (), dustData ()
Teksta krāsa 100, 0, 0
DrawText "PM2.5", 30, Int (ScreenY ()-60), 90, 1
Teksta krāsa 0, 100, 0
DrawText "PM10", 30, Int (ScreenY ()-150), 90, 1
TextColor 100, 100, 100, 50
Atgriezties
Lejupielādējiet avota kodu šeit
6. darbība: pārbaudiet
Ieslēdziet sensoru un palaidiet lietotni. Pārī savienoto ierīču sarakstā izvēlieties ierīci ar nosaukumu "Sensors". Pēc sensora pievienošanas ekrānā tiks parādīti dati. Vienlaikus tiek piešķirts datu fails. Pabeidzot modi, jūs varat izmantot GnuPlot, lai parādītu datus. Izmantojiet GnuPlot failu "Test.gp", lai konfigurētu GnuPlot datu faila ar nosaukumu "Test.dat" parādīšanai. Jūs to varat atrast arī šeit
Plašāku informāciju un testēšanu skatiet videoklipā. Lai jums daudz jautrības un vairāk ideju!
Ieteicams:
Pārnēsājams Black+Decker putekļu sūcēju labojums - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. Modelo DVJ315J: 5 soļi (ar attēliem)
Pārnēsājams Black+Decker putekļsūcēju labojums - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. Modelo DVJ315J: Par lielisku portatīvo putekļu sūcēju varat tērēt +70 Eur (dolārus vai līdzvērtīgu valūtu), un pēc dažiem mēnešiem vai gada tas vairs nedarbojas tik labi … Jā, tas joprojām darbojas, bet mazāk ilgāk par 1 minūti, un tas ir bezvērtīgi. Nepieciešams atkārtotai
Putekļu ruffler (Sumo Bot): 4 soļi
Putekļu ruffler (Sumo Bot): Instrumentu un materiālu saraksts Elektronika: akumulators, nepārtrauktas rotācijas servi ar lielu griezes momentu (x3), uztvērējs un tālvadības pults. 3x2 collu putu serdes x-a
Arduino putekļu pētījums: 8 soļi
Arduino putekļu pētījums: kā būtu dzīvot uz Marsa? Vai gaiss ir elpojošs? Vai tas ir droši? Cik daudz putekļu ir? Cik bieži ir vētras? Vai esat kādreiz domājuši par atbildi uz kādu no šiem jautājumiem?
Arduino putekļu daļiņu uzraudzības stacija: 4 soļi (ar attēliem)
Arduino putekļu daļiņu uzraudzības stacija: Jūs varat diezgan viegli izveidot DIY lietu interneta ierīci, kas uzrauga putekļu piesārņojumu jūsu mājās par mazāk nekā 50 ASV dolāriem, un saņemt paziņojumu, kad putekļu līmenis kļūst pārāk augsts, lai jūs varētu vēdināt telpu vai iestatīt atrodiet to ārā un saņemiet paziņojumu, ja tas
Nokia 6280 displeja vāka noņemšana putekļu tīrīšanai: 7 soļi
Nokia 6280 displeja vāka noņemšana putekļu tīrīšanai. Atšķirībā no daudziem citiem modeļiem, šķiet, ka Nokia 6280 nav izgatavots tā, lai lietotāji paši varētu noņemt displeja vāku. Tas kaitina tos, kuriem putekļi nokļūst starp faktisko LCD un displeja vāku, kas ir daudz īpašnieku … Patiesībā laika gaitā tas