Բովանդակություն:
- Քայլ 1: Այն, ինչ ձեզ հարկավոր է
- Քայլ 2: Bluetooth մոդուլի պատրաստում
- Քայլ 3: Մասերի տեղադրում
- Քայլ 4: iringուգավորում
- Քայլ 5: Theրագրակազմ
- Քայլ 6: Փորձարկում
Video: Sodial Dust Sensor- ը Android- ում ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Մեկ տարի առաջ իմ ընկերը շաբաթավերջին աշխատաժողով ունեցավ շրջակա միջավայրի մոնիթորինգի վերաբերյալ: Սեմինարի նպատակն էր կառուցել փոշու սենսոր, որը միացված էր ազնվամորի պի տախտակին, որոշ սերվերների վրա չափումների տվյալները տեղադրելու համար, որոնք ապահովում էին փոշու հաճախակի թարմացվող համակենտրոնացման քարտեզներ: Ընկերս հարցրեց, թե կա՞ արդյոք սենսորային տվյալները անմիջապես իր սմարթֆոնի վրա դիտելու և մուտք գործելու համար: Այսպիսով, ես փորեցի ինտերնետը տվյալների թերթիկի համար և տեսա, որ սենսորը ունի պարզ UART ինտերֆեյս `9600Baud 8N1 արձանագրությամբ: Բայց ինչպես միացնել UART- ը սմարթֆոնին: Դե, դա հեշտ է: Ես պարզապես ստիպված էի օգտագործել այն ամենուր փոքրիկ Bluetooth մոդուլներից մեկը, որոնք ապահովում են նմանակված կոմպորտ Android- ում: Հիմա տեսեք, թե ինչպես եմ դա հասցրել:
Քայլ 1: Այն, ինչ ձեզ հարկավոր է
Ձեզ անհրաժեշտ են հետևյալ մասերը
- STուգավորման միակցիչ JST XH 7-փին Sodial ինտերֆեյսի համար լարերով: Ես իմը գնել եմ Ebay- ում:
- Bluetooth մոդուլ HC05 կամ 06 համատեղելի UART միակցիչի հետ
- USB սերիական փոխարկիչ ՝ TTL մակարդակի ինտերֆեյսով: Մենք օգտագործում ենք սա BT- մոդուլին յուրահատուկ անուն տալու համար
- Նյութական SDS011 փոշու տվիչ: Ես իմը ստացել եմ Ebay- ից
- մի կտոր veroboard
- USB-B միակցիչ
- մետաղալար
- Փայտանյութ ՝ ամեն ինչ ամրացնելու համար
Այնուհետև ձեզ հարկավոր են մի քանի պարզ գործիքներ.
- Փայտ կտրելու համար նախատեսված սղոց
- պինցետ
- եռակցման երկաթ և զոդ
- մետաղալար կտրող
- Տաք սոսինձ ատրճանակ
- 8 մմ սիլիկոնե թևի կտոր (նկարում չկա)
Դուք կարող եք ներբեռնել Sodial SDS011- ի տվյալների թերթիկը այստեղ `Sodial SDS011- ի տվյալների թերթիկից
Քայլ 2: Bluetooth մոդուլի պատրաստում
BT- մոդուլն ունի UART ինտերֆեյս TTL մակարդակով: Այն կարող է վերակազմակերպվել «AT» հրամաններով, ինչպես դա անում էինք ինտերնետային մոդեմներով հին ժամանակներում: Ձեր սարքի տերմինալ ծրագրին միացնելու համար անհրաժեշտ է UART- ը հարմարեցնել ձեր համակարգչին: Ես օգտագործել եմ USB-RS232 փոխարկիչ, որը գնել եմ Amazon- ում: Ես կիրառեցի միակցիչ BT- մոդուլի համար և 3, 3V հոսանքի աղբյուրը և GND- ը փոխարկիչից տեղափոխեցի BT- մոդուլ: Հետո ես միացրեցի համապատասխան TxD և RxD տողերը խաչմերուկում: TxD USB- փոխարկիչից RxD- ից BT- մոդուլից և հակառակը:
Ես ունեմ linux սարք և օգտագործում եմ cutecom: USB- փոխարկիչը միացնելուց հետո կոմպորտը «ttyUSB0» էր: Համակցման անունները կարող եք գտնել ձեր linux մեքենայի «/dev» գրացուցակում: Windows օգտագործողների համար ես խորհուրդ կտայի «hterm»: Հեշտ է գործել: Մուտքագրեք «AT» և որպես պատասխան պետք է ստանաք «AT»: Այնուհետև մուտքագրեք «AT+NameSensor» ՝ BT մոդուլին տալ «Սենսոր» անունը
Քայլ 3: Մասերի տեղադրում
Կտրեք փայտի կտոր մի չափի, որը հարմար է բոլոր մասերը վերցնելու համար: Միացրեք բոլոր ազդանշանները, ինչպես նշված է սխեմատիկայում: Լավ գաղափար է, որ մետաղալարերի շուրջ սիլիցիումի թեւ դնեք դրանք պաշտպանելու համար: Sոդեք USB-B վարդակը շերտի տախտակի վրա: Այն պարզապես օգտագործվում է էլեկտրամատակարարման համար: Փայտե հիմքի վրա պտուտակներով ամրացրեք բոլոր մասերը: Ի վերջո, մալուխները տաք սոսնձով ամրացրեք դրանք փայտի վրա:
Քայլ 4: iringուգավորում
Սենսորային հավելվածը միացրեք USB հոսանքի միացման միջոցով: BT- մոդուլի վրա կարմիր LED կսկսի թարթել: Մի փորձեք այն զուգակցել ձեր android սմարթֆոնի հետ: Դուք պետք է մուտքագրեք PIN կոդ: Սա «1234» -ն է: Կոդ մուտքագրելուց հետո ձեր սմարթֆոնը պետք է զուգակցվի BT- մոդուլի հետ:
Քայլ 5: Theրագրակազմ
Ինձ դուր է գալիս Android ծրագրեր գրել հենց թիրախային հարթակում: այն փրկում է ձեզ այն բոլոր էմուլյացիոն իրերից, որոնց մասին պետք է հոգ տանել, եթե աշխատում եք Android Studio- ի հետ: Ես գտա զարգացման երեք հարմար գործիք հենց Android- ում
- Mintoris Basic. Հիմնական թարգմանիչ ՝ android- ի գրեթե ամեն ինչով շրջելու հրամանների հարուստ փաթեթով: Կարող եք դյուրանցումներ ստեղծել ձեր ծրագրերի համար: Mintoris Basic- ը չի պարունակում կոմպիլյատոր: Այսպիսով, դուք պետք է տեղադրեք Mintoris- ը ձեր օգտագործած յուրաքանչյուր սարքի վրա: Բայց դրա համար պետք է վճարել միայն մեկ անգամ (մոտ 7 €)
- Հիմնական! Goodայրահեղ լավ հիմնական թարգմանիչ և կազմող (հավելյալ որոշ եվրոյով): Android- ում գրեթե ամեն ինչ կախված է, և դուք կարող եք կազմել իրական ծրագրեր ՝ դրանք առանց հիմնական բաշխելու համար: նպատակային սարքի վրա: Lyավոք Հիմնական! բացակայում է Mintoris- ի հիանալի դիագրամային գծապատկերային գործառույթները
- AIDE- ը կիսամյակային մասնագիտական IDE է android- ում java- ում android- ի զարգացում կատարելու համար: AIDE- ի դեպքում դուք ունեք առավելագույն ճկունություն, բայց դուք պետք է սովորեք Java: AIDE- ի տարեկան ծախսերը կազմում են մոտ 50 եվրո
Ես ընտրեցի Մինտորիսը: Այս բաժնում ես ձեզ չեմ տա Mintoris ծրագրավորման ձեռնարկ, այլ գործառական բլոկների կարճ նկարագրություն:
Հետևյալ մասում երեք զանգվածներ հայտարարվում են երկու տվիչների տվյալների գծերի և համապատասխան ժամանակային նշանների համար: Estամկետային դրոշմման տվյալները օգտագործվում են դիագրամի x- առանցքը նշելու համար: Sodial- ը թողարկում է տվյալների երկու հոսք, որոնցից յուրաքանչյուրը նշված է մասնիկների հատուկ չափի համար: Երկու փոշոտ տվյալների զանգվածները վերցնում են այս արժեքները:
WakeLock մասնակի
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
TextSize 24
CLS
Թռուցիկ «Փոշու սենսորաչափ (գ) ARJ 2017»
Global dustData (), dustDataF (), timeStamp () Գլոբալ ինդեքս, ընտրություն, maxData, ֆայլի անուն $
Պայծառ ժամանակ Կնիք (59)
Աղոտ փոշի Տվյալներ (59)
Թուլ փոշի DataF (59)
Dim Menu $ (4) = "առավելագույնը 100 տվյալների հավաքածու", "max. 1000 տվյալների հավաքածու", "max. 5000 տվյալների հավաքածու", "max. 10000 տվյալների հավաքածու", "Exit"
- Սկսեք զանգվածները
I = 0 -ից 59 -ի համար
փոշիՏվյալներ (i) = 0
dustDataF (i) = 0
timeStamp (i) = i
Հաջորդը ես
Հաջորդը կազմաձևված է ցուցակի ցանկը: Սա օգտվողին հնարավորություն է տալիս ընտրելու հավաքելու տվյալների առավելագույն չափը: Սա պարզապես անվտանգության անջատիչ է ՝ սմարթֆոնի անվերջ տվյալների ծծումը կանխելու համար: BTgetPaired $ () գործառույթները վերադարձնում են android սարքի բոլոր զուգակցված սարքերի ցուցակը, նրանց անունները և BT հասցեն:
L ist Menu $ (), ընտրություն
«Ընտրեք առավելագույն գումարը, եթե տվյալները պահվեն
runLevel = 1
Ընտրեք ընտրություն
Case 0 maxData = 100
Գործ 1 maxDate = 1000
Գործ 2 maxData = 5000
Գործ 3 maxData = 10000
Գործ 4 maxData = 0
Ավարտի ընտրություն
Միացրեք սենսոր
մուգ զույգ $ (0)
զույգ $ () = BTGetPaired $ ()
Եթե զույգ $ (0) = "ոչ մեկը" Հետո
Տպել «iredուգավորված սարքեր չեն գտնվել: BT- ն միացված է՞»: Տպել «termրագիրն ավարտված է»
Վերջ
Էնդիֆ
Listանկերի զույգ $ (), սարք $
անուն $ = ItemExtract $ (սարք $, 0)
հասցե $ = ItemExtract $ (սարք $, 1)
BTConnect 1, հասցե $
- Սպասեք կապի
Առաջընթացը միացված է
Տպեք «Փորձում եմ միանալ»; հասցեն $
I = 1 -ից 20 -ի համար
Առաջընթաց i/2
Եթե BTGetstate (1) = 4, ապա դուրս եկեք սպասեք 1000
Հաջորդը ես
Առաջընթացն անջատված է
«Հաջողության դեպքում միացեք BT սարքին
Եթե BTGetState (1) = 4 Այնուհետև տպեք «Միացված է» այլ տպագիր «Չհաջողվեց միանալ»; անունը $
Տպել «termրագիրն ավարտված է»
Վերջ
Էնդիֆ
Հաջորդ բլոկը ցույց է տալիս տվյալների ձեռքբերումը: Տվյալների յուրաքանչյուր նստաշրջանի համար ֆայլը ինքնաբերաբար բացվում և անվանվում է ըստ ժամի և ամսաթվի: Այնուհետև օղակը կարդում է սենսորի տվյալները: Տվյալները փաթեթավորված են մի քանի բայթ: Բայթերի հավաքածուն նույնականացվում է երկու ASCII 170 և 17 նիշերով: Հետևյալ տվյալները վերակազմակերպվում և լրացվում են փոշու զանգվածների մեջ
Գրաֆիկական պատկերները միացված են
'Բացեք datafile գրելու համար
fileName $ = FormatTime $ (t, "yyyy-MM-dd-kk-mm-ss") + ".dat"
Բացել 1, fileName $, "w+" Տպել "Բացված տվյալների ֆայլ"; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Գրող 1, «Dամանակի փոշի 2.5 փոշի 10»
'Լրացրեք զանգվածը չափված տվյալներով
տվյալներ $ = "" փաթեթ $ = ""
ինդեքս = 0
Do while maxData> 0
BTRead 1, փաթեթ $, 10
տվյալներ $ = տվյալներ $+փաթեթ $
Եթե Len (տվյալները $)> = 10 Հետո
Եթե (ASCII (Ձախ $ (տվյալներ $, 1)) = 170) և (ASCII (Աջ $ (տվյալներ $, 1)) = 171) Ապա
dustDataF (ինդեքս) = ASCII (Միջին $ (տվյալներ $, 2, 1))
dustDataF (ինդեքս) = (dustDataF (ինդեքս)+256*ASCII (Միջին $ (տվյալներ $, 3, 1)))/10
dustData (ինդեքս) = ASCII (Միջին $ (տվյալներ $, 4, 1))
dustData (ինդեքս) = (dustData (index)+256*ASCII (Միջին $ (տվյալներ $, 5, 1)))/10
Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))
տվյալներ $ = ""
maxData = maxData-1
ինդեքս = ինդեքս+1
Եթե ինդեքս> 59 Ապա ինդեքս = 0
dustData (ինդեքս) = 0
dustDataF (ինդեքս) = 0
Էնդիֆ
Էնդիֆ
DrawGraph ()
Սպասեք 100
Օղակ
Փակել 1
Գրաֆիկական պատկերներն անջատված են
CLS Print «termրագիրն ավարտված է»
Վերջ
Վերջին մասը ենթածրագիր է, որը կոչվում է տվյալների յուրաքանչյուր ընդունումից հետո: Այն մաքրում է էկրանը, վերագծում դիագրամը փոշու և ժամանակացույցի զանգվածներում պահվող փաստացի տվյալների հետ:
'Գծեք կոորդինատները, պիտակները, տիզերը և նաև տվյալների կորերը
Ենթ DrawGraph ()
'Գրաֆիկական ռեժիմում էկրանը մաքրվում է ընթացիկ գույնից
Գույն 0, 0, 0
CLS
Գույն 0, 0, 100
«Սահմանեք գրաֆիկայի գույնը, որն օգտագործվում է ցանցի գծերը գծելու համար
TextColor 100, 100, 100, 50
'TextColor- ը ցանցի հիմնական վերնագրի գույնն է
TextColorA 100, 100, 100
'TextColorA- ն օգտագործվում է առանցքի վերնագրերի և ցանցի ծանոթագրությունների համար:
«Սահմանեք առանցքի վերնագրի տեքստի չափը
«Idանցի հիմնական վերնագիրն այս չափի 2 անգամ է
TextSize 20
FixDcimal 0
'Սահմանել ցուցադրել 2 տասնորդական նիշ
PadDigits 2
'Գրաֆիկի համար ցանց գծեք' Սահմանեք X & Y- ի տիրույթը և վերնագիրը
Առանցք AxisX 0, 59, «/ամանակ/ներ»
AxisY 0, 10000, «ug/m3»
Gանց 3, «Փոշու կոնցենտրացիա»
«Նկարեք փոշու գրաֆիկները
Գույն 100, 0, 0
GraphXY timeStamp (), dustDataF ()
Գույն 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
Վերադառնալ
Ներբեռնեք աղբյուրի կոդը այստեղ
Քայլ 6: Փորձարկում
Միացրեք սենսորը և գործարկեք ծրագիրը: Paուգավորված սարքերի ցանկից ընտրեք «Սենսոր» անունը: Սենսորը միացնելուց հետո էկրանը կսկսի ցուցադրել տվյալները: Միաժամանակ տվյալների ֆայլը բաշխվում է: Նորաձևությունն ավարտելուց հետո կարող եք օգտագործել GnuPlot- ը ՝ տվյալները ցուցադրելու համար: Օգտագործեք «Test.gp» ֆայլը GnuPlot- ում ՝ GnuPlot- ը կազմաձևելու համար «Test.dat» անունով տվյալների ֆայլ ցուցադրելու համար: Կարող եք նաև այն գտնել այստեղ
Լրացուցիչ մանրամասների և թեստավորման համար տես տեսանյութը: Ունեք շատ զվարճալի և ավելի շատ գաղափարներ:
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
Ինչպես ստեղծել Android ծրագիր Android Studio- ով. 8 քայլ (նկարներով)
Ինչպես ստեղծել Android ծրագիր Android Studio- ով. Այս ձեռնարկը կսովորեցնի ձեզ Android Studio- ի զարգացման միջավայրի միջոցով Android հավելված ստեղծելու հիմունքները: Քանի որ Android սարքերը դառնում են ավելի տարածված, նոր ծրագրերի պահանջարկը միայն կաճի: Android Studio- ն հեշտ օգտագործման համար է (
The Dust Ruffler (Sumo Bot) ՝ 4 քայլ
The Dust Ruffler (Sumo Bot). Գործիքների և նյութերի ցուցակ Փոշու խառնաշփոթի կառուցման համար օգտագործվող գործիքներն ու նյութերը շատ պարզ և հեշտ ձեռք բերելի են: Էլեկտրոնիկա. Մարտկոցի տուփ, շարունակական պտտման բարձր ոլորող մոմենտի սերվեր (x3), ընդունիչ և հեռակառավարիչ: Փրփուր միջուկի 3x2 'թերթ x-a
Samsung I600/Blackjack Screen Dust Fix: 4 քայլ
Samsung I600/Blackjack Screen Dust Fix. Բարև բոլորին, եթե դուք (ինձ պես) ունեք Samsung SGH -i600 (կամ մահակ Ամերիկայում) և նկատել եք, որ փոշին մտնում է միավոր և հավաքվում էկրանի վերին ձախ անկյունում, կարծում եմ Ես շտկում ունեմ ձեզ համար: Նախքան լուսանկարը ՝ Թրեյսիի բարի թույլտվությամբ