#include <SoftwareSerial.h>
#include <dht11.h>
#include <LiquidCrystal.h>
const int rs = 0, en = 1, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
String agAdi = "**********";
String agSifresi = "****************";
int rxPin = 10;
int txPin = 11;
int dht11Pin = 2;
String ip = "184.106.153.149"; //Thingspeak ip adresi
float sicaklik, nem;
dht11 DHT11;
SoftwareSerial esp(rxPin, txPin); //Seri haberleşme pin ayarları
void setup() {
lcd.begin(16,2);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
digitalWrite(8, HIGH);
Serial.begin(9600); //Seri port ile haberleşmemizi başlatıyoruz
Serial.println("Started");
lcd.print("Started");
esp.begin(115200); //ESP8266 ile seri haberleşmeyi başlatıyor
esp.println("AT"); //AT komutu ile modül kontrolünü yapıyoruz
Serial.println("AT Yollandi");
while(!esp.find("OK")){
esp.println("AT");
Serial.println("ESP8266 Bulunamadı.");
lcd.print("ESP8266 Bulunamadi");
lcd.clear();
lcd.setCursor(0, 0);
}
lcd.clear();
lcd.setCursor(0, 0);
Serial.println("OK Komutu Alındı");
delay(100);
esp.println("AT+CWMODE=1"); //ESP8266 modülünü client olarak ayarlıyoruz
while(!esp.find("OK")){
esp.println("AT+CWMODE=1");
Serial.println("Ayar Yapiliyor....");
lcd.print("Ayar yapiliyor");
}
lcd.clear();
lcd.setCursor(0, 0);
Serial.println("Client olarak ayarlandı");
Serial.println("Aga Baglaniliyor...");
lcd.print("Aga Baglaniliyor");
esp.println("AT+CWJAP=\""+agAdi+"\",\""+agSifresi+"\"") ;//Ağımıza bağlanıyoruz
lcd.clear();
lcd.setCursor(0, 0);
while(!esp.find("OK"));
Serial.println("Aga Baglandi.");
digitalWrite(8, LOW);
lcd.print("Aga Baglandi");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
}
void loop() {
digitalWrite(9, HIGH);
esp.println("AT+CIPSTART=\"TCP\",\""+ip+"\",80"); //Thingspeake bağlanıyoruz
if(esp.find("Error")){
Serial.println("AT+CIPSTART Error");
lcd.print("Error");
lcd.clear();
lcd.setCursor(0, 0);
}
DHT11.read(dht11Pin);
sicaklik = (float)DHT11.temperature;
nem = (float)DHT11.humidity;
lcd.print(sicaklik);
lcd.setCursor(4, 2);
lcd.print(nem);
String veri = "GET https://api.thingspeak.com/update?api_key=*********************"; //Key kısmına kendi api keyimizi yazıyoruz. Kendi API keyim olduğu için sansürledim.
veri += "&field1=";
veri += String(sicaklik);
veri += "&field2=";
veri += String(nem);
veri += "\r\n\r\n";
esp.print("AT+CIPSEND=");
esp.println(veri.length()+2);
delay(2000);
if(esp.find(">")){
esp.print(veri);
Serial.println(veri);
Serial.println("Veri gonderildi.");
delay(1000);
}
Serial.println("Baglantı Kapatildi.");
esp.println("AT+CIPCLOSE"); //Bağlantıyı kapatıyor
delay(1000); //Yeni veri gönderimi için 1 saniye bekliyor
lcd.clear();
lcd.setCursor(0, 0);
}