Merhabalar. Elimde sensörlerden aldığım sıcaklık, nem, rüzgar hızı vb. gibi veriler var. Bu verileri C# üzerinden mysql veritabanına belirli süreler ile kaydediyorum. Kaydedeceğim veriyi C# üzerinden serial ile GSM shield'e gönderip mesaj atmak istiyorum. Böyle bir şey mümkün müdür? Mümkünse bunu nasıl yapabilirim ? Şimdiden teşekkürler. Şöyle bir deneme yaptım. C# kodları :
namespace WindowsFormsApplication6 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
void smscoz() { while (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == '#') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'H') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'A') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'V') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'A') { SMSgonder(smsMetni); } } } } } } } } } } }
Yapı yanlış değil mi , smscoz içerisinde mesaj gidiyor zaten , string ilk halde boş olduğu boş gidiyor , Serialden okuduğunuz değere baktınız mı ne gelmiş c# tarafından
void loop() { if(Serial.available()) { data = Serial.read(); if(data == "deneme") { smsMetni = "deneme"; } } else { smsMetni = "Mesajyok"; } smscoz(); delay(1); } Kodu bu şekilde düzelttim. Okuduğum data yı sms olarak gönderdiğimde -1 yazıyor. Yani serial porttan veri gelmiyor mu acaba?
if(Serial.available()) bloğuna hiç girmiyor. Sizin dediğiniz gibi string ve bayt şekilde okumaları yaptık. Burada kodun üst tarafında aslında data nın veri tipi string. Ama sorun if bloğuna hiç girmemesi. Yukarıdaki c# kodlarında Butona basınca myPort.Write() ile veriyi göndermesi gerekmiyor mu?
void smscoz() { while (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == '#') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'H') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'A') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'V') { if (gsm.available()) { delay(BEKLE); gelen = gsm.read(); if (gelen == 'A') { SMSgonder(smsMetni); } } } } } } } } } } }