Saltar a contenido

IoT & Embedded Systems - Guía de Entorno

Guía completa para desarrollo de sistemas embebidos, IoT y hardware con Claude Code.

Capacidades de Claude Code

Capacidad Herramientas
Microcontroladores Arduino, ESP32, STM32, PIC
SBCs Raspberry Pi, BeagleBone, Jetson
Firmware C/C++, Rust, MicroPython
RTOS FreeRTOS, Zephyr, RIOT
Protocolos MQTT, CoAP, Modbus, CAN
Hardware Design KiCad, Fritzing
Simulación Wokwi, QEMU, Renode

Arduino

Arduino IDE / CLI

# Arduino CLI (recomendado para Claude Code)
# Windows
winget install Arduino.Arduino-CLI

# macOS
brew install arduino-cli

# Linux
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh

# Configurar
arduino-cli config init
arduino-cli core update-index

# Instalar cores
arduino-cli core install arduino:avr      # Arduino Uno, Mega
arduino-cli core install arduino:samd     # Arduino Zero, MKR
arduino-cli core install esp32:esp32      # ESP32
arduino-cli core install esp8266:esp8266  # ESP8266

# Listar boards conectados
arduino-cli board list

# Compilar
arduino-cli compile --fqbn arduino:avr:uno MySketch

# Subir
arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno MySketch

# Monitor serial
arduino-cli monitor -p /dev/ttyUSB0 -c baudrate=115200

PlatformIO (Recomendado)

# Instalar via pip
pip install platformio

# O VS Code extension
code --install-extension platformio.platformio-ide

# Crear proyecto
pio project init --board uno
pio project init --board esp32dev
pio project init --board teensy41

# Estructura
my-project/
├── src/
   └── main.cpp
├── lib/
├── include/
├── test/
└── platformio.ini

# Comandos
pio run              # Compilar
pio run -t upload    # Subir
pio device monitor   # Serial monitor
pio test             # Tests
pio lib install "ArduinoJson"  # Instalar librería

platformio.ini ejemplo:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
    bblanchon/ArduinoJson@^7.0.0
    knolleary/PubSubClient@^2.8

ESP32 / ESP8266

ESP-IDF (Framework oficial Espressif)

# Instalar ESP-IDF
# https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/

# Windows: ESP-IDF Tools Installer
# Linux/macOS:
mkdir -p ~/esp
cd ~/esp
git clone -b v5.2 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh esp32
source ./export.sh

# Comandos
idf.py create-project my-project
cd my-project
idf.py set-target esp32
idf.py build
idf.py -p /dev/ttyUSB0 flash
idf.py monitor

Raspberry Pi

Setup para desarrollo remoto

# En tu máquina local
# SSH habilitado en Pi

# VS Code Remote SSH
code --install-extension ms-vscode-remote.remote-ssh

# Conectar
ssh pi@raspberrypi.local

# Desarrollo Python
python3 --version
pip3 install RPi.GPIO gpiozero

# Desarrollo C/C++
sudo apt install build-essential cmake

GPIO y Hardware

# Python
pip3 install RPi.GPIO gpiozero adafruit-blinka

# Para sensores I2C/SPI
pip3 install adafruit-circuitpython-bme280
pip3 install adafruit-circuitpython-ssd1306

Raspberry Pi Pico (MicroPython)

# Instalar Thonny o usar rshell
pip install rshell

# Conectar
rshell -p /dev/ttyACM0

# Copiar archivos
cp main.py /pyboard/

# REPL
repl

STM32

STM32CubeIDE

# Descargar desde ST
# https://www.st.com/en/development-tools/stm32cubeide.html

# O usar PlatformIO con framework stm32cube
[env:nucleo_f401re]
platform = ststm32
board = nucleo_f401re
framework = stm32cube

Rust Embedded (STM32)

# Instalar target
rustup target add thumbv7em-none-eabihf

# Crear proyecto
cargo generate --git https://github.com/rust-embedded/cortex-m-quickstart

# Dependencias
cargo add cortex-m cortex-m-rt panic-halt
cargo add stm32f4xx-hal --features stm32f401

# Build
cargo build --release

# Flash con probe-rs
cargo install probe-rs --features cli
probe-rs run --chip STM32F401RETx target/thumbv7em-none-eabihf/release/my-app

RTOS

FreeRTOS

# Con ESP-IDF (incluido)
# Con STM32CubeMX (generación de código)

# Standalone
git clone https://github.com/FreeRTOS/FreeRTOS.git

Zephyr RTOS

# Instalar west (meta-tool de Zephyr)
pip install west

# Obtener Zephyr
west init ~/zephyrproject
cd ~/zephyrproject
west update

# Instalar SDK
# https://docs.zephyrproject.org/latest/develop/getting_started/

# Build
west build -b esp32 samples/hello_world

# Flash
west flash

Protocolos IoT

MQTT

# Broker local (Mosquitto)
# Windows
winget install EclipseFoundation.Mosquitto

# macOS
brew install mosquitto

# Linux
sudo apt install mosquitto mosquitto-clients

# Iniciar
mosquitto -v

# Test
mosquitto_pub -t "test/topic" -m "Hello"
mosquitto_sub -t "test/topic"

# Python client
pip install paho-mqtt

LoRaWAN

# Para Arduino/ESP32
pio lib install "MCCI LoRaWAN LMIC library"

Simuladores

Wokwi (Online)

https://wokwi.com
# Simula Arduino, ESP32, Raspberry Pi Pico
# Integración con VS Code
code --install-extension Wokwi.wokwi-vscode

QEMU (Raspberry Pi)

# Emular Raspberry Pi
qemu-system-arm -machine raspi2b -cpu cortex-a7 -m 1G \
  -kernel kernel7.img -dtb bcm2709-rpi-2-b.dtb \
  -sd raspbian.img -append "root=/dev/mmcblk0p2 rw rootwait"

Renode

# Simulador de sistemas embebidos
# https://renode.io/

# Ejecutar
renode
# En Renode monitor:
mach create
machine LoadPlatformDescription @platforms/boards/stm32f4_discovery.repl
sysbus LoadELF @my-firmware.elf
start

Hardware Design

KiCad

# Windows
winget install KiCad.KiCad

# macOS
brew install --cask kicad

# Linux
sudo apt install kicad

Fritzing

# Para diagramas de prototipado
# https://fritzing.org/

Comandos que Claude Code Ejecutará

# Arduino CLI
arduino-cli compile --fqbn esp32:esp32:esp32 .
arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32 .
arduino-cli monitor -p /dev/ttyUSB0

# PlatformIO
pio run
pio run -t upload
pio device monitor
pio lib install "libreria"

# ESP-IDF
idf.py build
idf.py flash
idf.py monitor

# Rust Embedded
cargo build --release --target thumbv7em-none-eabihf
probe-rs run --chip STM32F401RETx

# Zephyr
west build -b board_name
west flash

# MQTT
mosquitto_pub -t "topic" -m "message"
mosquitto_sub -t "topic"

Verificación del Entorno

#!/bin/bash
echo "=== Verificación Entorno IoT/Embedded ==="

echo -e "\n--- Arduino CLI ---"
arduino-cli version 2>/dev/null || echo "Arduino CLI no instalado"

echo -e "\n--- PlatformIO ---"
pio --version 2>/dev/null || echo "PlatformIO no instalado"

echo -e "\n--- ESP-IDF ---"
idf.py --version 2>/dev/null || echo "ESP-IDF no instalado"

echo -e "\n--- Rust Embedded ---"
rustup target list --installed | grep thumb 2>/dev/null || echo "Targets ARM no instalados"
probe-rs --version 2>/dev/null || echo "probe-rs no instalado"

echo -e "\n--- MQTT ---"
mosquitto -h 2>&1 | head -1 || echo "Mosquitto no instalado"

echo -e "\n--- Dispositivos ---"
ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null || echo "No hay dispositivos serie conectados"

echo -e "\n=== Verificación Completa ==="

Recursos