Dokumentasi Devspace
Panduan lengkap untuk menghubungkan perangkat ESP32/ESP8266 ke platform DevSpace IoT.
1Getting Started
Ikuti langkah-langkah berikut untuk mulai menggunakan Devspace:
2Install Libraries
Install library berikut melalui Arduino Library Manager atau PlatformIO:
- PubSubClient by Nick O'Leary - Untuk koneksi MQTT
- ArduinoJson by Benoit Blanchon - Untuk parsing JSON
PlatformIO: Tambahkan ke platformio.ini
1lib_deps =2 knolleary/PubSubClient@^2.83 bblanchon/ArduinoJson@^6.21.3
3ESP32 Code Template
Copy template code berikut ke Arduino IDE Anda. Template ini sudah termasuk logic reconnection WiFi dan MQTT.
Penting: Jangan lupa ubah bagian
CONFIGURATION dengan credentials yang Anda dapatkan dari dashboard.main.ino
1#include <WiFi.h>2#include <PubSubClient.h>3#include <ArduinoJson.h>45// ============================================================6// 🔧 CONFIGURATION - SESUAIKAN DENGAN DATA ANDA!7// ============================================================89// WiFi Credentials10const char* WIFI_SSID = "your-wifi-ssid";11const char* WIFI_PASSWORD = "your-wifi-password";1213// MQTT Broker (DevSpace)14const char* MQTT_BROKER = "mqtt.devspace.id";15const int MQTT_PORT = 1883;1617// MQTT Credentials (dari Dashboard Device Detail)18const char* MQTT_CLIENT_ID = "dev_your-client-id";19const char* MQTT_USERNAME = "mqtt_your-username";20const char* MQTT_PASSWORD = "your-mqtt-password";2122// Sensor ID (dari Dashboard Sensor List)23const char* SENSOR_ID = "your-sensor-uuid";2425// ============================================================26// 🔌 OBJECTS & VARIABLES27// ============================================================2829WiFiClient espClient;30PubSubClient mqttClient(espClient);3132const int SENSOR_PIN = 34; // Pin sensor (sesuaikan)33const long SEND_INTERVAL = 5000; // Kirim data setiap 5 detik34unsigned long lastSendTime = 0;3536// Topics37String DATA_TOPIC;38String STATUS_TOPIC;3940void setup() {41 Serial.begin(115200);4243 // Setup WiFi44 WiFi.begin(WIFI_SSID, WIFI_PASSWORD);45 while (WiFi.status() != WL_CONNECTED) {46 delay(500);47 Serial.print(".");48 }49 Serial.println("\nWiFi Connected!");5051 // Setup MQTT52 DATA_TOPIC = "devspace/" + String(MQTT_CLIENT_ID) + "/data";53 STATUS_TOPIC = "devspace/" + String(MQTT_CLIENT_ID) + "/status";5455 mqttClient.setServer(MQTT_BROKER, MQTT_PORT);56}5758void reconnect() {59 while (!mqttClient.connected()) {60 Serial.print("Connecting to MQTT...");61 if (mqttClient.connect(MQTT_CLIENT_ID, MQTT_USERNAME, MQTT_PASSWORD)) {62 Serial.println("Connected!");63 mqttClient.publish(STATUS_TOPIC.c_str(), "online");64 } else {65 Serial.print("failed, rc=");66 Serial.print(mqttClient.state());67 delay(5000);68 }69 }70}7172void loop() {73 if (!mqttClient.connected()) {74 reconnect();75 }76 mqttClient.loop();7778 // Send Data Periodically79 unsigned long now = millis();80 if (now - lastSendTime > SEND_INTERVAL) {81 lastSendTime = now;8283 // Read Sensor (Example: Random value)84 float value = random(200, 300) / 10.0;8586 // Create JSON Payload87 StaticJsonDocument<200> doc;88 doc["sensorId"] = SENSOR_ID;89 doc["value"] = value;9091 char jsonBuffer[200];92 serializeJson(doc, jsonBuffer);9394 // Publish95 mqttClient.publish(DATA_TOPIC.c_str(), jsonBuffer);96 Serial.println(jsonBuffer);97 }98}
Monitor Serial Output
Setelah upload, buka Serial Monitor (Baud Rate: 115200). Anda akan melihat output seperti ini jika berhasil:
1Connecting to WiFi...2WiFi Connected!3Connecting to MQTT...Connected!4{"sensorId":"your-uuid","value":25.5}5{"sensorId":"your-uuid","value":25.6}
MQTT Reference
| Topic | Direction | Description |
|---|---|---|
| devspace/{clientId}/data | Device → Server | Publish data sensor |
| devspace/{clientId}/status | Device → Server | Status online/offline |
Payload Format
payload.json
1{2 "sensorId": "UUID-SENSOR-ANDA",3 "value": 25.5,4 "unit": "celsius" // Optional5}
Troubleshooting
Error: rc=-2 (Connect Failed)
Biasanya disebabkan credentials yang salah.
- Cek kembali MQTT Username & Password
- Pastikan Client ID benar
Device Online tapi Data Kosong
- Pastikan
sensorIddi code sama persis dengan di dashboard (UUID) - Cek format JSON valid