> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperwisor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lesson 1 — Your First Device Online

> Flash, provision, and confirm an ESP32 connects to Hyperwisor.

**Goal:** get an ESP32 connected and showing online.

## 1. Flash the minimal sketch

With the [Arduino library installed](/firmware/arduino/install), upload this:

```cpp theme={null}
#include <hyperwisor-iot.h>

HyperwisorIOT device;

void setup() {
  Serial.begin(115200);
  device.begin();          // connects, or starts AP-mode for provisioning
  Serial.println("Device ID: " + device.getDeviceId());
}

void loop() {
  device.loop();           // keep the connection alive
}
```

## 2. Provision Wi-Fi

On first boot the device has no credentials, so it starts its own access point:

|                  |                        |
| ---------------- | ---------------------- |
| Connect to Wi-Fi | `NIKOLAINDUSTRY_Setup` |
| Password         | `0123456789`           |

Open the provisioning page, enter your Wi-Fi and device details, and the device
saves them and restarts — connecting automatically from then on. (You can also
[set credentials from code](/firmware/arduino/provisioning#manual-provisioning).)

## 3. Confirm it's online

Watch the serial monitor at 115200 baud — you should see the device print its ID
and connect. The device now appears in your account, ready to bind to a
dashboard.

<Check>
  The device is online when `device.loop()` is running and the serial log shows a
  successful connection.
</Check>

<Card title="Next: push a value" icon="arrow-right" href="/learn/lessons/02-push-sensor-value">
  Send a reading to a dashboard widget.
</Card>
