Python ile canlı verileri görselleştirme

Başlatan wtrk, 11 Mayıs 2018, 14:36:07

wtrk

Arkadaşlar herkese merhaba.

Yapmak istediğimiz bir proje var, projeyi teknik anlamda yaptık ancak şimdi de geliştirmek adına görselleştirme düşünüyoruz.

Biz arduino ile PLC'lerden bazı veriler alıp bu verileri monitöre edebiliyoruz ayrıca ethernet shield üzerindeki SD karta kaydediyor bu verileri .txt olarak.
Aldığımız bu verileri SD karta yazarak daha sonra istediğimiz yerden Intranet üzerinden erişip ayrıca kontrol edebiliyoruz.

Bizim şuan da yapmak istediğimiz olay ise şöyle ; PLC'lerden ve arduinoya bağlı sensörlerden alınan verileri  alt üst değer vererek nasıl bir grafiksel görselleştirme yapabiliriz..

Örneğin:Sıcaklık
alt limit : 22
üst limit: 30
Bizim sıcaklık değerlerimiz 25'lerde geziyor. Üst değere çıktığında grafiğin arka planını kırmızı yaparak, online olarak grafik şeklinde web browserdan görmemiz mümkün mü ?

Aynı şey titreşim değerleri vs içinde geçerli.

Yani basitçe; python ile bir kod yazıp IP üzerinden alınan veriler görselleştirilebilir mi ?
NoBody Can Stop Me!!!!!

mehmet

https://processing.org/

Bunu da deneyebilirsiniz. Zira
Arduino için daha fazla örnek
bulabilirsiniz.
nothing

wtrk

Alıntı yapılan: mehmet - 11 Mayıs 2018, 15:47:03https://processing.org/

Bunu da deneyebilirsiniz. Zira
Arduino için daha fazla örnek
bulabilirsiniz.

Hocam açıkcası Arduinonun çok verimli olduğunu söyleyemem. Öncelikli hedefim bu aldığım dataları grafiğe dökmek sonrasında ise arduinoları atıp yerine raspberry PI koymak olacak.

Ama öncesinde Arduino ile nihai hale getirmek istiyorum.
NoBody Can Stop Me!!!!!

mehmet

Daha iyi ya RPi üzerinde de çalışır
Processing.
Ya da baştan RPi ile başlayınız.
nothing

wtrk

Alıntı yapılan: mehmet - 11 Mayıs 2018, 17:29:46Daha iyi ya RPi üzerinde de çalışır
Processing.
Ya da baştan RPi ile başlayınız.

Raspberry ile ço fazla tecrübem yok hocam, onunla ilgili kaynak önerebilir misiniz ?
Ayrıca biz birde arduinoda istatistiksel hesaplattırma yaptırmıştık, bunlarıda raspberryde yapabilirmiyiz acaba ?
NoBody Can Stop Me!!!!!

mehmet

RPi için öncelikle Linux
öğrenmeye başlayın.
nothing

wtrk

Alıntı yapılan: mehmet - 11 Mayıs 2018, 18:48:42RPi için öncelikle Linux
öğrenmeye başlayın.

Öğrenmeye öğreniriz hocamda , bu iş biraz acil hızlı yoldan nasıl yaparım ona bakmam lazım şuan :) sonrasında eğitim seti alırız.
NoBody Can Stop Me!!!!!

boreas

Alıntı yapılan: wtrk - 11 Mayıs 2018, 14:36:07Üst değere çıktığında grafiğin arka planını kırmızı yaparak, online olarak grafik şeklinde web browserdan görmemiz mümkün mü ?

Eğer uygulama web browserda çalışacaksa ve refresh etmeden sürekli akış olacak akış anında da üst değerin üstüne çıkınca ekran görseli değişecekse zaten kaçarın yok işin içinde java var.
Topluluk grup hepsi gitti ...

wtrk

Alıntı yapılan: boreas - 11 Mayıs 2018, 21:44:59Eğer uygulama web browserda çalışacaksa ve refresh etmeden sürekli akış olacak akış anında da üst değerin üstüne çıkınca ekran görseli değişecekse zaten kaçarın yok işin içinde java var.


Web browserde istiyoruz hocam ancak pyhton gibi bir programda da basitçe birşeyler yapılabilirse basit bir arayüzle de izleyebiliriz.
Bizim amacımız sensörlerden ve plc lerden aldığımız değerleri izlemek
NoBody Can Stop Me!!!!!

ibocakir

Hocam merhaba,

İstediğiniz şeyi daha önce gerçekleştirdim, birkaç tecrübemi paylaşayım.

Rpi tarzı üzerinde linux çalışan bir sisteme python yüklüyorsunuz ve anahtar kelimeliriniz şunlar : How to develop a web app with python. Karşınıza gelecek bir kaç örnek "Flask", "Django", "Tornado". Ben burada flask seçmiştim. Sonra flask ile nasıl web servis geliştirilir bunu öğrenmeniz gerekiyor.

Sonra baktınızki flask ile geliştirdiğiniz uygulamayı dynamic web page şeklinde yapmıyorsunuz. Çünkü bildiğiniz üzere HTTP protokolünde client tarafı(browser) server tarafına(flask) sorgu atar ve cevap alır. Demekki sizin real time data akmasını sağlayan bir yapı kullanmanız gerekiyor. Demekki HTTP protokolü işinizi görmüyor. Peki ne lazım. "WEBSOCKET".

Websocket dediğimiz de ön tarafın sürekli dinlediği bir yapı. Arka tarafa sorgu atmasına gerek kalmadan, haberleşme sağlanabiliyor. Peki bu yapıyı kullanabileceğiniz en mantıklı şey nedir ? MQTT.

Server tarafına kuracağınız bir MQTT broker ve ön tarafta bunu hızlıca değerlendirebilecek bir WEB Tarafına ihtiyacınız var. Bunu nasıl sağlarız peki ? Google'ın geliştirdiği ve son zamanlarda oldukça popüler olan AngularJS ya da Angular 4.

Angular dediğimiz yapıda ise MQTT'ten ön tarafa aktarılan verileri browser'a real time bir şekilde aktarabilirsiniz.

İşin içinde çok fazla parametre var fakat sistemi oturtursanız mükemmel birşey.

wtrk

Alıntı yapılan: ibocakir - 12 Mayıs 2018, 17:04:47Hocam merhaba,

İstediğiniz şeyi daha önce gerçekleştirdim, birkaç tecrübemi paylaşayım.

Rpi tarzı üzerinde linux çalışan bir sisteme python yüklüyorsunuz ve anahtar kelimeliriniz şunlar : How to develop a web app with python. Karşınıza gelecek bir kaç örnek "Flask", "Django", "Tornado". Ben burada flask seçmiştim. Sonra flask ile nasıl web servis geliştirilir bunu öğrenmeniz gerekiyor.

Sonra baktınızki flask ile geliştirdiğiniz uygulamayı dynamic web page şeklinde yapmıyorsunuz. Çünkü bildiğiniz üzere HTTP protokolünde client tarafı(browser) server tarafına(flask) sorgu atar ve cevap alır. Demekki sizin real time data akmasını sağlayan bir yapı kullanmanız gerekiyor. Demekki HTTP protokolü işinizi görmüyor. Peki ne lazım. "WEBSOCKET".

Websocket dediğimiz de ön tarafın sürekli dinlediği bir yapı. Arka tarafa sorgu atmasına gerek kalmadan, haberleşme sağlanabiliyor. Peki bu yapıyı kullanabileceğiniz en mantıklı şey nedir ? MQTT.

Server tarafına kuracağınız bir MQTT broker ve ön tarafta bunu hızlıca değerlendirebilecek bir WEB Tarafına ihtiyacınız var. Bunu nasıl sağlarız peki ? Google'ın geliştirdiği ve son zamanlarda oldukça popüler olan AngularJS ya da Angular 4.

Angular dediğimiz yapıda ise MQTT'ten ön tarafa aktarılan verileri browser'a real time bir şekilde aktarabilirsiniz.

İşin içinde çok fazla parametre var fakat sistemi oturtursanız mükemmel birşey.


Hocam yazdıklarınıza istinaden biraz bakındım, bahsettiğiniz gibi tamamen istediğimiz şey sizin yazdıklarınız.

Bunun üzerinden ilerlemeye çalışacağım, teşekkür ederim. Bu işlemi nasıl biraz daha kolay hale getirebilirim acaba ?
Benim programlama bilgim yok.
NoBody Can Stop Me!!!!!