WireClaw: come integrare l’Intelligenza Artificiale in un ESP32-C6 e controllare i dispositivi con il linguaggio naturale
Introduzione
Quando si parla di Intelligenza Artificiale si pensa immediatamente a server potenti, GPU e grandi quantità di memoria RAM. Difficilmente si immagina di poter utilizzare l’AI su un microcontrollore come l’ESP32-C6.
Eppure è proprio quello che permette di fare WireClaw.
L’idea alla base del progetto è tanto semplice quanto geniale: invece di eseguire il modello di Intelligenza Artificiale direttamente sul microcontrollore, WireClaw sfrutta un modello AI eseguito nel cloud che interpreta i comandi inviati dall’utente e li trasforma in istruzioni che l’ESP32 può comprendere.
In questo modo è possibile comandare LED, relè, sensori, porte seriali e molte altre periferiche semplicemente scrivendo un messaggio in linguaggio naturale su Telegram.
In questo articolo vedremo come funziona WireClaw, come installarlo e quali sono le applicazioni pratiche mostrate nel video.
Perché utilizzare WireClaw?
L’ESP32-C6 dispone di risorse hardware limitate e non potrebbe mai eseguire un moderno Large Language Model.
WireClaw risolve il problema spostando tutta l’elaborazione dell’AI sul cloud.
L’ESP32 svolge solamente il ruolo di controllore hardware.
L’utente invia un comando.
L’AI interpreta il significato del testo.
Successivamente genera un messaggio JSON contenente tutte le informazioni necessarie.
Infine l’ESP32 riceve il JSON tramite Wi-Fi ed esegue l’azione richiesta.
In pratica il microcontrollore non deve capire il linguaggio umano, ma solamente interpretare una struttura dati molto semplice.
Architettura del sistema
Il funzionamento può essere riassunto nello schema seguente.

Il vantaggio principale consiste nella possibilità di utilizzare un linguaggio completamente naturale. Non occorre ricordare alcuna sintassi particolare.
Installazione di WireClaw
L’installazione è estremamente semplice.
Installazione di WireClaw
L’installazione è estremamente semplice.
1. Creazione del Bot Telegram
Per prima cosa bisogna creare un Bot tramite BotFather.
Una volta creato vengono forniti:
- Token del Bot
- Nome del Bot
Successivamente occorre recuperare il proprio Chat ID che servirà per autorizzare il dispositivo a comunicare.
2. Creazione della chiave OpenRouter
WireClaw utilizza OpenRouter per accedere ai modelli AI.
È sufficiente:
- registrarsi gratuitamente;
- creare una API Key;
- scegliere un modello gratuito.
Nel video viene utilizzato un modello completamente gratuito, evitando qualsiasi costo di utilizzo.
3. Installazione del firmware
Dal sito di WireClaw è possibile installare direttamente il firmware.
La procedura consiste semplicemente nel:
- collegare l’ESP32 tramite USB;
- selezionare la porta seriale;
- cancellare completamente la Flash;
- installare WireClaw.
Al termine dell’installazione il dispositivo crea automaticamente una rete Wi-Fi temporanea.
4. Configurazione iniziale
Collegandosi alla rete Wi-Fi generata dall’ESP32 compare una semplice pagina web dove inserire:
- SSID della rete Wi-Fi;
- Password;
- API Key di OpenRouter;
- Modello AI;
- Token Telegram;
- Nome del dispositivo.
Terminato il salvataggio il dispositivo viene riavviato ed è immediatamente operativo.
Primo esempio: accendere un LED con una frase
Una delle prime prove mostrate consiste nel pilotare un LED collegato alla GPIO3.
L’utente scrive semplicemente:
Accendi il LED collegato alla GPIO3
Il messaggio viene inviato all’AI.
WireClaw interpreta il testo e genera automaticamente il comando.
L’ESP32 configura la GPIO come uscita digitale e porta il pin a livello HIGH.
Il LED si accende immediatamente.
Per spegnerlo basta scrivere:
Spegni il LED collegato alla GPIO3
Senza alcuna modifica del firmware.
Lettura di un ingresso analogico
Nel video viene collegato un semplice trimmer alla GPIO0.
Per prima cosa viene chiesto:
Configura GPIO0 come ingresso analogico
Successivamente:
Leggi GPIO0
WireClaw restituisce il valore ADC letto dal convertitore analogico-digitale.
Ruotando il trimmer il valore cambia in tempo reale.
Lo stesso meccanismo può essere utilizzato con:
- fotoresistenze;
- sensori di luce;
- termistori;
- sensori di umidità;
- sensori di pressione;
- potenziometri.
Lettura del sensore di temperatura interno
L’ESP32-C6 integra un sensore di temperatura.
È sufficiente chiedere:
Leggi la temperatura
WireClaw restituisce immediatamente la temperatura misurata dal microcontrollore.
Questo permette di monitorare facilmente lo stato del dispositivo.
Automazioni senza programmare
WireClaw permette anche di creare semplici regole.
Ad esempio:
Se la temperatura supera 30 °C accendi il relè.
oppure
Ogni ora inviami la temperatura su Telegram.
Queste automazioni possono essere configurate senza scrivere una sola riga di codice.
Comunicazione seriale (UART)
Una delle funzioni più interessanti mostrate nel video riguarda la comunicazione UART.
Sono stati collegati due ESP32.
Il primo legge un sensore analogico.
Il secondo esegue WireClaw.
I due dispositivi comunicano tramite seriale.
L’utente può semplicemente chiedere:
Leggi la porta seriale
WireClaw riceve il dato inviato dall’altro microcontrollore e lo visualizza su Telegram.
Questo permette di aggiungere funzionalità AI anche a dispositivi già esistenti.
Nel video ho dimostrato le potenzialità di espansione di Wireclaw attraverso un esempio pratico di comunicazione seriale (UART) tra due dispositivi. Ho configurato un primo ESP32 per leggere il valore di tensione variabile da un potenziometro; questo dato viene poi inviato via seriale a un secondo ESP32 su cui è installato Wireclaw. Quest’ultimo elabora il segnale ricevuto e lo inoltra direttamente al bot Telegram, permettendo così di monitorare da remoto i sensori collegati ad altri sistemi preesistenti.
Il codeice scritto nel primo ESP32, che legge il valore del opotenziometro e lo invia tramite UART:
/*
* ESP32-C6 - Lettura Potenziometro con doppia seriale
*
* - GPIO0 : ingresso analogico (potenziometro)
* - GPIO05 : TX della seriale hardware (UART1)
* - GPIO04 : RX della seriale hardware (UART1)
* - Serial0: seriale USB (Serial via USB CDC)
* - Serial1: seriale hardware a 9600 baud
*/
#include <Arduino.h>
// Pin
#define POT_PIN 0 // GPIO0 - ingresso ADC
#define UART_TX 5 // GPIO19 - TX UART1 ← era RX con GPIO20
#define UART_RX 4 // GPIO20 - RX UART1 ← era TX con GPIO19
// Parametri
#define BAUD_UART1 9600
#define BAUD_USB 9600
#define INTERVALLO 2000 // ms tra ogni lettura
void setup() { // ← mancava questa riga
// Seriale USB (Serial0 / CDC)
Serial.begin(BAUD_USB);
while (!Serial && millis() < 3000);
Serial.println("ESP32-C6 avviato - Lettura potenziometro");
// Seriale hardware UART1 su GPIO19 (TX) e GPIO20 (RX)
Serial1.begin(BAUD_UART1, SERIAL_8N1, UART_RX, UART_TX);
Serial1.println("UART1 pronta a 9600 baud");
// Configura GPIO0 come ingresso analogico
pinMode(POT_PIN, INPUT);
analogReadResolution(12);
}
void loop() {
int valoreGrezzo = analogRead(POT_PIN);
float tensione = valoreGrezzo * 3.3f / 4095.0f;
int percentuale = map(valoreGrezzo, 0, 4095, 0, 100);
Serial.print("ADC: ");
Serial.print(valoreGrezzo);
Serial.print(" | Tensione: ");
Serial.print(tensione, 2);
Serial.print(" V | Percentuale: ");
Serial.print(percentuale);
Serial.println(" %");
Serial1.print(valoreGrezzo);
Serial1.print(" ADC: ");
Serial1.print(valoreGrezzo);
Serial1.print(" | Tensione: ");
Serial1.print(tensione, 2);
Serial1.print(" V | Percentuale: ");
Serial1.print(percentuale);
Serial1.println(" %");
delay(INTERVALLO);
}
Applicazioni possibili
Le potenzialità sono numerose.
Ad esempio:
- controllo remoto dell’illuminazione;
- apertura di cancelli;
- gestione di relè;
- monitoraggio temperatura;
- lettura di sensori analogici;
- controllo di pompe;
- automazione domestica;
- serre automatiche;
- monitoraggio impianti industriali;
- retrofit di sistemi esistenti tramite UART.
Limiti attuali
Essendo un progetto ancora giovane, WireClaw presenta alcune limitazioni.
Attualmente il numero di condizioni logiche e di azioni disponibili è limitato rispetto a un programma scritto interamente in C/C++.
Tuttavia l’approccio è estremamente promettente e rende possibile realizzare rapidamente numerose applicazioni IoT senza affrontare lo sviluppo tradizionale del firmware.
Conclusioni
WireClaw rappresenta un modo completamente nuovo di progettare sistemi embedded.
L’utente non programma più il microcontrollore nel modo tradizionale, ma comunica con esso utilizzando il linguaggio naturale.
L’AI interpreta le richieste, genera i comandi e lascia all’ESP32 il compito di eseguire le operazioni sull’hardware.
Per chi sviluppa dispositivi IoT questo significa poter creare prototipi molto rapidamente, riducendo notevolmente i tempi di sviluppo e rendendo l’interazione con il sistema più intuitiva. Se il progetto continuerà ad evolversi con nuove funzionalità e un numero maggiore di azioni supportate, WireClaw potrebbe diventare uno strumento estremamente interessante per chiunque realizzi applicazioni basate su ESP32







