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
  SHT30 an Wemos D1 Mini ESP32 Mirkan 6 188 10.05.2021 09:59
Letzter Beitrag: Mirkan
  ESP32 und sms kpc 25 982 10.05.2021 01:51
Letzter Beitrag: kpc
  ESP32 access point: Browser Variablen einlesen FoxFactoy 1 164 03.05.2021 11:44
Letzter Beitrag: Tommy56
  ESP32 in Verbindung mit MCP23017 Kymmenen 17 595 02.05.2021 19:34
Letzter Beitrag: Tommy56
  ESP32 Flash Mode setzen Itsme 10 452 01.05.2021 20:04
Letzter Beitrag: Itsme
  Client(ESP8266) und Webserver(ESP32) Dahabcon 14 963 25.04.2021 20:32
Letzter Beitrag: Tommy56
  TTGO ESP32 SIM800L Pinout Stromversorgung pcfritz 1 367 18.04.2021 14:40
Letzter Beitrag: hotsystems
  ESP32 Daten aus HTML Roger100499 11 942 15.04.2021 15:00
Letzter Beitrag: Tommy56
  Erfahrungen mit ESP32 und WLAN/MQTT oder was ich beobachtet habe... Arduino4Fun 23 4.296 09.04.2021 16:15
Letzter Beitrag: amshh
  Suche Erfahrungen und Hilfe mit ESP32-CAM WiFi + Bluetooth Modul Kamera Modul esp32 Christian_Moba-Arduino 28 2.612 04.04.2021 08:24
Letzter Beitrag: amithlon

Gehe zu:


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