İçindekiler:
- Adım 1: Gerekli Bileşenler
- 2. Adım: Dil ve Protokol
- Adım 3: Eclipse Mosquitto MQTT Broker
- Adım 4: Tüm Projede Veri Akışı
- Adım 5: Sensörlerin NodeMCU ile Bağlantısı
- Adım 6: Dalgıç Su Pompasının ESP8266 ile Bağlantısı
- 7. Adım: Mosquitto Broker Kurulumu ve Raspberry Pi'de Python Programını Çalıştırma
- Adım 8: MQTT Nasıl Çalışır?
- Adım 9: NodeMCU ve ESP8266'nın Programlanması
- Adım 10: Bir Web Sayfası Tasarlama ve SQL Veritabanına Bağlanma
- Adım 11: Çalışmayı Tamamlayın
Video: Sera Otomasyonu: 11 Adım
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Sera otomasyonu, bir seranın üç parametresinin yani Toprak Nemi, Sıcaklık ve Nem'in kullanıcı tarafından bir web tarayıcısı kullanılarak uzaktan izlendiği bir projedir.
Adım 1: Gerekli Bileşenler
Gerekli bazı temel bileşenler aşağıda listelenmiştir
1. Ahududu PI Model B
2. NodeMCU Geliştirme Kurulu
3. ESP8266 Wifi modülü
4. Nem Sensörü
5. DHT11 Sıcaklık ve Nem Sensörü
6. 5V Tek Kanallı Röle
7. 5V Dalgıç Su Pompası
8. Ekmek Tahtası
9. Ekmek Tahtası Güç Kaynağı Modülü
2. Adım: Dil ve Protokol
- Mikro denetleyiciler için C Dili kullanılmaktadır.
- MQTT Mesajlaşma: MQTT, MQ Telemetri Taşımacılığı anlamına gelir. Kısıtlı cihazlar ve düşük bant genişliği, yüksek gecikme süresi veya güvenilmez ağlar için tasarlanmış, yayınla/abone ol, son derece basit ve hafif bir mesajlaşma protokolüdür. Tasarım ilkeleri, ağ bant genişliğini ve cihaz kaynak gereksinimlerini en aza indirirken aynı zamanda güvenilirliği ve bir dereceye kadar teslimat güvencesini sağlamaya çalışmaktır. Bu ilkeler aynı zamanda protokolü, gelişmekte olan “makineden makineye” (M2M) veya bağlı cihazların “Nesnelerin İnterneti” dünyası ve bant genişliği ve pil gücünün yüksek olduğu mobil uygulamalar için ideal hale getiriyor.
- Python programı, su akışını ve veritabanı bağlantısını otomatikleştirmek için kullanılır.
Adım 3: Eclipse Mosquitto MQTT Broker
Burada düğümler arasındaki kolay mesaj iletişimi için Mosquitto MQTT Broker'ı kullandım.
Eclipse Mosquitto, MQTT protokolünün 5.0, 3.1.1 ve 3.1 sürümlerini uygulayan açık kaynaklı (EPL/EDL lisanslı) bir mesaj aracısıdır. Sivrisinek hafiftir ve düşük güçlü tek kartlı bilgisayarlardan tam sunuculara kadar tüm cihazlarda kullanıma uygundur.
MQTT protokolü, bir yayınlama/abone olma modelini kullanarak mesajlaşmayı gerçekleştirmek için hafif bir yöntem sağlar. Bu, düşük güçlü sensörler veya telefonlar, gömülü bilgisayarlar veya mikro denetleyiciler gibi mobil cihazlar gibi Nesnelerin İnterneti mesajlaşması için uygun hale getirir.
Mosquitto projesi ayrıca MQTT istemcilerinin uygulanması için bir C kitaplığı ve çok popüler mosquitto_pub ve mosquitto_sub komut satırı MQTT istemcileri sağlar.
Adım 4: Tüm Projede Veri Akışı
Yukarıdaki resimde düğümler
- DüğümMCU
- ahududu PI
- ESP8266
NodeMCU, Green House'un algılama kısmıdır ve ESP8266, sensörlere göre zemin suya ihtiyaç duyduğunda suyu besleyen çalıştırma kısmıdır.
Raspberry PI, Mosquitto Broker'ı ve MQTT Broker'dan gelen mesajlara abone olan ve verileri bir SQL sunucusunda saklayan bir Python istemcisini içerir.
Adım 5: Sensörlerin NodeMCU ile Bağlantısı
DHT11 sıcaklık ve nem sensörü ve su nem sensörü 3,3 voltta çalışabilmektedir.
NodeMCU, 3,3 volttan fazlasını sağlayamaz. Böylece sensörler, NodeMCU mikrodenetleyici kartına doğrudan bağlanabilir.
Adım 6: Dalgıç Su Pompasının ESP8266 ile Bağlantısı
Gerektiğinde suyu sağlamak için bir dalgıç su pompası kullanılır.
Su pompasının çalışması için 5 voltluk bir güç kaynağına ihtiyacı vardır.
Motoru bağlamak için tek kanallı bir röle gereklidir. ESP8266'nın GPIO2 pimi etkinleştirildiğinde röle açılır ve dalgıç su pompasını kullanarak suyu otomatik olarak sağlar.
Burada ESP8266 kartına, Röleye ve dalgıç su pompasına harici güç kaynağı sağlanır.
Tam donanım bağlantım yukarıdaki resimde.
7. Adım: Mosquitto Broker Kurulumu ve Raspberry Pi'de Python Programını Çalıştırma
Raspberry PI'de Mosquitto aracısını kurma adımları aşağıdadır.
Terminali açın ve aşağıdaki komutları yazın
sudo apt-add-deposu ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get güncellemesi
sudo apt-get kurulum sivrisinek
sudo apt-get install sivrisinek istemcileri
Sivrisinek otomatik olarak başlamalıdır.
Kullanmam gereken hizmeti durdurmak ve başlatmak için
sudo hizmeti durdurma sivrisinek
sudo hizmeti sivrisinek başlat
Çoğu sitenin nerede kullanıldığını keşfettim.
sudo /etc/init.d/sivrisinek durdurma
Adım 8: MQTT Nasıl Çalışır?
MQTT, IoT projelerinde en yaygın kullanılan protokollerden biridir. Message Queuing Telemetri Aktarımı anlamına gelir.
Ayrıca, istemciler ve sunucu arasında veri alışverişi yapmak için yayınlama/abone olma işlemlerini kullanan hafif bir mesajlaşma protokolü olarak tasarlanmıştır. Ayrıca, küçük boyutu, düşük güç kullanımı, en aza indirilmiş veri paketleri ve uygulama kolaylığı, protokolü “makineden makineye” veya “Nesnelerin İnterneti” dünyası için ideal kılar.
Diğer herhangi bir internet protokolü gibi, MQTT de istemcilere ve bir sunucuya dayanmaktadır. Aynı şekilde, sunucu, müşterinin birbirleri arasında veri alma veya gönderme isteklerini yerine getirmekten sorumlu olan kişidir. MQTT sunucusuna aracı denir ve istemciler sadece bağlı cihazlardır. Yani:
* Bir aygıt (istemci) aracıya veri göndermek istediğinde, bu işleme “yayınla” diyoruz.
* Bir aygıt (bir istemci) aracıdan veri almak istediğinde, bu işleme "abone ol" diyoruz.
Adım 9: NodeMCU ve ESP8266'nın Programlanması
NodeMCU ve ESP8266 Mikrodenetleyici kartı için kaynak kodu aşağıdadır
Adım 10: Bir Web Sayfası Tasarlama ve SQL Veritabanına Bağlanma
Web Sayfası HTML, CSS ve PHP dili kullanılarak tasarlanmıştır.
PHP, sensör okumalarını veritabanından çıkarmak ve HTML sayfasında göstermek için kullanılır.
Bu projenin kalbi olarak bir python programı kullanılmıştır.
Python programının yaptığı işler aşağıdaki gibidir.
- Sensörün sensör okumalarını gönderdiği bir konuya abone olur.
- MQTT komisyoncusuna su pompası açma/kapama komutunu yayınlar.
- Sensör okumasını bir SQL veritabanında saklar.
Burada benim durumumda python programı ve SQL veritabanı bir Dizüstü Bilgisayarda mevcut. Bir Yerel Ana Bilgisayar aracılığıyla çalışan web sayfası.
Python programımın Kaynak kodu aşağıdadır.
Adım 11: Çalışmayı Tamamlayın
İşlemin devam ettiği adımlar aşağıdadır.
- NodeMCU, algılama parçası olarak çalışır ve Sıcaklık, Nem ve toprak nem seviyesini okur.
- Okumaları "Konu 1" konusuyla MQTT aracısına gönderir
- Bir dizüstü bilgisayarda python programı çalışıyor ve MQTT komisyoncusu ile "Konu 1" konusuna abone oluyor.
- NodeMCU okumaları gönderdiğinde, Mosquitto MQTT Broker verileri hemen python programına gönderir.
- Python programı daha sonra Green House'da su ihtiyacı olup olmadığını hesaplar. Daha sonra okumaları SQL Veritabanında saklar.
- Green House'da suya ihtiyaç duyulursa, python programı Mosquitto MQTT komisyoncusuna "Konu 2" başlığıyla su pompası açma/kapama mesajı yayınlar.
- ESP8266 bir aktüatör olarak çalışır. Python programının mesajı hangi konuda yayınladığı "Konu 2" konusuna abone olur. Python programı herhangi bir mesaj yayınladığında, mesaj hemen ESP8266'ya aktarılır. Açma/kapama mesajına göre dalgıç su pompasını açar/kapatır.
- Web sayfasındaki canlı okumaları görüntülemek için son aşama. Web sayfası, python programının verileri doğrudan depoladığı SQL veritabanından verileri alır ve okumaları sayfada görüntüler.