mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-01-17 05:32:45 +01:00
10b63585ea
examples/readme: fix SAUL spelling mistake examples/readme: Link to README.md instead of folder examples/readme: increase title size examples/readme: make networking category name a bit clearer examples/readme: move nimble to own category within BLE examples/readme: move dtls to own category examples/readme: move heart rate sensor to nimble category examples/readme: move arduino sketch to languages examples/timer_periodic: fix file name issue examples/readme: change level wording about nanocoap
8.5 KiB
8.5 KiB
Examples
RIOT provides a wide range of examples to demonstrate the capabilities of the OS and its modules.
Each example contains a README.md
that provides information and instructions how to run it.
Here is a quick overview of the examples available in the RIOT:
The Essentials
- default
- This application is a showcase for RIOT's hardware support. Using it for your board, you should be able to interactively use any hardware that is supported.
- hello-world
- A simple "Hello World" that shows the basic structure of a RIOT application.
- blinky
- The classic "Hello World" example for embedded systems: blinking an LED (or printing "Blink!" via stdio when none are available).
- leds_shell
- The application
leds_shell
is a basic example, which allows easy, interactive control of internal board LEDs, and basic GPIO for externally connected simple devices (for e.g. additional LEDs, relay, motors - via dedicated drivers, etc.) via the shell.
- The application
- saul
- This example demonstrates the usage of the SAUL (Sensor Actuator Uber Layer) module.
- timer_periodic_wakeup
- How to set up a periodic wakeup timer using the RIOT operating system.
- ipc_pingpong
- This example is to illustrate the usage of RIOTs IPC messaging system.
- filesystem
- This example showcases ways to interact/manage the filesystem in RIOT.
RIOT Language Bindings
Officially Supported/Targeted
Rust
- rust-hello-world
- This example demonstrates how to write a simple RIOT application in Rust.
- rust-gcoap
- This example demonstrates how to write a coap server application in Rust using the RIOTs gcoap module.
- rust-async
- This example demonstrates how to use Rusts async/await syntax in a RIOT application.
C++
- riot_and_cpp
- Example of using C++ in RIOT applications.
Community Supported
- javascript
- How to write IoT applications using javascript using JerryScript.
- lua_basic
- How to write IoT applications using Lua.
- lua_REPL
- This example demonstrates how to use the Lua Read-Eval-Print Loop (REPL) in RIOT.
- micropython
- How to use the MicroPython port for RIOT.
- wasm
- How to use WebAssembly in RIOT.
- arduino_hello-world
- This application demonstrates the usage of Arduino sketches in RIOT.
Networking
Constraint Application Protocol (CoAP)
- gcoap
- This example demonstrates the usage of the
gcoap
module, a high-level API for CoAP (Constrained Application Protocol) messaging.
- This example demonstrates the usage of the
- gcoap_block_server
- CoAP server handling for Block requests, build with gcoap using nanocoap block handling functions.
- gcoap_fileserver
- This example demonstrates the usage of the
gcoap
module to serve files over CoAP.
- This example demonstrates the usage of the
- nanocoap_server
- This example demonstrates the usage of the
nanocoap
module, a high-level API for CoAP (Constrained Application Protocol) messaging.
- This example demonstrates the usage of the
Bluetooth Low Energy (BLE)
NimBLE
- nimble_scanner
- This example showcases the usage of the
NimBLE
BLE stack as a scanner.
- This example showcases the usage of the
- nimble_gatt
- This example application configures and runs the NimBLE BLE stack as simple GATT server.
- nimble_heart_rate_sensor
- This example demonstrates how to implement asynchronous data transfer using GATT notifications by implementing a mock-up BLE heart rate sensor.
- nimble_heart_rate_sensor
- This example demonstrates how to implement asynchronous data transfer using GATT notifications by implementing a mock-up BLE heart rate sensor.
Misc BLE Examples
- skald_eddystone
- This example demonstrates the usage of
Skald
for creating an GoogleEddystone
beacon.
- This example demonstrates the usage of
- skald_ibeacon
- This example demonstrates the usage of
Skald
for creating an AppleiBeacon
.
- This example demonstrates the usage of
MQTT
- asymcute_mqttsn
- This application demonstrates the usage of the Asymcute (MQTT-SN) module in RIOT.
- emcute_mqttsn
- This application demonstrates the usage of the emCute (MQTT-SN) module in RIOT.
- paho-mqtt
- This example demonstrates the usage of the Paho MQTT client library in RIOT.
CoRE Resource Directory
- cord_ep
- Example of RIOT's Resource Directory (RD) endpoint module, called
cord_ep
- Example of RIOT's Resource Directory (RD) endpoint module, called
- cord_lc
- Example of RIOT's Resource Directory (RD) lookup module, called
cord_lc
- Example of RIOT's Resource Directory (RD) lookup module, called
- cord_epsim
- This example shows how a node can register with a CoRE resource directory
GNRC Networking
- gnrc_minimal
- This is a minimalistic example for RIOT's gnrc network stack.
- gnrc_networking
- This example demonstrates the usage of the GNRC network stack in RIOT.
- gnrc_networking_subnets
- This example demonstrates IPv6 subnet auto-configuration for networks on a tree topology.
- gnrc_border_router
- Example of
gnrc_border_router
using automatic configuration
- Example of
- gnrc_lorawan
- Send and receive LoRaWAN packets and perform basic LoRaWAN commands
- gnrc_networking_mac
- This example shows you how to try out communications between RIOT instances with duty-cycled MAC layer protocols
DTLS
- dtls-sock
- This example shows how to use DTLS sock
sock_dtls_t
- This example shows how to use DTLS sock
- dtls-echo
- This example shows how to use TinyDTLS with sock_udp.
- dtls-wolfssl
- This example demonstrates the usage of the DTLS module with the wolfSSL library.^
Misc
- lorawan
- This application shows a basic LoRaWAN use-case with RIOT.
- openthread
- This example demonstrates the usage of the OpenThread stack in RIOT.
- lwm2m
- Example of a LWM2M client on RIOT
- ccn-lite-relay
- This application demonstrates how to use the Content-Centric Networking stack from CCN-Lite on RIOT
- telnet_server
- Simple telnet server that listens on port 23 over IPv6.
- posix_sockets
- Showcase for RIOT's POSIX socket support
- spectrum-scanner
- This example demonstrates how to monitor energy levels on all available wireless channels
- sniffer
- This application is built to run together with the script
./tools/sniffer.py
as a sniffer for (wireless) data traffic.
- This application is built to run together with the script
Advanced Examples
- bindist
- RIOT allows for creating a "binary distribution", which can be used to ship proprietary, compiled objects in a way that makes it possible to re-link them against a freshly compiled RIOT. This application serves as a simple example.
- usbus_minimal
- This is a minimalistic example for RIOT's USB stack.
- suit_update
- This example shows how to integrate SUIT-compliant firmware updates into a RIOT application.
- thread_duel
- This is a thread duel application to show RIOTs abilities to run multiple-threads concurrently, even if they are neither cooperative nor dividable into different scheduler priorities, by using the optional round-robin scheduler module.
- posix_select
- This example is a showcase for RIOT's POSIX select support
- psa_crypto
- Basic functions of the PSA Crypto API
- pio_blink
- How to use the PIO peripheral on the RaspberryPi Pico to blink an LED.
- twr_aloha
- This example allows testing different two-way ranging algorithms between two boards supporting a dw1000 device. This makes use of the uwb-core pkg.