İçindekiler:
- Adım 1: Matematik…
- 2. Adım: Pratikler
- Adım 3: Malzemeler
- Adım 4: Prototipin (ve Kodun) Test Edilmesi
- Adım 5: Yağmur Suyu Ölçer Ino Sketch
- Adım 6: Arduino Pro Mini'ye Kod Yükleme (USB'siz)
- Adım 7: Montaj
- Adım 8: Bitmiş Makale
- Adım 9: Not - Yüz (ve Beş) Yüzde?
- Adım 10: Sonradan Düşünceler
Video: Ultrasonik Yağmur Suyu Tankı Kapasite Ölçer: 10 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Benim gibiyseniz ve biraz çevre bilinciniz varsa (ya da sadece birkaç dolar biriktirmeye hevesli cimrilerseniz - ki bu da benim…), bir yağmur suyu tankınız olabilir. Avustralya'da nadiren gördüğümüz yağmurları toplamak için bir tankım var - ama oğlum ah oğlum, burada yağmur yağdığında GERÇEKTEN yağmur yağar! Tankım yaklaşık 1,5 m yüksekliğinde ve bir kaide üzerinde, yani su seviyesini kontrol etmek için basamaklardan çıkmam gerekiyor (veya - çok tembel olduğum için, şu anda barbeküden aldığım eski bir gaz şişesinin üzerinde tehlikeli bir şekilde dengede duruyorum) tankın yanında bir 'adım' olarak kalıcı ikametgah).
Tek elimle tüm tırmanma ve drenaj borusuna asılmadan tanktaki su seviyesini kontrol edebilmenin bir yolunu istedim (arkasında hangi örümceklerin olabileceği konusunda endişelenirken - Avustralya örümceklerini duydunuz - değil mi?) … Böylece, elektroniğe olan ilginin yenilenmesi ve Çin'den ebay'deki ucuz Arduino klonları ile, işi benim için yapacak bir 'widget' oluşturmaya karar verdim.
Şimdi, 'hayalim' widget'ım tanka kalıcı olarak monte edilmek, garajımda uzaktan okuma ile güneş enerjisiyle şarj edilmiş bir güç kaynağı kullanmak veya belki de Bluetooth kullanarak telefonumdan kontrol edebileceğim bir kablosuz verici, hatta belki de bir kablosuz verici kullanmaktı. Otomatik olarak güncellenen bir web sayfasını barındıran ESP tipi cihaz, böylece dünyanın her yerinden internet üzerinden tankımdaki su seviyesini kontrol edebilirim… ama gerçekten - neden tüm bunlara ihtiyacım var? Bu yüzden büyük ideallerimi biraz geriye çevirdim (iyi, oldukça önemli) ve çözümün kablosuzluğunu, kalıcı kurulumunu, güneş enerjisi şarjını ve tankımın seviyesini arka uçtan (her zaman) kontrol etme yeteneğini ortadan kaldırdım. ötesinin arka ucunda WiFi olduğunu varsayarsak, yani…)
Ortaya çıkan proje, yukarıda görülen, tankın ağzından tutulabilen ve bir basma düğmesi ile etkinleştirilebilen, zemin seviyesinden okunabilen dijital bir okuma ile çok daha pratik olan el tipi üniteye indirgendi.
Adım 1: Matematik…
Su seviyesinin nasıl belirleneceği konusunda birkaç fikirle oynadıktan sonra - Widget'ımın temeli olarak ultrasonik bir verici/alıcıya karar verdim ve okumaları almak ve tüm matematiği yapmak için bir Arduino kullanmaya karar verdim. Sensörden döndürülen okumalar (dolaylı olarak) bir mesafe şeklindedir - ultrasonik sensörden sıçradığı yüzeye (su yüzeyi - veya boşsa tankın tabanı) ve tekrar geri, bu yüzden ihtiyacımız var. tankta kalan yüzdeye ulaşmak için bununla birkaç şey yapmak.
Not - gerçekte, sensörden döndürülen değer, sinyalin emitör tarafından ayrılıp alıcıya geri dönmesi için geçen süredir. Bu mikrosaniye cinsindendir - ancak ses hızının cm başına 29 mikrosaniye olduğunu bilmek (Ne? Bunu bilmiyor muydunuz? Pfft…) bir zaman diliminden mesafe ölçümüne kolay bir dönüşüm sağlar.
İlk olarak - tabii ki, sensörün yüzey mesafesine ulaşması için mesafeyi 2'ye bölmemiz gerekiyor. Ardından, sensörden 'maks' su derinliğine kadar olan sabit mesafeyi çıkarın. Kalan değer kullanılan suyun derinliğidir. Ardından, tankta kalan suyun derinliğini bulmak için bu değeri maksimum su derinliğinden çıkarın.
O zaman bu değer, gösterilebilecek bir su hacmi elde etmek için bu su derinliğini maksimum derinliğin yüzdesi olarak hesaplamak veya derinliği sabit 'yüzey alanı' ile çarpmak gibi diğer hesaplamaların temelidir. litre (veya galon veya başka bir birim - matematiği bildiğiniz sürece - basitlik için bir yüzdeye bağlı kalıyorum).
2. Adım: Pratikler
Ünite elde tutulabilir, ancak ünite her seferinde aynı yerde ve aynı açıda tutulmazsa, bu küçük bir küçük yanlışlıklar olasılığını ortaya çıkarır. Bu sadece çok küçük bir hata olsa da ve muhtemelen kayda bile geçmeyecek olsa da, beni rahatsız eden türden bir şey olurdu.
Bununla birlikte, elde tutuluyor olmak, lanet olası şeyin tanka düşmesi ve bir daha asla görülmemesi olasılığını çok daha fazla ortaya koyuyor. Bu olasılıkların HER İKİSİNİ de azaltmak için, daha sonra tank açıklığının üzerine yerleştirilen bir tahta uzunluğuna sabitlenecektir - böylece ölçüm her seferinde tam olarak aynı yükseklik ve açıdan (ve eğer düşerse) alınır. tank, en azından ahşap yüzer).
Bir basma düğmesi üniteyi etkinleştirir (böylece bir açma/kapama anahtarına olan ihtiyacı ve yanlışlıkla pilin patlaması olasılığını ortadan kaldırır) ve Arduino'daki çizimi başlatır. Bu, HC-SR04'ten bir dizi okuma alır ve bunların ortalamasını alır (düzensiz okumaları azaltmak için).
Ayrıca Arduino dijital G/Ç pinlerinden birinde yüksek veya düşük olup olmadığını kontrol etmek için biraz kod ekledim ve bunu üniteyi 'Kalibrasyon' dediğim moda geçirmek için kullandım. Bu modda, ekran, sensör tarafından döndürülen gerçek mesafeyi (2'ye bölünerek) gösterir, böylece bir mezura göre doğruluğunu kontrol edebilirim.
Adım 3: Malzemeler
Ünite üç ana bileşenden oluşur…
- Bir HC-SR04 ultrasonik verici/alıcı modülü
- Arduino Pro Mini mikrodenetleyici
- TM1637 gibi 4 haneli 7 segment LED ekran veya ekran 'modülü'
Yukarıdakilerin tümü, yalnızca kalın harflerle gösterilen terimleri arayarak ebay'de kolayca bulunabilir.
Bu uygulamada, ekran 0-100 % değerini göstermek için 3 basamak kullanır veya litre sayısını göstermek için 4 basamak kullanır (benim durumumda maks 2000), bu nedenle herhangi bir 4 basamaklı ekran bunu yapar - yapmanız gerekmez modülün ondalık noktaları veya iki nokta üst üste olup olmadığı konusunda endişe edin. Daha az pin bağlantısı kullandığından bir ekran 'modülü' (arabirim çipi ile bir devre kartına monte edilmiş LED) daha kolaydır, ancak kodda bazı küçük değişikliklerle Arduino tarafından 12 pinli ham bir LED ekran yerleştirilebilir (aslında orijinal tasarımım bu kuruluma dayanıyordu). Bununla birlikte, ham LED ekran kullanmanın ayrıca her segment tarafından çekilen akımı sınırlamak için 7 direnç gerektirdiğini unutmayın. Bir TM1637 saat görüntüleme modülüne sahiptim, bu yüzden onu kullanmaya karar verdim.
Tamamlayıcı uçlar ve bobinler arasında 9v pil klipsi (ve tabii ki pil), 'bas-yap' anlık basmalı düğme anahtarı, bir proje kutusu, başlık pimleri, bağlantı telleri ve 2"x4" uzunluğunda bir ahşap bulunur. tank açıklığının çapı.
Tamamlayıcı uçlar (ahşap parçası dışında) yerel hobi elektroniği satış zincirimden - Avustralya'da Jaycar'dan satın alındı. İngiltere'deki Maplin'in uygun bir alternatif olacağını düşünüyorum ve ABD'de Digikey ve Mouser gibi birkaç tane olduğunu düşünüyorum. Diğer ülkeler için, korkarım bilmiyorum, ama ülkenizde uygun bir ana cadde satış noktası veya çevrimiçi tedarikçiniz yoksa, yoksa Çinli ebay satıcıları sizin için gelecektir. teslimat için birkaç hafta beklemeyi unutmayın (ironik olarak, en yakın komşularımızdan biri olmasına rağmen, Çin'den Avustralya'ya teslimat için 6 hafta veya daha fazla olağandışı değildir!).
Yeterince büyük bir proje kutusu aldığınızdan emin olun - Bileşenleri hazır hale getirmeden önce benimkileri tahmin ettim ve gerçekten çok sıkı bir sıkıştırma - Kendime daha az yer kaplayan farklı bir basma düğmesi almam gerekebilir.
Oh, ve bu arada, kerestenin uzunluğu garajımın köşesinde tuttuğum bazı hurda parçalarından geldi (bu sevimli örümceklerin çoğuna ev olarak).
Şematik ve işlevselliği anladıktan sonra, sürümünüzü uyarlamaya ve bir açma/kapama anahtarı eklemeye veya sürekli dolu ve kullanıma hazır tutmak için güneş paneli ve şarj kontrolörlü bir 18650 Li-Ion güç kaynağı kullanmaya karar verebilirsiniz. veya aynı anda kalan yüzde VE litreyi gösterme gibi daha fazla bilgi görüntüleme seçeneğiyle çok satırlı bir LCD veya grafik OLED için basit LED ekranını değiştirin. Ya da güneş enerjisiyle şarjlı depoya kalıcı olarak monte edilen, şarkı söyleyen, dans eden kablosuz IoT ünitesini tercih edebilirsiniz. Varyasyonlarınızı ve değişikliklerinizi duymayı çok isterim.
Adım 4: Prototipin (ve Kodun) Test Edilmesi
HC-SR04'ü ebay'deki ucuz bir Çin kaynağından satın aldığım için, gerçekten son derece hassas bir birim almayı beklemiyordum, bu yüzden içine biraz mesafe düzeltme kodu eklemem gerekirse, önce onu devre tahtasında test etmek istedim. benim eskiz.
Bu noktada, HC-SR04'ün nasıl bağlanacağı ve kullanılacağı hakkında temel bilgiler için etrafta dolaşıyordum ve jsvester'ın öğretilebilir "Basit Arduino ve HC-SR04 örneğini" kabul etmeliyim. Onun örneği ve tecrübesi benim için kodlamaya başlamak için harika bir başlangıç noktası oldu.
HC-SR04 için, birden çok okumanın ortalamasını almak için yerleşik işlevsellik içeren ve böylece kodumu çok daha basit hale getiren NewPing işlev kitaplığını buldum.
TM1637 saat görüntüleme modülü için de sayıları görüntülemeyi çok daha basit hale getiren bir kitaplık buldum. Orijinal kodumda (4 basamaklı 7 segmentli ekran için), sayıyı tek tek basamaklara bölmem, ardından hangi bölümlerin aydınlatılacağını bilerek ekranda her bir basamak oluşturmam ve ardından sayıdaki her basamakta dolaşmam gerekiyordu., ve bu numarayı uygun ekran basamağına inşa etmek. Bu yönteme çoğullama denir ve bir seferde yalnızca tek bir rakamı etkili bir şekilde görüntüler, ancak bunlar arasında bir rakamdan diğerine o kadar hızlı döner ki insan gözü fark etmez ve sizi tüm rakamların açık olduğuna inandırır. aynı zamanda. Ölçüm işlemlerini kolaylaştıran HC-SR04 kitaplığında olduğu gibi, bu ekran kitaplığı da tüm çoğullama ve rakam işleme ile ilgilenir. Yukarıda bağlantılı Arduino Referans sayfaları bazı örnekler verir ve elbette her kütüphane çok yardımcı olabilecek örnek kodlarla birlikte gelir.
n
Bu nedenle, yukarıdaki resimler benim test teçhizatımı gösteriyor - Basitlik için Arduino Uno'mda test ediyorum, çünkü bu zaten prototipleme için geçici yeniden kullanılabilir bağlantılar için ayarlanmış. Ünite burada 'Kalibrasyon' modunda çalışıyor (dijital pim 10'un - beyaz kablonun - toprağa bağlı olduğuna dikkat edin) ve mezura ile gösterildiği gibi önüne rastgele yerleştirdiğim kutuya doğru 39 cm okuyor. Bu modda, normal ölçüm olmadığını belirtmek için ölçümün önündeki küçük 'c'yi gösteriyorum.
Vcc (5v) ve Topraklamanın yanı sıra, HC-SR04'ün 2 başka bağlantıya daha ihtiyacı vardır: tetik (sarıdan 6'ya) ve eko (yeşilden 7'ye). Ekranın ayrıca Vcc (5v) ve Toprak ile 2 bağlantıya daha ihtiyacı var - saat (maviden pin 8'e) ve DIO (mordan pin 9'a). Daha önce belirtildiği gibi, çalışma modu pin 10'da (beyaz) yüksek veya düşük tarafından kontrol edilir. Bağlantılar Arduino Pro Mini'deki aynı pinleri kullanacak ancak kalıcı olarak lehimlenecektir. Çalışma modu, sırasıyla Vcc'ye, pin 10'a ve toprağa bağlı üç başlık pininden ikisi arasında bir köprü kullanılarak seçilebilir.
HC-SR04'ün resmi özellikleri, 4 metrelik maksimum tasarlanmış çalışma mesafesine kadar sadece 3 milimetrelik maksimum hata gibi bir şey olduğunu iddia ediyor, bu yüzden ünitemin kesinlikle 2 metreye kadar bu dereceye kadar doğru olduğunu bulmak için sürprizimi hayal edin - ki bu ihtiyacımı fazlasıyla karşılıyor. Hızlı ve kirli bir test kurulumu için sınırlı alan nedeniyle, vericiden gelen ışın yayılıp daha geniş bir alanı kapladığından, bu mesafenin ötesindeki test sonuçlarım test hedefim dışındaki yüzeylerden gelen yansımalarla bozuluyordu. Ama 1,5 metreye kadar iyi olduğu sürece - bu bana iyi gelecek, çok teşekkür ederim:-)
Adım 5: Yağmur Suyu Ölçer Ino Sketch
Kodun tamamı eklenmiştir, ancak bazı adımları açıklamak için aşağıya birkaç alıntı ekleyeceğim.
Öncelikle kurulum…
#Dahil etmek
#include #include // HC-SR04 için pinler #define pinTrig 6 #define pinEcho 7 NewPing sonar(pinTrig, pinEcho, 155); // HC-SR04 için maksimum 400cm, tank için maksimum 155cm // LED Modül bağlantı pinleri (Dijital Pinler) #define CLK 8 #define DIO 9 TM1637Display display(CLK, DIO); // Diğer pinler #define opMode 10
TM1637 ve NewPing kitaplıklarının yanı sıra, 'yuvarlama' işlevine erişmemi sağlayan bir Matematik kitaplığı da ekledim. Bunu, örneğin yüzdeyi en yakın %5'e kadar göstermeme izin vermek için bazı matematiklerde kullanıyorum.
Daha sonra iki cihaz için pinler tanımlanır ve cihazlar başlatılır.
Son olarak çalışma modu için pin 10 tanımlıyorum.
// tüm rakamlar için tüm segmentleri kapat
uint8_t bayt = { 0x00, 0x00, 0x00, 0x00 }; display.setSegments(bayt);
Kodun bu bölümü, ekran modülünü kontrol etmenin bir yolunu gösterir ve her basamaktaki her segmentin ayrı ayrı kontrolüne izin verir. Bayt adlı dizideki 4 öğeyi tümü sıfır olacak şekilde ayarladım. Bu, her baytın her bitinin sıfır olduğu anlamına gelir. 8 bit, 7 segmentin her birini ve ondalık noktayı (veya saat tipi bir ekranda iki nokta üst üste işaretini) kontrol etmek için kullanılır. Yani tüm bitler sıfırsa, segmentlerin hiçbiri yanmaz. setSegments işlemi, dizinin içeriğini ekrana gönderir ve (bu durumda) hiçbir şey göstermez. Tüm segmentler kapalı.
Bir bayttaki en önemli bit, DP'yi kontrol eder ve ardından kalan 7 bit, G'den A'ya 7 segmenti ters sırada kontrol eder. Örneğin 1 sayısını görüntülemek için B ve C segmentleri gerekir, bu nedenle ikili gösterim '0b00000110' olacaktır. (Yukarıdaki resim için CircuitsToday.com'a teşekkürler).
// 10 okuma yapın ve medyan süreyi kullanın.
int süre = sonar.ping_median(10); // süre mikrosaniye cinsindendir if(duration == 0) // Ölçüm Hatası - sonuçsuz veya yankı yok { uint8_t bayt = { 0x00, 0b01111001, 0b01010000, 0b01010000 }; // "Err" yazılacak segmentler display.setSegments(bytes); }
Burada HC-SR04'e 10 okuma yapmasını ve bana ortalama sonucu vermesini söylüyorum. Herhangi bir değer döndürülmezse, birim aralık dışındadır. Daha sonra 4 basamaktaki belirli bölümleri kontrol etmek, (boş), E, r ve r harflerini hecelemek için yukarıdaki tekniğin aynısını kullanıyorum. İkili gösterimi kullanmak, ayrı bitleri segmentlerle ilişkilendirmeyi biraz daha kolaylaştırır.
Adım 6: Arduino Pro Mini'ye Kod Yükleme (USB'siz)
Daha önce de söylediğim gibi, Çinli ebay satıcılarından gelen ürünlerin gelmesi genellikle 6 hafta veya daha uzun sürüyor ve prototipleme ve kod yazmamın çoğu, bazı bileşenlerin gelmesini beklerken yapıldı - Arduino Pro Mini bunlardan biri.
Pro Mini'yi sipariş edene kadar fark etmediğim bir şey, üzerinde çizimi indirmek için bir USB bağlantı noktasının olmamasıydı. Bu yüzden, çılgınca bir araştırmadan sonra, bu durumda bir çizim yüklemenin iki yolu olduğunu buldum - bunlardan biri, PC'nizdeki USB'den Pro Mini'deki 6 özel pime giden özel bir kablo gerektirir. Bu 6 pinli grup, ISP (sistem içi programlayıcı) pinleri olarak bilinir ve isterseniz bu yöntemi herhangi bir Arduino'da kullanabilirsiniz - ancak USB arayüzü hemen hemen tüm diğer Arduino varyantlarında mevcut olduğundan (I düşünün), bu seçeneği kullanmak çok daha basittir. Diğer yöntem, 'aracı' olarak hareket etmek için üzerinde USB arabirimi olan başka bir Arduino'ya sahip olmanızı gerektirir.
Neyse ki, Arduino Uno'ma sahip olmak, aşağıda sizin için özetleyeceğim ikinci yöntemi kullanabileceğim anlamına geliyordu. 'Arduino'yu ISP olarak kullanmak' olarak adlandırılır. Özetle, 'arasında' Arduino'nuza, onu Seri Arayüze dönüştüren özel bir çizim yüklersiniz. Ardından gerçek çiziminizi yükleyin, ancak normal yükleme seçeneği yerine, IDE menüsünden 'Arduino'yu ISP olarak kullanarak' yükleyen bir seçenek kullanırsınız. 'Aracı' Arduino daha sonra gerçek taslağınızı IDE'den alır ve onu kendi belleğine yüklemek yerine Pro Mini'nin ISP pinlerine iletir. Nasıl çalıştığını anladıktan sonra zor değil, ancak kaçınmak isteyebileceğiniz ekstra bir karmaşıklık katmanıdır. Durum buysa veya 'aracı' olarak kullanabileceğiniz başka bir Arduino'nuz yoksa, bir Arduino Nano veya USB arabirimini içeren diğer küçük form faktörlü modellerden birini satın almak isteyebilirsiniz. ve programlamayı daha basit bir olasılık haline getirir.
İşte süreci anlamanıza yardımcı olabilecek birkaç kaynak. Arduino Referansı, özellikle hedef cihaza yeni bir önyükleyici yakmaya atıfta bulunur, ancak aynı şekilde bir çizimi de aynı şekilde kolayca yükleyebilirsiniz. Julian Ilett'in videosunun konsepti çok daha net hale getirdiğini buldum, ancak Arduino referansında iki Arduino'nun nasıl birbirine bağlanacağını açıklayan kısmı atlıyor ve bunun yerine bir devre tahtasında çıplak bir çip programlıyor.
- Arduino Referans Kılavuzu - Arduino'yu ISP Olarak Kullanmak
- Julian Ilett'in YouTube videosu - Arduino'yu ISS olarak kullanma
Pro Mini'de uygun şekilde gruplandırılmış 6 ISP pini bulunmadığından, dijital pinlerden hangisinin 4 programlama piniyle ilişkili olduğunu çözmeniz gerekir (diğer iki bağlantı sadece Vcc ve Gnd'dir - bu nedenle oldukça basittir). Şanslısınız ki, ben bunu çoktan yaşadım - ve bu bilgiyi sizinle paylaşmaya hazırım - ben ne cömert bir insanım!!
Arduino Uno ve Arduino ailesindeki diğer pek çok kişi, bunun gibi 3x2 blokta kolayca düzenlenmiş 6 pime sahiptir (www.arduino.cc'den görüntü).
Ne yazık ki, Pro Mini yok. Aşağıda görebileceğiniz gibi, aslında tanımlanması oldukça kolaydır ve hala 3 pinli 2 blok halinde düzenlenmiştir. MOSI, MISO ve SCK, hem Pro Mini hem de Arduino Uno'da sırasıyla dijital pinler 11, 12 ve 13 ile aynıdır ve ISP programlaması için 11 ila 11, 12 ila 12 ve 13 ila 13'ü bağlamanız yeterlidir. Mini'nin Reset pini Uno pin 10'a ve Pro Mini'nin Vcc (5v)/Ground'u Arduino +5v/Ground'a bağlanmalıdır. (www.arduino.cc'den görüntü)
Adım 7: Montaj
Bahsettiğim gibi, davada bir kumar oynadım ve pişman oldum. Tüm bileşenleri sığdırmak gerçek bir sıkmaydı. Aslında, basmalı düğme temas noktalarını yanlara doğru bükmek zorunda kaldım ve kutunun derinliğine sığması için biraz daha kaldırmak için dışarıya biraz salmastra koydum ve her iki yanından 2-3 mm taşlamak zorunda kaldım. ekran modülü kartının da sığması için.
Ultrasonik sensörlerin geçmesi için kasaya 2 delik açtım. Delikleri biraz fazla küçük açtım ve sonra küçük bir döner taşlama makinesi kullanarak yavaş yavaş büyüttüm, böylece onları güzel bir "itme" haline getirebildim. Ne yazık ki, kutunun içinden öğütücüyü kullanmak için kenarlara çok yakınlardı ve bunun dışarıdan yapılması gerekiyordu, bu da öğütücünün kaydığı yerlerde birçok çizik ve paten izi oluşmasına neden oldu - oh iyi, hepsi altta neyse - kimin umurunda..?
Daha sonra, ekranın içinden geçmesi için doğru boyutta olan bir uçta bir yuva kestim. Yine - kutu boyutuyla ilgili tahminim, yuva beni ekranın üzerinde çok ince bir parçayla bıraktığı için arkadan ısırdı, bu da ben onu pürüzsüz hale getirirken kaçınılmaz olarak kırıldı. Oh iyi - süper yapıştırıcı bunun için icat edildi…
Son olarak, tüm bileşenler kabaca kutuya yerleştirildiğinde, basma düğmesinin gövdesi son kullanılabilir alana düşecek şekilde kapaktaki deliğin nereye koyulacağını ölçtüm. SADECE!!!
Daha sonra, hepsini kasaya monte etmeden önce, bükme, taşlama ve düzeltme işlemlerimden sonra hala çalıştığını test etmek için tüm bileşenleri bir araya lehimledim. Ekran modülünün hemen altında, Gnd'ye bağlı Arduino (beyaz kurşun) üzerindeki pin 10 ile jumper bağlantısını görebilir, böylece üniteyi kalibrasyon moduna geçirebilirsiniz. Ekran, tezgahımdan 122 cm yukarıda okuyor - pencere çerçevesinin tepesinden yansıyan bir sinyal almış olmalı (tavan olamayacak kadar alçak).
Ardından, sıcak tutkal tabancasını kırma ve tüm bileşenleri yerlerine nallama gibi bir durum oldu. Bunu yaptıktan sonra, modül yerine yapıştırıldıktan sonra, ekran modülünün üst kısmı ile kapak arasındaki küçük boşluğun, kapağın istediğim kadar sıkı bir şekilde sığmayacağı bir yerde biraz şişkinlik bıraktığını gördüm.. Bir gün bununla ilgili bir şeyler yapmaya çalışabilirim - ya da daha büyük olasılıkla, yapmayacağım…
Adım 8: Bitmiş Makale
Birkaç montaj sonrası testten ve cihazı vidaladığım odun yığınının derinliğini hesaba katmak için kodumda bir düzeltmeden sonra (hesaplamalarımda tamamen gözden kaçırdım - d'oh !!), hepsi bitti. Nihayet!
Montajlı test
Ünite tezgahımda yüz üstü otururken, açıkçası yansıyan bir sinyal olmayacak, bu nedenle ünite doğru bir şekilde bir hata durumu gösteriyor. Aynısı, en yakın yansıtıcı yüzey birimin menzilinin dışındaysa da geçerli olacaktır.
Tezgahımın üstünden zemine 76cm gibi görünüyor (72cm artı tahta parçasının 4cm derinliği).
Ünitenin alt tarafı, vericiyi ve alıcıyı tahta parçasından sarkarken gösteriyor - buna gerçekten bir tahta parçası demeyi bırakmalıyım - bundan böyle Gösterge Sabitleme ve Hassas Yerleştirme Platformu olarak anılacaktır! Neyse ki, muhtemelen bundan son kez bahsedeceğim;-)
Ooh - bunda tüm o kötü çizikleri ve paten izlerini görebilirsiniz…
… ve işte bitmiş ürün, normal çalışma moduna yerleştirilmiş, aslında tankımın kapasitesini en yakın %5'e kadar ölçüyor. Bu projeyi bitirdiğimi gören (çok) yağmurlu bir Pazar öğleden sonraydı, bu nedenle ünitedeki yağmur damlaları ve çok memnun edici %90 okuma.
Umarım bu talimat kitabını okumaktan zevk almışsınızdır ve Arduino programlama, fizik ve sonar/ultrasonik yansıma kullanımı, proje planlamanızda tahminde bulunmanın tuzakları hakkında biraz bilgi edinmişsinizdir ve kendi projenizi yapmak için ilham almışsınızdır. kendi yağmur suyu deposu göstergesi - ve ardından çevreye biraz yardım ederken ve su faturanızdan tasarruf ederken kullanmak için bir yağmur suyu deposu kurmak.
Lütfen okumaya devam edin - ertesi gün olanlar için…!
Adım 9: Not - Yüz (ve Beş) Yüzde?
Bu nedenle, yağmurlu Pazar gününün ardından Pazartesi günü, depo kesinlikle olabildiğince doluydu. Tamamen dolu gördüğüm çok nadir zamanlardan biri olduğu için, göstergeyi kıyaslamak için ideal bir zaman olacağını düşündüm, ama tahmin edin ne oldu - %105 olarak kaydedildi, bu yüzden bariz bir şekilde yanlış bir şey vardı.
Yağ çubuğumu çıkardım ve maksimum su derinliği olarak 140 cm ve 16 cm boşluk payı (tankın dışından yapılan görsel tahminlere dayanarak) olan orijinal varsayımlarımın gerçek ölçümlerin biraz dışında olduğunu gördüm. %100 kıyaslama için gerçek verilerle donanmış olarak, kodumu değiştirip Arduino'yu yeniden yükleyebildim.
Maksimum su derinliği 147 cm'dir, ölçüm noktası 160 cm'de oturur ve 13 cm boşluk payı verir (tank içindeki tavan boşluğunun toplamı, tankın boyun yüksekliği ve yığının derinliği… whoa, hayır, ne?! Gösterge Stabilizasyon ve Hassas Yerleştirme Platformunun derinliğini kastediyorum!).
maxDepth ve headroom değişkenlerini uygun şekilde düzelttikten ve sonar nesnesinin maksimum aralığını 160 cm olarak sıfırladıktan sonra, hızlı bir yeniden test, göstergeyi biraz kaldırdığımda (küçük bir miktar simüle etmek için) %95'e düşen %100 gösterdi. su kullanılmış).
İş bitmiş!
PS - bu, bir talimat için ilk denemem. Tarzımı, mizah anlayışımı, hataları kabul etmedeki dürüstlüğümü (hey - ben bile mükemmel değilim…), vb. seviyorsanız, bana bildirin ve bu bana bir tane daha yapmak için destek verebilir.
Adım 10: Sonradan Düşünceler
Kullanılabilir Kapasite
Bu yüzden, bu Eğitilebilir Tabloyu yayınladığımdan bu yana birkaç hafta geçti ve yanıt olarak, bazıları hem elektronik hem de manuel olmak üzere bazı alternatif mekanizmalar öneren birçok yorum aldım. Ama bu beni düşündürdü ve muhtemelen başlangıçta belirtmem gereken bir şey var.
- Tankımda, zemin seviyesine monte edilmiş bir pompa var - tankın tabanının hemen biraz altına. Pompa sistemdeki en alçak nokta olduğu ve pompadan gelen su basınç altında olduğu için tankımın tam kapasitesini kullanabiliyorum.
- ANCAK - tankınızın pompası yoksa ve yerçekimi beslemesine dayanıyorsa, tankın etkin kapasitesi musluğunuzun yüksekliği ile sınırlıdır. Tankınızda kalan su musluktan daha düşük olduğunda, su akmaz.
Bu nedenle, ister elektronik bir gösterge, ister manuel gözetleme camı, ister şamandıralı ve bayrak tipi sistem kullanıyor olun, pompa olmadan, tankınızın etkin 'tabanının' aslında tankın çıkış yüksekliği veya musluk.
Önerilen:
Arduino ve Yağmur Damlası Sensörü Kullanan Yağmur Dedektörü: 8 Adım
Arduino ve Yağmur Damlası Sensörü Kullanan Yağmur Dedektörü: Bu derste, bir yağmur sensörü kullanarak bir yağmurun nasıl algılanacağını ve bir buzzer modülü ve OLED Ekran ve Visuino kullanarak nasıl ses çıkarılacağını öğreneceğiz.Videoyu izleyin
Gerçek Zamanlı Kuyu Suyu Seviye Ölçer: 6 Adım (Resimlerle)
Gerçek Zamanlı Bir Kuyu Su Seviyesi Ölçer: Bu talimatlar, kazılmış kuyularda kullanım için düşük maliyetli, gerçek zamanlı bir su seviyesi ölçerin nasıl oluşturulacağını açıklar. Su seviyesi ölçer, kazılmış bir kuyuya asılmak, günde bir kez su seviyesini ölçmek ve verileri WiFi veya hücresel bağlantı ile göndermek için tasarlanmıştır
Gerçek Zamanlı Kuyu Suyu Sıcaklığı, İletkenlik ve Su Seviyesi Ölçer: 6 Adım (Resimlerle)
Gerçek Zamanlı Kuyu Suyu Sıcaklığı, İletkenlik ve Su Seviyesi Ölçer: Bu talimatlar, kazılmış kuyulardaki sıcaklık, Elektrik İletkenliği (EC) ve su seviyelerini izlemek için düşük maliyetli, gerçek zamanlı bir su sayacının nasıl oluşturulacağını açıklar. Sayaç, kazılmış bir kuyuya asılmak, su sıcaklığını ölçmek, EC ve
Demiryollarını Korumak İçin Arduino Üzerindeki Sıcaklık, Yağmur Suyu ve Titreşim Sensörlerini Kullanma: 8 Adım (Resimlerle)
Demiryollarını Korumak için Arduino Üzerindeki Sıcaklık, Yağmur Suyu ve Titreşim Sensörlerini Kullanma: Günümüz toplumunda, demiryolu yolcularındaki artış, demiryolu şirketlerinin talebe ayak uydurmak için ağları optimize etmek için daha fazlasını yapması gerektiği anlamına gelir. Bu projede sıcaklık, yağmur suyu ve titreşim sensörlerinin nasıl çalıştığını küçük ölçekte göstereceğiz
Yağmur Suyu Kanalı: 11 Adım (Resimlerle)
Yağmur Suyu Yuvası: Şiddetli bir yağmur fırtınası, kaldırımlarımız, yağmur suyu kuyularımız, polderlerimiz ve bentlerimiz üzerinde bir taşmaya neden olabilir. Bunun olmasını önlemek için bir yağmur suyu savağı icat ettik! Yağmur suyu kanalı, yağmur suyu arasındaki mesafeyi dijital olarak hesaplar