Chcę zrobić niewielki projekt w oparciu o płytkę developerską ESP32, wraz z enkoderem i GPS-em. Jeśli muszę podać więcej szczegółów to podam, ale w skrócie:
Projekt ma zliczać obroty enkodera i co jakiś czas, gdy użytkownik naciśnie przycisk połączony z płytką ESP32, wyzwalane będzie przerwanie IRQ, które obsłuży dwie rzeczy:
- prześle dane - liczbę obrotów enkodera od ostatniego wyzwolenia (użycia przycisku),
oraz
- prześle aktualne współrzędne - dane z GPS (w miejscu w którym naciśnięto przycisk).
To jest podstawowa funkcjonalność, którą chcę uzyskać. Będzie kilka innych rzeczy, ale nie chcę o nich pisać, żeby uprościć opis.
Dane to będą krótkie stringi, kilkanaście znaków, maks. kilkadziesiąt. Wysyłać chcę z ESP32 do telefonu informacje za pośrednictwem Bluetooth Low Energy (BLE).
Trochę już czytałem na temat BLE, ale mam pytania, do osób które już wdrażały BLE w ESP32 o jakieś podpowiedzi, porady i wskazówki. Dokumentacja protokołu jest rozbudowana i nie znam jeszcze wielu rzeczy.
Z czego najlepiej skorzystać (jakie "serwisy" do przesyłania stosunkowo krótkich stringów, jak najlepiej rozwiązać parowanie urządzeń, czy warto i jak uśpić BLE na krótki czas - do kilku minut i Wasze inne rozwiązania problemów/ trudności jakie napotkaliście)?
UUID będzie na stałe zapisane, by ułatwić parowanie obydwu urządzeń.
Dziękuję za wszelkie porady i wskazówki!
Myślałem, żeby z ESP32 dla ułatwienia zrobić serverem, a telefon uczynić klientem. Czy może "zwykłe" SPP tu wystarczy? (jeszcze bardziej upraszczając wystarczyłaby pewnie funkcjonalność Beacona, ale nie wiem do końca czy to dobry pomysł). To chyba by wystarczyło, aczkolwiek, nie wiem czy to się sprawdzi na wypadek jakiejś utraty łączności / błędów - nie mogę pozwolić żeby część danych nie dotarła do telefonu, a więc dobrze byłoby potwierdzać odebranie danych (odebranie i poprawność, po walidacji w telefonie). Nie wiem na ile można polegać na połączeniu BLE (choć odległość urządzenia od telefonu nie przekroczy kilku metrów).
Z góry dziękuję za pomoc i podpowiedzi!
Projekt ma zliczać obroty enkodera i co jakiś czas, gdy użytkownik naciśnie przycisk połączony z płytką ESP32, wyzwalane będzie przerwanie IRQ, które obsłuży dwie rzeczy:
- prześle dane - liczbę obrotów enkodera od ostatniego wyzwolenia (użycia przycisku),
oraz
- prześle aktualne współrzędne - dane z GPS (w miejscu w którym naciśnięto przycisk).
To jest podstawowa funkcjonalność, którą chcę uzyskać. Będzie kilka innych rzeczy, ale nie chcę o nich pisać, żeby uprościć opis.
Dane to będą krótkie stringi, kilkanaście znaków, maks. kilkadziesiąt. Wysyłać chcę z ESP32 do telefonu informacje za pośrednictwem Bluetooth Low Energy (BLE).
Trochę już czytałem na temat BLE, ale mam pytania, do osób które już wdrażały BLE w ESP32 o jakieś podpowiedzi, porady i wskazówki. Dokumentacja protokołu jest rozbudowana i nie znam jeszcze wielu rzeczy.
Z czego najlepiej skorzystać (jakie "serwisy" do przesyłania stosunkowo krótkich stringów, jak najlepiej rozwiązać parowanie urządzeń, czy warto i jak uśpić BLE na krótki czas - do kilku minut i Wasze inne rozwiązania problemów/ trudności jakie napotkaliście)?
UUID będzie na stałe zapisane, by ułatwić parowanie obydwu urządzeń.
Dziękuję za wszelkie porady i wskazówki!
Myślałem, żeby z ESP32 dla ułatwienia zrobić serverem, a telefon uczynić klientem. Czy może "zwykłe" SPP tu wystarczy? (jeszcze bardziej upraszczając wystarczyłaby pewnie funkcjonalność Beacona, ale nie wiem do końca czy to dobry pomysł). To chyba by wystarczyło, aczkolwiek, nie wiem czy to się sprawdzi na wypadek jakiejś utraty łączności / błędów - nie mogę pozwolić żeby część danych nie dotarła do telefonu, a więc dobrze byłoby potwierdzać odebranie danych (odebranie i poprawność, po walidacji w telefonie). Nie wiem na ile można polegać na połączeniu BLE (choć odległość urządzenia od telefonu nie przekroczy kilku metrów).
Z góry dziękuję za pomoc i podpowiedzi!