Documentation

NodeMCU ESP8266 - Smart Device Controller सेटअप गाइड

सेटअप गाइड

1 WiFi सेटिंग्स बदलें

अपने WiFi का नाम और पासवर्ड डालें:

const char* ssid = "YourWiFiName";
const char* password = "YourPassword";
2 Unique Key सेट करें

अपना API Key बदलें (Register करने के बाद मिलेगा):

unique_key=YOUR_UNIQUE_KEY
3 Pin नंबर सेट करें

जिस GPIO pin पर relay लगी है, वो नंबर डालें:

"pin": 5 // D1 के लिए GPIO5
4 NodeMCU में अपलोड करें

Arduino IDE से कोड अपलोड करें:

  • ✅ बोर्ड: NodeMCU 1.0 (ESP-12E Module)
  • ✅ पोर्ट सही सेलेक्ट करें
  • ✅ Libraries: ESP8266WiFi, ArduinoJson
⚠️ जरूरी निर्देश:
अपलोड करने से पहले WiFi नाम, पासवर्ड और Unique Key जरूर बदलें।

Pinout Guide

ESP8266 Pinout Diagram

GPIO Pins कैसे चुनें:

इमेज में दिख रहे GPIO नंबर का इस्तेमाल करें, D नंबर का नहीं!

जैसे: D1 = GPIO5, D2 = GPIO4, D5 = GPIO14

Board Pin GPIO Use For
D0 GPIO16 ⚠️ Avoid (no interrupt)
D1 GPIO5 ✅ Best for Relay
D2 GPIO4 ✅ Best for Relay
D3 GPIO0 ⚠️ Boot fails if LOW
D4 GPIO2 ⚠️ Boot fails if LOW
D5 GPIO14 ✅ Best for Relay
D6 GPIO12 ✅ Best for Relay
D7 GPIO13 ✅ Best for Relay
D8 GPIO15 ⚠️ Pull-down needed

Recommended Pins:

GPIO5 (D1), GPIO4 (D2), GPIO14 (D5), GPIO12 (D6), GPIO13 (D7)

Quick Setup

📦 Required Hardware:

  • NodeMCU ESP8266
  • Relay Module (4/8 channel)
  • Jumper Wires
  • 5V Power Supply
🔌 Wiring Connection:

NodeMCU → Relay Module:

  • GPIO5 (D1) → IN1
  • GPIO4 (D2) → IN2
  • GND → GND
  • Vin → VCC (if 5V relay)

API Endpoint:

https://smart.gupchupwala.com/api.php?unique_key=XXXXXXXXXXX

NodeMCU8266.ino

// ⚡ Smart Device Controller - NodeMCU Code
// 🔧 अपलोड करने से पहले ये बदलें:
// 📶 WiFi Name, Password, और unique_key

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>

// ===== यहाँ बदलें =====
const char* ssid = "YourWiFiName";      // अपना WiFi नाम डालें
const char* password = "YourPassword";   // अपना WiFi पासवर्ड डालें
const char* apiUrl = "https://smart.gupchupwala.com/api.php?unique_key=YOUR_UNIQUE_KEY"; // अपना Unique Key डालें
// =====================

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  Serial.print("Connecting to WiFi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\n✅ WiFi Connected!");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    WiFiClientSecure client;
    client.setInsecure();   // SSL check disable (self-signed allowed)
    
    HTTPClient https;
    if (https.begin(client, apiUrl)) {
      int httpCode = https.GET();

      if (httpCode == HTTP_CODE_OK) {
        String payload = https.getString();
        Serial.println("📩 API Response:");
        Serial.println(payload);

        // JSON पार्स करने के लिए बड़ा buffer
        DynamicJsonDocument doc(4096);

        DeserializationError error = deserializeJson(doc, payload);
        if (error) {
          Serial.print("❌ JSON Parse Error: ");
          Serial.println(error.c_str());
          https.end();
          delay(5000);
          return;
        }

        // Devices array check करें
        if (doc["devices"].size() > 0) {
          for (JsonObject dev : doc["devices"].as<JsonArray>()) {
            const char* name  = dev["name"]   | "Unknown";
            const char* state = dev["state"]  | "OFF";
            int pin           = dev["pin"]    | -1;

            if (pin >= 0) {
              pinMode(pin, OUTPUT);
              if (strcmp(state, "ON") == 0) {
                digitalWrite(pin, LOW);   // Relay module के लिए LOW = ON
              } else {
                digitalWrite(pin, HIGH);  // Relay module के लिए HIGH = OFF
              }

              Serial.printf("💡 Device: %s | Pin: %d | State: %s\n", name, pin, state);
            }
          }
        } else {
          Serial.println("⚠️ No devices found in response.");
        }

      } else {
        Serial.printf("❌ HTTP Error: %d\n", httpCode);
      }

      https.end();
    } else {
      Serial.println("❌ HTTPS Connection Failed!");
    }
  } else {
    Serial.println("⚠️ WiFi Disconnected! Reconnecting...");
    WiFi.begin(ssid, password);
  }

  delay(10000);  // हर 10 सेकंड में API call करेगा
}

खासियतें

WiFi कंट्रोल

दुनिया में कहीं से भी अपने Devices को कंट्रोल करें

सिक्योर HTTPS

SSL सिक्योरिटी के साथ सेफ कम्युनिकेशन

रियल-टाइम

हर 10 सेकंड में अपडेट, फटाफट रिस्पॉन्स

मल्टीपल डिवाइस

एक साथ कई Devices को कंट्रोल करें

महत्वपूर्ण नोट्स:

कोड कॉपी हो गया!