Şimdi Ara

Nodemcu ve ESP01 ile Sıcaklık Aktarımı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
982
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Sizlere yaptığım proje olan ESP01 ile NODEMCU arasında sıcaklık aktarımını anlatacağım.
    Sizlere şöyle detaylandırayım.
    ESP01 Arduino'ya bağlı olacak. Thingspeak'e veri aktaracak. Sıcaklık ölçümü LM35 ile gerçekleşecek.
    NODEMCU'ya 16x2 LCD Ekran bağlı olacak. Thingspeak'ten aldığı bu veriyi ekrana yazacak.
    Öncelikle Kötü Devre Tasarımımdan özür diliyorum, ilk defa fritzing kullandım :D
    Arduino'ya atılacak kodu ROBOTISTAN.COM'dan aldım.
    İsteyen (https://maker.robotistan.com/esp8266-dersleri-2-thingspeake-sicaklik-yollama/).

    Arduino'ya atılacak kodumuz.
    ------------------------------------------------------------------------------------

    #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");
    }
    }

    --------------------------------------------------------------------------------
    Devre Şemamız.
    Nodemcu ve ESP01 ile Sıcaklık Aktarımı

    NOT:Arduino'ya kodu atmadan RX ve TX Pinlerini çıkarın, aksi halde kodunuz atılamaz.
    ---------------------------------------------------------------------------------
    NODEMCU'ya atılacak kodumuz.

    #include <LiquidCrystal.h>

    #include <ESP8266WiFi.h>

    #include <ThingSpeak.h>

    LiquidCrystal lcd(16,5,4,0,2,14);

    WiFiClient client;

    void setup()
    {
    lcd.begin(16,2);

    Serial.begin(9600);
    ThingSpeak.begin(client);

    WiFi.disconnect();
    WiFi.begin("ev wifisi","ev wifi şifresi");
    while ((!(WiFi.status() == WL_CONNECTED))){
    delay(300);
    Serial.println("...");

    }
    Serial.println("Baglanildi");

    }


    void loop()
    {

    if (client.connect("api.thingspeak.com",80)) {
    Serial.println((ThingSpeak.readIntField(kanalnumarasi,1,"dataalmakicinnumara")));

    }

    }

    -----------------------------------------------------------------------------
    Öncelikle Ev wifi adınız, ev wifi şifrenizi kendi bilgilerinizle doldurun.
    Kanal numarasını ve data almak için gereken id'yi de değiştirin.(Get data api)







  • Güzel bende deneyeyim o zaman. Bende 2 tane nodemcu yu nete cıkmadan haberleştirmek istiyorum. Birine lcd takılı olsun diğeri keypad ile yazdıgım karakterleri iletmek istiyorum. Umarım çalışır paylaşırım.
  • Bu mesajı görmem epey uzun sürdü kusura bakmayınız. Tabiiki sizde böyle bir proje yapabilirsiniz. Eğer kodlama hakkında çok biliniz yoksa "Tuniot nodemcu" yazıp demoyu açınız. Tıpkı scratch gibi kodlayabilirsiniz.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Kusura bakmayınız mesajınızı görmem uzun sürdü. Umarım projeniz başarılı gidiyordur. Projeniz bittiğinde son halini sabırla bekliyorum. Lütfen beni haberdar edin!

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.