TEKNİK YAZI

IoT Tabanlı Cihaz Geliştirmeleri İçin Test Ortamı Hazırlamak[0]

Merhabalar, bu yazı serimizde IoT tabanlı gömülü cihazlar üzerinde çalışan arkadaşlar için pratik bir şekilde nasıl bir test ortamı hazırlayabiliriz ve test ortamını nasıl canlıya alabiliriz konusunda bir seri hazırlamak istedim.

Ortamı bulut tabanlı bir sunucu olan DigitalOcean üzerinde barındıracağız. Bir python web framework’ü olan Flask ile de bir uygulama hazırlayacağız.

Eğer DigitalOcean üzerinde bir üyeliğiniz yok ise, sitede bir üyelik almalısınız. Yeni üyeliklerde 100$’lık bir bakiye hesabınıza yatırılmakta. Bu bakiyeyi kullanmamız şu an için yeterli olacaktır.

Üyeliğiniz aktifleştikten sonra, üyeliğiniz bulunduğu dashboard üzerinde “Create” butonuna tıklayarak bir “Droplet” oluşturalım.

Sunucumuz ile ilgili ayarları yeni açılan pencere üzerinden yapabiliriz. İşletim sistemi olarak ubuntu bir makine tercih ettik. Kullanım planımız aylık 5$ şeklinde en temel kullanıma sahip bir plan, bizim için yeterli olacaktır.

Datacenter ve sunucu şifremizi de belirledikten sonra artık “Create” butonuna basabiliriz.

Yaklaşık 30 saniye içerisinde makinemiz hazır hale gelecektir. Artık SSH üzerinden bağlantı sağlayabiliriz. Ben Putty isimli bir programı kullanarak bağlantı sağladım. Dilerseniz farklı bir arayüz kullanabilirsiniz.

Bağlantımızı açtıktan sonra, gerekli kurulumları yapalım.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-pip
pip3 install flask


Yeni bir python dosyası oluşturalım.

nano endpoint.py
from flask import Flask
from flask import request
import json

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/ulp', methods=['PUT'])
def web_ulpput():
    data = json.loads(request.data)
    if data['temp'] > 25:

      return '{"result":"ok"}',200

    else:

      return '{"result":"fail"}', 400

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80, debug=True, use_reloader=True)

ulp endpointine sahip bir url üzerinden Put methodunu kullanarak istek yapacağımı ve json formatına sahip body üzerinde temp isimli bir token olması gerektiğini yukarda bulunan kod parçasından anlayabiliriz. Bütün public iplerden erişim sağlanabilmesi için, 0.0.0.0 üzerinden uygulamamızı çalıştırıyoruz.

python3 endpoint.py

Artık uygulamamız çalışmakta. Kiralamış olduğunuz sunucunun ip adresini tarayıcınıza yazdığınızda, “Hello, World” ifadesini görmeniz gerekiyor.

Şimdi gelelim endpoint üzerinden erişmeye. Bunun için postman gibi programlar kullanabilirsiniz. Ben şu an https://apitester.com/ isimli siteyi kullanacağım.

23 değerini gönderdim ve geri dönüş olarak fail aldım. Aynı şekilde belirlemiş olduğum değerden daha yüksek bir değer göndermiş olduğunuzda ok cevabını almanız gerekmekte elbette.

Bu işlemlerin sonrasında, kendi sistem kurgunuza göre python kodunuzu geliştirebilirsiniz. Tabi bu uygulamayı böyle bırakmak olmaz, konu ile ilgili diğer yazımızda hem bir servis yazacağız hemde bir db bağlayacağız uygulamamıza. Yazı serisi ilerledikçe, internete açılan bir donanım altyapısıyla, hazırlamakta olduğumuz bu servisleri kombine ederek güzel bir iş çıkarmayı hedefliyoruz.

Herkese kolaylıklar dilerim.