Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi 10.3 ile mobil uygulamadan esp32 cihazına bluetooth le ile metin gönderme
#1
Thumbs Up 
Delphi 10.3 ile bir esp32 cihaza bluetooth le aracılığıyla metin gönderecek bir mobil uygulama yazmaya çalışıyorum.

BLE toknolojisi hakkında deneyimli değilim bu yüzden Delphi tarafında BLE ve yapısını öğrenmek için bu Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.takip ederek Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. düzenlemeye çalışıyorum ( \Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner).

ESP32 tarafında ise bir Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.buldum. Ama bu proje için kullanılan uygulama thunkable (online program yazma) uygulaması ve Delphi ile aynı şeyi (ekte uygulamanın blok görünümünü bulabilirsiniz) nasıl yapabileceğimi anlayamadım.

Bu amaç için elinde kullanabileceğim örnek uygulama / kod olan ya da prosedür seviyesinde yardımcı olabilecek var mıdır? Şimdiden teşekkürler.


Ek Dosyalar Resimler
   
Cevapla
#2
Herkese merrhaba, sonunda problemimi aşağıdaki şekilde çözdüm;
Öncelikle cihazın ve karakteristiğin UUID tanılamasını yapıyoruz (tabi isterseniz daha sonra da yapabilirsiniz)
const
 SERVICE : TGUID = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}';
 CHARACT : TGUID = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}';
ayrıca cihaz ve karatkteristiği tanımlıyoruz
Device         : TBluetoothLEDevice;
FCharacteristic: TBluetoothGattCharacteristic;
önemli ayrıntılardan biri BLE'nin çalışması için ACCESS_COARSE_LOCATION izninin alınmış olması gerekiyor (ben OnFormCreate yordamında çalıştırıyorum)
{$IFDEF ANDROID}
 FLocationPermission := JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION);
{$ENDIF}
ve izin talebinde bulunuyoruz
PermissionsService.RequestPermissions([FLocationPermission], RequestPermissionsResult, DisplayRationale);
NOT: daha öne de belirttiğim gibi bu programın kodlarını detaylı olarak (..\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner) klasöründeki örnek programda bulabilirsiniz

gerekli izinlere ulaştıktan (ve cihaza eriştikten) sonra istediğiniz karakteristiğe yazmak için
FCharacteristic:= Device.GetService(SERVICE).GetCharacteristic(CHARACT);
FCharacteristic.SetValueAsString(RawByteString('komut'));
Device.WriteCharacteristic(CHARACT);
ÖNEMLİ: Embarcadero, mobil derleyicilerde Ansichar ve AnsiString kullanımını durdurduğundan (Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.ve Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.detayları bulabilirsiniz) 8-Bit iletişim ile çalışan hiçbir cihaza (neredeyse tamamı oluyor) Delphi mobil programı ile direkt veri gönderemiyorsunuz. Bu yüzdende ya TBytes kullanarak ya da benim yaptığım gibi bu hLinkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Delphi mobil derleyicilere Ansichar ve AnsiString desteğini geri kazandırıp RawByteString kullanarak MCU'ya komutları gönderiyoruz. Gerisini de MCU'dan okuyarak hallediyoruz.

GÜNCELLEME: Örnek Delphi ve Arduino IDE uygulama kodları dosya olarak eklenmiştir.


Ek Dosyalar
.zip   Delphi-ESP32.zip (Dosya Boyutu: 16,61 KB / İndirme Sayısı: 7)
Cevapla
#3
Teşekkürler yaşadığınız soruna bulduğunuz çözümü paylaştığınız için.
Cevapla
#4
(29-07-2019, Saat: 14:38)frmman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Teşekkürler yaşadığınız soruna bulduğunuz çözümü paylaştığınız için.

Ne demek, olması gerekeni yaptım, umarım birilerinin işine yarar ... Sadece soru sorup cevap bekleyeceksek bu platformlar neden var?
Cevapla
#5
@AlpDmr Bende Esp32,nodemcu ile mqtt iot işleri ile uğraşıyorum bilgilendire için teşekürler.
Muharrem ARSLAN
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi