Box IO

Self-hosted IoT for Arduino and ESP32.

LED

A round lamp. The sketch publishes on or off with virtualWrite. The dashboard does not send a click back to the device.

Sample pin: V0

Set it up on the server

  1. Sign in to the Box IO dashboard and open the project that uses this device key.
  2. Turn on Edit.
  3. In Edit, add LED.
  4. Set Virtual pin to 0 so it matches V0 in the sketch.
  5. Set Label, Color on, and Color off. Color on is the lit color.
  6. Save the layout, then open Live.
  7. Flash the sketch below with the same device key, host, and port 5923. Keep BoxIO.run() in loop().

Properties

Sketch values are always strings, including numbers: BoxIO.setProperty(V2, "max", "200").

PropertyWhere to set itFormatExampleEffect
colorOnDashboard or sketch#RRGGBB#ff5d73Lit color.
colorOffDashboard or sketch#RRGGBB#1a2333Unlit color. The lamp stays dimmer while off.
colorSketch#RRGGBB#ff5d73Alias for the lit color when colorOn is not set.
labelDashboard or sketchPlain textPumpCaption above the widget. On a round or oval button this is the caption, not the word on the button face.
hideLabelDashboardOn or offcheckedHides the caption. Button face text, meter numbers, and label text stay visible.
fontSizeDashboardWhole number 8 to 160, or blank for automatic size28Text size in pixels inside the widget.
opacityDashboard10% to 100%70%Lets an overlapping widget show through. 100% is solid.

Formatting

Sketch

Paste the device key over bx_paste_your_device_key_here. Wi-Fi boards include BoxIOEsp32.h. Ethernet boards use the same calls with an EthernetClient.

#define BOXIO_AUTH "bx_paste_your_device_key_here"
#define WIFI_SSID  "your-ssid"
#define WIFI_PASS  "your-password"
#define BOXIO_HOST "boxio.krmsproducts.net"
#define BOXIO_PORT 5923

#include <BoxIOEsp32.h>

void setup() {
  BoxIO.begin(BOXIO_AUTH, WIFI_SSID, WIFI_PASS, BOXIO_HOST, BOXIO_PORT);
BoxIO.setProperty(V0, "label", "LED Lab");
  BoxIO.setProperty(V0, "colorOn", "#ff5d73");
  BoxIO.setProperty(V0, "colorOff", "#1a2333");
  BoxIO.virtualWrite(V0, 1);
}

void loop() {
  BoxIO.run();
static uint32_t last = 0;
  if (millis() - last < 1000) return;
  last = millis();
  static int on = 0;
  on = !on;
  BoxIO.virtualWrite(V0, on);
}

What you should see

The lamp lights when the pin is on and dims when it is off. A later setProperty from the sketch replaces a color you typed on the dashboard until you edit that color again.