İçindekiler:
- Adım 1: İhtiyacınız Olan Şey
- 2. Adım: Bluetooth Modülünü Hazırlama
- Adım 3: Parçaların Montajı
- 4. Adım: Eşleştirme
- Adım 5: Yazılım
- Adım 6: Test Et
Video: Android'de Sodial Toz Sensörü: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bir yıl önce bir arkadaşım çevresel izleme hakkında bir hafta sonu çalıştayı yaptı. Çalıştayın amacı, ölçüm verilerini sık sık güncellenen toz konsantrasyon haritaları sağlayan bir sunucuya koymak için bir ahududu pi kartına bağlı bir toz sensörü oluşturmaktı. Arkadaşım, izleme ve kayıt için sensör verilerini doğrudan akıllı telefonuna almanın bir yolu olup olmadığını sordu. Bu yüzden interneti bir veri sayfası için kazdım ve sensörün 9600Baud 8N1 protokolü ile basit bir UART arayüzüne sahip olduğunu gördüm. Ancak bir UART'ı bir akıllı telefona nasıl bağlayabilirim? Bu kolay. Android'de öykünülmüş bir uyum sağlayan her yerde bulunan küçük Bluetooth modüllerinden birini kullanmak zorunda kaldım. Şimdi nasıl yaptığımı görün.
Adım 1: İhtiyacınız Olan Şey
Aşağıdaki parçalara ihtiyacınız var
- Kablolu Sodial arabirim için JST XH 7 pimli bir eşleşen konektör. Benimkini Ebay'den satın aldım.
- UART konektörüyle uyumlu bir Bluetooth modülü HC05 veya 06
- TTL seviye arayüzüne sahip bir USB seri dönüştürücü. BT modülüne benzersiz bir ad vermek için bunu kullanıyoruz
- Sodial SDS011 toz sensörü. benimkini ebay'den aldım
- bir parça veroboard
- USB-B konektörü
- Tel
- Her şeyi monte etmek için bir tahta parçası
O zaman bazı basit araçlara ihtiyacınız olacak:
- Odun kesmek için bir testere
- cımbız
- havya ve lehim
- Tel makası
- Sıcak yapıştırıcı tabancası
- Bir parça 8mm silikon kılıf(resimde yok)
Sodial SDS011 veri sayfasını buradan indirebilirsiniz Sodial SDS011 veri sayfasını
2. Adım: Bluetooth Modülünü Hazırlama
BT Modülü, TTL düzeyinde bir UART arayüzüne sahiptir. Eski zamanlarda internet modemlerde yaptığımız gibi "AT" komutları ile yeniden yapılandırılabilir. Makinenizdeki bir terminal programına bağlamak için UART'ı bilgisayarınıza uyarlamanız gerekir. Amazon'dan aldığım bir USB-RS232 dönüştürücü kullandım. BT modülü için bir konektör uyguladım ve 3, 3V güç kaynağını ve GND'yi dönüştürücüden BT modülüne yönlendirdim. Ardından ilgili TxD ve RxD hatlarını crossover'a bağladım. USB dönüştürücüden RxD'ye BT modülünden TxD ve tam tersi.
Bir linux makinem var ve cutecom kullandım. USB dönüştürücüyü bağladıktan sonra comport "ttyUSB0" oldu. Komport adlarını linux makinenizde "/dev" dizininde bulabilirsiniz. Windows kullanıcıları için "hterm" i tavsiye ederim. Çalıştırmak kolaydır. "AT" yazın ve yanıt olarak "AT" almalısınız. Ardından BT modülüne "Sensör" adını vermek için "AT+NameSensor" yazın.
Adım 3: Parçaların Montajı
Tüm parçaları almaya uygun boyutta bir tahta parçası kesin. Tüm sinyalleri şemada gösterildiği gibi bağlayın. Telleri korumak için etrafına silikon bir kılıf koymak iyi bir fikirdir. Perfboard üzerindeki USB-B fişini lehimleyin. Sadece güç kaynağı için kullanılır. Tüm parçaları vidalarla ahşap tabana sabitleyin. Son olarak, kabloları tahtaya sabitlemek için sıcak tutkalla yapıştırın.
4. Adım: Eşleştirme
Bir USB güç kaynağı takarak sensör uygulamasını çalıştırın. BT modülündeki kırmızı LED yanıp sönmeye başlayacaktır. Android akıllı telefonunuzla eşleştirmeye çalışmayın. Bir pin kodu girmelisiniz. Bu "1234". Kodu girdikten sonra akıllı telefonunuz BT modülü ile eşleştirilmelidir.
Adım 5: Yazılım
Hedef platformun kendisinde Android uygulamaları yazmayı seviyorum. Android Studio ile çalışıyorsanız ilgilenmeniz gereken tüm öykünme işlerinden sizi kurtarır. Android'in kendisinde üç uygun geliştirme aracı buldum
- Mintoris Temel. Android'deki hemen hemen her şeyi kurcalamak için zengin komut setine sahip Temel bir yorumlayıcı. Uygulamalarınız için kısayollar oluşturabilirsiniz. Mintoris basic bir derleyici içermez. Yani kullandığınız her cihaza Mintoris'i kurmuş olmalısınız. Ama bunun için sadece bir kez ödemeniz gerekiyor (yaklaşık 7€)
- Temel! Aşırı iyi Temel yorumlayıcı ve derleyici (bazı € için eklenti). Neredeyse androiddeki her şeye takılır ve bunları Basic olmadan dağıtmak için gerçek uygulamaları derleyebilirsiniz! hedef cihazda. Ne yazık ki Temel! Mintoris'in mükemmel diyagram grafiği işlevlerinden yoksundur
- AIDE, android üzerinde java'da android geliştirme yapmak için yarı profesyonel bir IDE'dir. AIDE ile en yüksek esnekliğe sahipsiniz ancak java öğrenmeniz gerekiyor. AIDE'nin yıllık maliyeti yaklaşık 50€
Mintoris'i seçtim. Bu bölümde size Mintoris'te programlama eğitimi vermeyeceğim, fonksiyon bloklarının kısa bir tanımını vereceğim
Aşağıdaki bölümde, iki sensör veri hattı ve ilgili zaman damgaları için üç dizi bildirilmektedir. Zaman damgası verileri, diyagramın x eksenini etiketlemek için kullanılır. Sodial, her biri özel bir parçacık boyutu için belirtilen iki veri akışı verir. İki toz veri dizisi bu değerleri alır.
Uyandırma Kilidi Kısmi
MetinRengi 100, 75, 10
MetinRenkA 50, 50, 50
Metin Hizalama 0
MetinBoyutu 24
CLS
Popup "Toz Sensörü Ölçer (c) ARJ 2017"
Global DustData(), DustDataF(), timeStamp() Global indeks, seçim, maxData, fileName$
Zaman Damgasını karart(59)
Loş tozData(59)
Soluk tozDataF(59)
Dim Menu$(4) = "maks. 100 veri seti", "maks. 1000 veri seti", "maks. 5000 veri seti", "maks. 10000 veri seti", "Çıkış"
'Dizileri başlat
i = 0 ila 59 için
tozData(i) = 0
tozDataF(i) = 0
zaman Damgası(i)=i
sonraki ben
Ardından bir Liste menüsü yapılandırılır. Bu, kullanıcıya toplanacak maksimum veri boyutunu seçme seçeneği sunar. Bu, akıllı telefonun sonsuz verileri emmesini önlemek için yalnızca bir güvenlik anahtarıdır. BTgetPaired$() İşlevleri, android cihazdaki tüm eşleştirilmiş cihazları, adlarını ve BT adresini içeren bir liste verir.
Liste Menü$(), seçim
'Depolanacak veri varsa maksimum miktarı seçin
runLevel = 1
Seçimi seçin
Durum 0 maxData = 100
Durum 1 maxDate = 1000
Durum 2 maxData = 5000
Durum 3 maxData = 10000
Durum 4 maxData = 0
Seçimi Bitir
'' Sensörü bağlayın
karartma çifti$(0)
çift$() = BTGetPaired$()
Eğer çift$(0) = "yok" ise
Yazdır "Eşleştirilmiş cihaz bulunamadı. BT açık mı?" "Program sonlandırıldı" yazdır
Son
Endif
Liste çifti$(), cihaz$
isim$=ItemExtract$(cihaz$, 0)
adres$=ItemExtract$(cihaz$, 1)
BTConnect 1, adres$
'Bağlantıyı bekleyin
İlerleme AÇIK
"Adres$'a bağlanmaya çalışılıyor" yazdır
i = 1 ila 20 için
İlerleme i/2
BTGetstate(1)=4 ise 1000 Beklemek İçin Çıkın
sonraki ben
İlerleme KAPALI
Başarıyla BT cihazına bağlanın
BTGetState(1) = 4 ise "Bağlandı" Yazdır Aksi takdirde Yazdır "bağlanamadı";name$
"Program sonlandırıldı" yazdır
Son
Endif
Sonraki blok veri alımını gösterir. Her veri oturumu için otomatik olarak bir dosya açılır ve saat ve tarihten sonra adlandırılır. Ardından döngü sensör verilerini okuyor. Veriler birkaç bayt olarak paketlenir. Bir bayt kümesi iki ASCII karakteri 170 ve 171 ile tanımlanır. Aşağıdaki veriler yeniden düzenlenir ve toz dizilerine doldurulur
Grafikler Açık
'Yazmak için veri dosyasını açın
dosyaAdı$ = FormatTime$(t, "yyyy-AA-gg-kk-aa-ss") + ".dat"
Open 1, fileName$, "w+" Print "Açık veri dosyası ";fileName$ Writeln 1, FormatTime$(Time(), "yy-MM-dd")
Writeln 1, "Zaman Dust2.5 Dust10"
'Diziyi ölçülen verilerle doldurun
veri$="" paket$=""
indeks=0
maxData > 0 iken yapın
BTRead 1, paket$, 10
veri$=veri$+paket$
Len(data$) >= 10 ise
Eğer (ASCII(Sol$(veri$, 1))=170) & (ASCII(Sağ$(veri$, 1)) = 171) O zaman
tozDataF(index)=ASCII(Orta$(veri$, 2, 1))
tozDataF(index)=(dustDataF(index)+256*ASCII(Orta$(veri$, 3, 1)))/10
tozData(index)=ASCII(Orta$(veri$, 4, 1))
tozData(index)=(dustData(index)+256*ASCII(Orta$(veri$, 5, 1)))/10
Writeln 1, FormatTime$(Time(), "kk:dd:ss") + " " + Str$(dustDataF(index))+ " " + Str$(dustData(index))
veri$=""
maxData = maxData-1
indeks=indeks+1
İndeks>59 ise İndeks=0
tozData(indeks)=0
tozDataF(indeks)=0
Endif
Endif
DrawGraph()
100 bekle
Döngü
1'i kapat
Grafikler Kapalı
CLS Print "Program sonlandırıldı"
Son
Son kısım, her veri alımından sonra çağrılan bir alt programdır. Ekranı temizler, diyagramı, toz ve zaman damgası dizilerinde saklanan gerçek verilerle yeniden çizer.
' Koordinatları, etiketleri, keneleri ve ayrıca veri eğrilerini çizin
Alt DrawGraph()
' Grafik modunda ekran mevcut renge döner
Renk 0, 0, 0
CLS
Renk 0, 0, 100
Izgara çizgilerini çizmek için kullanılacak grafik rengini ayarlayın
MetinRengi 100, 100, 100, 50
'TextColor, ızgara ana başlığının rengidir
MetinRenkA 100, 100, 100
' TextColorA, Eksen başlıkları ve ızgara açıklamaları için kullanılır.
' Eksen başlık metninin boyutunu ayarlayın
' Izgara ana başlığı bu boyutun 2 katı
MetinBoyutu 20
Ondalık Düzeltme 0
' 2 ondalık basamak gösterecek şekilde ayarla
PadDigits 2
' Grafik için bir ızgara çizin ' X & Y'nin aralığını ve başlığını ayarlayın
Eksen EksenX 0, 59, "Zaman/sn"
EksenY 0, 10000, "ug/m3"
Izgara 3, "Toz konsantrasyonu"
' Toz Grafikleri Çiz
Renk 100, 0, 0
GraphXY timeStamp(), tozDataF()
Renk 0, 100, 0
GraphXY timeStamp(), tozData()
MetinRengi 100, 0, 0
DrawText "PM2.5", 30, Int(EkranY()-60), 90, 1
MetinRengi 0, 100, 0
DrawText "PM10", 30, Int(EkranY()-150), 90, 1
MetinRengi 100, 100, 100, 50
Dönüş
Kaynak kodunu buradan indirin
Adım 6: Test Et
Sensörü açın ve uygulamayı başlatın. Eşleştirilmiş cihazlar listesinden "Sensör" adlı cihazı seçin. Sensörü bağladıktan sonra ekran verileri görüntülemeye başlayacaktır. Eşzamanlı olarak veri dosyası tahsis edilir. Modayı bitirdikten sonra verileri görüntülemek için GnuPlot'u kullanabilirsiniz. GnuPlot'u "Test.dat" adlı bir veri dosyasını görüntülemek üzere yapılandırmak için GnuPlot'taki "Test.gp" dosyasını kullanın. Burada da bulabilirsiniz
Daha fazla ayrıntı ve test için videoya bakın. İyi eğlenceler ve daha fazla fikir var!
Önerilen:
Arduino Toz Çalışması: 8 Adım
Arduino Toz Çalışması: Mars'ta yaşamak nasıl olurdu? Hava nefes alabilir mi? Güvenli mi? Ne kadar toz var? Fırtınalar ne sıklıkta? Bu sorulardan herhangi birinin cevabını hiç merak ettiniz mi?
Toz Boya Çubuğu: 5 Adım
Toz Boya Çubuğu: Toz boya değnekimi nasıl oluşturduğuma ilişkin ayrıntılı talimatlar. ****** Uyarı ACI OLUYOR. Topraklama kablosu ile fırça arasına girerseniz. ********Bunun amacı, küçük bir nesneyi (bu durumda bir madeni para bir yüzüğüne dönüştürülmüştür) boyamaya güç vermektir
Toz Işıklar (LED Müzik Snowboard): 4 Adım
Pudralı Işıklar (LED Müzikli Snowboard): Buradan satın alın: https://www.facebook.com/PLDesigns-823895051322350… Facebook Arama: @CustomPLDesignsInstagram Arama: @CustomPLDesignsTools/Gereken şeyler Philips Tornavida 7/16 inç İngiliz Anahtarı Isı Tabancası veya Saç Kurutma Makinesi İzopropil alkol Kağıt
Bilgisayarınızı Nasıl Temizler ve Toz Alırsınız: 5 Adım
Bilgisayarınızı Nasıl Temizler ve Toz Alırsınız: !!! LÜTFEN BİR ADIMA BAŞLAMADAN ÖNCE TÜM SLAYTLARI OKUYUN !!!======================================== ========Merhaba ve bugün göreceğiniz muhtemelen en önemli şeye hoş geldiniz! Kişisel Bilgisayarınızın ömrünü nasıl düzgün bir şekilde koruyacağınızı öğreneceğiz
Arduino Powered Toz Parçacıkları İzleme İstasyonu: 4 Adım (Resimli)
Arduino Powered Toz Parçacıkları İzleme İstasyonu: Evinizdeki toz kirliliğini 50 dolardan daha az bir ücretle izleyen bir DIY nesnelerin interneti cihazını oldukça kolay bir şekilde oluşturabilir ve toz seviyesi çok yükseldiğinde bildirim alarak odayı havalandırabilir veya ayarlayabilirsiniz. dışarıda ve eğer olursa haberdar olun