nRF52840 to zaawansowany układ typu SoC (System-on-Chip) firmy Nordic Semiconductor, zaprojektowany z myślą o aplikacjach IoT, urządzeniach niskomocowych oraz komunikacji bezprzewodowej. Jest to jeden z najpopularniejszych układów wykorzystywanych w projektach Bluetooth Low Energy (BLE), Thread, Zigbee oraz USB.
Charakterystyka techniczna
-
Procesor: ARM Cortex-M4F (64 MHz, FPU)
-
Pamięć Flash: 1 MB
-
RAM: 256 KB
-
Łączność:
-
Bluetooth 5 / BLE (Long Range, Mesh)
-
Thread
-
Zigbee
-
NFC
-
USB 2.0 (device)
-
-
Niskie zużycie energii (tryby sleep)
Zalety nRF52840
✅ 1. Wieloprotokołowość
Układ obsługuje wiele standardów komunikacji bezprzewodowej, co pozwala używać go w różnych projektach bez zmiany sprzętu.
✅ 2. Duża ilość pamięci
1 MB Flash i 256 KB RAM umożliwiają tworzenie rozbudowanych aplikacji, w tym z aktualizacją OTA.
✅ 3. Niskie zużycie energii
Idealny do urządzeń bateryjnych – sensorów, beaconów, wearables.
✅ 4. Obsługa USB
Może działać jako urządzenie USB (np. klawiatura, mysz, CDC).
✅ 5. Dobre wsparcie narzędziowe
-
Arduino IDE
-
Nordic SDK / nRF Connect SDK
-
Zephyr RTOS
Wady nRF52840
❌ 1. Wyższa cena
Droższy niż prostsze mikrokontrolery (np. ATmega328P, ESP8266).
❌ 2. Większa złożoność
Konfiguracja BLE i stosów sieciowych jest trudniejsza dla początkujących.
❌ 3. Brak Wi-Fi
W przeciwieństwie do ESP32 nie posiada natywnej obsługi Wi-Fi.
❌ 4. Wymaga dobrej anteny
Źle zaprojektowana antena może znacząco pogorszyć zasięg.
Zastosowania
-
Inteligentne czujniki IoT
-
Smart home
-
Urządzenia BLE (beacony, wearables)
-
Przemysłowe systemy monitoringu
-
Urządzenia USB HID
Przykład prostego kodu w Arduino IDE (miganie diodą LED)
Poniższy przykład działa na płytkach takich jak Adafruit Feather nRF52840 lub nRF52840 Dongle (po zainstalowaniu odpowiedniego pakietu płytek w Arduino IDE).
🔧 Kod: Blink LED
1️⃣ Przykład prostego BLE (Bluetooth Low Energy)
Poniższy przykład pokazuje, jak uruchomić urządzenie BLE, które wysyła nazwę i pozwala się wykryć (BLE Peripheral). Kod jest prosty i nadaje się na start.
Wymagania
-
Płytka z nRF52840 (np. Adafruit Feather nRF52840)
-
Arduino IDE
-
Biblioteka ArduinoBLE lub Adafruit Bluefruit nRF52
🔧 Przykład BLE – reklamowanie urządzenia
📱 Po wgraniu kodu możesz:
-
użyć aplikacji nRF Connect (Android / iOS)
-
zeskanować urządzenia BLE
-
zobaczyć „nRF52840-BLE”
2️⃣ Porównanie nRF52840 vs ESP32
| Cecha | nRF52840 | ESP32 |
|---|---|---|
| Producent | Nordic Semiconductor | Espressif |
| CPU | ARM Cortex-M4F | Xtensa Dual-Core |
| Taktowanie | 64 MHz | do 240 MHz |
| Flash / RAM | 1 MB / 256 KB | ~4 MB / 520 KB |
| BLE | ✅ Bluetooth 5 (bardzo stabilne) | ✅ Bluetooth Classic + BLE |
| Wi-Fi | ❌ brak | ✅ 2.4 GHz |
| Zużycie energii | ⭐⭐⭐⭐⭐ bardzo niskie | ⭐⭐⭐ wyższe |
| USB | ✅ natywne | ❌ brak |
| Cena | wyższa | niższa |
| IoT bateryjne | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Smart Home | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
🔍 Kiedy wybrać który układ?
Wybierz nRF52840, gdy:
-
projekt jest bateryjny
-
potrzebujesz stabilnego BLE
-
zależy Ci na niskim poborze prądu
-
tworzysz urządzenie profesjonalne / przemysłowe
Wybierz ESP32, gdy:
-
potrzebujesz Wi-Fi
-
robisz projekt hobbystyczny
-
ważna jest cena
-
chcesz prosty start
3️⃣ Konfiguracja Arduino IDE dla nRF52840
🔹 Krok 1: Zainstaluj Arduino IDE
Pobierz najnowszą wersję z oficjalnej strony Arduino.
🔹 Krok 2: Dodaj pakiet płytek nRF52840
-
Plik → Preferencje
-
W polu Dodatkowe adresy URL menedżera płytek wklej:
-
Kliknij OK
🔹 Krok 3: Zainstaluj płytki
-
Narzędzia → Płytka → Menedżer płytek
-
Wyszukaj Adafruit nRF52
-
Zainstaluj pakiet
🔹 Krok 4: Wybierz płytkę
Narzędzia → Płytka, np.:
-
Adafruit Feather nRF52840
-
nRF52840 Dongle
Ustaw:
-
Port COM
-
Programmer: CMSIS-DAP (jeśli dostępny)
🔹 Krok 5: Test – Blink
Wgraj prosty program z miganiem LED, aby sprawdzić konfigurację.