Mündəricat:
- Addım 1: Nə lazımdır
- Addım 2: Bluetooth Modulunun Hazırlanması
- Addım 3: Parçaların quraşdırılması
- Addım 4: Cütləşdirmə
- Addım 5: Proqram təminatı
- Addım 6: Test edin
Video: Android -də Sodial Toz Sensoru: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Bir il əvvəl bir dostum ətraf mühitin monitorinqi ilə bağlı həftə sonu seminar keçirdi. Seminarın məqsədi, tez -tez yenilənən toz konsentrasiyası xəritələrini təqdim edən bəzi serverlərdə ölçü məlumatlarını yerləşdirmək üçün moruq pi lövhəsinə bağlı bir toz sensoru qurmaq idi. Dostum izləmə və qeydiyyat üçün sensor məlumatlarını birbaşa smartfonunda əldə etməyin bir yolunun olub olmadığını soruşdu. Bir məlumat cədvəli üçün İnternet qazdım və sensorun 9600Baud 8N1 protokolu olan sadə bir UART interfeysinə sahib olduğunu gördüm. Ancaq UART -ı bir smartfona necə bağlamaq olar? Yaxşı, bu asandır. Android -də təqlid edilmiş bir komport təmin edən hər yerdə olan kiçik Bluetooth modullarından birini istifadə etməli oldum. İndi gör necə bacardım.
Addım 1: Nə lazımdır
Aşağıdakı hissələrə ehtiyacınız var
- Telli Sodial interfeysi üçün bir cüt bağlayıcı JST XH 7 pin. Ebaydan özüm aldım.
- UART konnektoru ilə uyğun olan Bluetooth modulu HC05 və ya 06
- TTL səviyyəli interfeysi olan USB seriyalı çevirici. BT moduluna unikal bir ad vermək üçün bundan istifadə edirik
- Sodial SDS011 toz sensoru. Ebaydan aldım
- veroboard parçası
- USB-B konnektoru
- tel
- Hər şeyi taxmaq üçün taxta parçası
Sonra bəzi sadə vasitələrə ehtiyacınız olacaq:
- Odun kəsmək üçün bir taxta
- cımbız
- lehim dəmir və lehim
- tel kəsici
- İsti yapışqan silahı
- 8 mm silikon qollu bir parça (şəkil yoxdur)
Sodial SDS011 məlumat cədvəlini buradan yükləyə bilərsiniz Sodial SDS011
Addım 2: Bluetooth Modulunun Hazırlanması
BT-Modul, TTL səviyyəli UART interfeysinə malikdir. Qədim zamanlarda internet modemlərində etdiyimiz kimi "AT" əmrləri ilə yenidən konfiqurasiya edilə bilər. Cihazınızdakı bir terminal proqramına qoşulmaq üçün UART -ı kompüterinizə uyğunlaşdırmalısınız. Amazonda aldığım USB-RS232 çeviricisini istifadə etdim. BT modulu üçün bir bağlayıcı tətbiq etdim və 3, 3V enerji təchizatı və GND-ni çeviricidən BT-moduluna yönləndirdim. Sonra krossoverdə müvafiq TxD və RxD xətlərini bağladım. USB çeviricidən TxD, BT modulundan RxD-ə və əksinə.
Linux maşınım var və cutecom istifadə edirəm. USB çeviricisini bağladıqdan sonra komport "ttyUSB0" idi. Kompüter adlarını linux maşınınızdakı "/dev" qovluğunda tapa bilərsiniz. Windows istifadəçiləri üçün "hterm" tövsiyə edərdim. İşlətmək asandır. "AT" yazın və cavab olaraq "AT" almalısınız. Sonra BT moduluna "Sensor" adını vermək üçün "AT+NameSensor" yazın.
Addım 3: Parçaların quraşdırılması
Bütün hissələri götürmək üçün uyğun olan bir ağac parçası kəsin. Şemada göstərildiyi kimi bütün siqnalları bağlayın. Telləri qorumaq üçün tellərin ətrafına bir silikon manşon taxmaq yaxşı bir fikirdir. Perfboardda USB-B fişini lehimləyin. Yalnız enerji təchizatı üçün istifadə olunur. Bütün hissələri taxta bazaya vintlər ilə bərkidin. Nəhayət, kabelləri taxtaya yapışdırmaq üçün isti yapışdırın.
Addım 4: Cütləşdirmə
Sensor tətbiqini USB enerji təchizatı ilə bağlayın. BT modulundakı qırmızı LED yanıb-sönməyə başlayacaq. Android smartfonunuzla birləşdirməyə çalışmayın. Bir pin kodu daxil etməlisiniz. Bu "1234" dir. Kodu daxil etdikdən sonra smartfonunuz BT modulu ilə birləşdirilməlidir.
Addım 5: Proqram təminatı
Android tətbiqlərini hədəf platformanın özündə yazmağı sevirəm. Android Studio ilə işləyirsinizsə, qayğı göstərməli olduğunuz bütün emulyasiya şeylərindən sizi xilas edir. Android -in özündə üç uyğun inkişaf vasitəsi tapdım
- Əsas Mintoris. Android -də demək olar ki, hər şeyi araşdırmaq üçün zəngin bir sıra əmrləri olan əsas tərcüməçi. Tətbiqləriniz üçün qısa yollar yarada bilərsiniz. Mintoris basic -də tərtibçi yoxdur. Beləliklə, istifadə etdiyiniz hər bir cihazda Mintoris quraşdırmalısınız. Ancaq bunun üçün yalnız bir dəfə ödəməlisiniz (təxminən 7 €)
- Əsas! Həddindən artıq yaxşı Əsas tərcüməçi və tərtibatçı (bəzi avrolara əlavə). Demək olar ki, Android -də hər şeyi bağlayırsınız və Basic olmadan onları yaymaq üçün real tətbiqlər toplaya bilərsiniz! hədəf cihazda. Təəssüf ki, Əsas! Mintorisin əla diaqram diaqram funksiyalarından məhrumdur
- AIDE, android -də javada android inkişaf etdirmək üçün yarı peşəkar bir IDE -dir. AIDE ilə maksimum elastikliyə sahibsiniz, ancaq java öyrənməlisiniz. AIDE -nin illik xərcləri təxminən 50 avrodur
Mintorisi seçdim. Bu bölmədə sizə Mintoris proqramlaşdırma dərsliyi verməyəcəyəm, ancaq funksiya bloklarının qısa təsvirini verəcəyəm
Növbəti hissədə iki sensor məlumat xətti və müvafiq zaman damgaları üçün üç sıra elan edilir. Zaman damgası məlumatları, diaqramın x oxunu etiketləmək üçün istifadə olunur. Sodial, xüsusi bir hissəcik ölçüsü üçün hər biri müəyyən edilmiş iki məlumat axını çıxarır. İki toz məlumat dizisi bu dəyərləri alır.
WakeLock Qismən
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
TextSize 24
CLS
Popup "Toz Sensor Ölçən (c) ARJ 2017"
Global dustData (), dustDataF (), timeStamp () Qlobal indeks, seçim, maxData, fileName $
Qaranlıq vaxt damgası (59)
Az tozlu məlumatlar (59)
Qaranlıq tozDataF (59)
Dim Menu $ (4) = "max. 100 data set", "max. 1000 data set", "max. 5000 data set", "max. 10000 data set", "Exit"
'Dizileri başlayın
İ = 0 ilə 59 arasında
dustData (i) = 0
dustDataF (i) = 0
vaxt damgası (i) = i
Sonrakı i
Sonra Siyahı menyusu konfiqurasiya olunur. Bu istifadəçiyə toplamaq üçün maksimum məlumat ölçüsünü seçmək imkanı verir. Bu, smartfonun sonsuz məlumatları udmasını qarşısını almaq üçün yalnız bir təhlükəsizlik açarıdır. Funksiyalar BTgetPaired $ (), android cihazdakı bütün qoşalaşmış cihazları, adlarını və BT-ünvanını əks etdirən bir siyahı verir.
Menyu $ (), seçim
'Məlumatların saxlanılması üçün maksimum məbləği seçin
runLevel = 1
Seçim seçin
Vəziyyət 0 maxData = 100
Dava 1 maxDate = 1000
Vəziyyət 2 maxData = 5000
Case 3 maxData = 10000
Vəziyyət 4 maxData = 0
Seçimi bitir
'' Sensoru qoşun
qaranlıq cüt $ (0)
cüt $ () = BTGetPaired $ ()
Əgər $ (0) = "none" cütü olarsa
Çap et "Cütlənmiş cihaz tapılmadı. BT aktivdir?" "Proqram dayandırıldı" yazdırın
Bitirin
Endif
Siyahı cütü ($), cihaz $
adı $ = ItemExtract $ (cihaz $, 0)
ünvan $ = ItemExtract $ (cihaz $, 1)
BTConnect 1, ünvan $
'Bağlantı gözləyin
Tərəqqi AÇIQ
"Bağlanmağa çalışılır" yazın; ünvan $
İ = 1 ilə 20 arasında
Tərəqqi i/2
BTGetstate (1) = 4 olarsa, 1000 gözləmək üçün çıxın
Sonrakı i
Gediş OFF
'Uğur qazananda BT cihazına qoşulun
BTGetState (1) = 4 Əgər "Bağlandı" Çap et, Başqa Çap "Qoşula bilmədi"; adı $
"Proqram dayandırıldı" yazdırın
Bitirin
Endif
Növbəti blok məlumatların əldə olunmasını göstərir. Hər bir məlumat sessiyası üçün bir fayl avtomatik olaraq açılır və vaxt və tarixə görə adlandırılır. Sonra döngə sensor məlumatlarını oxuyur. Məlumatlar bir neçə baytda yığılır. Bir bayt dəsti iki ASCII simvolu 170 və 171 ilə müəyyən edilir. Aşağıdakı məlumatlar yenidən təşkil edilir və toz-massivlərə doldurulur.
Qrafika aktivdir
Yazmaq üçün məlumat faylını açın
fileName $ = FormatTime $ (t, "yyyy-MM-dd-kk-mm-ss") + ".dat"
1, fileName $, "w+" Çap et "Açılmış məlumat faylını" açın; fileName $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Yazı 1, "Zaman Tozu2.5 Toz10"
'Dizini ölçülmüş məlumatlar ilə doldurun
məlumat $ = "" paket $ = ""
indeks = 0
MaxData> 0 edərkən bunu edin
BTR 1, paket $, 10
data $ = data $+paket $
Əgər Len (data $)> = 10 Sonra
Əgər (ASCII (Sol $ (data $, 1)) = 170) & (ASCII (Sağ $ (data $, 1)) = 171) Sonra
dustDataF (indeks) = ASCII (Orta $ (data $, 2, 1))
dustDataF (indeks) = (dustDataF (indeks)+256*ASCII (Orta $ (data $, 3, 1)))/10
dustData (index) = ASCII (Orta $ (data $, 4, 1))
dustData (index) = (dustData (index)+256*ASCII (Orta $ (data $, 5, 1)))/10
Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))
məlumat $ = ""
maxData = maxData-1
indeks = indeks+1
Əgər indeks> 59 Sonra indeks = 0
dustData (indeks) = 0
dustDataF (indeks) = 0
Endif
Endif
DrawGraph ()
100 gözləyin
Döngə
Bağlayın 1
Qrafika deaktivdir
CLS Print "Proqram dayandırıldı"
Bitirin
Son hissə, hər bir məlumat qəbulundan sonra çağırılan bir alt proqramdır. Ekranı təmizləyir, toz və zaman damgası massivlərində saxlanan faktiki məlumatlarla diaqramı yenidən tərtib edir.
'Koordinatları, etiketləri, gənələri və eyni zamanda məlumat əyrilərini çəkin
Alt DrawGraph ()
'Qrafik rejimində ekran cari rəngə qədər təmizlənir
Rəng 0, 0, 0
CLS
Rəng 0, 0, 100
Şəbəkə xətləri çəkmək üçün istifadə ediləcək qrafik rəngini təyin edin
TextColor 100, 100, 100, 50
'TextColor, ızgaranın əsas başlığının rəngidir
TextColorA 100, 100, 100
'TextColorA, Axis başlıqları və ızgara şərhləri üçün istifadə olunur.
Eksen başlığı mətninin ölçüsünü təyin edin
Şəbəkənin əsas adı bu ölçüdən 2 dəfə böyükdür
TextSize 20
FixDecimal 0
'2 onluq yeri göstərmək üçün qurun
PadDigits 2
'Qrafik üçün bir cədvəl çəkin' X & Y aralığını və başlığını təyin edin
Axis AxisX 0, 59, "Zaman/s"
AxisY 0, 10000, "ug/m3"
Şəbəkə 3, "Toz konsentrasiyası"
'Toz qrafikləri çəkin
Rəng 100, 0, 0
GraphXY timeStamp (), dustDataF ()
Rəng 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
Geri qayıt
Mənbə kodunu buradan yükləyin
Addım 6: Test edin
Sensoru işə salın və proqramı işə salın. Cütlənmiş cihazlar siyahısından "Sensor" adlı birini seçin. Sensoru bağladıqdan sonra ekran məlumatları göstərməyə başlayacaq. Eyni zamanda məlumat faylı ayrılır. Modanı bitirdikdən sonra məlumatları göstərmək üçün GnuPlot -dan istifadə edə bilərsiniz. GnuPlot'u "Test.dat" adlı bir məlumat faylını göstərmək üçün konfiqurasiya etmək üçün GnuPlotdakı "Test.gp" faylını istifadə edin. Burada da tapa bilərsiniz
Daha ətraflı və test üçün videoya baxın. Çox əylənin və daha çox fikir əldə edin!
Tövsiyə:
Arduino Toz Tədqiqatı: 8 addım
Arduino Toz Araşdırması: Marsda yaşamaq necə olardı? Hava nəfəs ala bilərmi? Təhlükəsizdirmi? Nə qədər toz var? Fırtınalar nə qədər tez -tez olur? Bu sualların hər hansı birinin cavabını heç düşünmüsünüzmü?
Toz Boya Çubuğu: 5 addım
Toz Palto Çubuğu: Toz boya çubuğumu necə yaratdığımla bağlı ətraflı təlimatlar. ******* Xəbərdarlıq HURT edir. Torpaq teli ilə fırça arasına girsəniz. ******** Bunun məqsədi kiçik bir obyekti (bu halda bir sikkə üzüyə çevrilmiş) rəngləməkdir
Toz İşıqlar (LED Musiqi Snowboard): 4 addım
Pudralı İşıqlar (LED Musiqi Snowboard): Buradan satın alın: https: //www.facebook.com/PLDesigns-823895051322350 … Facebook Axtarışı: @CustomPLDesignsInstagram Axtarışı: @CustomPLDesigns Alətləri/Lazım olan şeylər Philips Tornavida 7/16 düymlük Açar İstilik Tabancası və ya Saç qurutma maşını İzopropil spirti Pape
Arduino Powered Toz Partiküllərini İzləmə Stansiyası: 4 Addım (Şəkillərlə)
Arduino Güclü Toz Parçaları İzləmə Stansiyası: Evinizdəki tozun çirklənməsini 50 dollardan aşağı qiymətə izləyən bir cihazdan olduqca asan bir şəkildə İnternet qura bilərsiniz və toz səviyyəsi çox yüksək olduqda, otağı havalandıra bilərsiniz və ya qura bilərsiniz. çöldə və əgər varsa xəbərdar olun
Nokia 6280 Toz Təmizləmə üçün Ekran Kapağının Sökülməsi: 7 Addım
Toz Təmizləmə üçün Nokia 6280 Ekran Kapağının Sökülməsi: Bir çox digər modeldən fərqli olaraq, Nokia 6280, istifadəçilərin ekran qapağını özləri çıxara bilməsi üçün edilməmiş kimi görünür. Bu, əsl LCD ilə bir çox sahibi olan ekran örtüyü arasında toz alanları əsəbiləşdirir … Əslində zaman keçdikcə bu