DIYables
Published © Apache-2.0

How to use OpenClaw and Anthropic Claude on Arduino Uno Q

Control your Arduino UNO Q with natural language with AI

IntermediateShowcase (no instructions)18
How to use OpenClaw and Anthropic Claude on Arduino Uno Q

Things used in this project

Story

Read more

Code

MCU code

C/C++
/*
 * This Arduino UNO Q code was developed by newbiely.com
 *
 * This Arduino UNO Q code is made available for public use without any restriction
 *
 * For comprehensive instructions and wiring diagrams, please visit:
 * https://newbiely.com/tutorials/arduino-uno-q/arduino-uno-q-openclaw
 */

#include "Arduino_RouterBridge.h"

// LED_BUILTIN is LED3 on the board, lights up RED, active LOW
// LOW = ON, HIGH = OFF

bool ledState = false;

String toggle_led(String arg) {
  ledState = !ledState;
  digitalWrite(LED_BUILTIN, ledState ? LOW : HIGH);
  String msg = ledState ? "LED is now ON" : "LED is now OFF";
  Monitor.println(msg);
  return msg;
}

String get_status(String arg) {
  String status = "MCU is running. LED: " + String(ledState ? "ON" : "OFF");
  Monitor.println("Status requested: " + status);
  return status;
}

void setup() {
  Monitor.begin();
  Bridge.begin();
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH); // Start with LED off (active LOW)

  Bridge.provide_safe("toggle_led", toggle_led);
  Bridge.provide_safe("get_status",  get_status);

  Monitor.println("OpenClaw Bridge ready");
}

void loop() {
}

Python Linux Code

Python
"""
This Arduino UNO Q script was developed by newbiely.com
This Arduino UNO Q script is made available for public use without any restriction
For comprehensive instructions and wiring diagrams, please visit:
https://newbiely.com/tutorials/arduino-uno-q/arduino-uno-q-openclaw
"""

from arduino.app_utils import *
from arduino.app_bricks.web_ui import WebUI


def toggle_led():
    result = Bridge.call("toggle_led", "")
    print(f"OpenClaw -> toggle_led: {result}")
    return {"result": result}


def get_status():
    result = Bridge.call("get_status", "")
    print(f"OpenClaw -> get_status: {result}")
    return {"result": result}


web_ui = WebUI()
web_ui.expose_api("GET", "/api/toggle_led", toggle_led)
web_ui.expose_api("GET", "/api/get_status",  get_status)
App.run()

Credits

DIYables
2 projects • 95 followers
I would like to invite you to join and add your projects to DIYables platform https://www.hackster.io/diyables

Comments