🛠 Passerelle 6LoWPAN : wpan0, lowpan0 et BLE du CC1352P7
Objetivos
Transformar el BeaglePlay en una pasarela IP/6LoWPAN: el plano 802.15.4 nativo es bruto (tramas cortas, mtu 123 en wpan0); los módulos mac802154 y la encapsulación 6LoWPAN crean una interfaz lowpan0 que transporta IPv6. Se apilan los módulos (bcfserial o wpanusb según el firmware del CC1352P7, más mac802154), se activa la interfaz lowpan y se anuncia el prefijo hacia la LAN para que los nodos 802.15.4 se conviertan en hosts IPv6 completos. El BLE del CC1352P7 sigue siendo utilizable en paralelo para el emparejamiento.
Hardware
- Un BeaglePlay (firmware wpanusb o bcfserial en el CC1352P7)
- Un nodo 802.15.4 (otro BeaglePlay, tarjeta TI o nodo compatible)
- Red Ethernet en el lado LAN
Código completo
# Charger la pile (bcfserial OU wpanusb selon le firmware flashé)
sudo modprobe mac802154
sudo modprobe wpanusb # ou : sudo modprobe bcfserial
ip link show wpan0 # mtu 123 = 802.15.4 natif
# Créer l'interface 6LoWPAN par-dessus wpan0
sudo ip link add link wpan0 lowpan0 type lowpan
sudo ip link set wpan0 up
sudo ip link set lowpan0 up
sudo ip -6 addr add fd12:3456:789a::1/64 dev lowpan0
# Rôle de routeur : annoncer le préfixe et forwarder vers eth0
sudo sysctl -w net.ipv6.conf.all.forwarding=1
sudo radvd -C /etc/radvd.conf # préfixe fd12:3456:789a::/64 sur lowpan0
# BLE du CC1352P7 pour l'appairage
bluetoothctl list
Verificación esperada
ip -d link show lowpan0 indica el tipo lowpan con link/wpan0; el nodo remoto, una vez unido, obtiene una dirección en fd12:3456:789a::/64 y responde al ping6 desde la LAN a través de la pasarela (forwarding=1). bluetoothctl list muestra el adaptador BLE del CC1352P7, lo que demuestra que la radio 15.4 y el BLE coexisten.
Errores frecuentes
- Hacer ping directamente a
wpan0con paquetes grandes: mtu 123, la encapsulación lowpan está precisamente ahí para IPv6; no confundir las dos interfaces. - Cargar bcfserial y wpanusb al mismo tiempo: se disputan el mismo hardware, la pila permanece inactiva.
- Canal o PAN ID diferentes entre la pasarela y el nodo: el
wpan-pingnunca funciona, verificar el canal y el pan_id coniwpan. - Olvidar radvd o el forwarding: el nodo mantiene únicamente una dirección link-local y permanece inalcanzable desde la LAN.
- Canal 15.4 que se solapa con el WiFi: el canal 26 cubre el 802.11, preferir un canal bajo limpio.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash