Arduino & IoT Academy · Lekcja

Odczytywanie i zapisywanie charakterystyk

Wymieniać wartości za pośrednictwem atrybutów BLE.

Lekcja 3 z 413 kroki

Odczytywanie i zapisywanie charakterystyk to bezpłatna lekcja Arduino & IoT Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Arduino & IoT Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.

Gdzie znajdują się dane

Usługa jest folderem, ale rzeczywiste wartości znajdują się w charakterystykach. To miejsca, które telefon faktycznie odczytuje i zapisuje. 📦

Charakterystyki również mają UUID

Podobnie jak usługi, każda charakterystyka ma własny UUID. Telefon używa go, aby wskazać dokładnie jedną wartość, na przykład temperaturę.

Tworzenie charakterystyki

Charakterystykę tworzy się w ramach usługi i określa, na jakie operacje pozwala: odczyt, zapis lub oba. Właściwości decydują, kto może wykonać daną operację.

auto c = svc->createCharacteristic(uuid,
  BLECharacteristic::PROPERTY_READ);

Właściwości określają uprawnienia

Należy użyć PROPERTY_READ dla wartości pobieranych przez telefon oraz PROPERTY_WRITE dla tych, które telefon wysyła. Można je połączyć, gdy potrzebna jest komunikacja w obu kierunkach.

Ustawianie wartości do odczytu

Szkic przechowuje bieżące dane za pomocą setValue. Podczas odczytu telefon otrzyma dokładnie to, co ostatnio tam umieszczono.

c->setValue("23.5");

Telefon odsyła dane

W przypadku zapisywalnej charakterystyki telefon może wysłać wartość do płytki. Kod odczytuje ją za pomocą getValue, aby dowiedzieć się, co nadeszło.

std::string in = c->getValue();

Reagowanie za pomocą callbacku

Aby reagować natychmiast po wykonaniu zapisu, należy dołączyć callback. Jego metoda onWrite uruchamia się automatycznie za każdym razem, gdy telefon wysyła dane.

Powiadamianie zamiast odpytywania

Dzięki notify płytka wysyła nowe wartości natychmiast po ich zmianie. Telefon otrzymuje aktualne dane bez wielokrotnego wysyłania zapytań.

c->setValue(temp);
c->notify();

Wartości to tylko bajty

BLE wysyła surowe bajty, a nie liczby. Należy wysłać tekst, taki jak 23.5, albo samodzielnie spakować liczbę, a następnie rozpakować ją po stronie telefonu.

Utrzymywanie małych pakietów

Domyślny zapis BLE mieści około dwudziestu bajtów. Każda charakterystyka powinna przechowywać jedną małą wartość, a nie ogromny blok danych.

Odczyt, zapis i powiadamianie

Te trzy operacje obejmują niemal każdy projekt. Odczyt udostępnia stan, zapis przyjmuje polecenia, a notify przesyła aktualizacje na żywo.

Szybkie sprawdzenie

Chcą Państwo, aby telefon otrzymywał nowe odczyty natychmiast po ich zmianie.

Podsumowanie

Charakterystyki przechowują dane: należy ustawić właściwości odczytu, zapisu lub powiadamiania, przechowywać wartości i pozwolić callbackom reagować na przychodzące zapisy. 🚀

Bezpłatny start

Ucz się C++ dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Odczytywanie i zapisywanie charakterystyk” jest bezpłatna?

Tak — pełny tekst „Odczytywanie i zapisywanie charakterystyk” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Arduino & IoT Academy, przejdź na CoddyKit PRO. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Odczytywanie i zapisywanie charakterystyk”?

Wymieniać wartości za pośrednictwem atrybutów BLE. Ćwiczysz Arduino & IoT Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Arduino & IoT Academy?

Nie wymagamy żadnego doświadczenia. Arduino & IoT Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Odczytywanie i zapisywanie charakterystyk”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Arduino & IoT Academy?

Tak. Każda lekcja Arduino & IoT Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Bluetooth Classic a BLE
  2. Rozgłaszanie usługi BLE
  3. Odczytywanie i zapisywanie charakterystyk
  4. Sterowanie diodą LED z aplikacji telefonu
← Powrót do Arduino & IoT Academy