yakut özcan kişisel blog: Android, NodeJS ve Arduino ile sıcaklık bilgisi olayları

14 Ocak 2017 Cumartesi

Android, NodeJS ve Arduino ile sıcaklık bilgisi olayları


Merhaba blog okuyucularım bu yazımızda yine 2-3-5 tane platformu bağlayıp bir şeyler ortaya çıkartacağız. NodeJS ile bir web servisi buna GET ile sıcaklık değeri gönderecek bir NodeMCU ve bu gelen değerleri SQLite ile kayıt edeceğiz daha sonra da Android ile GetTemp diyerek gelen JSon verisini grafiğe dökeceğiz :) Yazı kısa olacak gibi şu yüzden kod açıklamayı beceremiyorum veya anlamsız geliyor. Kodlar yine Github üzerinde sizlerle olacak. Sunucu ise her zaman ki gibi DigitalOcean üzerinde. 


NodeMcu için Arduino kodları şu adreste;
https://github.com/yakutozcan/NodeTempApi_blogpost/tree/master/Arduino

 NodeMCU LM35 bağlantı şekli aşağıda ki gibi
Benim elimde LM35 olmadığı için ben 15-35 arasında rastgele bir sayı oluşturup onu gönderdim fakat normal bir arduino ile NodeMCU ile sıcaklık okumak arasında bir fark yok. 


Arduino kısmında işimiz bu kadar sırada Android kısmı var orada da yine kodların içinde yorum satırı olarak belirttiğim bir kütüphaneyi kullandım ve gerçekten çok basit ve kullanışlı.
Android Studio ile yazdım ve Github'a sıkıştırıp yükledim(zip). Uygulamanın kodlarını ise indirmeden bakabilmeniz açısından ayrıca yükledim :)

Android uygulamasının linki
Uygulama Ekran Görüntüsü
Uygulama Video

Android kısmı da bittiğine göre sırada NodeJS ile yazdığım web servis kaldı.
NodeJs Github linki aşağıda
https://github.com/yakutozcan/NodeTempApi_blogpost/tree/master/NodeJS

Web servisimize "/api/GetTemp?GetTempToken=xxx" şeklinde GET isteği yaptığımızda son "60" sıcaklık bilgisini karşımıza getiriyor. "GetTempToken" ile istenmeyen ve zararlı olabilecek istekleri bir nebze engellemeye çalıştık. 

Yine aynı şekilde web servisine "/api/SetTemp?token=gz&value=99" şeklinde GET isteği gönderdiğimizde ise bize "ok" yanıtı döndürüyor. "token" bizim gizli anahtarımız istenmeyen isteklerden korunmak için bir basit bir yol, "value" ise sıcaklık değerlerini aldığımız değişkenimiz.

Sonuç olarak kullandığım sistemlerin tam anlamıyla profesyoneli değilim bildiğim veya bilmediğim hatalar mevcut hatta bu yazıyı yazarken bir tanesini düzelttim :)  İyi çalışmalar. 

Hiç yorum yok :

Yorum Gönder

Yorumlar