Mikrodetleyiciye Bağlı GSM Modülünü Kullanarak Hava Durumunu Okumak

Mikrodetleyiciye Bağlı GSM Modülünü Kullanarak Hava Durumunu Okumak

Bir önceki makalemizle ilgili olarak bir uygulama örneği yapmak istedik. Öncelikle bir önceki makaleyi okumak isterseniz aşağıdaki bağlantıyı tıklayabilirsiniz:

Using the GSM Module for Internet Connection 

Uygulama Adı:

Arduino'ya bağlı bir GSM modülü kullanarak internete bağlanıp Londra gibi bir yerin sıcaklık verilerini almak.

Bunun için bir API veya hava durumu servisi kullanabilirsiniz. İnternet üzerinde birçok ücretsiz hava durumu API'si bulunmaktadır.

Örneğimizi Arduino UNO ile yapmayı planlıyoruz.

 

#include <SoftwareSerial.h>

SoftwareSerial gsmModule(10, 11); // GSM modülünün RX ve TX pinleri

void setup() {

  Serial.begin(9600); // Seri haberleşme başlatılır

  gsmModule.begin(9600); // GSM modülünün haberleşme hızı ayarlanır

 

  delay(2000); // Modülün başlatılması için bekleme süresi

  getTemperature(); // Sıcaklık verisi alınır

}

 

void loop() {

  // İhtiyaç halinde diğer işlemler yapılabilir

}

 

void getTemperature() {

  gsmModule.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\""); // İnternet bağlantısı türü ayarlanır

  delay(1000);

 

  gsmModule.println("AT+SAPBR=1,1"); // İnternet bağlantısı açılır

  delay(3000);

  gsmModule.println("AT+HTTPINIT"); // HTTP bağlantısı başlatılır

  delay(2000);

  gsmModule.println("AT+HTTPPARA=\"CID\",1"); // HTTP bağlantısı için bağlantı kimliği ayarlanır

  delay(2000);

  gsmModule.println("AT+HTTPPARA=\"URL\",\"http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=YOUR_API_KEY\""); // Hava durumu servisi API adresi ve API anahtarınızı buraya ekleyin

  delay(2000);

  gsmModule.println("AT+HTTPACTION=0"); // HTTP GET işlemi gerçekleştirilir

  delay(5000);

  gsmModule.println("AT+HTTPREAD"); // HTTP yanıtı okunur

  delay(5000);

 

  while (gsmModule.available()) {

    char c = gsmModule.read();

    Serial.write(c); // Seri monitöre yanıtı yazdırır

  }

 

  gsmModule.println("AT+HTTPTERM"); // HTTP bağlantısı sonlandırılır

  delay(2000);

}

 

Yukarıdaki örnek kod, GSM modülünü kullanarak Londra'nın hava durumu verisini alır. İlgili kod parçacığında, hava durumu servisi API adresi ve API anahtarıAT+HTTPPARA=\"URL\",\"http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=YOUR_API_KEY\" satırında ilgili yerlere eklemeniz gerekmektedir.

Kodun doğru çalışabilmesi için GSM modülünüzün AT komutlarını desteklemesi ve HTTP isteklerini gönderebilecek özelliklere sahip olması gerekmektedir.

Ethernet ile IoT Uygulamaları için GSM Cihazlarını aşağıdaki linki tıklayarak inceleyebilirsiniz.

Ethernet ile IoT Uygulamaları için GSM Cihazları