Sensör değerlerini veritabanına yazdırma

Başlatan seyityildirim, 22 Ocak 2017, 19:53:27

seyityildirim

Merhaba arkadaşlar,

Sürekli okunması ve değerlerin analiz için saklanması gereken 2 adet sensörüm var. Bu değerleri Mysql'de bir veri tabanına yazdırmak istiyorum. Daha sonra bu veriler bir siteden çekilecek.

İşlemci ile 1 KHz örnekleme frekansında okuduğum 2 sensör değerini Mysql'e nasıl kaydettirebilirim ? Bunun için esp8266 wifi modül kullanmayı düşünüyorum.

Daha önce veritabanı ile uğraşmış arkadaşlar yol ve yöntem önerebilirler ise sevinirim.

Cemre.

Aklıma gelen ilk yöntem, bir php sayfa oluşturmak ve ona parametre ile sorgu göndermektir. php sayfa sorguda gelen veriyi eğer uygun görürse (burada güvenlik önlemleri devreye giriyor) mysql veritabanınıza gerektiği şekilde ekleyecektir.

Bununla ilgili onlarca örnek uygulama bulabilirsiniz.

Misal, google'dan gelen ilk sayfa. http://www.yilmazarslanturk.com/makaleGoster/php-mysql-veritabanina-kayit-ekleme.html
Gerekli bilgi burada var.

tunayk

#2
Bence asıl sorun datanın nasıl depolanacağı olacaktır.  1kHz x 2 x 2byte iyimser bir tahminle 4kbyte / sn veri demek.  Timestamp. Kayıt no vb. De eklersek Eğer kısa süreli çalışacak ise sorun olmaz.  Ancak birkaç gün devam edecek bir kayıt baya bi veritabanı gücü gerektirecektir.
Dolayısıyla işin kayıt ve sonradan hızlı bir şekilde işlenmesi kısmı daha çok baş ağrıtır.
Hızlı bir Veritabanı araştırın bence

seyityildirim

@Cemre. ve @tunayk yorumlar için teşekkürler.

Veritabanı ile ilgili pek bilgim yok. Yeni öğrenmeye başlıyorum. Cemre'nin önerdiği şekliyle verileri önce siteye sonra veritabanına aktarmak yavaş kalır mı ? Direk veritabanına gönderme imkanım var mı ?

Veritabanı olarak Mysql yetersiz mi kalır ?

Cemre.

#4
MySQL'in tek bir yerden gelecek böyle bir veride sorun yaşayacağını sanmıyorum.

https://www.mysql.com/customers/

Kimlerin kullandığı ve saniyede ne kadar veri aktarımı gerçekleştirdikleri ile ilgili kaynağından bilgileri paylaşmakta fayda var...

Ancak bu demek değil ki siz sorun yaşamayacaksınız. Kiraladığınız sunucunun hünerleri ile kısıtlısınız. Unutmamak lazım.

MySQL'e veri ekleme vs gibi işlemler için SQL sorguları yapmanız gerekiyor. Bunun için benim bahsettiğim dışında bir yol var mı bilemiyorum. Yeni bir çok teknoloji var ve ben uzun zamandır ilgilenmiyorum o yüzden ilgili arkadaşlar bu konuya cevap verirse çok daha doğru olacak gibi.

tunayk

Kullanılacak yapı ve sunuma göre bircok yol var. Burada hangisi sizi tatmin edecek o önemli.  Eğer fazla bilginiz yok ise önünüzde temelde iki konsept var.  Php veya Asp dilleri ile web tarafı programlama yaparsınız.  DB olarak servis sağlayıcınızdan ne alıyor iseniz onu kullanırsınız.  Dil konusunda kolay zor diye bir ayrım yok.  Hangisine aşina iseniz o kolay gelir.  Bildiğiniz yol kestirmedir.
Örneğin freehosting.com vb. Yerlerden Hosting alıp küçük bir uygulama yaparsınız.  Sonuçlara bakarsınız. Eğer internet değil de herşey kendi Pc nizde bitecek ise farklı çözümler de bulabilirsiniz.  Bu tip işlerin pek çok doğru yöntemi var.
@cemre nin önerdiği adres satırından veri gönderme yöntemi başlangıç için kolay uygulanabilir.  Sonrasında bakarsınız.
Doğru kullanırsanız Sqlite de iş görür. Hatalı kullanırsanız MS- Sql de çuvallayabilir.
Sensörler Wifi ile bağlanacak ise ESP 8266 kullanabilirsin veya kablolu da olabilir.  Doğrudan sql Server a yazdırmak da mümkün.  Sonuçta php veya Asp nin de yaptığı bu.  Ancak microcontroller seviyesinde uğraşmak sizin için uygun düşmez. İşin kayıt ve yönetim tarafını pc ye bırakın. 

ahmet_zxc

veritabanına 1k veri yazamazsınız. verileri biriktirip saniyede bir paket olarak yazın.

Murat Mert

S.A.
2 Sensör verisini acess veri tabanına yazman ve taşıman bence daha kolay .
mert07

muhittin_kaplan

@ahmet_zxc hocam konuda doğru söylemiş. saniyede 1000 veriyi yazamazsınız, helede web üzerinden. hemen aşırı veri trafiğinden sunucunuz güvenlikten iletişimi keser.

bir sd karta vs toplayıp paket halinde gönderin.

kimlenbu

pc arayüzü için bir program yaz tcp/ip soket bağlantısı kullan, ayrı bir thread olarak çalışsın, programın çakılmaz. nette c# için örnekler mevcut. ESP8266 ile ipsi sabit server'a verileri bas, o da alıp veritabanına yazsın. bende sql server da kurulu, client'lar da server'a bağlanıp kaydedilmiş verileri çekebiliyorlar. önemli olan şey sabit ip'ye sahip olmak (sabit ip yoksa da yolları var ama gereksiz uğraş...)

ben gps takip için kullanıyorum ama saniyede 1000 veri basmıyorum, 10 saniyede bir konum, hız, ve bazı tüketim değerleri geliyor. bu kadar yüksek veriyle sonuç ne olur denemek lazım.

rck8942

Elektroniker für Betriebstechnik