İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu kılavuz, ESP8266'dan herhangi bir veri almanızı ve AT komutları olmadan python üzerinden kontrol etmenizi sağlar.
Yeni başlayanlar için, ESP8266'yı kullanmayla ilgili kılavuzların çoğu zordur, çünkü "AT COMMANDS"ı çipe aktarmanızı isterler, yani:
- gereksiz
- ESP hafızasını boşa harcamak
- Size sınırlı kontrol sağlar
- Zor ve Zorlu
- Ve tüm ESP8266 modülleri için uygun değildir
Bu yüzden sadece 3 basit fonksiyonla kontrol edilen çok basit bir mDNS iletişim sistemi oluşturdum. Ayrıca size tam kontrol sağlar.
1. Adım: Teori
esp'imiz wifi'mize bağlanıyor ve bir localhost sunucusu oluşturuyor ve bir istek beklemeye başlıyor. Python'umuz o yerel ana bilgisayara her istek gönderdiğinde, esp istenen kodu çalıştırır ve ardından sonucu bir http isteği olarak döndürür. Sonunda python, verileri http isteği olarak döndüren okur ve bu değişkenleri ondan alır. Bununla esp, dizeleri, verileri ve dizileri döndürebilir. Python kodu, veri türlerini anlayacaktır.
Adım 2: Gerekli Kitaplıkları Hazırlama
Öncelikle arduino ide'ye ESP8266 kart kitaplığını indirmiş olmanız gerekmektedir. Nasıl yapılacağını bilmiyorsanız, işte kılavuz.
Daha sonra buradan mikro kitaplığımı indirmeniz gerekiyor.
İndirdikten sonra kütüphane klasöründe "ESP_MICRO.h" adında bir dosya var, mevcut arduino projenizin kodlama klasörünüze kopyalayın. Evet, arduino kütüphanelerine kopyalamayın, bu bir mikro kütüphanedir, bu yüzden mevcut arduino projenizin klasörüne kopyalayacaksınız.
Yani artık gereksinimlerimiz karşılandı. Kodlamaya başlayabiliriz.
Adım 3: Basit İstek Kodu Yazma
Project.ino'nuzu açtığınızda, arduino ide üzerinde iki sekme göreceksiniz. Biri projeniz, diğeri ise mikro kütüphanemiz "ESP_MICRO.h".
Artık ana kodunuzdaki ESP_MICRO.h'de bu 5 işlevine sahipsiniz, (işlevler ESP_MICRO.h'nin ilk satırlarında açıklanmıştır)
İşte basit bir değişken artan kod.
Arduino kodu:
/* ESP2PY İÇİN F5 TESTİ
* Junicchi tarafından yazıldı * https://github.com/KebabLord/esp_to_python * Bir python isteği her geldiğinde basitçe artar ve bir değişken döndürür */ #include "ESP_MICRO.h" //Mikro kitaplığı dahil et int testvariable = 0; geçersiz kurulum(){ Serial.begin(9600); // Detayları görmek için seri port başlatılıyor start("KULLANICI ADI", "ŞİFRE"); // EnAIt, verilen detaylarla wifi'nize bağlanacak } void loop(){ waitUntilNewReq(); //python'dan yeni bir istek gelene kadar bekler /* yeni bir istek geldiğinde indeksi arttırır*/ testvariable += 1; returnThisInt(testdeğişkeni); //Verileri python'a döndürür }
4. Adım: Yükleme
Nodemcu ESP8266'ları programlamak sadece usb'yi takmak ve çizimi arduino'dan yüklemektir.
Ancak ESP8266-1'i programlamak daha zordur, onları programlamanın iki yöntemi vardır.
ESP'yi arduino üzerinden programlama
Jumper konusunda sıkıntınız varsa bu devre ile arduino üzerinden programlayabilirsiniz. Ama uzun vadede, bu acı. Bu yüzden başka bir yöntem öneriyorum.
ESP programcısı ile programlama
Çok daha kolay ve hızlı. Sadece 1 dolar, bir tane satın alın ve bir programlayıcı usb kullanın.
ESP'nin IP adresini öğrenme
Kod yüklenirken seri bağlantı noktasını açın, yükleme tamamlandığında ayrıntıların yazdırıldığını göreceksiniz. esp'nin IP'sini öğrenin ve bunu not edin. Unutmayın, ESP'nin yerel IP'si; oturumdan oturuma değil, wifi ile wifi olarak değişir, bu nedenle daha sonra kapatıp açtığınızda değişmez.
Adım 5: Okuma ve Python
esp_to_python/library'de bir "EXAMPLE_PYTHON_READER.py" var
edit edin, seri port üzerinde yazan esp modülünün IP adresi ile 5. satırı değiştirin ve python scriptini çalıştırın. Bu projede istek göndermek ve okumak için python kullandım. Ancak ESP'nin ipini bir tarayıcıya yapıştırırken ham verileri bir tarayıcı ile de görüntüleyebilirsiniz. Ya da okumak için bir uygulama yapabilir, hatta başka bir dil bile kullanabilirsiniz. Modülün python üzerinden kontrol edilmesi ayrıca örnekler klasöründeki " ledControl " projesinde anlatılmaktadır.
Adım 6: Sonlandırma
Tüm işlevler ve kodlar ESP_MICRO.h dosyasında ve README.md dosyasında açıklanmıştır.
Bu proje size yardımcı olduysa, orijinal projeye github'da yıldız verebilirsiniz.