INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
ESP32 und PI mit BLE
17.11.2020, 11:55 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2020 12:23 von codingalex.)
Beitrag #1
ESP32 und PI mit BLE
Hallo zusammen,
ich versuche gerade eine BLE Verbindung herzustellen bei der ich zwischen dem ESP32 und einem PI herstelle. Hierbei nutze ich auf dem ESP Seite die BLE Library von Arduino und auf dem PI eine Library namens "pygatt.py".

Ich poste ein mal meinen Arduino Code

Code:
#include <Arduino.h>
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>


#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
BLECharacteristic *pointer;
BLEService *servicepointer;

#define links 32  // LED connected to digital pin 13
#define rechts 27    // pushbutton connected to digital pin 7


void setup() {
  pinMode(links, INPUT);
  pinMode (rechts, INPUT);
  //digitalWrite(links, LOW);
  //digitalWrite(rechts, LOW);
  Serial.begin(115200);
  Serial.println("Starting BLE work!");

  BLEDevice::init("Long name works now");
  BLEServer *pServer = BLEDevice::createServer();
  BLEService *pService = pServer->createService(SERVICE_UUID);
  BLECharacteristic *pCharacteristic = pService->createCharacteristic(
                                         CHARACTERISTIC_UUID,
                                         BLECharacteristic::PROPERTY_READ |
                                         BLECharacteristic::PROPERTY_WRITE|
                                         BLECharacteristic::PROPERTY_NOTIFY|
                                         BLECharacteristic::PROPERTY_INDICATE
                                       );

  pointer=pCharacteristic;
  servicepointer=pService;
  //pCharacteristic->setValue("Hello from ESP32");
  pService->start();
  
  // BLEAdvertising *pAdvertising = pServer->getAdvertising();  // this still is working for backward compatibility
  BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
  pAdvertising->addServiceUUID(SERVICE_UUID);
  pAdvertising->setScanResponse(true);
  pAdvertising->setMinPreferred(0x06);  // functions that help with iPhone connections issue
  pAdvertising->setMinPreferred(0x12);
  BLEDevice::startAdvertising();
        
        
  Serial.println("Characteristic defined! Now you can read it in your phone!");

}
void loop()
    {  
        delay(75);
        pointer->setValue("Test ");
        BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
        pAdvertising->addServiceUUID(SERVICE_UUID);
        pAdvertising->setScanResponse(true);
        pAdvertising->setMinPreferred(0x06);  
        pAdvertising->setMinPreferred(0x12);
        BLEDevice::startAdvertising();
        delay(100);

}

Auf dem PI
Code:
import pygatt

adapter = pygatt.GATTToolBackend()

try:
    adapter.start()
    device = adapter.connect('01:23:45:67:89:ab') #adresse esp32
    #adreese der charatkteristik des esp32 device, nicht Server
    value = device.char_read("beb5483e-36e1-4688-b7f5-ea07361b26a8")
finally:
    adapter.stop()


Also ich kann Daten vom esp32 an den Pi schicken, aber irgendwie kriege ich auf der esp32 Seite ein Problem mit nem Timeout.
value = device.char_read("beb5483e-36e1-4688-b7f5-ea07361b26a8")
Dieser Befehl löst den timeout aus...

Ich denke aber eher, es liegt am ESP32, dass er kurz die Verbindung abbricht.
Falls jemand schon mal Erfahrung mit der Arduino BLE LIbrary gemacht hat, würde mich das sehr freuen. Also die Verbindung wird ja aufgebaut, mal bricht sie nach 2, 10, 60 Sek ab. Denke eher, dass es am esp liegt.


Eigentlich versuche ich auch diese Skript ans Laufen zu kriegen.
Code:
import pygatt
from binascii import hexlify

adapter = pygatt.GATTToolBackend()

def handle_data(handle, value):
    """
    handle -- integer, characteristic read handle the data was received on
    value -- bytearray, the data returned in the notification
    """
    print("Received data: %s" % hexlify(value))

try:
    adapter.start()
    device = adapter.connect('01:23:45:67:89:ab') #esp32 adress

    device.subscribe("a1e8f5b1-696b-4e4c-87c6-69dfe0b0093b",
                     callback=handle_data)
finally:
    adapter.stop()

Eigentlich genau das gleiche, nur halt, das Pi dieser vom esp32 gesendete Charakteristik subscribed. Immer wenn wann gesendet wird, dann die Funktion ausgeführt. Hier erkennt der PI nicht mal den ESP. Es passiert einfach gar nicht uns nach 5 Sekunden wird eine Timeout exception geworden.

Vielen vielen Dank
Also wer eine bessere Library auf der ESP32 Seite kennt, ich versuche es gerne mal
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.11.2020, 12:10
Beitrag #2
RE: ESP32 und PI mit BLE
Stelle Deinen Sketch bitte in Codetags.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  MicroPython auf ESP32-S luemar 9 169 Gestern 21:01
Letzter Beitrag: Tommy56
  AES256 / SHA384 Chiffren bei HTTPS requests mit ESP32 nutzen TBMSam 0 72 Gestern 13:47
Letzter Beitrag: TBMSam
Smile Frage zu Millis im Loop - ESP32 Stargazer 4 133 21.11.2020 16:58
Letzter Beitrag: MicroBahner
  ESP32 Ethernet shrimps 34 26.092 15.11.2020 09:57
Letzter Beitrag: miq19
  ESP32 CAM Flashlamp schalten RaspiUser0815 9 705 13.11.2020 17:16
Letzter Beitrag: RaspiUser0815
  ESP32 arbeitet nicht in Arduino-IDE wonk 3 236 12.11.2020 18:16
Letzter Beitrag: wonk
  Hilfe bei async-mqtt-client für ESP32 amshh 7 296 12.11.2020 09:19
Letzter Beitrag: amithlon
  ESP32 soll auf MySQL schreiben frankmehlhop 11 646 06.11.2020 21:43
Letzter Beitrag: Tommy56
  Variablenprobleme bei ConfigManager und ESP32 Stargazer 4 269 05.11.2020 19:47
Letzter Beitrag: Stargazer
  AZ-Touch ESP32 Grafiktest ckuehnel 1 478 04.11.2020 11:26
Letzter Beitrag: AnFi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste