İçindekiler:

Otomatik Bitki Saksısı - Küçük Bahçe: 13 Adım (Resimli)
Otomatik Bitki Saksısı - Küçük Bahçe: 13 Adım (Resimli)

Video: Otomatik Bitki Saksısı - Küçük Bahçe: 13 Adım (Resimli)

Video: Otomatik Bitki Saksısı - Küçük Bahçe: 13 Adım (Resimli)
Video: Bakımı Kolay Çiçekler! | Neredeyse Bakımı Olmayan En Savaşçı 4 Bitki! 2024, Temmuz
Anonim
Otomatik Bitki Saksısı - Küçük Bahçe
Otomatik Bitki Saksısı - Küçük Bahçe

Howest Kortrijk'te Multimedya ve İletişim Teknolojisi öğrencisiyim. Son ödevimiz için kendi seçeceğimiz bir IoT projesi geliştirmemiz gerekiyordu.

Etrafta fikir ararken, bitki yetiştirmeyi seven ve otomatik bir saksı üzerinde çalışmaya başlayan annem için faydalı bir şeyler yapmaya karar verdim.

Bu otomatik bitki saksısı Little Garden'ın ana görevleri şunlardır:

  • ölçün

    • Sıcaklık
    • Işık şiddeti
    • Nem
    • Toprak nemi

Ölçümleri bir veritabanına kaydedin

Belirli bir değer çok düşükse bitki büyümesi için koşulları iyileştirin

Cihazın bir web sitesi üzerinden izlenmesine ve yönetilmesine izin verin

Her adım işarete kadar takip edilmek zorunda değildir. Olanların çoğu kişisel tercihiniz olabilir veya geliştirilebilir. Bu yapı, parçaların daha sonra geri kazanılabileceği şekilde yapıldı, bu nedenle daha kalıcı hale getirmek için yinelemenize farklı bir şekilde yaklaşmak isteyebilirsiniz.

Adım 1: Sarf Malzemeleri

Gereçler
Gereçler
Gereçler
Gereçler
Gereçler
Gereçler

Bu proje için çoğu malzemeyi elde etmek çok zor değil, ancak benim durumumda çok fazla geri dönüştürülmüş malzeme ile çalıştım. Ayrıca daha sonra bazı malzemeleri geri kazanabileceğimden emin olmak zorundaydım.

Temel bileşenler:

  • Raspberry Pi 4 model B
  • Raspberry Pi güç kaynağı
  • Ahududu Pi T-ayakkabıcı
  • 16GB mikro SD kart
  • 3.3V ve 5V ile breadboard güç kaynağı
  • ekmek tahtası
  • 12V güç kaynağı

Sensörler:

  • DHT11: Nem ve Sıcaklık Sensörü
  • BH1750: Işık yoğunluğu sensörü
  • Toprak nemi sensörü
  • MCP3008

Aktüatör bileşenleri:

  • 220V Su pompası
  • 12V LED şerit
  • Röle modülü Velleman
  • İPUCU 50: NPN transistörü
  • 16X2 LCD-mod ekran
  • PCF8574a

Dirençler:

  • 3 x 330 Ohm direnç
  • 1 x 5k Ohm direnç
  • 2 x 10k Ohm direnç
  • 1 x 1k Ohm direnç
  • 1 x 10k Potansiyo direnç

Malzemeler:

  • Prefabrik sera/bitki saksısı
  • Bağlantı kutusu
  • Plastik su şişesi
  • Fırdöndüler
  • Atlama telleri + normal tel
  • Stikler
  • Lehimleme teneke + ısıyla daralan makaron
  • Çift taraflı ördek bandı
  • Boya

Araçlar:

  • Tutkal tabancası
  • Delmek
  • Testere bıçağı
  • Havya
  • Kutu kesici
  • Boya fırçası

Bu projeyle ilgili en güzel şey, bileşenleri ekleyerek/çıkararak ve kodu biraz değiştirerek genişletilebilir veya basitleştirilebilir. Örneğin 220V pompayı 12V pompa ile değiştirerek cihazdan bir güç adaptörünü çıkarabilirsiniz.

Adım 2: Fritzing Şeması

Fritzing Şeması
Fritzing Şeması
Fritzing Şeması
Fritzing Şeması

Cihaz için devre tahtası ve elektrik şemaları yukarıda gösterilmiştir. Burada tüm bileşenlerin birbirine nasıl bağlandığını görebilirsiniz.

Bileşenlerin nasıl çalıştığına dair genel bir açıklama:

  • DHT11, hava nemini % olarak ve sıcaklığı °C olarak ölçer. Onunla iletişim bir I2C bu tarafından gerçekleştirilir.
  • BH1750, ışık yoğunluğunu lüks olarak ölçer. İletişim bir I2C veri yolu tarafından gerçekleştirilir
  • Toprak nem sensörü, MCP3008 tarafından Raspberry Pi için okunabilir bir dijital sinyale dönüştürülen bir dijital sinyal oluşturur.
  • 16x2 LCD modülü, Pi'den gelen IP adreslerini birbiri ardına görüntüler. Raspberry Pi'den ekranın bit pinleri için bir dizi sinyale dönüştürecek bir sinyal alan bir PCF8574a'ya bağlanır. LCD'den gelen E ve RS pinleri doğrudan Pi'ye bağlanır. Potansiyo direnci ekranın parlaklığını belirler.
  • Su pompası, kendisi ile 220V güç kaynağı/soketi arasında bulunan bir röleye bağlıdır. Raspberry Pi, elektrik devresini kapatmak ve pompayı çalıştırmak için röleye bir sinyal gönderebilir.
  • LED şerit, 12V güç kaynağına ve elektrik akımını değiştiren TIP 50'ye (NPN transistör) bağlanır. Raspberry Pi'den çekilen gücü sınırlamak için 1k Ohm direnç kullanılır, aksi takdirde ekstra gevrek kızartılır.

3. Adım: Ahududu Pi'yi hazırlayın

Ahududu Pi'yi hazırlayın
Ahududu Pi'yi hazırlayın

Henüz sahip değilseniz, Raspberry Pi OS görüntülerinden birini SD karta koymanız gerekecektir. Başlangıçta sorunlara neden olduğu için Lite kullanmanızı önermiyorum. Daha sonra Pi internete bağlıyken aşağıdaki komutları kullanarak Pi'nizin güncel olduğundan emin olmanız gerekir:

  1. sudo apt-get güncellemesi
  2. sudo apt-get yükseltme

Bundan sonra, projenin çalışması için paketleri raspi-config veya komutlar aracılığıyla etkinleştirebilir veya kurabilirsiniz.

  • SPI
  • I2C
  • MySQL: sonraki adım
  • SocketIO: pip yükleme şişesi-socketio

Kurulumdan sonra html, CSS, Javascript ve Python ile yazılmış gerekli dosyaları ekleyebilirsiniz. Tüm kodum github depomda bulunabilir.

Adım 4: Veritabanı Modeli - MySQL

Veritabanı Modeli - MySQL
Veritabanı Modeli - MySQL

Yukarıda MariaDB aracılığıyla barındırılan ERD şemasını görebilirsiniz. Sadece MariaDB'yi kurmak için değil, aynı zamanda Pi'nizin korunduğundan emin olmak için bu MariaDB kurulum kılavuzunu izlemenizi tavsiye ederim.

Anlamak isteyenler için veritabanı aşağıdaki gibi çalışır:

Ölçümler ve aktüatör geçişleri, Metingen tablosunda satırlar halinde saklanır.

  • metingId = Ölçüm/geçiş satırının kimliği
  • deviceId = Tablodaki bu satırdan sorumlu cihazın kimliği
  • waarde = sensör ölçümünün veya aktüatör geçişinin değeri

    • sensör: ilgili birimlerde ölçüm değeri
    • aktüatörler: 0 = KAPALI ve 1 = AÇIK
  • commentaar = hatalar gibi ekstra bilgiler eklemek için kullanılan yorumlar
  • veri = ölçümün/geçişin gerçekleştiği tarih ve saat

Cihazın ayarları Ayarlar içinde saklanır.

  • settingsId = Bu satırın kimliği ve ayar değeri
  • deviceID = İlgili cihazın/sensörün kimliği
  • waarde = ayarın değeri
  • type = ayarın türü, maksimum mu yoksa minimum mu?

Son olarak Cihazlar tablosu, sensörler ve aktüatörler hakkında bilgi içerir.

  • deviceId = Bu tablodaki cihazın kimliği
  • naam = cihazın/bileşenin adı
  • merk = marka
  • prijs = bileşenin fiyatı
  • beschrijving = bileşenin özeti
  • eenheid = ölçülen değerler için birim
  • typeDevice = bileşenin bir sensör mü yoksa aktüatör mü olduğunu belirtir

Adım 5: Ön Uç: Web Sunucusunu Kurma

Ön Uç: Web Sunucusunu Kurma
Ön Uç: Web Sunucusunu Kurma

Pi, bu cihaz için web sunucusunu çalıştırmak için Apache web sunucusunu yüklemenizi gerektirir. Bu, aşağıdaki komutla yapılabilir:

sudo apt-get install apache2.

Bu yapıldıktan sonra, klasöre gidebilirsiniz: /var/www/html. Burada ön ucun tüm kodunu yerleştirmeniz gerekecek. Daha sonra IP adresine göz atarak web sitesine erişebilirsiniz.

6. Adım: Arka uç

Arka ucu çalıştırmak için, otomatik olarak başlaması için app.py dosyasını manuel olarak veya Pi üzerinde bir hizmet oluşturarak çalıştırmanız gerekir.

Fark edebileceğiniz gibi, epeyce dosya var. Kodun net bir genel görünümüne ve organizasyonuna sahip olmak için kodu olabildiğince ayırdım.

Kısa bir açıklama:

app.py: Veritabanı, donanım kodu ve arka uç kodunun birleştirildiği ana dosya

config.py: DatabaseRepositories için yapılandırma dosyası

Depolar: Veri deposuna erişim için

  • Yardımcı

    • devices_id: veritabanındaki cihaz bilgilerini tanımlamaya yardımcı olacak sınıflar
    • lcd: PCF ve LCD'yi çalıştırmak için
    • Aktüatörler: aktüatörleri çalıştırmak için sınıflar
    • Sensörler: sensörleri çalıştırmak için sınıflar

Adım 7: LED Şeridi Yerleştirme

LED Şeridi Yerleştirme
LED Şeridi Yerleştirme

LED şeridin bir parçasını kesip sera kutusunun üstüne yapıştırdım. Kullandığım şerit birden fazla pozisyonda kesilip yeniden bağlanabilir, böylece birden fazla şerit yerleştirebilir ve daha sonra kablolarla tekrar bağlayarak daha fazla alanın aydınlanmasına izin verebilirsiniz.

Adım 8: Tüplerin Yerleştirilmesi

Tüplerin Yerleştirilmesi
Tüplerin Yerleştirilmesi

Tüpler çeşitli şekillerde yerleştirilebilir, ancak benim durumumda onları dibin yan tarafına bağladım, onları diğer elektroniklerden mümkün olduğunca uzak tuttum ve suyun kire akmasına izin verdim.

9. Adım: LCD'yi Yerleştirme

LCD'yi yerleştirme
LCD'yi yerleştirme

Bağlantı kutusunun kapağını bir testere bıçağıyla bir bütün olarak kestim, ekranın geçebileceği kadar büyük, ancak PCB'nin arkasında kalması için yeterince küçük bir açıklık oluşturdum. Daha sonra bükümler kullanılarak kapağa tutturulmuştur.

LCD, Raspberry Pi'nin IP adreslerini göstererek web sitesinde gezinmek için hangi adresi kullanabileceğinizi bilmenizi sağlar.

Adım 10: Sensörleri Yerleştirme ve LED Şeridi Bağlama

Sensörleri Yerleştirme ve LED Şeridi Bağlama
Sensörleri Yerleştirme ve LED Şeridi Bağlama
Sensörleri Yerleştirme ve LED Şeridi Bağlama
Sensörleri Yerleştirme ve LED Şeridi Bağlama

Fritzleme şemalarını kullanarak, teller arasındaki bağlantıları lehimledim ve yalıtmak için ısıyla daralan tüpler kullanarak dirençleri tellerin içine yerleştirdim.

Sensörler ve LED şerit için kabloları çektiğim dönerleri takmak için sera kapağının yanlarında ve altında delikler açıldı.

Kabloları işlevlerine göre grupladım. Tellerden ve büzülme borularından gelen gerilim sensörleri ayakta tutuyordu. DHT11'in telleri üzerinde yapıştırıcı kullanmak zorunda kaldım çünkü bu daha da uzadı.

Adım 11: Pi'yi Kablolama

Pi'yi Bağlamak
Pi'yi Bağlamak
Pi'yi Bağlamak
Pi'yi Bağlamak
Pi'yi Bağlamak
Pi'yi Bağlamak

Kabloların daha sonra geçmesine izin vermek için bağlantı kutusunun yanında delikler açtım.

Daha sonra çift taraflı ördek bantlı bağlantı kutusunun altına breadboard (T-cobbler, PCF8574a, MCP3008, ayarlanabilir rezistans ve TIP50 ile), röle ve Raspberry Pi'yi yerleştirdim. Güç kaynağı devre tahtasına sığmadı, bu yüzden yan tarafa koymak zorunda kaldım ve devre tahtasına bağlamak için atlama telleri kullandım.

Son olarak adaptör, sensör ve aktüatör kablolarını, kabloları breadboard, Raspberry Pi ve diğer bileşenlere bağlayan deliklerden çektim. Pompanın kablosu kesilerek açıldı, böylece anahtar olarak kullanılabilmesi için uçları rölenin içine yerleştirebildim.

Adım 12: Su İçin Bir Kap Yapmak

Su Konteyneri Yapmak
Su Konteyneri Yapmak

1 litrelik plastik su şişesinden, daha iyi görünmesi için üstünü maket bıçağıyla kesip boyayarak su kabı yaptım. Su pompası daha sonra içine yerleştirildi. İletişim gemilerinin kuralı nedeniyle, su potansiyel olarak borulardan kendi kendine akabilir, ancak boruyu yukarıda tutmak sorunu çözer.

Adım 13: Nihai Sonuç

Son sonuç
Son sonuç
Son sonuç
Son sonuç

Beklediğin an. Artık kiri ve tohumları sera kutusunun içine yerleştirebilir ve cihazın devralmasına izin verebilirsiniz. Cihazın durumunu web sitesinden takip edebilir, aydınlatma ve toprak koşulları için optimum değerleri ayarlayabilirsiniz.

Bazı kirler ilk başta oldukça kuru olabileceğinden, önce toprağı elle sulamanızı öneririm. Bazı pompalar da oldukça yavaş su veriyor gibi görünüyor, ancak beklediğinizden daha hızlı dolacağı için çok dikkatli olmanız gerekiyor. %80'in üzerinde bir doygunluk zemini çok ıslak yapabilir. Ve toprak nemi sensörünün yeterince derin olduğundan emin olun.

Önerilen: