Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
Share Thread:
[Proje] Otomatik Kontrol Arayüzü (yerel olarak, webte değil)
#1
Merhaba kıymetli kardeşlerim ve büyüklerim, öncelikle aranıza yeni katılmanın haklı gururu ve sevincini yaşamaktayım.

Uzun zamandır RPi ile ilgileniyorum. Yakın zamanda da bir projeye başladım, internetteki derya deniz bilgilerden dolayı da kafam fazlasıyla karışmış vaziyette. Projeyi özetlemek gerekirse, 8 kanallı bir röle ile elektrik panosunu AM2302 ısı ve nem sensör kartından ve MQ-135 sensöründen gelen verilere göre kontrol edecek bir otomasyon üzerine çalışıyorum. 

Takıldığım en sıkıntılı nokta ise bu proje bir yerel aplikasyon olacak, yani web üzerinden değil bir 7 inç touchscreen ile kontrol edilecek. Bu bağlamda yerel bir aplikasyon için sormak istediğim sorular kısaca özetlemek gerekirse şunlar;

1- PyQt5 ile bir GUI tasarlayıp, otomatik kontrol için .py scriptleri yazarak mi kontrol etmeliyim yoksa tasarımı .py dosyasına dönüştürüp bütün kodları içine mi gömmeliyim? (tercihen ikincisi daha mantıklı geliyor, ticari bir uygulamaya dönüştürme planlarım olduğu için. Yine de danışmak istedim)

2- Bu tasarlanan ekranda sensör verilerini göstermem gerekli. Input verilerini nasıl aktarabileceğim konusunda tavsiyelerinize açığım.

Şimdilik bu kadar, şimdiden ilginize ve alakanıza teşekkür ederim. Smile
Ara
Cevapla
#2
Daha once size Facebook uzerinden de yanit verdim. Simdi burada biraz daha acik yazildigi icin biraz daha kapsamli yanit vereyim en azindan yazilim konusu icin.

Simdi ticari bir projeye donusunce is bence burada python scriptlerinden ve pyqt gibi dolambacli yollardan ziyade biraz daha native kod odakli yaklasmalisiniz.

Simdi seceneklere bakalim,

wxwidgets,
wxpython,
qt(pyqt degil)

 ve python icin gui kutuphaneleri.

Benim kisisel tavsiyem Qt ile C++ kullanilmasi. Qt sirketi embedded sistemlere ticari olarak baktigi icin burada 2 secenek mevcut,

Ya 30 gunluk Qt Enterprise deneme surumune kayit olup Qt for Device Creation'u kullanacaksiniz,

Ya da QtRpi projesini tercih edeceksiniz.(www.qtrpi.com)

Simdi ben ikisinide kullandim. Acikcasi Qt Enterprise cok rahat, size bir imaj veriyor onu atiyorsunuz Rpi'ye ve bir demo calisiyor full ekran masaustu vs. yok cok guzel ayrica ag uzerinden direkt olarak PC'nizde yazip derlediginiz yazilimi Rpi'ye gonderiyor ve hemen orada calisiyor gercek zamanli bir sekilde.

Qtrpi ise resmi bir proje degil, basarili bir sekilde kurup calistirmam biraz zamanimi aldi acikcasi Qt ye compileri tanitip baglamak ugrastirici oldu. Acikcasi cross-compile, gomulu sistemler konusunda yeniyseniz veya pek bilginiz yoksa 1. senecekle devam edin.

Ticari bir projeye donusturmek istediginiz icin projenin planli bir sekilde gelistirilebilir ve verimli calismasi gerekiyor bu yuzden Qt(C++) gercekten iyi bir secenek. QML destegi ile inanilmaz guzel arayuz olusturabilirsiniz tabi yine QML'i Python ilede kullanabilirsiniz. Bkz. PySide2 (Bu arada resmi destegi varmis Qt'nin Python'a)

GPIO konusunda da soyle bir problem yasanabilir. Simdi siz yazilimi PC'de derleyeceginiz icin local sysroot'da da ayni kutuphanelerin olmasi gerekiyor. Yani <wiringpi.h> headerini includ ettiginizde o kutuphanenin sizin PC'nizdeki raspberry sisteminde(sysroot) olmasi gerekli aksi halde surekli hata alirsiniz. Python'un avantaji ise burada ortaya cikiyor. Kod derlenmedigi icin sizin import ettiginiz WiringPi kutuphanesine sadece runtime surecinde ihtiyac duyuluyor.

Sizin bu sekilde kutuphane eklemeniz icin qemu, chroot gibi cozumler kullanmaniz gerekiyor. Ben bu sekilde OpenCV kutuphanesi eklemistim ama gercekten bir kac gunumu aldi cozmek.(Qtrpi kullanmistim.) Qt'yi bu sekilde kullanmanin en buyuk negatif yonu bu ne yazik ki. Gercekten belli konularda bilgi ve tecrube istiyor.

Tabi yine karar size ait isterseniz PyQt veya PySide kullanin isterseniz C++ ile Qt'yi kullanin.

Hemen kisa bir duzenleme ekleyeyim,

Simdi yaziliminiz ticari olacaksa python kullaniminda kaynak kodlar oldugu gibi gorunecektir ve duzenlenebilecektir.

Ayri .py scriptleri kullanmanize acikcasi gerek yok. Nesne yonelimli programlama metodunu kullanarak siniflar ve bunlara bagli degisken ve fonksiyonlari kullanip yine otomatik kontrolunuzu gerceklestirebilirsiniz. Galiba sizin buradan kast ettiginiz sey her bir fonksiyonu ayri bir Python dosyasina donusturmek, ama dedigim gibi gerek yok.

Input verisi dediginiz galiba sensorden gelecek olan degerler eger yanlis anlamadiysam. Bunlari Qt'nin signal&slot sistemini kullanarak gercek zamanli veya belli araliklarla ekran gosterebilirsiniz.
Ara
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Proje] Yerel Ağ Servisi ahmetozer_org 1 1,286 02-14-2018, 07:17 PM
Son Yorum: ahmetozer_org
  [Soru] Raspi ile otomatik elektrik kontrol (sulama sistemi için) enesn 5 4,001 11-05-2015, 11:54 PM
Son Yorum: hakan
  [Soru] Raspberry Pi Kisi Algilama (Sensor Degil) caglar 6 3,952 05-10-2015, 05:35 PM
Son Yorum: DestroyerTM

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi