Cuprins:

Senzor de praf sodic pe Android: 6 pași
Senzor de praf sodic pe Android: 6 pași

Video: Senzor de praf sodic pe Android: 6 pași

Video: Senzor de praf sodic pe Android: 6 pași
Video: 6 Pași cum verifici un Android utilizat la orice defect! @nicolaifanea 2024, Noiembrie
Anonim
Senzor de praf sodic pe Android
Senzor de praf sodic pe Android

Acum un an, un prieten de-al meu a avut un atelier de weekend despre monitorizarea mediului. Scopul atelierului a fost să construiască un senzor de praf conectat la o placă de zmeură pi pentru a pune date de măsurare pe un server care furniza hărți de concentrație de praf actualizate frecvent. Prietenul meu a întrebat dacă există o modalitate de a obține datele senzorului direct pe smartphone-ul său pentru monitorizare și înregistrare. Așa că am săpat internetul pentru o foaie de date și am văzut că senzorul avea o interfață UART simplă cu protocolul 9600Baud 8N1. Dar cum să conectați un UART la un smartphone? Ei bine, este ușor. A trebuit doar să folosesc unul dintre acele module Bluetooth omniprezente care oferă un comportament emulat pe Android. Acum vezi cum am reușit.

Pasul 1: De ce aveți nevoie

De ce ai nevoie
De ce ai nevoie
De ce ai nevoie
De ce ai nevoie

Aveți nevoie de următoarele părți

  • Un conector de împerechere JST XH cu 7 pini pentru interfața Sodial cu fire. Mi-am cumpărat-o pe Ebay.
  • Un modul Bluetooth HC05 sau 06 compatibil cu conectorul UART
  • Un convertor serial USB cu interfață la nivel TTL. Folosim acest lucru pentru a da modulului BT un nume unic
  • Senzor de praf Sodial SDS011. Mi-am luat-o pe a mea de la Ebay
  • o bucată de veroboard
  • Conector USB-B
  • sârmă
  • O bucată de lemn pentru a monta totul

Apoi, veți avea nevoie de câteva instrumente simple:

  • O ferăstrău pentru tăiat lemnul
  • pensetă
  • fier de lipit și lipit
  • cleste de sarma
  • Pistol de lipit fierbinte
  • O bucată de manșon de silicon de 8 mm (nu în imagine)

Puteți descărca fișa tehnică Sodial SDS011 aici Fișă tehnică Sodial SDS011

Pasul 2: Pregătirea modulului Bluetooth

Pregătirea modulului Bluetooth
Pregătirea modulului Bluetooth
Pregătirea modulului Bluetooth
Pregătirea modulului Bluetooth
Pregătirea modulului Bluetooth
Pregătirea modulului Bluetooth
Pregătirea modulului Bluetooth
Pregătirea modulului Bluetooth

Modulul BT are o interfață UART cu nivel TTL. Poate fi reconfigurat cu comenzi „AT”, așa cum am făcut cu modemurile de internet din vremuri străvechi. Pentru a-l conecta la un program terminal de pe aparatul dvs., trebuie să adaptați UART la computer. Am folosit un convertor USB-RS232 pe care l-am cumpărat de pe Amazon. Am aplicat un conector pentru modulul BT și am dirijat sursa de alimentare de 3, 3V și GND de la convertor la modulul BT. Apoi am conectat respectivele linii TxD și RxD în crossover. TxD de la convertorul USB la RxD de la modulul BT și invers.

Am o mașină Linux și am folosit cutecom. După conectarea convertorului USB, comportamentul a fost „ttyUSB0”. Puteți găsi numele comportamentului în directorul „/ dev” de pe mașina dvs. Linux. Pentru utilizatorii de Windows aș recomanda „hterm”. Este ușor de operat. Tastați „AT” și ar trebui să primiți „AT” ca răspuns. Apoi tastați „AT + NameSensor” pentru a da modulului BT numele „Sensor”

Pasul 3: Montarea pieselor

Montarea pieselor
Montarea pieselor
Montarea pieselor
Montarea pieselor
Montarea pieselor
Montarea pieselor
Montarea pieselor
Montarea pieselor

Tăiați o bucată de lemn într-o dimensiune adecvată pentru a lua toate piesele. Conectați toate semnalele conform indicațiilor din schemă. Este o idee bună să puneți un manșon de siliciu în jurul firelor pentru a le proteja. Lipiți mufa USB-B de pe panoul de perfecționare. Este folosit doar pentru alimentarea cu energie electrică. Fixați toate piesele cu șuruburi pe baza de lemn. În cele din urmă, lipiți fierbinte cablurile pentru a le fixa pe lemn.

Pasul 4: Asocierea

Împerecherea
Împerecherea
Împerecherea
Împerecherea

Alimentați aplicația senzor conectând o sursă de alimentare USB. Un LED roșu de pe modulul BT va începe să clipească. Nu încercați să-l asociați cu smartphone-ul dvs. Android. Trebuie să introduceți un cod PIN. Acesta este „1234”. După introducerea codului, smartphone-ul dvs. trebuie asociat cu modulul BT.

Pasul 5: Software-ul

Îmi place să scriu aplicații Android pe platforma țintă în sine. vă scutește de toate acele lucruri de emulare la care trebuie să vă intereseze dacă lucrați cu Android Studio. Am aflat trei instrumente de dezvoltare adecvate chiar pe Android

  • Mintoris Basic. Un interpret de bază, cu un set bogat de comenzi pentru a se amesteca aproape cu totul pe Android. Puteți crea comenzi rapide pentru aplicațiile dvs. Mintoris basic nu conține un compilator. Deci, trebuie să fi instalat Mintoris pe fiecare dispozitiv pe care îl folosești. Dar trebuie să plătiți o singură dată (aproximativ 7 €)
  • De bază! Interpretor și compilator de bază extrem de bun (supliment pentru câțiva €). Aproape că se leagă de orice în Android și puteți compila aplicații reale pentru a le distribui fără a avea Basic! pe dispozitivul țintă. Din păcate de bază! nu are funcțiile excelente ale diagramelor diagramelor Mintoris
  • AIDE este un IDE semi-profesional pentru realizarea dezvoltării Android în Java pe Android. Cu AIDE aveți cea mai mare flexibilitate, dar trebuie să învățați java. AIDE are costuri anuale de aproximativ 50 €

Am ales Mintoris. În această secțiune nu vă voi oferi un tutorial de programare în Mintoris, ci o scurtă descriere a blocurilor funcționale

În partea următoare sunt declarate trei tablouri pentru cele două linii de date ale senzorilor și marcajele de timp respective. Datele marcajului de timp sunt utilizate pentru etichetarea axei x a diagramei. Sodial produce două fluxuri de date, fiecare specificat pentru o dimensiune specială a particulelor. Cele două matrice de date de praf iau aceste valori.

WakeLock Parțial

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

Text Size 24

CLS

Popup "Meter senzor de praf (c) ARJ 2017"

Global dustData (), dustDataF (), timeStamp () Global index, choice, maxData, fileName $

Dim timeStamp (59)

Dim dustData (59)

Dim dustDataF (59)

Dim Menu $ (4) = "max. 100 seturi de date", "max. 1000 seturi de date", "max. 5000 seturi de date", "max. 10000 seturi de date", "Exit"

„Inițiați matricele

Pentru i = 0 până la 59

dustData (i) = 0

dustDataF (i) = 0

timeStamp (i) = i

Apoi eu

Apoi este configurat un meniu List. Aceasta oferă utilizatorului posibilitatea de a alege dimensiunea maximă a datelor de colectat. Acesta este doar un comutator de siguranță pentru a împiedica smartphone-ul să aspire date nesfârșite. Funcțiile BTgetPaired $ () redă o listă cu toate dispozitivele asociate de pe dispozitivul Android, numele și adresa BT.

Meniul L $ (), alegere

„Selectați suma maximă dacă datele vor fi stocate

runLevel = 1

Selectați alegerea

Cazul 0 maxData = 100

Cazul 1 maxDate = 1000

Cazul 2 maxData = 5000

Cazul 3 maxData = 10000

Cazul 4 maxData = 0

Selectare sfârșit

'' Conectați senzorul

pereche slabă $ (0)

pair $ () = BTGetPaired $ ()

Dacă perechea $ (0) = "none" Atunci

Tipăriți "Nu s-au găsit dispozitive asociate. BT este pornit?" Tipăriți „Programul a fost terminat”

Sfârșit

Endif

Listează perechea $ (), dispozitivul $

nume $ = ItemExtract $ (dispozitiv $, 0)

adresa $ = ItemExtract $ (dispozitiv $, 1)

BTConnect 1, adresa $

- Așteptați conexiunea

Progres ON

Tipăriți „Încercând să vă conectați la”; adresa $

Pentru i = 1 până la 20

Progres i / 2

Dacă BTGetstate (1) = 4, atunci Exit For Wait 1000

Apoi eu

Progres oprit

„La succes conectați-vă la dispozitivul BT

Dacă BTGetState (1) = 4 Apoi tipăriți „Conectat” Altfel Tipăriți „Nu s-a putut conecta la”; nume $

Tipăriți „Programul a fost terminat”

Sfârșit

Endif

Următorul bloc arată achiziția datelor. Pentru fiecare sesiune de date, un fișier este deschis automat și denumit după ora și data. Apoi bucla citește datele senzorului. Datele sunt ambalate în mai mulți octeți. Un set de octeți este identificat prin două caractere ASCII 170 și 171. Următoarele date sunt reorganizate și completate în tablourile de praf

Grafică activată

'Deschideți fișierul de date pentru a scrie

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

Deschideți 1, fișierNume $, "w +" Imprimați "Fișier de date deschis"; fișierNume $ Writeln 1, FormatTime $ (Time (), "aa-MM-dd")

Writeln 1, „Time Dust2.5 Dust10”

'Completați matricea cu datele măsurate

date $ = "" pachet $ = ""

index = 0

Faceți În timp ce maxData> 0

BTRead 1, pachetul $, 10

date $ = date $ + pachet $

Dacă Len (date $)> = 10 Apoi

Dacă (ASCII (Stânga $ (date $, 1)) = 170) & (ASCII (Dreapta $ (date $, 1)) = 171) Atunci

dustDataF (index) = ASCII (Mid $ (date $, 2, 1))

dustDataF (index) = (dustDataF (index) + 256 * ASCII (Mid $ (date $, 3, 1)))) / 10

dustData (index) = ASCII (Mid $ (date $, 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))

date $ = ""

maxData = maxData-1

index = index + 1

Dacă index> 59, atunci index = 0

dustData (index) = 0

dustDataF (index) = 0

Endif

Endif

DrawGraph ()

Așteptați 100

Buclă

Închideți 1

Grafică dezactivată

CLS Print "Program terminat"

Sfârșit

Ultima parte este un subrutin care este apelat după fiecare recepție de date. Șterge ecranul, redesenează diagrama cu datele efective stocate în matricea de praf și marcaj de timp.

'Desenați coordonatele, etichetele, căpușele și, de asemenea, curbele de date

Sub DrawGraph ()

„În modul Grafică, ecranul se curăță la culoarea curentă

Culoare 0, 0, 0

CLS

Culoare 0, 0, 100

'Setați culoarea grafică care va fi utilizată pentru a desena liniile de grilă

TextColor 100, 100, 100, 50

'TextColor este culoarea titlului principal al grilei

TextColorA 100, 100, 100

'TextColorA este utilizat pentru titlurile Axis și adnotările în grilă.

'Setați dimensiunea textului titlului axei

„Titlul principal al grilei este de două ori mai mare decât această dimensiune

Text Size 20

FixDecimal 0

'Setați să afișeze 2 zecimale

PadDigits 2

„Desenați o grilă pentru grafic” Setați intervalul și titlul X & Y

Axis AxisX 0, 59, „Timp / s”

Axa Y 0, 10000, "ug / m3"

Grila 3, „Concentrație de praf”

„Desenați graficele de praf

Culoare 100, 0, 0

GraphXY timeStamp (), dustDataF ()

Culoare 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

Întoarcere

Descărcați codul sursă aici

Pasul 6: Testează

Image
Image
Test
Test
Test
Test
Test
Test

Porniți senzorul și porniți aplicația. Din lista de dispozitive asociate alegeți-l pe cel numit „Senzor”. După conectarea senzorului, ecranul va începe să afișeze datele. În același timp, fișierul de date este alocat. După terminarea modei, puteți utiliza GnuPlot pentru a afișa datele. Utilizați fișierul „Test.gp” din GnuPlot pentru a configura GnuPlot pentru afișarea unui fișier de date numit „Test.dat”. Puteți găsi și aici

Vedeți videoclipul pentru mai multe detalii și teste. Distrează-te mult și mai multe idei!

Recomandat: