back to top

ESP8266 Dersleri 2: ThingSpeak’e Sıcaklık Yollama

Merhaba arkadaşlar. Bu dersimizde ESP8266 kullanarak ThingSpeak platformu aracılığı ile ortam sıcaklığını internete göndermeyi öğreneceğiz.

Bu uygulamada kullanacağımız malzemeler:

Uygulamamızı gerçekleştirebilmek için öncelikle  ESP8266 modülünüzü güncellemeniz gerekiyor. Bu işlem için bir önceki dersimize başvurabilirsiniz. Bu dersimizde ThingSpeak platformunu kullanacağımız için https://www.thingspeak.com sitesinden bir hesap açıp bu hesabı Arduino ve ESP modülünüz ile haberleştirmeniz gerekiyor.

ThingSpeak Sitesinde Hesap Açma

Time Zone kısmını doğru girmenizi tavsiye ederim çünkü daha sonra yolladığımız veriler ile grafik oluşturduğumuzda zaman bilgisini doğru alması açısından önemli.

Kayıt olup giriş yaptıktan sonra üstteki Channels menüsünden My Channels  seçeneği seçildiğinde karşımıza aşağıdaki gibi bir menü geliyor.

esp8266 thingspeak

Bu menüye geldiğinizde New Channel sekmesine tıklayın ve karşımıza gelen menü ile yeni bir kanal açmaya hazırız.

new_channel

Gelen sayfada Name yazan yere kanalımızın ismini yazıyoruz. Ben buraya şimdilik salon sicakligi yazıyorum. Siz istediğiniz şekilde yazabilirsiniz. Zaten daha sonradan bu ayarları değiştirebilmek mümkün. Önemli olan Türkçe karakter kullanmamamız. Description kısmına ise kanalımız ile ilgili bir açıklama yazabiliriz. LM35 ile salon sicakliginin olculmesi yazıyorum buraya da. Field 1 yazan kısım ise yolladığımız veriler ile oluşturacağımız grafiğin ne grafiği olduğudur. Bu örneğimizde Sıcaklık-Zaman grafiği çizdireceğimiz için bu kısma sicaklik yazıyorum

Birden çok LM35 sensörü ile evin tamamının sıcaklığını ölçme ya da sıcaklık haricinde başka veriler de yollamak isterseniz Field 2, Field 3 gibi başka grafikler de oluşturabilirsiniz. Fakat şuan için sadece doldurduğumuz kısımlar bize yeterli olacak.

Bilgileri girip Save Channel ‘a tıkladığımızda kanalımız oluşturuluyor ve aşağıdaki gibi bir sayfaya yönlendiriliyoruz.

esp8266 thingspeak

Bu sayfada yolladığımız verileri Sıcaklık-Zaman grafiği şeklinde görebileceğiz. Üst menüden biraz bahsetmek gerekirse Private View sekmesi grafiği sadece bizim görebildiğimiz sekmedir. Eğer verileri herkes ile paylaşmak istersek hemen sağındaki Public View sekmesine tıklayıp sayfa linkini paylaşmamız yeterli olacaktır. Channel Settings sekmesinden az önce ayarladığımız tüm bilgileri değiştirebilir veya yeni grafikler ekleyebiliriz. API Keys sekmesi ise bizim için önemli bir kısım, çünkü Arduino ve ESP modülümüz ile kanalımızı haberleştirirken bu sekme içinde bulunan, bize özel API keyimizi kullanacağız. Bu key tamamen bize özel olup, keyi kanalımız ile ESP modülümüz arasında bir şifre gibi düşünebilirsiniz. En sağdaki Data Import/Export sekmesinde ise daha önce elimizde kanalımıza ait bir veri var ise bu veriyi grafiğimize eklemeye ya da grafiğimizdeki verileri bilgisayarımıza indirmeye yarar.

Hesap oluşturma, kanal açma ve API key’i alma işlemlerini yaptık. Şimdi ise devremizin bağlantısı ve kodumuza geçelim.

Devremizin bağlantısı aşağıdaki gibi olacaktır.

ESP8266 baglanti semasi

NOT: Devreyi kurup Arduino’ya kod yüklemeye çalıştığınızda Arduino IDE hata verecektir. Bunun nedeni, Arduino’nun RX ve TX pinlerinin o an bağlı ESP modülümüze bağlı olmasından dolayıdır. Yükleme işleminden önce RX ve TX bağlantılarını söküp, kod yüklendikten sonra takarsanız bu sorunu yaşamazsınız.

#define ag_ismi "WiFi_Ismi"
#define ag_sifresi "WiFi Sifresi"
#define IP "184.106.153.149" //thingspeak.com IP adresi

float sicaklik;

void setup() {
  Serial.begin(115200); //Seriport'u açıyoruz. Güncellediğimiz 
  //ESP modülünün baudRate değeri 115200 olduğu için bizde Seriport'u 115200 şeklinde seçiyoruz

  Serial.println("AT"); //ESP modülümüz ile bağlantı kurulup kurulmadığını kontrol ediyoruz.

  delay(3000); //ESP ile iletişim için 3 saniye bekliyoruz.
  analogReference(INTERNAL);
  if (Serial.find("OK")) { //esp modülü ile bağlantıyı kurabilmişsek modül "AT" komutuna "OK" komutu ile geri dönüş yapıyor.
    Serial.println("AT+CWMODE=1"); //esp modülümüzün WiFi modunu STA şekline getiriyoruz. Bu mod ile modülümüz başka ağlara bağlanabilecek.
    delay(2000);
    String baglantiKomutu = String("AT+CWJAP=\"") + ag_ismi + "\",\"" + ag_sifresi + "\"";
    Serial.println(baglantiKomutu);

    delay(5000);
  }
}

void loop() {
  float sicaklik = analogRead(A0) / 9.31;
  Serial.println(sicaklik);
  sicaklik_yolla(sicaklik);
  // dakikada 1 güncellenmesi için 1 dakika bekle
  delay(60000);
}

void sicaklik_yolla(float sicaklik) {
  Serial.println(String("AT+CIPSTART=\"TCP\",\"") + IP + "\",80"); //thingspeak sunucusuna bağlanmak için bu kodu kullanıyoruz. 
  //AT+CIPSTART komutu ile sunucuya bağlanmak için sunucudan izin istiyoruz. 
  //TCP burada yapacağımız bağlantı çeşidini gösteriyor. 80 ise bağlanacağımız portu gösteriyor
  delay(1000);
  if (Serial.find("Error")) { //sunucuya bağlanamazsak ESP modülü bize "Error" komutu ile dönüyor.
    Serial.println("AT+CIPSTART Error");
    return;
  }

  String yollanacakkomut = "GET /update?key=64T0OS3R1OEAYUML&field1="; // Burada 64T0OS3R1OEAYUML yazan kısım bizim API Key den aldığımız Key. Siz buraya kendi keyinizi yazacaksınız.
  yollanacakkomut += (int(sicaklik)); // Burada ise sıcaklığımızı float değişkenine atayarak yollanacakkomut değişkenine ekliyoruz.
  yollanacakkomut += "\r\n\r\n"; // ESP modülümüz ile seri iletişim kurarken yazdığımız komutların modüle iletilebilmesi için Enter komutu yani
  delay(3000); // /r/n komutu kullanmamız gerekiyor.

  Serial.print("AT+CIPSEND="); //veri yollayacağımız zaman bu komutu kullanıyoruz. Bu komut ile önce kaç tane karakter yollayacağımızı söylememiz gerekiyor.
  Serial.println(yollanacakkomut.length() + 2); //yollanacakkomut değişkeninin kaç karakterden oluştuğunu .length() ile bulup yazırıyoruz.

  delay(1000);

  if (Serial.find(">")) { //eğer sunucu ile iletişim sağlayıp komut uzunluğunu gönderebilmişsek ESP modülü bize ">" işareti ile geri dönüyor.
    // arduino da ">" işaretini gördüğü anda sıcaklık verisini esp modülü ile thingspeak sunucusuna yolluyor.
    Serial.print(yollanacakkomut);
    Serial.print("\r\n\r\n");
  } else {
    Serial.println("AT+CIPCLOSE");
  }
}

Bu kodu kendi WiFi adres ve şifremiz ile düzenledikten sonra kodu Arduino’ya yüklediğimizde verileri ThingSpeak’de oluşturduğumuz grafikte görmeye başlıyoruz. Ben sensörü test etmek için çakmak ile ısıttığımdan değerler biraz ani oynuyor ama siz daha stabil değerler alabilirsiniz.

ESP8266 sicaklik olcumu

Son Çıkan Yazılar

114 YORUMLAR

  1. Merhaba aşamaları deniyoruz ancak, AT iletisine cevap olarak OK gelmiyor. ESP8266’ı update edip denedeiğimizde geliyor ama RX TX ‘i çıkarıp programı gönderip RX TX’i takıp serial monitoru incelediğimizde AT yi görüyoruz ancak OK cevabı gelmiyor ve program veri göndermiyor. Sorun ne olabilir acaba? Önerilen parçalar ile yapıyoruz bu işlemi..

    • Daha önce OK cevabı alabildiğinize göre BaudRate değerinin 115200 olduğundan eminsiniz sanıyorum. Serial port’a AT komutlarını yollarken Serial.println(); ile yollayın eğer bu olmuyor ise Serial.print(“AT”); Serial.print(/n/r); şeklinde deneyin. Birde rx-tx’in doğru takıldığına emin olun.

      • Direk arduino serial monitor’den deniyoruz ama cevap alamadık bir türlü. Dediğim gibi update şemasını yapıp, update ettiğimizde akabininde cevap alabilidik modülden ama bunun dışında cevap alamadık. Update ederkende arada olup arada olmama gibi bir sorun yaşadık ayrıca kablolarda veya kartta sorun olabilir belki de. Bu arada BaudRate 115200, Serial.print’ide denedik aslında ama tekrar deneyelim bi

  2. Merhaba,
    Makalenizde blirttiginiz sekilde tum islemleri yaptim ve sicaklik degerlerini basarili bir sekilde thingspeak e gonderim. Herhangi bir sorun olmadan cok guzel kullandim. Gayet aciklayici ve net bir yazi olmus tebrik ederim.
    Ancak ufak bir sorunum var. Tum gun boyunca sicaklik degerlerini aldim ve sikintisiz kullandigim esp8266 artik degerleri gondermemeye basladi.
    Yazilimsal oldugunu sandim ama esp uzerindeki mavi ledin hic yanmadigini gordum. Saniyorum veri transferi olmadigindan yada modul ustunde iletisim saglanmadigindan yanmiyor.
    Bir anda neden gitmis olabilir? Acaba modul mu yandi?
    Daha once bu tarz bir olayla karsilastiniz mi acaba?
    Yardimlariniz icin simdiden tesekkur eder, iyi calismalar dilerim.
    Saygilarimla.

    • Merhaba Barış Bey, öncelikle ilginize teşekkürler. Açıkca söylemek gerekirse ESP modülü uzun kullanımlarda bu gibi sorunlar çıkartabiliyor. Bunun nedeni muhtemelen hiç uyku moduna geçmeden hep çalışmasından kaynaklanman ısınma ile ilgili. Ancak bu konuda emin olmamakla beraber eğer öğrendiğim takdirde buraya tekrar bir bilgilendirme yazısı gireceğim.

  3. Bunları yaptığımda thingspeakte verilerimi göremiyorum. ESP ile arduino iletişiminde bir problem yok. Ağa da bağlanmakta bir sorun da yok ama monitor edilmiyor veriler? Bağlantılar ve kodlar sizin eklemiş olduğunuz gibi hocam.

    • verilerin hangi sıklıkla geleceğini görüntüleyeceğin monitörün üzerindeki kalema tıklayarak değiştirebilirsin.. orda yanlış hatırlamıyosam timeline gibi bişey olacak orda 10 ar dakika ara ile fln seçebiliyorsun. eğer hiçbirini seçmezsen her veri geldiğinde gösteriyor ekranda

  4. Arduino ile yeni tanışan biriyim. Arduino uno ve ESP8266 ile thnikspeak’a sıcaklık yollama ile ilgili bu sayfada çok güzrl anlattığınız gibi tüm güncelleme, bredboard üzerinde bağlantı ve yazılımı aynen yapmama rağmen ( ”sicaklik_yolla(sicaklik);” satırında ) ” sicaklik yolla was not declared in this scope” hatası alıyorum. Hatalı satırı kaldırınca serial port ekranında wifi ağımın ismini ve sıcaklık değerlerini yazıyor ama thinkspeak de hiç bir şey görünmüyor. Nerede hata yapıyorum yardımcı olursanız sevinirim.

    • Kodun tamamını kopyalamamış olabilir misiniz? Bahsettiğiniz hataya göre sicaklik_yolla() fonksiyonu kodunuza dahil değil gibi.

      • Tekrar kontrol ettim bu sayfada verilen kod yazılımında nasıl ise aynen öyle kopyaladım. Bende dahil değilse burada da dahil değildir.

    • DHT11, LM35’in aksine dijital haberleşmeye sahip bir sensör olduğundan, burada anlatılan yönergelere göre gerekli kütüphaneyi yüklemeniz ve sıcaklık ölçme kodunu yazmanız gereklidir. Kodun sıcaklık ölçümü ile ilgili kısımlarını değiştirdikten sonra elde ettiğiniz sıcaklık değerini geri kalan yöntemin aynısı ile ThingSpeak’e göndermeniz mümkündür.

  5. Merhabalar.Mesala sıcaklığın yanında field2 ye de nem değerini bastırmak istiyorum. Nem_yolla diye fonk yapıp atmayı denedim ama atamadım. Sıcaklık değeri gidiyor ama nem için atacakken gitmiyor cipclose tarafına gidiyorum bu konuda yardımcı olabilir misiniz?

  6. AT
    109.88
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=49
    AT+CIPCLOSE
    109.88
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=49
    AT+CIPCLOSE

    Serial portdan sürekli olarak bu veriler geliyor fakat siteye yazdıramıyorum. Write API Key’i kullandım. baundrate’im 115200. WI_FI modulün güncellemesi başarılı gözüküyor.

    #define ag_ismi “SUPERONLINE_WiFi_0053”
    #define ag_sifresi “123645987”
    #define IP “184.106.153.149”

    ağ bilgilerim doğru gözüküyor. Birde pc’de esp2932af şeklinde bir wifi ağı gözüküyor. Anladığım kadarıyla benim modülüme ait ona bağlanamıyorum. Neyi eksik yapıyorum neyi fazla yapıyorum yardımcı olur musunuz?

    • Ben halletim !!

      Arkadaşlar uzun uğraş sonucu(4-5 gün) projemde esp8266 modülünün arızasını buldum.
      1-)Günceleme yapıldımı (Yapıldıysa esp8266 nın hangisi ” ör:esp-01 ‘mi” doüru günceleme yi atın) -> benim sorunumun 1. nedeni buydu.
      2)esp8266 nın çıkış akımları ve voltaşları datasheedinde yazıyor fakat seri haberleşmeye başladığı anda fazla akım çekiyor 3.3V pinleri bunu karşılamıyor o yuzden 4-5 V volt arası verin(Vmax= 3.3V diye geçiyor bu voltajın üzeri veridimi bir süre sonra sıkıntı çıkartabilme ihtimali var yapanların bir kısmı sonuç almış.
      3)esp8266 modulunun bir eifi ağına bağlanma ihtiyacı var bu ağın bandı önemli benimki 2.4’dü bazılarında 5 buna dikkat edin. –> Benim sorunumun 2. nedeni buydu.
      4)Arduino’nuz skntılıdır başka bir arduinoda deneyin
      5)Modülünüz skntılıdır başka bir modül kullanın.
      Dipnot; Farklı kaynaklardan bol araştırma yapın ve bir modul almadan önce kullanım alanlarına bakın.
      İyi Çalışmalar…

  7. Merhaba ben aldığım sıcaklık verisi thingspeake’e değil de genel olarak bir IP adresine yollamak istiyorum.Mesela sıcaklığı alıcam port yönlendirme yapıp kendi ip’m üzerinden yayınlayacağım.Yani herhangi başka ağdaki biri bu IP ve portu girdiğinde benim yolladığım değerleri görecek.Bunu nasıl yapabilirim acaba?

  8. Merhaba bende aynı şekilde aldığım sıcaklık verisi thingspeake’e değil de genel olarak bir IP adresine yollamak istiyorum ama local’da web kurmayacağım. Başka bir server var onun ip’sine verileri nasıl gönderebilirim acaba?

  9. Merhaba paylaşım çok güzel olmuş ve harika çalışıyor ben birden fazla odanın sıcaklığı için kodu geliştirmek istiyorum yardımcı olurmusunuz

  10. AT
    19.96
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=49
    AT+CIPCLOSE
    20.04
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=49
    AT+CIPCLOSE
    Serial portu açtığımda böyle mesajlar geliyor.at komutu ok cevabı vermiyor.thinkspeak web sitesine veri gitmiyor.Write api doğru yazdım.Bana yardımcı olurmusunuz.

  11. Merhaba,
    Windows 10 Da bu setup ‘ı çalıştırabilen oldu mu acaba ?
    8266 ı update ederken herhangibir sorun yaşamıyorum fakat sonrasında uygulamayı yukarıdaki gibi yazıp çalıştırmak istediğimde “USB Device Not recognized” hatası alıyorum.
    Ne yaparsam yapayım bir türlü çalıştıramadım. Cihazı tanımadı windows. Eğer bu sorunu yaşayan varsa ve çözebildiyse yardımcı olursa çok sevinirim.
    Şimdiden Teşekkürler.

  12. ThinkSpeak ‘e veri gönderemeyen arkadaşlar aşağıdaki işlemi deneyebilir mi?

    BUL :
    String yollanacakkomut = “GET /update?key=64T0OS3R1OEAYUML&field1=”;

    DEĞİŞTİR :
    String yollanacakkomut = “GET /update?api_key=64T0OS3R1OEAYUML&field1=”;

    Açıklama : ThinkSpeak API Request’i içerisinde Update a Channel Feed ‘in adresi /update?key yerine /update?api_key olmuş.
    Ben bu şekilde değiştirdiğimde veriler gitmeye başladı.

    Umarım sizin de sorunlarınızı çözer

  13. Merhaba,

    /Users/xxx/Desktop/sketch_may27a/sketch_may27a.ino:38:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
    if(Serial.find(“Error”)){ //sunucuya bağlanamazsak ESP modülü bize “Error” komutu ile dönüyor.

    Bu warning’i alıyorum. Ek olarak AT komutundan sonra serial monitörde “OK” yazmıyor. ESP8266’ya manuel olarak AT komutu gönderdiğimde bir sorun olmuyor ancak sizin yöntemde OK komutu alamıyorum. OK komutu gelmediği için haliyle yukarda bazı arkdasların da paylaştığı CIPCLOSE komutları görünüyor sürekli.

    • String yollanacakkomut = “GET /update?api_key=9M78MCAXBRE62CGR&field1=”;

      Üstte yazan kodda bulunan sondaki Field1 kısmını Field2 yaparsan 2. field grafiğinde verilerin gösterilir aynı şekilde field3,field4……. field8 e kadar yapabilirsin arkadaşım
      Basitçe şöyle yapabilirsin burada paylaşılan koddaki sıcaklık yolla fonksiyonunu komple kopyala o fonksiyonun bitimine yapıştır isimni değiştir yeni fonksiyonun. Ardından istediğin şarta göre kullan. Örneğin

      if(veri==”a”){sıcaklıkyolla();}
      if(veri==”b”){field2_git();}
      if(veri==”c”){field3_git();}

  14. Arkadaşlar burada anlatılanlarda herhangi bir hata yok kodların hepsi çalışıyor. Sorun yaşayan arkadaşlar %90 besleme hatalarından dolayı bu sorunu yaşıyorlar.
    Uzun zamandır elektronikle uğraşmama rağmen bende aynı hatayı yaptım oradan biliyorum 🙂
    öncelikle arduino üzerindeki 3.3 V modüle yetersiz geliyor. O pin datashetinde yazdığına göre 50 mA akım verebiliyor, fakat modül gönderme yapacağı zaman çok daha fazla akım çekiyor. O sebeble beslemeyi farklı bir kaynaktan yaparsanız sorun yaşamazsınız. Isınma sorunu yada kararsız çalışma da olmaz mükemmel çalışır. Ayrıca modül için basit bir kart yapıp oraya oturtursanız daha sağlıklı olur bağlantı kabloları çalışmayı etkileyebiliyor

    Ben 9 V 1.5 A bir adaptöre bağladım arduinoyu aynı adaptörden de paralel ek alıp esp8266 için yaptığım devreyi besledim. Devrede gelen 9 voltu 7805 ile 5 volta düşürüyorum çıkan 5 voltuda 2 tane 1n4001 diyot ile 4 volta düşürüp modülü 4 volt ile besliyorum . Modül bu devre ile 2 gündür çalışıyor ne ısınma nede başka bir sorun var herkese tavsiye ederim. Bu aşamaya gelene kadar çok zaman kaybettim siz uğraşmayın.
    Son olarak modüle her türlü eziyeti yapmama rağmen şaşırtıcı bir şekilde bozulmadı şuan kusursuz çalışıyor ama siz genede modül beslemesini 3.5 V- 4 V arasında tutun fazlada yükseltmeyin modülünüz zarar görmesin.

  15. Merhabalar,
    Dediklerinizi yaptım. Sıcaklık sensörü yerine LDR bağladım.(LDR’yi doğru bağladığımı başka bir kodda test ettim.) ThingSpeak ‘ e veri aktarabiliyorum. Aktardığım veri 1023 degerinde stabil olarak kalıyor ve sürekli thingspeak’ e bu veriyi yazıyor. Nedeni ne olabilir. Yardımcı olabilecek varmı ?

  16. selam
    buna benzer bir programa ihtiyacım var ama sıcaklığı benim belirlediğim ip gönderecek ve bende onu uzaktan kontrolunu yapacağım

    • BC417 Bluetooth modülünden bahsediyorsanız malesef hayır. BC417’nin WiFi bağlantısı bulunmadığından ve komutları farklı olduğundan bu yazıda anlatılan yönergelerden farklı bir yol izlemeniz gerekecektir.

  17. Merhabalar,

    Ben dht11 ile hem ısı hem de nem değerlerini göndermek istiyorum. Dediğiniz gibi field1 kısmını field2 olarak değiştirdim fakat iki veriyi aynı anda göndermiyor.

    nem_yolla(nem);
    sicaklik_yolla(sicaklik);

    şeklinde fonksiyonları tanımladım. Bu şekilde yazdığımda nem değerlerini field2’de gösteriyor fakat sıcaklık değerlerini gönderemiyor.

    sicaklik_yolla(sicaklik);
    nem_yolla(nem);

    bu şekilde sıcaklık fonksiyonunu ilk sıraya yazdığımda sıcaklık değerlerini gönderiyor fakat nem değerlerini gönderemiyor.

    Acaba esp8266 modülü sadece bir veri mi gönderebiliyor yoksa başka bir problem mi var??

      • *** önemli not ***( Lisans tezimde kullandığım için sıkıntı yaşamamanız için lütfen kaynak belirtin.) Kendi kodladığım ve lisans tezinde kullandığım 5 tane aynı anda veri gönderen örneğim. Göndereceğiniz veri sayısını çok basit bir sekilde getStr +=”&fieldX=”; getStr += String(valueX); şeklinde artırabilirsiniz. X yerine veriyi yazacağınız alan field6 mesela onu belirtin. value6 olarak belirtin karışmasın. O değişkenede yazdıracağınız veri bulunması gerekir. boolean thingSpeakWrite(float value1, float value2, float value3, float value4, float value5, float valueX){ valuex lere değerleri ölçtüğümüz yerden thingSpeakWrite methoduna methodlar arası veri gönderimiyle veri gönderiyoruz. thingSpeakWrite(temperature,temperature2,humidity,pressure,altitude); veri gönderimi burdan yapılıyor. Sırasıyla sıcaklık, sıcaklık2, nem, basinc, rakim değerlerini value1 2 3 4 5 değişkenlerine gönderiyor. thingSpeakWrite methodunda ise field1e value1i yazıyor field1 sııcaklık alanı. Bu şekilde örneği geliştirebilirsiniz. Fakat Lisans tezimde kullandığım için kaynak belirtmeniz çok önemli proje aşağıdaki linktedir. Elektronik kaynak olarak linki kullanarak kaynak belirtebilirsiniz. Sorunsuz çalışmıştır. Thingspeak kanal linkimde aşağıdadır. Kolay gelsin.

        https://thingspeak.com/channels/486635
        https://github.com/zafercaliskan/ESP8266-ThingSpeak

  18. Merhaba çok uğraşmama rağmen bir türlü at komutuna ok cevabı alamadım. baudrate değerim 115200. bir türlü değerleri thingspeak üzerinde göremiyorum. lütfen yardım edin.

    • at komutlarına yanıt alamıyorsan modül ile iletişimde sıkıntı var demektir rx tx pinlerini kontrol et güncellemeyi doğru yaptığından emin ol birde hala sıkıntı yaşıyorsan başka kart veya modül ile dene donanımsal sıkıntı olabilir.

  19. Merhaba proje çok güzel olmuş. Ama thingspeak e max 3 gün veri aktarılıyor ondan sonra bir daha veri akışı yok bu sorun esp8266 dan mı thingspeak ten mi kaynaklı?

    • Bu sorun muhtemelen ThingSpeak ile alakalıdır. Ücretsiz üyelik ile kullanımda böyle bir sınır olabilir, daha fazla veri akışını ücretli üyelik paketlerinde sunuyor olabilirler.

      • Hocam denemediğim yol kalmadı. Modüle boş kod attım yok, iki FW yükledim yok, en son sizin güncelleme dosyalarını attım yine yok.. GPIO1’i GND’ye bağladığımda sadece modülün ışığı sürekli yanıyor. TX ve RX pinlerinin yerlerini değiştirdim. Defalarca. Sitenizde olan tüm bağlantı şemalarını da denedim bir türlü olmuyor. AT komutu Serial ekranda işliyor fakat ESP’de herhang bir ses yok. Yardımlarınızı rica eder iyi çalışmalar dilerim.

    • ömer bende senin gibi sorunun vardı at komutuna cevap vermiyor güncelleme yapılamıyordu tepkisizdi modül yeni modül ve yeni uno kartı aldım eski karta yeni modülü taktım çalışmadı yine aynı şekilde at komutlarına cevap vermiyordu. yeni karta eski wifi modülü takıp güncelleme denedim güncellendi at komutlarına da cevap verdi tüm sorun eski arduino uno kartımdaymış ama sadece rx ve tx portlarında sıkıntı varmış sanırım baska kart ve modül dene arızalı olabilir.

  20. Merhaba,
    Seriport ekranında AT komutlarına cevap alabiliyorum. LM35 yerine DHT-21 kullandım. Değişkenleri buna göre düzenledim. Seri port ekranında;
    AT
    23.70
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=74
    AT+CIPCLOSE
    sonuçlarını alıyorum ve bunları döngü şeklinde tekrarlıyor. Herşey normal gibi (?). Ancak ThingSpace de grafik oluşmuyor. Problem ne olabilir ?

    • Üst sorularda bir arkadaşın dediği gibi;

      String yollanacakkomut = “GET /update?key=…………….
      String yollanacakkomut = “GET /update?api_key=…………………………………..değişikliğini de yaptım ama yine veri akışı yok. Veri akışı sırasında ESP8266 nın mavi ışığı yanmalı mı ?

      • sadece kırmızı ışık yanıyor mavi yanıp yanmadığını bilmiyorum başka bir yerde sorun olmadığından emin misin? cihazın modeme bağlanıp bağlanmadığını kontrol et yada telefondan hotspot aç deneme 12345678 gibi sorun cikarmayacak ssid sifre koy bağlanıp bağlanmadını kontrol etmiş olursun.

    • Merhaba,
      Ben de günlerdir bu sorunla uğraşıyorum. At komutuna OK gelmediği için Thingspeak’e veri gönderemiyorum. Serial Monitor’de sizinkinin ve yukarıda bir çok yorumda olduğu gibi benzer sonuçlar görüyorum. Bu soruna bir şekilde çözüm bulabildiyseniz lütfen paylaşabilir misiniz?

  21. String yollanacakkomut = “GET /update?api_key=H8TW6FVT7NAI04UZ&field1=”; olarak değiştirip deneme amaçlı olduğundan sabit bi değer göndermesinde bu sekilde sorunsuz çalışıyor.

  22. Serial.begin(115200); komutundan sonra iletişim kesiliyor. AT komutları seri port üstünden gönderilemiyor. Nedendir acaba? komut bu şekilde çalışmıyor.

  23. Slm uygulama güzel ancak benim şöyle bir fikrim var bir web sitem olsa http://www.salla.com gibi burada birtane buton koyup esp8266 da cihaza bağlı bir ledi nasıl kontrol ederiz. Kendi sitemizden bunu nasıl yapabiliriz? Teşekkürler
    İyi çalışmalar

    • espnin local ipsi sabit değilse önce onu sabitlersin sonra modemden port açarsın modemin 80. portuna gelen istekleri doğrudan espye yönlendirir.

      sonra dış ipni sabitlemelisin. internet servis sağlayıcından ne yapman gerektiğini ve güncel fiyatını öğrenirsin (şuanda 25tl/ay). bu arada bunu dolaylı yoldan ama ücretsiz yapan yerler var araştırabilirsin.

      son olarak sahibi olduğun siteye bir buton koyup butonun çalıştıracağı linke ise http://sabitipadresin/?ON veya OFF şeklinde get istekleri gönderip espdende gelen get isteklerine göre iş yaptırabilirsin.

  24. Peki bu isemi kendi kudugumuz local veya hostingli farketmez bir siteye nasil gonderebiliriz ben kendi siteme bir veri gondermek istesem bu modulle nasil bir php kodu kullanmam gerek lutfen iletisime gecermisiniz

  25. Merhaba arkadaşlar;
    Seri port ekranında aşağıdaki verileri alıyorum. İnternete bağlanamadı veri gönderemedim.
    Yardımcı olur musunuz?

    AT
    4.30
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=47
    AT+CIPCLOSE

  26. Merhabalar,

    civalı sensör kullanarak alarm yapmak istiyorum. Sensörün durumu değiştiğinde yani hareket olduğunda tweet attırmak istiyorum. Thinhspeak kısmını hallettim bu kod üzerinde oynama yaparak bunu yapma konusunda yardımlarınız rica olunur:) Birde Thingspeak ıp adresi?

  27. find komutunda hata veriyor

    C:\Users\HP-HP\Documents\Arduino\sketch_aug28aBBBBBBB\sketch_aug28aBBBBBBB.ino:55:20: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    if(Serial.find(“>”)){

  28. Merhabalar
    Uzun uğraşlar sonucu ESP8266-01 için güncelleme yapabildim. Şimdi sorunum şu. SerialMonitör ile At komutu yolluyorum OK dönüyor. Wifi’a buradan AT+CWJAP komutu ile bağlanıyorum onda da sıkıntı yok. IP’yi alıyor. Ne zamanki bunu Uno içinde kod ile yapmaya çalışıyorum hep hata alıyorum.
    Kodu aşağıdaki gibi yazdım. IDE içinde board olarak Arduino Uno seçili. Bunu Generic ESP8266 Module mü seçmeliyim. Elimdeki ESP8266 bozuk diye yenisini aldım. Onda da durum aynı. Versiyonu bu

    AT+GMR
    AT version:1.7.0.0(Aug 16 2018 00:57:04)
    SDK version:3.0.0(d49923c)
    compile time:Aug 23 2018 16:58:14
    Bin version(Wroom 02):v1.7.0
    OK

    Birisi yardımcı olabilirse sevinirim çünkü çıldırttı beni bu ESP8266-01.

    Yazdığım kod:
    #define ag_ismi “XXX”
    #define ag_sifresi “XXX”

    void setup()
    {
    Serial.begin(115200);
    Serial.println(“Started”);

    Serial.println(“AT”);
    delay(6000);

    if (!Serial.find(“OK”))
    {
    Serial.println(“AT komutundan OK dönmedi. Denemeye başla ve OK Dönene Kadar Devam Et.”);
    }

    while(!Serial.find(“OK”)){
    Serial.println(“AT”);
    delay(6000);
    }

    Serial.println(“OK Komutu Alındı”);
    Serial.println(“AT+CWMODE=1”);
    while(!Serial.find(“OK”)){ //Ayar yapılana kadar bekliyoruz.
    Serial.println(“AT+CWMODE=1”);
    Serial.println(“Ayar Yapılıyor….”);
    }
    }

    void loop() {}

  29. Programı kurdum fakat derleme sırasında bu şekilde bir hata alıyorum;
    ————————————————-
    C:\Users\Hüseyin KAYA\Desktop\HOBİ DEVRELERİ\ESP_SICAKLIK\sketch_apr11b\sketch_apr11b.ino: In function ‘void sicaklik_yolla(float)’:

    C:\Users\Hüseyin KAYA\Desktop\HOBİ DEVRELERİ\ESP_SICAKLIK\sketch_apr11b\sketch_apr11b.ino:43:25: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    —————————————————————–

    Sebebi ve çözümü nedir acaba?

  30. Yukarıda birçok kişinin karşılaştığını belirtip çözemedikleri ve benimde karşılaşıp uğraşarak çözdüğüm bir sorunun çözümü şu şekildedir;

    Programınızı arduinoya yükleyip seri portunuzu açtığınızda, seri port ekranından aşağıdaki gibi veriler okuyorsanız ve Thinkspeak’e hiçbir veri iletilmiyorsa;
    AT
    4.30
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=47
    AT+CIPCLOSE

    Bu durumda yapmanız gereken aslında çok basit, bağlantınızı konudaki resimde gösterildiği gibi yapmanız 🙂

    Şöyleki; Seri porttan kendimiz AT komutlarını yazıp, yanıt almaya çalışırken, yada güncelleme yaparken, arduino ile ESP8266 arasındaki TX-RX bağlantıları şu şekilde olmalıdır ; TX-TX, RX-RX. Ancak, arduinoya programımızı yükledikten sonra, artık bağlantıyı şu hale çevirmemiz gerekir TX-RX, RX-TX.

    Biz AT komutlarına yanıt almak için yada güncelleme yapmak için uğraşırken sürekli TX-TX, RX-RX bağlantısını yapmak zorunda olduğumuzdan, arduinoya yukarıdaki programı yükledikten sonrada bu şekilde kalacağımızı düşünüyoruz ve sonuçta da sürekli yukarıda yazdığımız gibi seri port ekranından hep aynı verileri okuyoruz ama Thinkspeak’e hiç veri gitmiyor. Yukarıdaki programı arduinoya yükledikten sonra, bağlantınızı TX-RX, RX-TX’e çevirdiğiniz zaman (eğer başka bir hatanız yoksa) seri port ekranından aşağıdaki gibi yazılar okuduğunuzu göreceksiniz ve verileriniz de Thinkspeak’e iletiliyor olacak.

    AT
    AT+CWMODE=1
    AT+CWJAP=”Nybe”,”burakemre12345″
    109.88
    AT+CIPSTART=”TCP”,”184.106.153.149″,80
    AT+CIPSEND=49
    GET /update?key=D8B3MYFV43GUKBPD&field1=109

    Bu arada arduinoya konuda verilen programı yüklerken, arduinoya bağlanan TX-RX uçlarını sökmeyi unutmayın. yoksa program yüklenmez. program yüklendikten sonra tekrar bağlarsınız.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz