İçindekiler:

ESP32 Kod Üretici - Wifi, BLE, Bluetooth: 9 Adım
ESP32 Kod Üretici - Wifi, BLE, Bluetooth: 9 Adım

Video: ESP32 Kod Üretici - Wifi, BLE, Bluetooth: 9 Adım

Video: ESP32 Kod Üretici - Wifi, BLE, Bluetooth: 9 Adım
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Kasım
Anonim
ESP32 Kod Üretici - Wifi, BLE, Bluetooth
ESP32 Kod Üretici - Wifi, BLE, Bluetooth

Tanıtım

ESP32, WiFi, Bluetooth Classic ve BLE (Bluetooth Low Energy) desteğine sahip, düşük maliyetli bir çift işlemci yongasıdır. Çip birkaç yıldır piyasada olmasına rağmen, Arduino için kod desteği hala tamamlanmadı (Nisan 2018'de olduğu gibi), ancak bu talimat ve kod üreteci eksik BLE ve analogWrite işlevlerini dolduruyor.

İpucu: ESP32'de 'standart Arduino' analogWrite işlevi yoktur. Ancak bu kod üreteci, sizin için onu simüle eden kod üretir

İpucu: ESP kodu yüklemesi, BLE desteğini içermez. Burada açıklanan yükleme, BLE desteğini içerir

Bu web sayfası, ESP32'yi BLE, Bluetooth veya WiFi bağlantıları için programlamak üzere Arduino IDE'nin ayarlanmasını kapsayacaktır. pfodDesigner, bu bağlantı türlerinin her biri için kod üretir ve ayrıca eksik analogWrite işlevini simüle etmek için kod üretir.

ESP32, WiFi, Bluetooth Classic ve BLE (Bluetooth Low Energy) desteğine sahip, düşük maliyetli bir çift işlemci yongasıdır. Çip birkaç yıldır piyasada olmasına rağmen, Arduino için kod desteği hala tamamlanmadı (Nisan 2018'de olduğu gibi), ancak bu eğitim ve kod oluşturucu eksik BLE ve analogWrite işlevlerini dolduruyor. Bu web sayfası, Arduino IDE, ESP32'yi BLE, Bluetooth veya WiFi bağlantıları için programlamak için. pfodDesigner, bu bağlantı türlerinin her biri için kod üretir ve ayrıca eksik analogWrite işlevini simüle etmek için kod üretir.

Arduino eklentisi, bazı 31 ESP32 kartını destekler. pfodDesigner'ı kullanırken, kendi kartınızda bulunanlarla eşleşen pin bağlantılarını seçmeniz gerekecektir. Sparkfun ESP32 Thing (veya Adafruit HUZZAH32 Feather) burada örnek ESP32 kartı olarak kullanılmıştır, ancak kodu desteklenen 31 ESP32 kartından herhangi biri için kullanabilirsiniz.

Ücretsiz pfodDesignerV3 Android uygulaması, kontrol menüsünü (WYSIWYG) oluşturmak ve ardından BLE, WiFi veya Bluetooth bağlantısı için ESP32 kodunu oluşturmak için kullanılır. ESP32 kartınızı programladıktan sonra, ESP32'nize (BLE veya WiFi veya Bluetooth aracılığıyla) bağlanmak ve kontrol menünüzü görüntülemek ve ESP32'nizi kontrol etmek için pfodApp Android uygulamasını (ücretli) kullanabilirsiniz. pfodApp kullanmak istemiyorsanız, oluşturulan kodu kendi WiFi, BLE (Nordic UART) veya Bluetooth bağlantılarınız için temel olarak kullanabilirsiniz, çünkü bu bağlantı türlerinin her birine bir Akış (yazdırma/okuma) arabirimi sağlar..

Adım 1: İpucu: BLE Destekli ESP32 için Arduino Desteğini Kurma

Nisan 2018'de olduğu gibi, Arduino ESP32 desteğini kurmak, diğer kartların çoğundan daha karmaşıktır ve sağlanan kod kitaplıkları tamamlanmamıştır. ESP32 desteğini kurmak için Arduino Board yöneticisini kullanamazsınız. ESP32 programlama için Arduino'yu kurmak için bu adımları izleyin. Bu, ESP32'yi ve ayrıca BLE desteğini yükleyecektir.

1 Arduino Sketchbook konum Dizininizin yolunu bulun. Arduino IDE'yi açın ve Dosya-> Tercihler altına bakın ve bu ekranın üst kısmında Sketchbook konumunu göreceksiniz.

2 Bu ESP32_hardware.zip dosyasını indirin ve Sketchbook konumuna çıkartın. Orada bir donanım alt dizini oluşturur. Pek olası olmayan bir durumda, Sketchbook konumunuzda zaten bir donanım alt dizininiz varsa, içeriğini bununla birleştirin.

3 Xtensa ve ESP32 Araçlarını kurun. Not: Bu indirme ve yükleme, ~0.5Gig dosyaları işlemek için biraz zaman alır. Hardware\espressif\esp32\tools dizinine gidin, ardından Windows makineleri için get.exe dosyasını çalıştırın. Mac ve Linux kullanıcıları için, araçları indirmek için get.py python betiğini çalıştırın. Bir terminal kullanarak donanım/espressif/esp32/tools klasörüne gidin. Ardından şunu yazın: python get.py“get.py” python betiği, Xtensa GNU araçlarını ve ESP32 yazılım geliştirme kitini (SDK) indirecek ve bunları uygun konuma açacaktır.

Tamamlandığında, "tools" dizininde "sdk" ve "xtensa-esp32-elf" dahil olmak üzere birkaç yeni klasör görmelisiniz.

Bu tamamlandığında, Arduino IDE'nizi kapatın ve yeniden açın ve şimdi Araç->Panolar menüsü altında seçim yapabileceğiniz uzun bir ESP32 panoları listesine sahip olmalısınız. “SparkFun ESP32 Şey”i (veya “Adafruit ESP32 Tüy”) seçin

Ardından, bir dizi ESP32 örnek dosyasını görmek için Dosya Örnekleri listesini açabilirsiniz.

Yukarıdaki işlem, tek bir zip dosyasında birleştirilmiş ESP32 ve BLE desteği için github kodunun bir anlık görüntüsünü yükler. pfodDesigner tarafından oluşturulan kod ve aşağıdaki örnekler, bu kitaplıkların bu sürümünü kullanır. Muhtemelen farklı bir dizi özellik ve hata içeren en son sürümü istiyorsanız, https://github.com/espressif/arduino-esp32'nin en son sürümünün zip dosyasını indirin ve donanım/espressif olarak açın ve yeniden adlandırın. esp32 klasörünü ve ardından BLE desteği için https://github.com/espressif/arduino-esp32 dosyasının en son sürümünün bir zip dosyasını indirin ve bunu esp32/libraries klasörüne açın ve adını ESP32_BLE_Arduino olarak değiştirin (gerekirse).

Adım 2: ESP32 için PfodParser Kitaplıklarını Yükleme

a) Ardından pfodParser.zip kitaplığı V3.23+, pfodDwgControls.zip ve ESP32 WiFi için pfodESP32BufferedClient.zip, zip dosyalarını bilgisayarınıza indirin, bunları masaüstünüze veya kolayca bulabileceğiniz başka bir klasöre taşıyın.

b) Ardından Arduino 1.8.2 IDE menü seçeneği Sketch → Import Library → Add Library kullanarak bunları kurun. (Arduino, kütüphane zaten mevcut olduğu için yüklemenize izin vermiyorsa, eski pfodParser, pfodCmdParser veya pfodCHAP etc klasörlerini bulup silin ve bunları içe aktarın)

c) Arduino IDE'yi durdurun ve yeniden başlatın ve Dosya->Örnekler altında şimdi pfodParser, pfodDwgControls ve pfodESP32BufferedClient kitaplıkları ve bir dizi örnek görmelisiniz.

Adım 3: ESP32 için PfodDesignerV3'ü Kullanma

Ücretsiz pfodDesignerV3 (V3291+) uygulaması, ESP32 yongasının BLE, WiFi veya Bluetooth Classic aracılığıyla pfodApp'a (ücretli) bağlanması için kod oluşturmayı destekler.

pfodDesignerV3'ü kullanarak çok çeşitli panoları kontrol etmek için Android cep telefonunuz için kontrollerin nasıl oluşturulacağına dair birçok mevcut eğitim vardır. pfodDesignerV3 ile çıkışları açan/kapatan veya darbeli kontroller oluşturabilir, çıkışları PWM aracılığıyla kontrol edebilir, bir giriş veya analog değerin durumunu görüntüleyebilir, verileri ve alt menüleri kaydedebilir ve çizebilirsiniz ve çok daha fazlasını yapabilirsiniz.

İpucu: ESP32 Arduino desteği, bazı 31 farklı ESP32 kartı için destek içerir. pfodDesignerV3, tüm ESP32 I/O pinlerine erişmenizi sağlar, ancak tüm kartlar, tüm ESP32 pinlerini kart pinlerine bağlamaz. Kullanılabilir pinler için anakartınızın belgelerini kontrol edin ve anakartınızın donanım\espressif\esp32\variants dizini altındaki pins_arduino.h dosyasına bakın.

pfodDesignerV3 pin listesi, Sparkfun ESP32 Thing ve Adafruit HUZZAH32 – ESP32 Feather Boards için kullanılabilirlik ve özel kullanım pinleri hakkında yorumlar içerir.

Bu örnekler Sparkfun ESP32 Thing kartını kullanır ve Android cep telefonunuzdan pin 5'e bağlı yerleşik LED'in parlaklığını kontrol etmek için bir kaydırıcı oluşturur. Bunun yerine Adafruit HUZZAH32 – ESP32 Feather kartını kullanıyorsanız, yerleşik Led pin 13'e bağlanır. Yukarıda kurulan ESP32 Arduino desteği, Arduino'nun analogWrite'ını doğrudan desteklemez. Bunun yerine ESP32, kontrol edebileceğiniz ve herhangi bir çıkışa bağlanabileceğiniz 16 PWM kanalına sahiptir. pfodDesignerV3, kanalı tahsis etmek ve seçtiğiniz çıkışa bağlamak için gerekli tüm kodu üretir. google play'den ücretsiz pfodDesignerV3'ü (V3291+) yükleyin.

Adım 4: ESP32 BLE Kod Oluşturucu

ESP32 BLE Kod Üreticisi
ESP32 BLE Kod Üreticisi
ESP32 BLE Kod Üreticisi
ESP32 BLE Kod Üreticisi
ESP32 BLE Kod Üreticisi
ESP32 BLE Kod Üreticisi
ESP32 BLE Kod Üreticisi
ESP32 BLE Kod Üreticisi

Yeni bir Menü başlat

Hedef cihazı değiştirmek için Hedef düğmesine tıklayın.

İlk örnek hedef ESP32 BLE olacaktır, bu nedenle Bluetooth Düşük Enerji düğmesine tıklayın.

BLE ile bağlanan ESP32'yi seçin ve ardından ana ekrana geri dönmek için cep telefonunun geri düğmesine basın.

Adım 5: Menünün Tasarlanması - İstem

Menüyü Tasarlama - Komut İstemi
Menüyü Tasarlama - Komut İstemi
Menüyü Tasarlama - Komut İstemi
Menüyü Tasarlama - Komut İstemi
Menüyü Tasarlama - Komut İstemi
Menüyü Tasarlama - Komut İstemi

Bu basit örnekte yalnızca bir bilgi istemi ve tek bir kontrol olacaktır. Bilgi istemi metnini ayarlamak için İstemi Düzenle düğmesini ve ardından İstem Metni Düzenle düğmesini tıklayın.

Burada istem “ESP32 Led” olarak ayarlanmıştır. Düzenlemelerinizi kaydetmek ve önceki ekrana dönmek için onay düğmesini tıklayın. Ardından, kontroller menüsü için tüm rengi seçmek için Arka Plan rengini Ayarla'yı tıklayın.

Her kontrol için farklı renkler seçebilirsiniz. Bilgi istemi için kullanılabilecek çeşitli başka biçimler vardır. Burada arka plan Mavi olarak ayarlanmıştır ve yazı tipi boyutu +5'tir ve metin Kalındır. Biçimlendirilmiş istemin bir önizlemesi, Düzenleme İstemi ekranının altında gösterilir.

Adım 6: Menünün Tasarlanması - PWM Led Kontrol

Menü Tasarımı - PWM Led Kontrol
Menü Tasarımı - PWM Led Kontrol
Menü Tasarımı - PWM Led Kontrol
Menü Tasarımı - PWM Led Kontrol
Menü Tasarımı - PWM Led Kontrol
Menü Tasarımı - PWM Led Kontrol
Menü Tasarımı - PWM Led Kontrol
Menü Tasarımı - PWM Led Kontrol

Ana menüye dönmek için cep telefonunun geri düğmesini kullanın ve ardından bir kontrol veya görüntüleme öğesi eklemek için Menü Öğesi Ekle'yi tıklayın.

PWM Çıkışı öğesini seçin. Ekranın üst kısmında kontrolün bir önizlemesi gösterilir.

İpucu: ESP32'de 'standart Arduino' analogWrite işlevi yoktur. Ancak bu kod üreteci, sizin için onu simüle eden kod üretir

Baştaki Metni Düzenle düğmesini tıklayın ve “PWM Ayarını” “Led” olarak değiştirin “Led” i % göstergesinden ayırmak için sondaki boşluğa dikkat edin.

Düzenlemenizi kaydetmek için onay düğmesini tıklayın ve ardından "G/Ç pinine bağlı değil" düğmesine gidin.

Çıkış olarak kullanılabilecek pinlerin listesini görüntülemek için bu düğmeye tıklayın.

Bu, Sparkfun ESP32 Thing ve Adafruit HUZZAH32 Feather panoları için özel kullanım pinlerini gösterir. Kaydırıcı kontrolün Sparkfun ESP32 Thing'in yerleşik led parlaklığını kontrol etmesi için pim 5'i seçin. Adafruit HUZZAH32 Feather board kullanıyorsanız, bunun yerine pin 13'ü seçin. Diğer anakartlar için anakartınızın belgelerine ve anakartınızın donanım\espressif\esp32\variants dizini altındaki pins_arduino.h dosyasına bakın.

Ardından, bu kaydırıcı için diğer biçimlendirme ayarlarını yapmayı tamamladığınızda, ana menüye geri dönmek için cep telefonunun geri düğmesini kullanın ve pfodApp tarafından görüntülendiğinde cep telefonunuzda son menünün nasıl görüneceğini görmek için Önizleme Menüsü'nü tıklayın. Kontroller canlıdır, böylece onları önizlemede taşıyabilirsiniz.

7. Adım: ESP32 Kodunu Oluşturun

ESP32 Kodunu Oluşturun
ESP32 Kodunu Oluşturun
ESP32 Kodunu Oluşturun
ESP32 Kodunu Oluşturun

Ana menüye dönün ve Kod Oluştur düğmesine gidin.

Kodu Oluştur düğmesini tıklayın ve ardından kodu oluşturmak için Kodu Dosyaya Yaz düğmesini tıklayın.

pfodDesignerV3'ten çıkın ve /pfodAppRawData/pfodDesignerV3.txt içindeki kodu cep telefonunuzdan bilgisayarınıza aktarın. Bunu yapmanın yolları için pfodAppForAndroidGettingStarted.pdf'ye bakın. smarterDroid'in wifi dosya aktarımı pro uygulaması, aktarımı yapmanın bir yoludur.

Kod Oluştur ekranındaki “Hedefi Değiştir” düğmesini kullanarak BLE üzerinden ESP32, Bluetooth üzerinden ESP32 ve WiFi üzerinden ESP32 arasında geçiş yapabilirsiniz.

Adım 8: Örnekleri Çalıştırma

Örnekleri Çalıştırmak
Örnekleri Çalıştırmak

Kod Oluştur ekranındaki “Hedefi Değiştir” düğmesini kullanarak BLE üzerinden ESP32, Bluetooth üzerinden ESP32 ve WiFi üzerinden ESP32 arasında geçiş yapabilirsiniz.

Yukarıdaki tasarımdan aşağıdaki üç örnek çizim bu şekilde oluşturulmuştur.

pfodESP32_BLE örneğini çalıştırma

Hedefi BLE aracılığıyla ESP32'ye ayarlamak, kodu pfodESP32_LED_BLE.ino'da oluşturur. Bu çizim ayrıca Dosya->Örnekler->pfodParser altında da mevcuttur. Bu örneği açın, ardından Sparkfun ESP32 Thing'i (veya başka bir ESP32 kartını) programladıktan sonra, pfodApp üzerinde bir bağlantı kurmalı (ayrıntılar için pfodAppForAndroidGettingStarted.pdf'ye bakın) ve bağlanmalı ve ekranın parlaklığını ayarlayabilmelisiniz. kurulu led.

İPUCU: ESP32, hem BLE hem de Bluetooth için aynı bluetooth adresini kullanır, bu nedenle daha önce pfodApp'te bir ESP32 Bluetooth bağlantısı kurduysanız, bir BLE bağlantısı kurmadan önce bu pfodApp Bluetooth bağlantısını silmeniz gerekir, çünkü pfodApp mevcut bağlantıları filtreler (adresi) mevcut cihazların görüntülenen listesinden. Ayrıca cep telefonunuzun ayarını açmanız ve ESP32 Bluetooth bağlantısını 'unutmanız' ve ardından cep telefonunun Bluetooth'unu kapatmanız ve Bluetooth yığınını temizlemek için telefonunuzu yeniden başlatmanız gerekebilir

İPUCU: Neil Kolban'ın ESP32_BLE_Arduino kitaplığı, pfodDesigner tarafından oluşturulan diğer bazı BLE hedefleri tarafından kullanılan Sandeep Mistry'nin BLEPeripheral kitaplığı ile uyumlu değildir. Bu nedenle, ESP32 BLE eskizlerini derlemek için BLEPeripheral dizinini (varsa) Arduino/libraries dizininizden kaldırmanız gerekir.

pfodESP32_Bluetooth örneğini çalıştırma

Hedefi Bluetooth aracılığıyla ESP32'ye ayarlamak, kodu pfodESP32_LED_Bluetooth.ino'da oluşturur. Bu çizim ayrıca Dosya->Örnekler->pfodParser altında da mevcuttur. Bu örneği açın, ardından Sparkfun ESP32 Thing'i (veya diğer ESP32 kartını) programlayın. ESP32'yi telefonunuzla eşleştirmeniz gerekir, pin numarası gerekmez. Ardından pfodApp üzerinde bir bağlantı kurun (ayrıntılar için pfodAppForAndroidGettingStarted.pdf'ye bakın) ve bağlanın ve kart ledinin parlaklığını ayarlayabilirsiniz.

pfodESP32_WiFi örneğini çalıştırma

Hedefi WiFi aracılığıyla ESP32'ye ayarlamak, kodu pfodESP32_LED_WiFi.ino'da oluşturur. Bu çizim ayrıca Dosya->Örnekler->pfodParser altında da mevcuttur. Bu örneği açın ve ağınızın adını ve parolasını girin ve bu cihaz için statik bir IP seçin. Ardından, Sparkfun ESP32 Thing'i (veya başka bir ESP32 kartı) programladıktan sonra, pfodApp üzerinde ona bir bağlantı kurmalı (ayrıntılar için pfodAppForAndroidGettingStarted.pdf'ye bakın) ve bağlanıp kart ledinin parlaklığını ayarlayabilmelisiniz.

9. Adım: WiFi Güvenliği

ESP32'ye internet üzerinden (wifi üzerinden) bağlanıyorsanız, güvenlik önemlidir. Örneğin, kimsenin garaj kapınızı açabilmesini istemezsiniz. Kod üreteci ve pfodParser kitaplığı 128 bit güvenliği destekler. Bu güvenlik, mesajları şifrelemez, bunun yerine yetkisiz bağlantı ve kontrole karşı koruma sağlamak için her mesaja bir kriptografik karma ekler. Bu güvenliğin nasıl uygulandığına ilişkin ayrıntılar için SipHash Secure Challenge and Response'a bakın.

128 bit güvenlik ekleme

İnternet üzerinden cihazınıza erişen yetkisiz kullanıcılara karşı güvence altına almak, kendi gizli kodunuzu eklemek için #define pfodSecurityCode "" düzenlemek kadar kolaydır. (32 Hex basamağa kadar)

Örneğin, 173057F7A706AF9BBE65D51122A14CEE'lik bir güvenlik kodu ayarlamak için#define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE"'yi kullanırsınız. Elbette kendi gizli kodunuzu kullanmalısınız. pfodApp bağlantınızda kendi kodunuzu ayarlamak, başka hiç kimsenin bağlantı kurmanıza izin vermez.

İyi bir güvenlik için uzun bir rastgele kod gereklidir. pfodApp, 32Hex basamak olarak 128 bit'e kadar destekler.

Kendi gizli kodunuzu oluşturmak için buradan rastgele bir Gizli Anahtar Üreticisi indirebilirsiniz. Bu program, rastgele anahtarlar oluşturmanın yanı sıra bunları QR kodları olarak yazar, böylece bunları pfodApp bağlantınızda kolayca ve doğru bir şekilde ayarlayabilirsiniz.

QR kodunu yazdırabilir ve pfodDevice cihazınıza ekleyebilirsiniz. Ardından şifreyi okumak için pfodApp WiFi bağlantı ekranında QR tara düğmesine tıklayın.

Anahtar üreteci ve QR kodunu kullanmanın ayrıntılı bir örneği için 128 bit güvenlikli Basit WiFi/Arduino pfodDevice™ konusuna bakın.

Çözüm

Bu eğitim, ESP32'yi programlamak için Arduino IDE'nin nasıl kurulacağını göstermiştir. Ardından, BLE, Bluetooth veya WiFi aracılığıyla ESP32'ye bağlanmak için yerleşik led ve oluşturulan kodun parlaklığını kontrol etmek için bir menü tasarlamak için ücretsiz pfodDesigner uygulamasını kullandı. Daha sonra pfodApp apppfodApp uygulaması üzerinden bağlanırsanız, tasarladığınız menüyü görecek ve bir kaydırıcı aracılığıyla led'in parlaklığını kontrol edebileceksiniz. pfodDesigner, Arduino'nun analogWrite'ını simüle etmek de dahil olmak üzere tüm Arduino kodunu üretir. Arduino kodlaması gerekli değildi. pfodApp tüm Android tarafıyla ilgilenir, Android kodlaması gerekmez.

Önerilen: