Arduino Sim900 R GSM Modülü - DHT 11 Sıcaklık Sensörü Uygulaması
Arduino Sim900R modülü GNDTeknik firmasının arduino için hazırladığı güzel bir modül. Direnc.net üzerinden alabilirsiniz. Biraz yoğun oluyorlar ama yardımcı oluyorlar yine de.
Bu modül ile ilgili pek kaynak bulunmuyor. Modülü UNO ' da programlayacağız.
UNO ya 9 v 0,8 A lik bir güç kaynağı sağlamamız gerekiyor. Aksi durumda GSM modülü kendini power off konumunu alacaktır belirli bir süre sonra. Bunu anlamak biraz zaman aldı.
Ek olarak modülü programlarken 8,7 pinlerini rx, tx olarak belirlemek gerekiyor. Kullandığınız Sim kartının pinini devre dışı bırakmanızı tavsiye ederim, (Kimse çıkarıp kullanmaz derseniz tabi:))
Bu uygula UNO ya bağlı DHT 11 den sıcaklık ve nem verisini alarak belirlediğimiz bir adrese belirli aralıklarla göndermemizi sağlıyor. Özellikle depo takip sistemlerinde oldukça kullanışlı.
Biz bir de web portali hazrılyoruz ve değerleri bu portalde gösteriyoruz. Admin LTE kullanarak hazırladığımız portal de bu değerleri görmek ketif verici :)
Sim900R modülünü AT komutları ile kullanıyoruz.
Detaylara buradan ulaşabilirsiniz.
Timer kütüphanesi için burayı tıklayınız.
#include <DHT.h>
#include <Timer.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include "DHT.h"
#define DHTPIN PIN4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
SoftwareSerial gsm(8, 7);
Timer t;
void setup()
{
gsm.begin(9600);
Serial.begin(9600);
dht.begin();
delay(500);
Serial.print("Bismillah");
int tickEvent = t.every(30000, SubmitHttpRequest);
}
void loop()
{
t.update();
if (gsm.available())
Serial.write(gsm.read());
}
void SubmitHttpRequest()
{
gsm.println("AT+CSQ");
delay(500);
gsm.println("AT+CGATT?");
delay(500);
gsm.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
delay(500);
gsm.println("AT+SAPBR=3,1,\"APN\",\"internet\"");
delay(500);
gsm.println("AT+SAPBR=1,1");
delay(500);
gsm.println("AT+HTTPINIT");
delay(500);
float n = dht.readHumidity();
float s = dht.readTemperature();
gsm.println("AT+HTTPPARA=\"URL\",\"http://web.sitemiz.com/bilgiler.jsp? sicaklik="+String(s,2)+"&gaz=100&nem="+String(n,2)+"\"");
delay(5000);
gsm.println("AT+HTTPACTION=0");
delay(10000);
gsm.println("AT+HTTPREAD");
delay(5000);
gsm.println("");
delay(100);
}
/* seri port okumada yorum kaldırılabilir
* void ShowSerialData()
{
while(gsm.available()!=0)
Serial.write(gsm.read());
}*/
Son hali :)
Bu modül ile ilgili pek kaynak bulunmuyor. Modülü UNO ' da programlayacağız.
UNO ya 9 v 0,8 A lik bir güç kaynağı sağlamamız gerekiyor. Aksi durumda GSM modülü kendini power off konumunu alacaktır belirli bir süre sonra. Bunu anlamak biraz zaman aldı.
Ek olarak modülü programlarken 8,7 pinlerini rx, tx olarak belirlemek gerekiyor. Kullandığınız Sim kartının pinini devre dışı bırakmanızı tavsiye ederim, (Kimse çıkarıp kullanmaz derseniz tabi:))
Bu uygula UNO ya bağlı DHT 11 den sıcaklık ve nem verisini alarak belirlediğimiz bir adrese belirli aralıklarla göndermemizi sağlıyor. Özellikle depo takip sistemlerinde oldukça kullanışlı.
Biz bir de web portali hazrılyoruz ve değerleri bu portalde gösteriyoruz. Admin LTE kullanarak hazırladığımız portal de bu değerleri görmek ketif verici :)
Sim900R modülünü AT komutları ile kullanıyoruz.
Detaylara buradan ulaşabilirsiniz.
Timer kütüphanesi için burayı tıklayınız.
#include <DHT.h>
#include <Timer.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include "DHT.h"
#define DHTPIN PIN4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
SoftwareSerial gsm(8, 7);
Timer t;
void setup()
{
gsm.begin(9600);
Serial.begin(9600);
dht.begin();
delay(500);
Serial.print("Bismillah");
int tickEvent = t.every(30000, SubmitHttpRequest);
}
void loop()
{
t.update();
if (gsm.available())
Serial.write(gsm.read());
}
void SubmitHttpRequest()
{
gsm.println("AT+CSQ");
delay(500);
gsm.println("AT+CGATT?");
delay(500);
gsm.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
delay(500);
gsm.println("AT+SAPBR=3,1,\"APN\",\"internet\"");
delay(500);
gsm.println("AT+SAPBR=1,1");
delay(500);
gsm.println("AT+HTTPINIT");
delay(500);
float n = dht.readHumidity();
float s = dht.readTemperature();
gsm.println("AT+HTTPPARA=\"URL\",\"http://web.sitemiz.com/bilgiler.jsp? sicaklik="+String(s,2)+"&gaz=100&nem="+String(n,2)+"\"");
delay(5000);
gsm.println("AT+HTTPACTION=0");
delay(10000);
gsm.println("AT+HTTPREAD");
delay(5000);
gsm.println("");
delay(100);
}
/* seri port okumada yorum kaldırılabilir
* void ShowSerialData()
{
while(gsm.available()!=0)
Serial.write(gsm.read());
}*/
Son hali :)
Modülünüzün sim900R olduğuna emin misiniz? Sim900 olmasın. Sim900R sim900 den farklı olarak http desteği yok. Hatta AT komut dökümanında at+http ile başlayan kodunuzda birkaçtanesi bulunan komutların hiçbiri yok.
YanıtlaSilElimde aynı gsm shield var röleleri kontrol edemiyorum yardımcı olursanız sevinirim at komutları ile Sms üzerinden röle kontrolü yapmak istiyorum
YanıtlaSil