arduino için ev yapımı sensörler. Arduino tabanlı akıllı ev: adım adım montaj talimatları. Arduino hangi çözümleri sunuyor?

İyi günler, bugün oda termometresi ile saat yapma talimatlarını paylaşacağım ( arduino'da kendin yap saati). Saat, bir Arduino UNO tarafından desteklenmektedir ve zamanı ve sıcaklığı görüntülemek için bir WG12864B grafik ekranı kullanılır. Sıcaklık sensörü olarak - ds18b20. Diğer çoğu saatin aksine, RTS (Gerçek Zamanlı Saat) kullanmayacağım, ancak bu ek modül olmadan yapmaya çalışacağım.

Arduino devreleri basitlikleri ile ayırt edilir ve herkes Arduino öğrenmeye başlayabilir. Kütüphaneleri ve flash arduino'yu nasıl bağlayacağınızı makalemizde okuyabilirsiniz.

Başlayalım.

Bu saati oluşturmak için şunlara ihtiyacımız var:

Arduino UNO (Veya başka herhangi bir Arduino uyumluödemek)
- Grafik ekran WG12864B
- Sıcaklık sensörü ds18b20
- Direnç 4,7 Kom 0,25 W
- Direnç 100 ohm 0,25 W
- 4 adet AA pil için pil bölmesi
- Eşleştirme kutusu
- küçük dosya
- Oje (siyah veya gövde rengi)
- Biraz ince plastik veya karton
- Yalıtım bandı
- Bağlantı telleri
- Devre kartı
- Düğmeler
- havya
- Lehim, rosin
- Çift taraflı bant

Grafik ekran hazırlanıyor.
Ekran bağlantısı ile ilk bakışta pek çok sorun ve zorluk var. Ama önce türleri ile ilgilenirseniz, çok daha kolay ve net hale gelecektir. ks0107/ks0108 kontrol cihazında birçok çeşit ve ekran türü vardır. Tüm ekranlar genellikle 4 türe ayrılır:
A Seçeneği: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Seçenek B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Ekranlar AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864J4, QY-1286 4 F, TM12864L-2, 12864J-1
C Seçeneği: Shenzhen Jinghua Displays Co Ltd. JM12864
Seçenek D: Wintek- Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MGLS19264/HD61202

Liste tam değil, birçoğu var. En yaygın ve bence uygun WG12864B3 V2.0. Ekran Arduino'ya seri veya paralel bir port üzerinden bağlanabilir. Arduino UNO ile kullanırken, bağlantıyı şu şekilde seçmek daha iyidir: seri port- o zaman paralel port üzerinden bağlandığımızda en az 13 hat yerine sadece 3 mikrodenetleyici çıkışına ihtiyacımız var. Her şey oldukça basit bir şekilde bağlantılı. Bir nüans daha var, satışta yerleşik potansiyometreli (kontrastı ayarlamak için) ve onsuz iki ekran seçeneği bulabilirsiniz. Ben seçtim ve size de aynısını yerleşik olanla yapmanızı tavsiye ederim.


Bu, parça sayısını ve lehimleme süresini azaltır. Arkadan aydınlatma için 100 ohm'luk bir akım sınırlama direnci koymaya da değer. Doğrudan 5 volt bağlayarak arka ışığı yakma riski vardır.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - +5V
4 (RS) - 10
5 (K/Y) - 11
6(E)-13
15 (PSB) - GND
19 (BLA) - bir direnç üzerinden - + 5V
20 (BLK) - GND

En uygun yol, tüm bunları ekranın arkasına monte etmek ve Arduino UNO'ya bağlanmak için ondan 5 kablo getirmektir. Sonunda, şöyle bir şeye benzemelidir:


Hala paralel bağlantı seçenler için bir bağlantı tablosu vereceğim.

Ve B seçeneğinin ekranları için diyagram:



Bir iletişim hattına birkaç sensör bağlanabilir. Saatimiz için bir tane yeterli. Kabloyu ds18b20'nin "DQ" piminden Arduino UNO'nun "pin 5" e bağlarız.

Düğmelerle tahtanın hazırlanması.
Saatteki saati ve tarihi ayarlamak için üç düğme kullanacağız. Kolaylık sağlamak için devre kartına üç düğme lehimliyoruz ve kabloları çıkarıyoruz.


Şu şekilde bağlarız: üç düğmenin hepsinde ortak olan kabloyu "GND" Arduino'ya bağlarız. İlk düğme, zaman ayar moduna girmeye ve saat ve tarihe göre geçiş yapmaya yarar, "Pin 2" ye bağlanırız. İkinci değer artırma düğmesi "Pin 3"e ve üçüncü değer azaltma düğmesi "Pin 4"e getirilir.

Her şeyi bir araya getirmek.
Kaçınmak kısa devre, ekran yalıtılmalıdır. Bir daire içinde elektrik bandı ile sarıyoruz ve geriçift ​​taraflı bant üzerine sabitleyin, boyuta göre kesin, bir yalıtım malzemesi çubuğu. Kalın karton veya ince plastik yapacaktır. Kağıt tabletten plastik kullandım. Aşağıdakiler ortaya çıktı:


Ekranın ön tarafında, kenar boyunca, tercihen siyah olmak üzere köpük taban üzerine çift taraflı bant yapıştırıyoruz.


Kalkanı Arduino'ya bağlama:


Artıyı pil bölmesinden Arduino'nun "VIN" e, eksi "GND" ye bağlarız. Arduino'nun arkasına yerleştirin. Kasaya takmadan önce, sıcaklık sensörünü ve düğme kartını bağlamayı unutmayın.


Kroki hazırlama ve doldurma.
Sıcaklık sensörü, OneWire kitaplığını gerektirir.

Ekran çıktısı U8glib kitaplığı aracılığıyla yapılır:

Çizimi düzenlemek ve doldurmak için bu iki kütüphaneyi kurmanız gerekir. Bu iki şekilde yapılabilir. Sadece bu arşivleri paketinden çıkarın ve paketlenmemiş dosyaları Arduino IDE'nin kurulu olduğu klasörde bulunan "kütüphaneler" klasörüne yerleştirin. Veya ikinci seçenek, kitaplıkları doğrudan programlama ortamına kurmaktır. İndirilen arşivleri paketinden çıkarmadan, Arduino IDE'de Sketch - Include Library menüsünü seçin. Açılır listenin en üstünde, .Zip Kitaplığı Ekle'yi seçin. Görüntülenen iletişim kutusunda eklemek istediğiniz kitaplığı seçin. Sketch - Include Library menüsünü tekrar açın. Açılır listenin en altında görmelisiniz yeni kütüphane. Artık kütüphane programlarda kullanılabilir. Tüm bunlardan sonra Arduino IDE'yi yeniden başlatmayı unutmayın.

Sıcaklık sensörü, Tek Tel protokolüne göre çalışır ve her cihaz için benzersiz bir adrese sahiptir - 64 bitlik bir kod. Her seferinde bu kodu aramak pratik değildir. Bu nedenle, önce sensörü Arduino'ya bağlamalı, Dosya - Örnekler - Dallas Sıcaklık - OneWireSearch menüsünde bulunan çizimle doldurmalısınız. Ardından, Araçlar - Bağlantı Noktası İzleme'yi çalıştırın. Arduino sensörümüzü bulmalı, adresini ve mevcut sıcaklık okumalarını yazmalı. Sensörümüzün adresini kopyalıyoruz veya basitçe yazıyoruz. Arduino_WG12864B_Term taslağını açın, satırı arayın:

Byte addr=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97);//sensörümün adresi

Benim sensörümün adresini değiştirerek sensörünüzün adresini kaşlı parantezler arasına yazıyoruz.

Stoklamak:

//u8g.setPrintPos(44, 64); u8g.print(sn); // Hareketin doğruluğunu kontrol etmek için saniye çıktısı

"Veri" yazısının yanında saniyeleri göstermeye yarar. Bu, zamanın akışını doğru bir şekilde ayarlamak için gereklidir.
Saat hızlı veya geri ise, satırdaki değeri değiştirmelisiniz:

If (micros() - prevmicros >494000) ( // 500000 olarak ayarlamak için başka bir şeyle değiştirin

Saatin yeterince doğru olduğu sayıyı ampirik olarak belirledim. Eğer saatiniz hızlıysa bu sayıyı artırın, gerideyseniz azaltın. Hareketin doğruluğunu belirlemek için saniye çıktısına ihtiyacınız var. Sayının hassas kalibrasyonundan sonra, saniyeler yorumlanabilir ve böylece ekrandan kaldırılabilir.

Bir meskenin mühendislik iletişimine yönelik entegre yönetim sistemleri, " Akıllı ev giderek daha fazla popülerlik kazanıyor. Bu sistemlerin yaygın olarak kullanılmaya başlanması, bileşenlerin yüksek maliyeti elemanlar ve montaj işleri. Arduino tabanlı bir akıllı ev, elektronik konusunda en azından biraz bilgili olan herkes için oldukça uygun fiyatlı bir çözümdür.

arduino nedir

Arduino, altında bulunan markadır. donanım ve yazılım otomasyon ve telekontrol sistemlerinin bağımsız inşası için.

Aslında bu, çok çeşitli yeteneklere sahip modüler bir kurucudur. Arduino donanımı, üzerinde organize edilmiş çok çeşitli baskılı devre kartlarıdır. çeşitli sensörler, aktüatörler ve genişletme kartları. Sistemin çekirdeği programlanabilir mikrodenetleyicili kartlar farklı seviyeler Arduino Pro Mini'den Arduino Mega'ya zorluk derecesi. Genişletme kartları kullanmanıza izin verir çok sayıda harici cihazlar.

küçük bir baskılı devre kartı bir mikrodenetleyici kurulu, bazı ayrı elemanlar, kuvars ve Farklı türde genişletme kartlarının eklenmesiyle raf yapılarının monte edildiği dikey pimler dahil konektörler. Atmega çipleri mikrodenetleyici olarak kullanılır. Denetleyici türü belirler işlevsellik giriş ve çıkış sayısına bağlı olarak ücretlendirilir.

Çok yaygın modülarduino Unomikrodenetleyici ileatmega328 aşağıdaki özelliklere sahiptir:

  • Dijital G/Ç - 14
  • Bunlardan 6 tanesi PWM'dir.
  • Analog girişler - 6
  • Bellek - 32 KB
  • Güç - 7-12 V
  • Fiyat - 950 ruble

Dijital kişiler Belirli bir işlevi gerçekleştirmek için programlanabilir. Bir giriş veya çıkış olabilir. Bu girişler/çıkışlar, çalışması için iki seviye gerektiren cihazlarla çalışabilir. Bu, besleme voltajına yakın mantıksal bir veya seviye ve sıfıra karşılık gelen mantıksal düşük seviyedir. Açık dijital girişler iki seviyeli sensörler bağlanabilir. Bunlar bir çift mıknatıslı kamış anahtarı içerir. Bu sensör, kapı ve pencerelerin açılmasına tepki verir. Birçok hırsız ve yangın alarm sensörü bu prensipte çalışır.

Dijital çıkışlar, çeşitli ev aletlerinin bağlı olduğu ağ soketlerini açıp kapatan elektromanyetik rölelerin çalışmasını kontrol edebilir. Arduino'dan Smart, hazır bir endüstriyel setten çok daha ucuza mal olacak.

Analogdan dijitale dönüştürücüler aracılığıyla analog girişler, sıcaklık sensörlerinin, aydınlatmanın ve diğer bazı cihazların durumu hakkında denetleyiciye bilgi iletir. Sensörlerin okumalarını hafızada saklanan komutlarla karşılaştırarak, sistemin merkezi birimi, güçte yumuşak bir değişimin gerekli olduğu cihazları kontrol edebilir. Darbe genişliği modülatörüne bağlı altı çıkış, yük gücünün düzgün bir şekilde kontrol edilmesini sağlar. Örneğin, bir lambanın parlaklığını ayarlayın, bir ısıtıcının sıcaklığını ayarlayın veya bir elektrik motorunun hızını kontrol edin.

en güçlü ve çok işlevli tahta Bu hattın bir tanesi Arduino Mega'dır. PCB üzerine monte edilmiş denetleyiciAT mega 2560 , ayrı elemanlar, güç kaynağı için USB konektörü. Kart, G/Ç işlevlerini gerçekleştirmek için programlanabilen 54 evrensel kontağa sahiptir. 14 tanesi darbe genişlik modülasyonu kullanarak analog cihazları kontrol edebilir. 16 analog giriş, herhangi bir analog cihazı bağlamak için tasarlanmıştır.

denetleyici kurulu arduino Mega 1.500 ruble içindeki maliyetler. Programlamanın en kolay yolu, kişisel bilgisayar USB bağlantı noktası aracılığıyla.

Arduino için çevresel modüller

Denetleyici kartı sistemin çekirdeğidir, ancak ona herhangi bir aygıt bağlayamazsınız. Çıkışlar küçük bir yük kapasitesine ve sınırlı bir akıma sahiptir. Yönetim sistemini organize etmek Ev aletleri harici güç modülleri, iletişim cihazları ve diğer cihazlar gerekli olacaktır. Arduino denetleyicileri için çok sayıda çevresel modül geliştirildiğinden bu bir sorun değildir.

İşte bunlardan sadece birkaçı:

  • Gaz analizörü - MQ-2
  • Işık sensörü - 2CH-Light-2
  • Harici sıcaklık sensörü - DS18B20-PL
  • Oda sıcaklığı ve nem sensörü – DHT-11
  • Motor Sürücüleri - L298N, L9110
  • Röle modülleri - 1ch5V, 4ch5V
  • Modül uzaktan kumanda IC2262/2272

Odadaki gaz kaçağını algılayan sensör, ev gazının bileşenleri olan propan ve bütana tepki verir. Modül, hassasiyet ayarı ve analog/dijital çıkışlara sahiptir. Işık sensörü parçası olabilir otomatik sistemışık kontrolü. Ayrı ayrı ayarlanabilen hassasiyete sahip iki bağımsız kanaldan oluşur. Dış sıcaklık sensörü -55 ile +125 derece arasındaki sıcaklıklarda çalışacak şekilde tasarlanmıştır. Oda sıcaklığı ve nem sensörü, . Sıcaklık aralığı 0 ila +55 0 С ve nem %20 ila %90 arasındadır.

Arduino modüllerinin besleme voltajı 7 ila 12 volt arasında olduğundan, aynı çalışma seviyelerine sahip herhangi bir standart sensör, bir güvenlik veya yangın alarmı düzenlemek için kullanılabilir.

Motor sürücüleri tek fazlı, iki fazlı, dört fazlı ve kademeli motorları kontrol etmenizi sağlar. Bu tür cihazlar yardımıyla panjur veya perdeleri açıp kapatabilirsiniz. Sürücülere bağlı servo sürücüler, ısıtma radyatörlerindeki soğutucu akışını düzenlemenizi sağlar. Röle anahtarları "Akıllı Ev" sisteminin vazgeçilmezidir. +5 voltluk bir lojik ünitenin potansiyeli ile kontrol edilen röleler, 250 volta kadar gerilimlerde 10 ampere kadar alternatif akım devrelerinde yüklerin anahtarlanmasına izin verir.

Onların yardımıyla elektrik prizlerini, elektrikli pompaları ve diğer sistemleri açıp kapatabilirsiniz.

Uzaktan kumanda modülü, bir uzaktan kumanda ve bir alıcı cihazdan oluşur. Uzaktan kumanda dört düğme ile donatılmıştır ve komutların alıcı birime 100 metreye kadar bir mesafeden iletilmesini sağlar. Tüm çevresel modüller aynı besleme voltajına sahiptir ve herhangi bir Arduino mikro denetleyicisi ile uyumludur.

"Akıllı Ev" sisteminin organizasyonu

Belirli beceriler olmadan, bilgi Devre diyagramları ve elektroniğin temelleri, "Akıllı Ev" sistemini tam olarak üstlenmemek daha iyidir.

Programlama Arduino mikrodenetleyicileri C/C++ ile gerçekleştirilmiştir.

Başlamak için, LED'i açıp kapatabilen veya mikromotorun çalışmasını kontrol edebilen en basit programları yazabilirsiniz. Bu tür programların birçok örneği var. Şu formun basit operatörlerini kullanırlar: if, while, then ve diğerleri. Okul çocuklarının bile program yazmasına izin veriyorlar. İlk programlar doğru bir şekilde yürütüldüğünde, ışığı sorunsuz bir şekilde kontrol etmek için PWM çıkışlarının kullanılacağı daha karmaşık cihazları birleştirmeyi deneyebilirsiniz.

Arduino'da kendi ellerinizle bir "Akıllı Ev" yapmak için, her oda için sensör ve aktüatör sayısını gösterecek teknik bir proje hazırlamanız gerekir. Birkaç basit işlevin uygulanacağı bir odayla başlayabilirsiniz. Bazıları harici sensörlerden gelen sinyallerle, bazıları da zamanlayıcı sinyalleriyle yürütülür. Bir kişi sabah işe kalktığında, zamanlayıcının sinyalindeki Arduino denetleyicisi elektrikli su ısıtıcısını veya kahve makinesini açacaktır. Dış hava sensörü tarafından algılanan dışarısı karanlıksa, odadaki ışık düzgün bir şekilde yanacaktır. Hem uyumak hem de uyanmak için konforlu oda sıcaklığı da ayarlanabilir.

Az sayıda işlev için Arduino Uno mikrodenetleyici ve bir dizi çevresel modül uygundur.

Ev aletlerini kontrol etmek için elektrik prizlerini açıp kapatan röle anahtarlarına ihtiyacınız olacak. Işığı kontrol etmek için bir hareket dedektörüne ihtiyacınız var. Akıllı sistem mutfağa kurulu ise, sağlanması gerekir. otomatik açma davlumbazlar, bir evsel gaz kaçağı sensörü ve bir su kaçağı sensörü. Odaya yangın alarm elemanı olarak bir duman dedektörü takılmalıdır.

Çözüm

Arduino denetleyicisi, bir akıllı ev projesini tamamlamanıza ve nispeten küçük bir miktarı karşılamanıza izin verecektir. Üç odalı bir daireyi donatmanın tüm maliyetlerini hesaplarsak, miktarın 30-40 bin rubleyi geçmesi pek olası değildir. İşlev sayısını azaltırsanız, bütçe daha da mütevazı olacaktır.

Geçtim, baktım ve burada farklı ev yapımı ürünler hakkında ilginç şeyler yazıyorlar. Ayrıca son zamanlarda bir şey yaptım, izin ver, sanırım yazacağım, belki birinin işine yarar, peki ya da sadece ilginç olacak. Anahtar ve priz panellerine yerleştirmek için bütçeye uygun bir DIY sensörünün donanımından bahsediyoruz.

Ama sırayla gidelim.

Nispeten uzun bir süredir "Akıllı Ev" için otomasyon sistemiyle ilgileniyorum. Şimdi birkaç tane var farklı sistemler birine bağlı. Hem endüstriyel hem de ev yapımı bileşenler var. Son ev yapımı üründen bahsetmek istiyorum.

Bir süre önce internette MySensors ev otomasyon sistemine rastladım. Arduino ve nRF24L01+ tabanlı oldukça gelişmiş (ve sürekli gelişen) kablosuz sistem. Ancak, kimin ilgilendiği umrumda değil - kaynak bakacaktır.

Sistemin benim için başlıca avantajları, iyi bir yazılım desteği, çift yönlü iletişim, bileşenlerin kullanılabilirliği ve düşük maliyetleriydi.

Breadboard'larda yeterince oynadıktan sonra, bir evin iç kısmına yeterince entegre edilebilecek bir cihaz geliştirmeye karar verdim (WAF'ı göz ardı edemezsiniz). Diğerleriyle birlikte standart 63 mm'lik bir kutuda duvara gömülebilen bir cihaz ortaya çıktı.

Bu ilk montaj, sonrakileri daha doğru yapmaya çalışacağım. Büyük delik (ışık sensörü için) bir Pleksiglas çubukla kapatılacaktır.

Yarı demonte bir biçimde şöyle görünür:

Diğer taraftan görünüm:

Hepsi bir (Çin) 8MHz/3.3V Arduino Pro Mini, bir nRF24L01+ radyo modülü, bir HC-SR510 hareket sensörü, bir DHT22 sensörü (sıcaklık ve nem), bir BH1750 ışık sensörü ve standart bir JUNG fişinden (muhtemelen Gira, Berker, vb. Toplam maliyet yaklaşık 15 dolar.

PCB, Eagle tarafından tasarlanmıştır. kaynaklar. ITEADStudio'dan sipariş edildi, iyi yapıldı (ipek hariç, yazılar öyle çıktı).



Belki de yazı tipi çok küçük ve incedir. Gerberaya çok yakıştı.



Montaj işlemi sırasında bazı küçük rahatsızlıklar keşfedildi, bir şeyler geliştirilebilir, ancak genel olarak tahta oldukça kullanışlı.

Bu proje fikri tatilim sırasında ortaya çıktı ve beni büyüledi.

Düşünce şöyle bir şeydi: "Kendi kolumla kontrol edilebilecek bir robot kola sahip olmak harika olurdu!". Ve bir süre sonra bu projeyi geliştirmeye ve uygulamaya koyuldum. Beğeneceğinizi umuyoruz!

Projenin ana bileşenleri eldiven ve robotik kolun kendisidir. Kontrolör olarak arduino kullanılmıştır. Robotik kolun hareketi servo motorlar tarafından sağlanmaktadır. Eldiven, eğilme sensörleri ile donatılmıştır: eğilmeye karşı dirençlerini değiştiren değişken dirençler. Gerilim bölücünün bir tarafına ve sabit dirençlere bağlanırlar. Arduino, sensörler büküldükçe voltajdaki değişimi okur ve sinyali orantılı olarak dönen servo motorlara gönderir. Çalışan projenin videosu aşağıdadır.

Kol tasarımı, açık kaynaklı InMoov projesinden alınmıştır. Proje sayfasında tüm düğümlerin 3 boyutlu modellerini indirebilir ve 3 boyutlu yazıcıda yazdırabilirsiniz.

Aşağıda, kendi eldivenle kontrol edilen robotik kolunuzu uygulamak için gereken tüm adımlar yer almaktadır.

gerekli malzemeler

Proje için ihtiyacınız olacak:

Tüm! Robotik kol projenize başlayabilirsiniz!

el yazdırma

El, InMoov adlı açık kaynaklı bir projenin parçasıdır. Bu, 3 boyutlu bir yazıcıda yazdırılan bir robottur. El, genel tasarımın yalnızca ayrı bir birimidir. Bu sayfadan indirin ve aşağıdaki ayrıntıları yazdırın:

Auriculaire3.stl

Bilek küçükV3.stl

Her ihtimale karşı, tıklanabilir bir parça listesi ekliyorum, çünkü bazıları ana proje sayfasından kaldırıldı.

RobCableFrontV1.stl

RobRingV3.stl (Servolarıma uyması için bu kısımda ek delikler açmak zorunda kaldım)

RobCableBackV2.stl

RobServoBedV4.stl

(Bunlar iki "kılıf" parçasıdır - yapısal sağlamlık ve işleyişi açısından gerekli değildirler)


Toplamda, yazdırmak yaklaşık 13-15 saat sürdü. Baskı kalitesine bağlıdır. MakerBot Replicator 2X kullandım. Parmak detaylarını standart veya yüksek çözünürlük Yapıda istenmeyen sürtünmeyi önlemek için.


Bükülme sensörlerini Arduino'ya bağlama

Bükülme sensörlerini Arduino'ya bağlamak için devreye bir voltaj bölücü eklememiz gerekiyor. Bükülme sensörleri esasen değişken bir dirençtir. İle birlikte kullanıldığında sabit direnç, iki direnç arasındaki voltaj farkını izleyebilirsiniz. Arduino analog pinlerini kullanarak farkı takip edebilirsiniz. Bağlantı şeması aşağıda gösterilmiştir (kırmızı konektör voltajdır, siyah topraktır, mavi, Arduino analog girişine bağlı olan sinyalin kendisinin konektörüdür).


Fotoğraftaki dirençlerin değeri 22 kOhm'dur. Kabloların renkleri, bağlantı şemasında gösterilen renklere karşılık gelir.

Sensörlerden gelen tüm GND pinleri ortak bir toprağa bağlıdır. Toprak, Arduino'daki GND pimine gider. Arduino üzerinde +5V tüm sensörlerden gelen ortak güç pinine bağlanır. Her mavi sinyal konektörü, mikrodenetleyici üzerindeki ayrı bir analog girişe bağlanır.




Devreyi küçük bir devre kartı üzerine kurdum. Eldivene daha fazla sabitlemek için tahtanın boyutlarının daha küçük seçilmesi tavsiye edilir. Kurduğumuz devreyi basit bir iplik ve iğne yardımıyla eldivene sabitleyebilirsiniz. Ayrıca tembel olmayın ve çıplak temas noktalarında hemen elektrik bandı kullanın.




Sensörlerin eldivene takılması

Sensörleri ve devre kartımızı eldivenin üzerine kurmaya başlayabiliriz. İlk olarak, sensörlerin plastiğinde küçük bir delik açın. Algılama elemanının bittiği yerlere delikler açılır. ÖNEMLİ! Hassas malzemede asla delik açmayın. Sonra bir eldiven giyin. Her eklemin üstüne bir kurşun kalem veya tükenmez kalemle işaretler yapın. Sensörleri monte etmek için bu yerleri kullanacaksınız. Bükme sensörleri normal bir diş ile bağlanır. Sensörleri eldivene dikin. Sensörün uçlarında açtığınız deliği kullanın. Eklemlerin işaretlendiği yerlerde, sensörler üstte bir iplik tarafından "yakalanır". Bütün bunlar aşağıdaki fotoğrafta daha ayrıntılı olarak gösterilmektedir. Devre kartı, sensörlere benzer şekilde eldivene dikilir. Lütfen parmakların hareketi için iletkenlerin uzunluğunda belirli bir pay bırakılması gerektiğini unutmayın. Devre kartımızı kurarken ve ondan sensörlere giden konektörlerin uzunluğunu seçerken bu dikkate alınmalıdır.






Bu aşamada ayrıntıya girmeyeceğim. InMoov web sitesinde ("Montaj Taslakları" ve "Montaj Yardımı" altında) ayrıntılı olarak ele alınmıştır:

Elinizi monte ettiğinizde, düğümlerin uzayda yönlenme açısından doğru takıldığından emin olun. Mafsallar arasındaki sürtünmeyi azaltmak için robot kolunun parmaklarında 3 mm'lik bağlantı elemanları için delikler açmayı unutmayın. Dışarıdan cıvataları tutkalla doldurdum.


Oltayı kurmak için acele etmeyin. Önce servo motorların çalışmasını kontrol edin.

Servo motor testi

Bu noktada, servolar robotik kolunuzun arkasına takılmış olmalıdır. Servoyu Arduino'ya ve güç kaynağına bağlamak için küçük bir devre tahtası kullandım. Her pozitif servo motor pimini (kırmızı) devre tahtasının bir rayına ve negatif pimi (siyah veya kahverengi) diğer raya bağlayın.

ÖNEMLİ! Arduino pinini negatif raya bağlamayı unutmayın: tüm toprak pinlerinin birbirine bağlanması gerektiğini unutmayın. VCC pimi farklı güç kaynaklarına bağlanabilir, ancak GND aynı olmalıdır.

Programı Arduino'ya yükleyin (programlı dosya ektedir). Sensörlerin, servo motorların vb. bağlantılarının doğru olduğundan emin olun. Doğruydu. Bir eldiven giyin ve Arduino'yu açın. Servo motorlar, hareket ettirdiğiniz parmağa bağlı olarak dönmelidir. Servolar hareket ediyorsa, her şey çalışıyor demektir!


Daha deneyimli bir Arduino kullanıcısıysanız ve viraj sensörlerinden akım değerlerinin nasıl kontrol edileceğini biliyorsanız, programdaki aralığı kendi gerçeklerinize uyacak şekilde ayarlayabilirsiniz. Tüm viraj sensörlerinin yaklaşık olarak aynı olduğunu varsayıyorum, ancak durum böyle değilse, sensörleri kalibre etmek kesinlikle size yardımcı olacaktır.

Servolar düzgün çalışmıyorsa, kablo bağlantılarını doğru yaptığınızdan emin olun (örneğin ben bu proje üzerinde çalışırken Arduino'nun GND pinini güç kaynağının GND'sine ve tüm servolara her zamanki gibi bağlamayı unutmuşum. Bu durumda hiçbir şey çalışmayacaktır). Devam etmeden önce her şeyin yolunda olduğundan emin olun.

Olta ekleme

Olta eklemek, robot kol projesinin muhtemelen en zor ve sorumlu kısmıdır. InMoov web sitesinde bunun için talimatlar var. Konsept basittir, ancak pratikte uygulamak o kadar kolay değildir. Lütfen projenin bu kısmının odaklanma ve sabır gerektirdiğini unutmayın. Benim versiyonum ile InMoov tasarımı arasındaki tek fark yapıştırıcı kullanımı. Bu sayede serv kalibrasyonu yaparken daha fazla sünger ayarı imkanı elde edebiliyoruz. Bunu yapmak için yapıştırıcıyı eritmek ve ihtiyacımız olan cıvataları sıkmak yeterlidir. Tabii ki, tasarımın güvenilirliği düşüyor. Sonunda, son ayar ve kalibrasyondan sonra, istediğimiz zaman başka bir sabitleme seçeneği kullanabiliriz.

Servoları kalibre etmek için robot kolun parmakları masanın üzerinde olacak şekilde rotorları döndürün. Arduino'nuzu ve güç kaynağınızı bağlayın. Tahrik külbütörlerini, kolun tamamen "yatar" durumunda gerginlik maksimum olacak şekilde ayarlayın.


Kalibrasyon sürecini açıklamak oldukça zordur. Ek olarak, örneğin InMoov ile talimat bana uymadı. Yani, sabitlerken, hayal gücünüzü göstermeniz ve gerçeklerinize uyum sağlamanız gerekir - örneğin: sallanan sandalyelerin türü, misina veya iplik türü, tasarım ve montaj hataları, servo motorların robotik kolun eklemlerine göre kurulum mesafesi.

Neyse ki, bu projenin son aşaması!

sonsöz


Çok daha karmaşık ve doğru (ve aynı zamanda pahalı) tasarımlar olmasına rağmen, yukarıdaki proje çok ilginç ve pratik uygulama için mükemmel bir potansiyele sahip. Bu tür tasarımlar, konseptin kendisinin doğru olmaması nedeniyle, bir kişiyle doğrudan temas halinde kullanılmamalıdır. Ancak endüstri, tıp vb. eklem hareketlerinin doğruluğu için artan gereksinimler olmayan görevler için robotik kolumuz oldukça uygundur. Elin daha fazla "yükseltilmesi" açısından - burada tarla genellikle sürülmemiştir. Kablosuz kontrolden başlayarak, sürücülerin değiştirilmesi, boyutları, ek serbestlik derecelerinin geliştirilmesi ile sona erer.

Arduino'yu bu yüzden seviyorum: çok hızlı bir şekilde ve çok az bir parayla, yalnızca programlaması kolay olmakla kalmayıp aynı zamanda gerçekten ilginç görevleri de gerçekleştirebilen bir cihazın maketini veya prototipini oluşturabilirsiniz.

Yorumlarınızı, sorularınızı bırakın ve paylaşın kişisel deneyim altında. Tartışmada genellikle yeni fikirler ve projeler doğar!

Uzun zamandır banyodan sonra banyoyu kurutma işlemini otomatikleştirmek istiyordum. Nem konusunda birçok inceleme aldım. Onunla başa çıkma yöntemlerinden birini (deyim yerindeyse) uygulamaya karar verdim. Bu arada kışın çamaşırlarımızı banyoda kurutuyoruz. Egzoz fanını açmanız yeterlidir. Ancak fanı izlemek her zaman kullanışlı değildir. Bu yüzden bu davaya otomasyon koymaya karar verdim. İlk uygulama deneyimi başarısız oldu. İnceleme öyleydi. Ama pes etmedim...

Yeni bir daireye taşındığımda, hemen kaputa çek valfli bir fan koydum. Banyodan sonra banyoyu kurutmak için vantilatör gereklidir. Komşulardan gelen yabancı kokuların daireye girmesini önlemek için (fan sessizken) çek valf gereklidir. Olur. Tüm havalandırma kanalları ayrıdır, ancak görünüşe göre döşeme sırasında çimento tasarrufu sağlanmıştır. Muhtemelen koku çatlaklardan geçer.
Hayranlar, çeşitli seçeneklerim var. Basit olanlar var, fotoğraftaki gibi bir zamanlayıcı (zaman aralığı ayarı) var.


Bu güne kadar kullandığım şey buydu.
Bu özel durumda (zamanlayıcılı bir fanı olmayan), her şey yazılım düzeyinde yapılabilir.
Bir "karınca yuvası" apartman dairesinde yaşadığım için çamaşır kurutmak için tek yer balkon. Banyoda solabilir. Kurutma, düşük nem veya hava sirkülasyonu gerektirir. Her iki koşulu da yerine getirmek en iyi seçenektir. Fanın bu sorunu çözmesi gerekiyordu. İlk başta, yaptığı tam olarak buydu. Ana şey, kapatmayı unutmamaktır. Fan çalışırken camı hafifçe açmak gerekir. Bir havuz ve iki boruyla ilgili okul sorununu hatırlatmanız gerekiyor mu? Havanın davlumbaza girebilmesi için daireye bir yerden girmesi gerekir. Plastik pencereleri değil ahşap pencereleri olanlarda sorun olmaz. Yeterince çatlak. Ancak plastikle daire teraryuma dönüşüyor.
İşte o zaman süreci otomatikleştirmeyi düşünmeye başladım. Bu yüzden sensörleri sipariş ettim.
Fikrimi uygulamanın üzücü deneyimini zaten paylaştım. İşte o modül. PRINCIPLE'da çalışamaz. Ama hiçbir şey kalmayacak. Ve o kullanılacak.


(Güç kaynağı voltajı: 5V. maksimum yük: 10A 250V AC ve 10A 30V doğru akım). Röle kutusu olarak kullanıyorum. Normal bir fan için bu yeterli.
Modülün şemasını da çizdim. Bağlantı sorunu olmayacak.


Kırmızı LED, besleme voltajının varlığını gösterir. Yeşil - röle aktivasyonu. İşe yaramaz sensörü (nem sensörü, artık yok) 10kΩ dirençle değiştirdim. Ve ayrıca daha fazla direnç ekledi. "Akıllı" bloğa gidecek. Her ikisi de kırmızıyla vurgulanmıştır. Bütün bunlar olası yanlış anlamaları ortadan kaldırmalıdır. Sonuçta, röle ünitesi 5V'luk bir voltajla ve "akıllı" ünite 3,3V'luk bir voltajla beslenir. Röle bloğu düşük bir seviye tarafından kontrol edilir. Yüksek bir seviye röleyi (fan) kapatır. Ürün yazılımı bunu dikkate alır.
Devre, LM393'teki bir karşılaştırıcıya dayanmaktadır. Düzeltici direnci başlangıçta nem anahtarı eşiğini ayarlamak için tasarlanmıştır. Biraz döndürülmesi gerekebilir.
Kullanılabilir basit bloklar röle. Satılıklar. Son başarısız girişimden sonra kalanları kullanacağım.
AM2302 (DHT22) sensörlerinin hangi biçimde geldiğine bakmanın zamanı geldi. Aynı anda üç tane sipariş verdim. Banyoyla sınırlı olduğunu düşünmüyorum. Kafamda bir sürü fikir var. Sadece bunların uygulanması için zaman ve arzu nerede bulunur?


Sensörler antistatik torbalarda kapatıldı. Hepsi akılda. Lehimleme doğrudur. için talepler dış görünüş Sahip değilim. Tahta bile yıkanır.


Mağaza sayfasında şöyle yazıyor:

AM2302 Humicap dijital sıcaklık ve nem modülü, kalibre edilmiş bir sıcaklık ve nem kombine sensörü içeren bir dijital çıkış sinyalidir. Ürünlerin yüksek güvenilirliğe ve mükemmel uzun vadeli kararlılığa sahip olmasını sağlamak için özel bir dijital modül yakalama teknolojisi ve sıcaklık ve nem sensörü teknolojisi kullanır. Sensör, kapasitif bir nem algılama elemanı ve yüksek hassasiyetli sıcaklık ölçüm cihazları ve bağlı yüksek performanslı 8 bitlik bir mikro denetleyici içerir. Bu nedenle, ürün mükemmel kaliteye, hızlı tepkiye, parazit önleme özelliğine, yüksek maliyete ve diğer avantajlara sahiptir. Ultra küçük boyut, düşük güç tüketimi, 20 metreye kadar sinyal iletim mesafesi. Her türlü uygulama ve hatta en zorlu uygulamalar için en iyi seçimdir.
Şartname:
Boyut: 40x23mm
Ağırlık: 4g
Voltaj: 5V
Liman: dijital iki yönlü tek veri yolu
Sıcaklık aralığı: -40-80 °C ± 0,5 °C
Nem: %20-90 BN±2 %BN
Platform: Arduino, SCM
Paket içeriği:
3 x Sensör Modülü
En azından parça tahtasında. Sensörler ayrılmaz, kırılmaz.
İşe koyulma zamanı. Kullanacaklarımın bir kısmını zaten gösterdim. Ayrıca 5V güç kaynağına ihtiyacım var. Telefon için eski (zaten gereksiz) bir şarj cihazından yapacağım.

Bu şarj cihazının USB bağlantı noktası yoktur. Eh, çok eski (daha yenilerini kullanmanızı tavsiye ederim, 5V çıkışları var). Bu nedenle, çıkış 7V'dur. MC sabitleyici KREN5'i lehimlemek zorunda kaldım. Bunda zor bir şey yok. Havya ile arkadaş kim bilir. Ve kim arkadaş değil, boşuna konuyu okur.


Çok korkma, derme çatma yaptım. Mekanizmada hata ayıkladıktan sonra her şey düzgün görünecek. Belki şarj cihazını değiştiririm. Her şey bitiş çizgisine geleceğim sonuca bağlı. "Kapsamlı bir testten" sonra yerel olarak (kalıcı olarak) kuracağım. Kış / yaz versiyonunu uygulamanız gerekebilir. yazılım. Kışın/yazın havanın sıcaklık ve nem özellikleri farklıdır.
Ayrıca önceki incelemedeki WIFI modülüne de ihtiyacım var.


Kullanışlı dönüştürücü kablosu (USB'den RS232 TTL UART'a) kablosuz programlama modül.


Fikrimin blok diyagramı basit görünüyor.


Ama elbette nüanslar var.
Fanı kontrol etmek için bir program yapmak için kalır.
Birkaç koşul:
1. Nem %68'in üzerine çıktığında fan açılır.
2. Çalışma süresi (zamanlayıcı) 5 dakika.
3. Sıcaklık ve nem verilerinin WIFI üzerinden aktarılması (her ihtimale karşı).
4. WIFI ile mod göstergesi.
1 numaralı koşulda durursanız, en basit Arduino yeterli olacaktır. Ama sadece bir Arduino kartım var ve üç WIFI modülü var :)
Şahsen benim için en zor yer programın hazırlanması, biraz (en hafif tabirle) benim konumum değil. Ancak hayat akıyor ve akışında giderek daha fazla insan kitlesini taşıyor. DHT22 nem sensörü ve WIFI modülü örneğini kullanarak Arduino'nun geniş alanlarını kavrayacağım. Ama ben başardıysam, sen de başarabilirsin.
Benim gibi aptallar için önce bazı bilgiler.
Kullanacağım panoların ayarlarında Arduino IDE programı eksik. Örneğin, ESP8266'nın eklenmesi gerekiyor.

ESP8266 örneğinde bileşen ekleme.

Öncelikle Arduino IDE'yi indirip bilgisayarıma kurdum. Sonra programı çalıştırıyorum.
Dosya → Ayarlar → Eklentiye bağlantı ekle. bağlantılar → Tamam'ı tıklayın. Bağlantı:



Bu internet bağlantısı gerektirir. mutlaka!
Sonra yönetim kurulu başkanına gidiyorum.
Araçlar→Pano:…→Pano yöneticisi.


Modülümü bulma seçerim En son sürüm. kur'a tıklıyorum.


İndirilen Arduino IDE programı ayrıca sensörler için kitaplıklardan yoksundur. Örneğin DHT22 kitaplığı da eklenmelidir.

Örnek olarak DHT22 sensörünü kullanarak kütüphaneyi bağlama.

Öncelikle internetten DHT.zip gibi bir arşiv indiriyorum. bulmak sorun değil.
sonra koşarım Arduino programı IDE.
Taslak → Kitaplığı Dahil Et → Zip kitaplığı ekle.


Bunun gibi bir sekme görünür.


Depolama yerini belirtin…Aç.
Kütüphane bağlanır.


Yapacak çok az şey kaldı :)
Nem sensörünün bağlantı şeması değişebilir. Benimki, tahtaya zaten kurulu olan üç pimli ve dirençli bir modül olarak geldi.

Ve son olarak, taslağı doldurmak.

Eskiz dolgusu.

Bitmiş taslağı açıyorum. Benim durumumda, "WiFi-DHT22_AleksPoroshin68.ino.


Arduino IDE otomatik olarak başlayacaktır.
Sonra programlayıcıyı bağlarım, araçlara giderim ve Com-port'u bağlarım. Bağlı olduğu vurgulanır. aktif edeceğim. Netbook'umda bunlardan üç tane var: bunlar com6, com8 ve com10.


Firmware öğreniyorum. Erişim adını ve şifresini değiştirebilirsiniz.

İndir butonuna tıklıyorum.


Kroki derleniyor. Yeterince uzun.


Bu sırada, sıfırlama düğmesine basmanız gerekir. montajlı devre modül.

Aynı zamanda GPIO 00 sıfırdadır.
İşte taslağın kendisi:
#katmak #katmak #katmak #katmak #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); kayan nokta dhtTemp = NAN; float dhtNem = NAN; int ledPin = 12; //GPIO 12 /* Bunları istediğiniz kimlik bilgilerine ayarlayın. */ const char *ssid = "AleksPoroshin"; const char *şifre = "12345678"; ESP8266WebSunucusu sunucusu(80); /* Sadece küçük bir test mesajı. Görmek için bu erişim noktasına bağlı bir web tarayıcısında * http://192.168.4.1 adresine gidin. */ void handleRoot() ( String s = "\r\n ESP201";s += " ";s += " "; //s += "Durum - Eylemler - Yapılandırma"; s += "

ESP 201 modülü

"; s += " "; if (isnan(dhtTemp)) s += " Sıcaklık: Okuma Hatası"; else ( s += " Sıcaklık: "; s += dhtTemp; s += " C"; ) if (isnan(dhtNem)) s += " Nem: Okuma Hatası"; else ( s += " Nem: "; s += dhtNem; s += " % "; ) if(digitalRead (ledPin) == YÜKSEK) s += " Egzoz: Kapalı"; else s += " Egzoz: Açık"; s += ""; server.send(200, "text/html", s); ) geçersiz kurulum() ( gecikme(1000); Serial.begin(115200); Serial.println(); Serial.print("Erişim noktası yapılandırılıyor..."); /* Yapabilirsiniz AP'nin açılmasını istiyorsanız şifre parametresini kaldırın. */ WiFi.softAP(ssid, şifre); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP adresi: "); Seri yazdırma(myIP); server.on("/", handleRoot); server.begin(); Serial.println("HTTP sunucusu başladı"); dht.begin(); Serial.println("DHT22 başlatma başarısı"); pinMode(ledPin, ÇIKIŞ); ) void loop() ( getDHT(); server.handleClient(); ) void getDHT() ( dhtTemp = dht.readTemperature(); dhtHumidity = dht.readHumidity()+5; if (dhtHumidity)< 68) { digitalWrite(ledPin, HIGH); Serial.println("ledPin HIGH"); } else { digitalWrite(ledPin, LOW); Serial.println("ledPin LOW"); } }
Çok sert azarlama. Ben sadece öğreniyorum.
Programlamayı onaylamak için taslağı yükledikten sonra GPIO'yu + 3.3V'a bağlarım. Sonra kapatıyorum. Ürün yazılımı yüklenir.


Bir breadboard üzerinde bir düzen yapıyorum. Her şeyi kontrol ederim. İşler. Ama her şey olması gerektiği kadar iyi değil. İhtiyacım olan aralıkta, Çinli sensörler okumaları% 5-6 oranında hafife alıyor.


Alman kaydediciye daha çok güveniyorum. Evet ve fiyat onlarca kat daha fazla. Ve en önemlisi, testi geçti.
Programa bir değişiklik getirildi (5 birim eklendi). Bunun yanlış olduğuna katılıyorum. Ama %40-70 aralığında tam olarak gösteriyor. Karakteristiği kaldırıp kütüphaneyi düzeltmek daha doğru. Buna hazır değilim :). Sensörlerin geri kalanı da yalan söyledi. Her ne kadar hepsi yaklaşık olarak aynı gösterdi.

WIFI modülüme bağlanırsa web sayfası şöyle görünür:


Şifreler ve görünümler taslakta belirtilmiştir.
Anahtarlama %68 nemde gerçekleşir. Herşey temiz.


Ancak bir uyarı var. Ve göz ardı edilemez. %68 nem sınırında, fan açılıp kapanarak döngü yapabilir. Bu sorunu çözmek için bir zamanlayıcıya ihtiyacınız var. Zamanlayıcılı bir fanım var. Onlar. Sorun değil. Düzenli bir hayranı olan herkesin bu sorunu yazılım düzeyinde çözmesi gerekecektir.
Diğer görevim, tüm bunları şemaya göre bir araya getirmek, ancak artık bir breadboard modelinde değil ve bir ay boyunca test etmektir. Çalışma sırasında tüm değişiklikler yapılabilir. Ne yapacağımı ve nereye ekleyeceğimi, her şeyi yazdım.
Sensörün kurulumu hakkında birkaç söz. Havalandırmaya koymanı tavsiye etmem. Nedeni basit. En temiz ve en bakımlı dairede bile, fan açıldığında oraya (veteriner kanalına) akan toz vardır. Ama bir yıl önce fanı çıkardım ve iyice temizledim.


Sensörleri hasarları nedeniyle sık sık değiştirmemek için yakınlarda onlar için daha uygun bir yer bulmanızı tavsiye ederim. Ayrıca tozdan korumak için dokunmamış bir bezle veya benzeri bir şeyle sarabilirsiniz. Ve mutlu olacaksın.
Nem kontrolünün "katsayılarını" kendiniz ayarlamak istiyorsanız, konunun en azından biraz içinde olmanız gerektiğini söylemeyi tamamen unuttum. Evinizde böyle aletler yoksa...


Onlar olmadan bu konuda bir şeyler yapmanız çok zor olacaktır.
Bu kadar.
İncelememdeki bilgilerin nasıl uygun şekilde imha edileceğine herkes kendisi karar verir. Bir şey net değilse, sorular sorun. Umarım en azından birine yardımcı olmuştur. Belki birisi bana yardım etmek isteyecektir. Çok minnettar olacağım.
Herkese iyi şanslar!
İşlev kontrolü:


Devam edecek…

Ürün, mağaza tarafından yorum yazılması için sağlanmıştır. İnceleme, Site Kuralları'nın 18. maddesine uygun olarak yayınlanır.

+51 almayı planlıyorum Favorilere ekle incelemeyi beğendim +26 +65