511-B-L475E-IOT01A2 jest wersją na rynek europejski. Oznaczenie A1 jest dla płytek używających częstotliwości dostępnych w USA.

Dokumentacja płytki dla Mbed OS.

Sensory

Płytka ma szereg czujników a ich użycie w Keil Studio jest wspierane przez poniższe funkcje z BSP dla systemu Arm Mbed OS:

Czujnik Typ Inicjalizacja
HTS221 Temperatura BSP_TSENSOR_Init()
Wilgotność BSP_HSENSOR_Init()
LPS22HB Ciśnienie BSP_PSENSOR_Init()
LIS3MDL Magnetometr BSP_MAGNETO_Init()
LSM6DSL Przyspieszenie BSP_ACCELERO_Init()
Żyroskop BSP_GYRO_Init()

Po inicjalizacji można skorzystać z odczytu wartości:

Czujnik Odczyt wartości
HTS221 float BSP_TSENSOR_ReadTemp(void);
float BSP_HSENSOR_ReadHumidity(void)
LPS22HB float BSP_PSENSOR_ReadPressure(void)
LIS3MDL void BSP_MAGNETO_GetXYZ(int16_t *pDataXYZ)
void BSP_MAGNETO_LowPower(uint16_t status)
LSM6DSL void BSP_GYRO_GetXYZ(float* pfData)
void BSP_GYRO_LowPower(uint16_t status)
void BSP_ACCELERO_AccGetXYZ(int16_t *pDataXYZ)
void BSP_ACCELERO_LowPower(uint16_t status)

Żeby używać BSP trzeba dołączyć bibliotekę: FileAdd Library to Active Program…

W pole URL wpisujemy: https://os.mbed.com/teams/ST/code/BSP_B-L475E-IOT01/ a “Library name” wypełni się samo. W kolejnym okienku wybieramy “default”. Keil Studio po chwili doda bibliotekę do projektu.

Drugą przydatną rzeczą jest umożliwienie funkcji printf wyświetlanie liczb zmiennoprzecinkowych. To zwiększa zajętość pamięci flash o około 1600 bajtów.

W drzewie projektu rozwijamy katalog mbed-os/platform i tam znajdujemy plik mbed_lib.json. W pliku znajdujemy wpis “minimal-printf-enable-floating-point” i zmieniamy jego wartość na “true”.

Gdyby pliku brakowało to odtwarzamy projekt i podczas jego inicjalizacji wybieramy niezależne ściągnięcie MBedOS do katalogu, co powiększa projekt o 1GB. Linkowanie do istniejącej instancji kodu źródłowego zgranej do innego projektu na dysk może zaoszczędzić miejsce ale ze względu na omyłkowe wybranie nieprawidłowego projektu referencyjnego (np.: typu “bare metal”), pliku json może w tym katalogu nie być.

Przykładowy program po uruchomieniu na płytce będzie wysyłał dane po łączu USB. Jest to to samo łącze, które jest używane do programowania płytki, więc nie trzeba niczego przełączać. Aby zobaczyć przesyłane dane należy w Mbed Studio z menu View wybrać Serial monitor.

Bluetooth

Do obsługi BLE potrzebna jest biblioteka na licencji Apache-2.0, do pobrania z GitHub. W Mbed Studio trzeba ją dodać do projektu, jak w poprzednim przykładzie.

Dokumentacja dostępna jest na stronach Mbed.

Na GitHub jest kilkanaście przykładowych aplikacji.

Przykładowy program. Po jego udanym wgraniu na płytke w konsoli zobaczymy informacje o rozgłaszaniu połączenia. Można sprawdzić dostępność urządzenia od strony komputera, oczywiście jeśli komputer jest wyposażony w łączność Bluetooth. Sprawdzamy, czy na komputerze uruchomiona jest usługa:

systemctl status bluetooth

Brak tekstu “active (running)” prawdopodobnie oznacza błąd - brak dostępnego Bluetooth.

Do analizy BLE można wykorzystać program bluetoothctl z pakietu bluez. Uruchamiamy go z linii poleceń. Po włączeniu ten interaktywny program wita użytkownika własnym promptem. Teraz można wydawać polecenia dla urządzenia Bluetooth po stronie komputera:

power on
scan on
devices

Połączenie z konkretnym urządzeniem:

connect AB:CD:EF:AB:CD:EF

Na efekt w postaci listy dostępnych usług (Sevice) i charakterystyk trzeba chwilę poczekać. Następnie można przyjrzeć się temu, co dane urządzenie oferuje:

info
menu gatt
list-attributes

Po przejrzeniu listy dostępnych atrybutów można wybrać jeden w celu pobrania wartości. Kompletowanie linii jest dostępne w bluetoothctl więc wystarczy ze ścieżki atrybutu wpisać kilka pierwszych znaków i nacisnąć TAB, co dopisze znaczną część ścieżki atrybutu. Kilka atrybutów może różnić się ostatnimi znakami, więc ten indywidualny fragment trzeba dopisać samemu.

select-attribute /org/bluez/hci0/dev_AB_CD_EF_AB_CD_EF/service000b/char000c
read
notify on
notify off

W ten sposób powinno udać się zobaczyć wartości temperatury, wilgotności i ciśnienia.

Na koniec wyłączenie modułu Bluetooth w komputerze:

power off