Skip to content

Quick Start ​

This guide is for first-time FastBee-Arduino users, following the shortest path from online firmware flashing to creating linked rules. No coding or local build required - just 5 steps to turn ESP32 into a controllable IoT terminal.

Page Guide ​

Use CasesFor first-time FastBee-Arduino users, following the shortest path of flashing, networking, peripherals, and rules to build a first linkable device.
Acceptance CriteriaOnce the device is online, peripherals can be controlled from the web console and reported data is visible in an MQTT client.

Prerequisites ​

Required Tools ​

  • Chrome or Edge browser
  • ESP32 series DevKit (ESP32/ESP32-S3/ESP32-C3/ESP32-C6)
  • USB data cable (data transfer capable)
  • Online Flashing Tool: esp32-flasher.md

Optional Tools ​

  • DHT11 temperature/humidity sensor
  • Relay module
  • Breadboard and jumper wires

Step 1: Flash Firmware Online ​

Open the Online Flashing Tool. Regular users can directly use the built-in merged firmware; no need to install VSCode, PlatformIO or manually upload Web file system.

1.1 Select Firmware ​

  1. ESP32 standard DevKit: prefer FastBee ESP32 Merged Firmware F4R0
  2. ESP32-C3 / ESP32-C6 DevKit: select the F4R0 firmware matching your chip model from the dropdown
  3. ESP32-S3 DevKit: select F8R0, F8R8, or F16R8 based on actual Flash and PSRAM; check the module silkscreen or board specification if unsure

For the complete firmware matrix, Flash/PSRAM reference and browser flashing notes, see Online Flasher.

1.2 Connect and Flash ​

  1. Connect the DevKit with a USB data cable
  2. In the online flashing tool, click Select Serial Port and choose the board port
  3. Keep Firmware Source as Built-in File, select the merged firmware matching your board, keep flash address at 0x0
  4. Click Flash, wait for progress to complete and auto-reset

Merged firmware already includes bootloader, partition table, application firmware and Web file system. No need to flash other files separately.

Default peripherals and execution rules are safe templates: after flashing, GPIO, UART or display will not be driven automatically. Before first wiring, confirm pins, power supply and peripheral IDs, then enable corresponding peripherals and rules in the Web console.

Step 2: Initial Configuration ​

2.1 Connect to Device ​

  1. On first boot or when WiFi is not configured, device auto-enters AP mode
  2. Connect to device AP hotspot: fastbee-ap, password: admin123
  3. Browser access: http://192.168.4.1 or http://fastbee.local
  4. Login with default credentials:
    • Username: admin
    • Password: admin123

After login, you should see network status, IP address and resource usage in the dashboard. If pages load but data is empty, wait for the device to finish booting, or refresh and re-login.

2.2 Configure Network ​

  1. Go to Network Configuration page
  2. Select networking method:
    • WiFi STA: Enter your WiFi SSID and password
    • Ethernet: Use only when the environment compiles ethernet and W5500 pins are configured
    • 4G: Use only when the environment compiles cellular and APN/UART settings match the module
  3. Click Save, device reboots and connects to network
  4. After connection, access via router-assigned IP or http://fastbee.local

The network page top shows current connection status, SSID, IP address and signal strength; tabs below are for STA basic config, AP hotspot config and advanced config like static IP/mDNS.

Network Basic Configuration

Hotspot Configuration

Network Advanced Configuration

All release environments share the core feature baseline, including Modbus RTU. Ethernet and cellular remain environment- and hardware-dependent; /api/features/status is the authoritative runtime capability check.

Step 3: Configure Peripherals ​

3.1 Add DHT11 Temperature/Humidity Sensor ​

  1. Go to Peripheral Configuration page
  2. Click Add Peripheral
  3. Fill in configuration:
    • Peripheral ID: dht_01
    • Name: DHT11 Temp & Humidity
    • Type: SENSOR (type: 38)
    • Pin: 13 (modify based on actual wiring)
    • Enable: Keep disabled first, enable after confirming pins
  4. Click Save

The peripheral configuration page lists existing peripherals and enable status. When adding new peripherals, fill in peripheral ID, name, type and pins first, then enable after confirming wiring.

IDNameTypePinStatusActions
adcADC Analog ConversionADC36DisabledEdit / Enable / Delete
canCAN BusCAN4, 5DisabledEdit / Enable / Delete
i2cI2C BusI2C17, 18DisabledEdit / Enable / Delete
jtagJTAG Debug InterfaceJTAG12, 13, 14, 15DisabledEdit / Enable / Delete
modbus_rtuModbus RTU - Industrial DeviceUART16, 17DisabledEdit / Enable / Delete
oled_ssd1306_c3OLED Display - SSD1306LCD5, 6DisabledEdit / Enable / Delete
gpio_pwmPWM OutputPWM Output21DisabledEdit / Enable / Delete
sdioSD Card SDIO InterfaceSDIO14, 15, 2, 4, 12, 13DisabledEdit / Enable / Delete
swdSWD Debug InterfaceSWD13, 14DisabledEdit / Enable / Delete
uartUART SerialUART16, 17DisabledEdit / Enable / Delete

Add Peripheral Dialog

JSON Configuration Example:

json
{
  "id": "dht_01",
  "name": "DHT11 Temp & Humidity",
  "type": 38,
  "enabled": false,
  "pinCount": 1,
  "pins": [13, 255, 255, 255, 255, 255, 255, 255],
  "params": {}
}

3.2 Add Relay ​

  1. Click Add Peripheral
  2. Fill in configuration:
    • Peripheral ID: relay_01
    • Name: High Temp Relay
    • Type: GPIO_DIGITAL_OUTPUT (type: 12)
    • Pin: 25 (modify based on actual wiring)
    • Initial State: 0 (low level)
  3. Click Save

JSON Configuration Example:

json
{
  "id": "relay_01",
  "name": "High Temp Relay",
  "type": 12,
  "enabled": false,
  "pinCount": 1,
  "pins": [25, 255, 255, 255, 255, 255, 255, 255],
  "params": {
    "initialState": 0,
    "pwmChannel": 0,
    "pwmFrequency": 1000,
    "pwmResolution": 8,
    "defaultDuty": 0
  }
}

3.3 Enable Peripherals ​

  1. Confirm pin wiring is correct
  2. Check Enable in the peripheral list
  3. Click Save All
  4. Serial log should show peripheral initialization success

Step 4: Create Linked Rules ​

4.1 Temperature Threshold Alarm Rule ​

  1. Go to Peripheral Execution page
  2. Click Add Rule
  3. Fill in basic info:
    • Rule ID: exec_temp_relay
    • Name: Open Relay When Temp > 30
    • Enable: Keep disabled first, enable after testing

4.2 Configure Trigger ​

  1. Add trigger:
    • Trigger Type: Timer Trigger (triggerType: 1)
    • Trigger Peripheral: dht_01
    • Timer Mode: Periodic
    • Interval: 10 (read every 10 seconds)
  2. Click Save Trigger

4.3 Configure Actions ​

Action 1: Read Temperature Sensor

  1. Add action:
    • Target Peripheral: dht_01
    • Action Type: Sensor Read (actionType: 19)
    • Action Parameters:
      json
      {
        "periphId": "dht_01",
        "sensorCategory": "dht11",
        "dataField": "temperature",
        "sensorLabel": "Temperature",
        "unit": "°C",
        "decimalPlaces": 1
      }
  2. Click Save Action

Action 2: Open Relay

  1. Add action:
    • Target Peripheral: relay_01
    • Action Type: GPIO High (actionType: 0)
    • Sync Delay: 100 ms
  2. Click Save Action

4.4 Save and Enable Rule ​

  1. Set Report After Execution: true
  2. Click Save Rule
  3. After testing rule logic is correct, check Enable
  4. Click Save All

The peripheral execution page shows rule status, trigger methods, target peripherals and actions. For newly imported or created rules, keep disabled first - click "Run Once" or edit to check parameters before enabling.

NameStatusTriggerTarget PeripheralActionStatsActions
ADC Voltage Read & ReportDisabledTimer TriggerADC Analog ConversionSensor Data Read -> ADC Analog ConversionTrigger Count: 1Run Once / Edit / Enable / Delete
ADC Voltage Below 2.30V Close RelayDisabledEvent Trigger-Set Low LevelTrigger Count: 1Run Once / Edit / Enable / Delete
ADC Voltage Above 2.50V Open RelayDisabledEvent Trigger-Set High LevelTrigger Count: 1Run Once / Edit / Enable / Delete
ADC Voltage Display on Digital TubeDisabledTimer Trigger-Display NumberTrigger Count: 1Run Once / Edit / Enable / Delete
NTP Time SyncDisabledPlatform Trigger (MQTT)-NTP SyncTrigger Count: 1Run Once / Edit / Enable / Delete
OLED Temp & Humidity DisplayDisabledTimer Trigger-OLED Custom DisplayTrigger Count: 1Run Once / Edit / Enable / Delete
OLED Custom Display - Button Trigger Device InfoDisabledEvent Trigger-OLED Custom DisplayTrigger Count: 1Run Once / Edit / Enable / Delete
OLED Custom Display - Timer MixedDisabledTimer Trigger-OLED Custom DisplayTrigger Count: 1Run Once / Edit / Enable / Delete
OLED Custom Display - MQTT MessageDisabledPlatform Trigger (MQTT)-OLED Custom DisplayTrigger Count: 1Run Once / Edit / Enable / Delete
OTA UpgradeDisabledPlatform Trigger (MQTT)-OTA UpgradeTrigger Count: 1Run Once / Edit / Enable / Delete

The rule editing window expands different fields based on trigger and action types. Before saving, focus on verifying target peripheral, comparison value, action parameters and "Enable" status.

Check ItemPre-Enable ConfirmationRisk Note
Basic InfoName is recognizable, ID is unique, save as disabled first, add field notesMake the rule an auditable object first, then verify individually
TriggerSource is clear, conditions are reproducible, polling interval is reasonable, event name is accurateDo not mix up platform/timer/event/poll when troubleshooting
ActionTarget peripheral exists, actionType is correct, actionValue is valid, strong actions confirmedManually run relay, motor, register write once first
Result & ReportingLogs are traceable, reporting fields are correct, failures have responses, screenshots for evidenceCheck not only device action but also what the platform receives
RollbackCan be disabled, backup exists, recovery entry is known, on-site power-off point is clearDangerous actions must retain physical emergency stop

During quick start, only enable one simple rule. After confirming relay, sensor reading and logs are all normal, continue expanding to platform triggers, event triggers or multi-action linked rules.

Complete JSON Configuration:

json
{
  "id": "exec_temp_relay",
  "name": "Open Relay When Temp > 30",
  "enabled": false,
  "execMode": 0,
  "triggers": [
    {
      "triggerType": 1,
      "triggerPeriphId": "dht_01",
      "timerMode": 0,
      "intervalSec": 10,
      "timePoint": "",
      "eventId": "",
      "operatorType": 0,
      "compareValue": "",
      "pollResponseTimeout": 1000,
      "pollMaxRetries": 2,
      "pollInterPollDelay": 100
    }
  ],
  "actions": [
    {
      "targetPeriphId": "dht_01",
      "actionType": 19,
      "actionValue": "{\"periphId\":\"dht_01\",\"sensorCategory\":\"dht11\",\"dataField\":\"temperature\",\"sensorLabel\":\"Temperature\",\"unit\":\"°C\",\"decimalPlaces\":1}",
      "useReceivedValue": false,
      "syncDelayMs": 0,
      "execMode": 0
    },
    {
      "targetPeriphId": "relay_01",
      "actionType": 0,
      "actionValue": "",
      "useReceivedValue": false,
      "syncDelayMs": 100,
      "execMode": 0
    }
  ],
  "protocolType": 0,
  "scriptContent": "",
  "reportAfterExec": true
}

Step 5: Configure Cloud Connection (Optional) ​

5.1 MQTT Configuration ​

  1. Go to Communication Protocol page
  2. Select MQTT tab
  3. Fill in configuration:
    • Server Address: mqtt.your-server.com
    • Port: 1883 (non-encrypted) or 8883 (TLS)
    • Client ID: Auto-generated or manually entered
    • Username/Password: Based on server requirements
    • Topic Prefix: fastbee/device01
  4. Click Save & Connect
  5. Check connection status, confirm success

The communication protocol page contains MQTT and Modbus RTU tabs. MQTT is for cloud platform connection; Modbus RTU is for RS485 slave acquisition and control.

MQTT Configuration

AreaFieldExample Value / Status
Status OverviewRisk LevelLow
Status OverviewEnabled Tasks0
Status OverviewTimeout Rate0%
Status OverviewTotal Poll / Success / Fail / Timeout0 / 0 / 0 / 0
Basic ConfigEnable Modbus RTUEnabled
Basic ConfigPeripheral Config SelectionSelect configured RS485/UART peripheral
Basic ConfigTransfer TypePassthrough (Raw HEX Frame)
Basic ConfigDE Pin (RS485)14
Sub-device NameTypeSlave AddressDevice InfoEnableActions
Temp & HumidityCollect2FC04 @0 x2 [2 mapped]ONEdit / Map / Delete
PM25-10Collect1FC03 @0 x2 [2 mapped]ONEdit / Map / Delete
Weather LouverCollect4FC03 @500 x8 [6 mapped]ONEdit / Map / Delete

5.2 Verify Data Reporting ​

  1. Use MQTT client tool to subscribe to topic: fastbee/device01/#
  2. Wait for rule execution (every 10 seconds)
  3. Should receive temperature data and relay status messages

Configuration Backup ​

Export Configuration ​

  1. Go to Device Configuration > Advanced Configuration
  2. Click Export Configuration
  3. Select export type:
    • Peripheral Config: peripherals.json
    • Execution Rules: periph_exec.json
    • Network Config: network.json
    • All Configs: Package download
  4. Save to local backup

Import Configuration ​

  1. Click Import Configuration
  2. Select local JSON file
  3. Confirm import
  4. Check pin configuration, enable peripherals and rules after confirming

Important: All documentation examples default to enabled: false. After import, check pins before enabling.

Notes ​

Pin Assignment Rules ​

  • GPIO34-39: Input only, suitable for ADC/digital input
  • GPIO6-11: Connected to Flash, not recommended for use
  • GPIO32-39: ADC1, available when WiFi is on
  • GPIO4,12-15,25-27: ADC2, not available when WiFi is on

Common Precautions ​

  • ADC acquisition recommend using ADC1 pins (GPIO32-39)
  • Relay modules may be active-low, use ACTION_HIGH_INVERTED (actionType: 13)
  • DHT11 sampling interval recommend >= 2 seconds
  • I2C devices share SDA/SCL but addresses must not conflict
  • Export backup after completing each configuration

Next Steps ​


FastBee | fastbee.cn