Სარჩევი:

სოდიალური მტვრის სენსორი Android- ზე: 6 ნაბიჯი
სოდიალური მტვრის სენსორი Android- ზე: 6 ნაბიჯი

ვიდეო: სოდიალური მტვრის სენსორი Android- ზე: 6 ნაბიჯი

ვიდეო: სოდიალური მტვრის სენსორი Android- ზე: 6 ნაბიჯი
ვიდეო: Rate mom’s flexibility 1-10 ❤️‍🔥🔥🦴 2024, ივლისი
Anonim
სოდიალური მტვრის სენსორი Android- ზე
სოდიალური მტვრის სენსორი Android- ზე

ერთი წლის წინ ჩემს მეგობარს ჰქონდა შაბათ -კვირის სემინარი გარემოს მონიტორინგის შესახებ. სემინარის მიზანი იყო ჟოლოს პი დაფასთან დაკავშირებული მტვრის სენსორის შექმნა, რათა გაზომვის მონაცემები მიეყენებინა ზოგიერთ სერვერზე, რომელიც უზრუნველყოფდა მტვრის კონცენტრაციის ხშირად განახლებულ რუქებს. ჩემმა მეგობარმა მკითხა, არის თუ არა საშუალება სენსორის მონაცემების პირდაპირ მის სმარტფონზე მონიტორინგისა და შესვლისთვის. ასე რომ, მე გამოვიძიე ინტერნეტი მონაცემთა ცხრილისთვის და დავინახე, რომ სენსორს ჰქონდა მარტივი UART ინტერფეისი 9600Baud 8N1 პროტოკოლით. მაგრამ როგორ დააკავშიროთ UART სმარტფონს? ისე, ეს ადვილია. მე უბრალოდ უნდა გამოვიყენო ერთ -ერთი ყველაზე გავრცელებული პატარა Bluetooth მოდული, რომელიც უზრუნველყოფს ემულაციულ კომპორს ანდროიდზე. ახლა ნახე როგორ მოვახერხე.

ნაბიჯი 1: რაც გჭირდებათ

Რა გჭირდება
Რა გჭირდება
Რა გჭირდება
Რა გჭირდება

თქვენ გჭირდებათ შემდეგი ნაწილები

  • JST XH 7-პინიანი შესაერთებელი Sodial ინტერფეისისთვის მავთულხლართებით. შევიძინე ჩემი eBay– ზე.
  • Bluetooth მოდული HC05 ან 06 თავსებადია UART კონექტორთან
  • USB სერიული გადამყვანი TTL დონის ინტერფეისით. ჩვენ ვიყენებთ ამას BT მოდულის უნიკალური სახელის მისაცემად
  • სოდური SDS011 მტვრის სენსორი. ჩემი ავიღე Ebay– დან
  • veroboard- ის ნაჭერი
  • USB-B კონექტორი
  • მავთული
  • ხის ნაჭერი ყველაფრის დასამაგრებლად

შემდეგ დაგჭირდებათ რამდენიმე მარტივი ინსტრუმენტი:

  • ხის საჭრელი ბუქსი
  • პინცეტი
  • solder რკინის და solder
  • მავთულის საჭრელი
  • ცხელი წებოს იარაღი
  • 8 მმ სილიკონის ყდის ნაჭერი (სურათზე არ არის)

თქვენ შეგიძლიათ ჩამოტვირთოთ Sodial SDS011 მონაცემთა ცხრილი აქ Sodial SDS011 მონაცემთა ცხრილი

ნაბიჯი 2: Bluetooth მოდულის მომზადება

Bluetooth მოდულის მომზადება
Bluetooth მოდულის მომზადება
Bluetooth მოდულის მომზადება
Bluetooth მოდულის მომზადება
Bluetooth მოდულის მომზადება
Bluetooth მოდულის მომზადება
Bluetooth მოდულის მომზადება
Bluetooth მოდულის მომზადება

BT- მოდულს აქვს UART ინტერფეისი TTL დონეზე. მისი ხელახალი კონფიგურაცია შესაძლებელია "AT" ბრძანებებით, როგორც ეს ძველ დროში გავაკეთეთ ინტერნეტ მოდემებთან. თქვენს აპარატზე ტერმინალურ პროგრამასთან დასაკავშირებლად თქვენ უნდა მოერგოთ UART თქვენს კომპიუტერს. მე გამოვიყენე USB-RS232 გადამყვანი, რომელიც ვიყიდე ამაზონში. მე გამოვიყენე კონექტორი BT- მოდულისთვის და 3, 3V დენის წყარო და GND გადავიყვანე კონვერტორიდან BT- მოდულში. შემდეგ დავაკავშირე შესაბამისი TxD და RxD ხაზები კროსვორდზე. TxD USB კონვერტორიდან RxD BT მოდულიდან და პირიქით.

მე მაქვს ლინუქსის აპარატი და ვიყენებ cutecom- ს. USB კონვერტორის დაკავშირების შემდეგ კომპორტი იყო "ttyUSB0". თქვენ შეგიძლიათ იპოვოთ კომპორტის სახელები "/dev" დირექტორიაში თქვენს linux აპარატზე. Windows მომხმარებლებისთვის მე გირჩევთ "hterm". ადვილია ოპერაცია. ჩაწერეთ "AT" და პასუხად უნდა მიიღოთ "AT". შემდეგ ჩაწერეთ "AT+NameSensor", რათა BT მოდულს მიანიჭოთ სახელი "Sensor"

ნაბიჯი 3: ნაწილების დამონტაჟება

ნაწილების მონტაჟი
ნაწილების მონტაჟი
ნაწილების მონტაჟი
ნაწილების მონტაჟი
ნაწილების მონტაჟი
ნაწილების მონტაჟი
ნაწილების მონტაჟი
ნაწილების მონტაჟი

გაჭერით ხის ნაჭერი ზომით, რომელიც შესაფერისია ყველა ნაწილის აღებისთვის. შეაერთეთ ყველა სიგნალი, როგორც ეს მოცემულია სქემატურ რეჟიმში. კარგი იდეაა მავთულხლართების გარშემო სილიკონის ყდის დადება, მათი დასაცავად. შეაერთეთ USB-B დანამატი პერფორფზე. იგი გამოიყენება მხოლოდ ელექტროენერგიის მიწოდებისთვის. შეასწორეთ ყველა ნაწილი ხრახნებით ხის ბაზაზე. საბოლოოდ ცხელი წებო კაბელები დაფიქსირება მათ ხეზე.

ნაბიჯი 4: დაწყვილება

დაწყვილება
დაწყვილება
დაწყვილება
დაწყვილება

ჩართეთ სენსორის პროგრამა USB დენის წყაროს ჩართვით. BT- მოდულზე წითელი LED იწყებს მოციმციმებას. არ შეეცადოთ დააკავშიროთ ის თქვენს Android სმარტფონთან. თქვენ უნდა შეიყვანოთ პინ კოდი. ეს არის "1234". კოდის შეყვანის შემდეგ თქვენი სმარტფონი უნდა იყოს დაწყვილებული BT მოდულთან.

ნაბიჯი 5: პროგრამული უზრუნველყოფა

მე მომწონს Android პროგრამების დაწერა მიზნობრივ პლატფორმაზე. ეს გიშველის იმ ემულაციისგან, რომელსაც უნდა გაინტერესებდე, თუ მუშაობ Android Studio– სთან. მე აღმოვაჩინე სამი შესაფერისი განვითარების ინსტრუმენტი Android- ზე

  • მინტორის ძირითადი. ძირითადი თარჯიმანი, რომელსაც აქვს მდიდარი კომპლექტი ბრძანებების გადასაჭრელად ანდროიდზე თითქმის ყველაფერი. თქვენ შეგიძლიათ შექმნათ მალსახმობები თქვენი აპებისთვის. Mintoris Basic არ შეიცავს შემდგენელს. თქვენ უნდა გქონდეთ დაინსტალირებული Mintoris ყველა მოწყობილობაზე, რომელსაც იყენებთ. თქვენ უნდა გადაიხადოთ მხოლოდ ერთხელ (დაახლოებით 7 ევრო)
  • ძირითადი! უკიდურესად კარგი ძირითადი თარჯიმანი და შემდგენელი (დამატება რამდენიმე ევროდ). თითქმის ყველაფერზეა დამოკიდებული ანდროიდი და თქვენ შეგიძლიათ შეადგინოთ რეალური პროგრამები მათი განაწილებისათვის Basic- ის გარეშე! სამიზნე მოწყობილობაზე. სამწუხაროდ ძირითადი! მოკლებულია მინტორისის დიაგრამის დიაგრამის დიაგრამის ფუნქციებს
  • AIDE არის ნახევრად პროფესიონალური IDE ჯავაში ანდროიდის განვითარებისათვის ანდროიდზე. AIDE– ით თქვენ გაქვთ მაქსიმალური მოქნილობა, მაგრამ თქვენ უნდა ისწავლოთ java. AIDE– ს წლიური ხარჯები დაახლოებით 50 ევროა

მე მინტორის შევარჩიე. ამ ნაწილში მე არ მოგცემთ პროგრამას სამეურვეო პროგრამა მინტორისში, მაგრამ ფუნქციის ბლოკების მოკლე აღწერას

მომდევნო ნაწილში სამი მასივი გამოცხადებულია ორი სენსორის მონაცემთა ხაზისთვის და შესაბამისი დროის ნიშნული. დროის ნიშნულის მონაცემები გამოიყენება დიაგრამის x ღერძის მარკირებისთვის. Sodial აწარმოებს მონაცემთა ორ ნაკადს, თითოეული განსაზღვრულია ნაწილაკების განსაკუთრებული ზომისთვის. ორი dustdata- მასივი იღებს ამ მნიშვნელობებს.

WakeLock ნაწილობრივი

TextColor 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

ტექსტის ზომა 24

CLS

ამომხტარი ფანჯარა "მტვრის სენსორის საზომი (გ) ARJ 2017"

გლობალური dustData (), dustDataF (), timeStamp () გლობალური ინდექსი, არჩევანი, maxData, ფაილის სახელი $

დაბნელებული დრო ბეჭედი (59)

მტვრის მტვერი მონაცემები (59)

მტვრის მტვერი DataF (59)

Dim მენიუ $ (4) = "მაქს. 100 მონაცემთა ნაკრები", "მაქს. 1000 მონაცემთა ნაკრები", "მაქს. 5000 მონაცემთა ნაკრები", "მაქს. 10000 მონაცემთა ნაკრები", "გასვლა"

'დაიწყე მასივები

I = 0 -დან 59 -მდე

მტვერი მონაცემები (i) = 0

dustDataF (i) = 0

დროის მარკა (i) = i

შემდეგი მე

შემდეგი, სია მენიუ არის კონფიგურირებული. ეს აძლევს მომხმარებელს არჩევანს, რომ შეარჩიოს მონაცემთა შეგროვების მაქსიმალური ზომა. ეს მხოლოდ უსაფრთხოების გადამრთველია, რათა სმარტფონმა არ დაუშვას უსასრულო მონაცემები. ფუნქციები BTgetPaired $ () აბრუნებს ანდროიდულ მოწყობილობაზე ყველა დაწყვილებული მოწყობილობის ჩამონათვალს, მათ სახელებს და BT- მისამართს.

L ist მენიუ $ (), არჩევანი

შეარჩიეთ მაქსიმალური რაოდენობა, თუ მონაცემები შეინახება

runLevel = 1

აირჩიეთ არჩევანი

საქმე 0 maxData = 100

საქმე 1 maxDate = 1000

საქმე 2 maxData = 5000

საქმე 3 maxData = 10000

საქმე 4 maxData = 0

დასრულების არჩევა

დაკავშირების სენსორი

მუქი წყვილი $ (0)

წყვილი $ () = BTGetPaired $ ()

თუ წყვილი $ (0) = "არცერთი" მაშინ

დაბეჭდე "დაწყვილებული მოწყობილობები ვერ მოიძებნა. ჩართულია BT?" დაბეჭდე "პროგრამა დასრულდა"

Დასასრული

Დაასრულე თუ

ჩამოთვალეთ წყვილი $ (), მოწყობილობა $

სახელი $ = საქონლის ამონაწერი $ (მოწყობილობა $, 0)

მისამართი $ = საქონლის ამონაწერი $ (მოწყობილობა $, 1)

BTConnect 1, მისამართი $

'დაელოდეთ კავშირს

პროგრესი ჩართულია

დაბეჭდეთ "ცდილობს დაკავშირებას"; მისამართი $

I = 1 -დან 20 -მდე

პროგრესი i/2

თუ BTGetstate (1) = 4 მაშინ Exit For Wait 1000

შემდეგი მე

პროგრესი გამორთულია

წარმატების შემთხვევაში დაუკავშირდით BT მოწყობილობას

თუ BTGetState (1) = 4 მაშინ დაბეჭდეთ "დაკავშირებულია" სხვაგვარად ბეჭდვა "დაკავშირება ვერ მოხერხდა"; სახელი $

დაბეჭდე "პროგრამა დასრულდა"

Დასასრული

Დაასრულე თუ

მომდევნო ბლოკი აჩვენებს მონაცემთა მოპოვებას. თითოეული მონაცემთა სესიისთვის ფაილი ავტომატურად იხსნება და სახელდება დროის და თარიღის მიხედვით. შემდეგ მარყუჟი კითხულობს სენსორის მონაცემებს. მონაცემები შეფუთულია რამდენიმე ბაიტში. ბაიტების ნაკრები იდენტიფიცირებულია ორი ASCII სიმბოლოთი 170 და 171. შემდეგი მონაცემები რეორგანიზებულია და ივსება მტვრის მასივებში

გრაფიკა ჩართულია

გახსენით მონაცემთა ფაილი დასაწერად

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

გახსენით 1, fileName $, "w+" დაბეჭდეთ "გახსნილი მონაცემთა ფაილი"; ფაილის სახელი $ Writeln 1, FormatTime $ (დრო (), "yy-MM-dd")

მწერალი 1, "დროის მტვერი 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 (ინდექსი)+256*ASCII (შუა $ (მონაცემები $, 5, 1)))/10

Writeln 1, FormatTime $ (დრო (), "kk: mm: ss") + "" + Str $ (dustDataF (ინდექსი)) + "" + Str $ (dustData (ინდექსი))

მონაცემები $ = ""

maxData = maxData-1

ინდექსი = ინდექსი+1

თუ ინდექსი> 59 მაშინ ინდექსი = 0

dustData (ინდექსი) = 0

dustDataF (ინდექსი) = 0

Დაასრულე თუ

Დაასრულე თუ

DrawGraph ()

დაელოდე 100

მარყუჟი

დახურვა 1

გრაფიკა გამორთულია

CLS ბეჭდვა "პროგრამა დასრულდა"

Დასასრული

ბოლო ნაწილი არის ქვეგეგმა, რომელსაც ეწოდება მონაცემების ყოველი მიღების შემდეგ. ის ასუფთავებს ეკრანს, ხატავს დიაგრამას ფაქტობრივი მონაცემებით, რომელიც ინახება მტვრისა და დროის ნიშნულის მასივებში.

'დახაზეთ კოორდინატები, ეტიკეტები, ტკიპები და ასევე მონაცემთა მოსახვევები

ქვე DrawGraph ()

გრაფიკული რეჟიმში ეკრანი იწმინდება მიმდინარე ფერში

ფერი 0, 0, 0

CLS

ფერი 0, 0, 100

დააყენეთ გრაფიკული ფერი, რომელიც გამოიყენება ქსელის ხაზების დასახატად

TextColor 100, 100, 100, 50

'TextColor არის ბადის ძირითადი სათაურის ფერი

TextColorA 100, 100, 100

'TextColorA გამოიყენება ღერძის სათაურებისა და ქსელის ანოტაციებისთვის.

დააყენეთ ღერძის სათაურის ტექსტის ზომა

”ქსელის მთავარი სათაური არის 2x ამ ზომის

ტექსტის ზომა 20

FixDecimal 0

დააყენეთ 2 ათობითი ადგილის ჩვენება

PadDigits 2

'დახაზეთ ბადე გრაფიკისთვის' დააყენეთ X & Y დიაპაზონი და სათაური

ღერძი AxisX 0, 59, "დრო/წ"

AxisY 0, 10000, "ug/m3"

ბადე 3, "მტვრის კონცენტრაცია"

დახაზეთ მტვრის გრაფიკები

ფერი 100, 0, 0

GraphXY დროის შტამპი (), dustDataF ()

ფერი 0, 100, 0

GraphXY დროის შტამპი (), 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: ტესტი

Image
Image
ტესტირება
ტესტირება
ტესტირება
ტესტირება
ტესტირება
ტესტირება

ჩართეთ სენსორი და ჩართეთ პროგრამა. დაწყვილებული მოწყობილობების სიიდან აირჩიეთ ერთი სახელწოდებით "სენსორი". სენსორის შეერთების შემდეგ ეკრანი დაიწყებს მონაცემების ჩვენებას. პარალელურად ხდება მონაცემთა ფაილის გამოყოფა. მოდის დასრულების შემდეგ შეგიძლიათ გამოიყენოთ GnuPlot მონაცემების საჩვენებლად. გამოიყენეთ ფაილი "Test.gp" GnuPlot– ში, რათა დააკონფიგურიროთ GnuPlot მონაცემთა ფაილის სახელწოდებით "Test.dat". თქვენ ასევე შეგიძლიათ მისი პოვნა აქ

იხილეთ ვიდეო უფრო დეტალური და ტესტირებისთვის. ბევრი გართობა და მეტი იდეა!

გირჩევთ: