ESP8266 modulu ile sıcaklık ve nem değerlerini thingspeak'e gonderen bir sistem yapmıştım ve gayet iyi calıştı.
Sonradan LCD ekran ile bu verileri ve işlemleri LCD den okumak istedim ve LiquidCrystal kutuphanesini ekledim gerekli pin ayarlarını yaptım.
Kod:Panoya kopyala
#include #include #include 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.clear(); lcd.setCursor(0, 0); Serial.println("OK Komutu Alındı"); delay(100); esp.println("AT+CWMODE=1"); //ESP8266 modulunu client olarak ayarlıyoruz while(!esp.find("OK")) 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() 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 icin sansurledim. veri += "&field1="; veri += String(sicaklik); veri += "&field2="; veri += String(nem); veri += "rnrn"; esp.print("AT+CIPSEND="); esp.println(veri.length(]2); delay(2000); if(esp.find(">")) Serial.println("Baglantı Kapatildi."); esp.println("AT+CIPCLOSE"); //Bağlantıyı kapatıyor delay(1000); //Yeni veri gonderimi icin 1 saniye bekliyor lcd.clear(); lcd.setCursor(0, 0); }
Maalesef LCD calışmadı ve değişik karaketrler akmaya başladı. Ardından dumduz bir ekran cıktı.
LCD'nin doğru bağlandığını teyit etmek icin:
Kod:Panoya kopyala
#include const int rs = 0, en = 1, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() void loop()
kodunu calıştırdım ve eksiksiz calıştı.
Kod kısmındaki hata nerede?