SN1 Solar Node: บอร์ด ESP32-C3 พลังงานแสงอาทิตย์สำหรับ IoT กลางแจ้ง

เรียนรู้วิธีการใช้งาน SN1 Solar Node บอร์ดพัฒนา IoT พลังงานแสงอาทิตย์ที่มาพร้อมช่องชาร์จและกล่องกันน้ำ IP67 เหมาะสำหรับโปรเจกต์ IoT กลางแจ้งและระบบวัดอุตสาหกรรม

📅 10 เมษายน 2026⏱️ 15 นาที🎯 ระดับเริ่มต้น-กลาง

จุดเด่นของ SN1 Solar Node

☀️

พลังงานแสงอาทิตย์

ชาร์จได้ด้วยแผงโซลาร์เซลล์

💧

กันน้ำ IP67

เหมาะสำหรับกลางแจ้ง

🔋

ตัดการเชื่อมต่อแบตเตอรี่

ไม่ต้องกังวลเรื่องแบต

ภาพรวม SN1 Solar Node

SN1 Solar Node เป็นบอร์ดพัฒนา IoT ที่ออกแบบมาเพื่อการใช้งานกลางแจ้งโดยเฉพาะ โดยใช้ชิป ESP32-C3 ที่มี WiFi และ Bluetooth LE ในตัว พร้อมระบบชาร์จแบตเตอรี่ด้วยพลังงานแสงอาทิตย์และกล่องกันน้ำระดับ IP67 ทำให้เหมาะสำหรับ:

  • ระบบวัดอุตสาหกรรมกลางแจ้ง
  • สถานีตรวจวัดสภาพอากาศ
  • ระบบเตือนภัยน้ำท่วม
  • โปรเจกต์ Smart Farm และ Precision Agriculture
  • ระบบติดตามพาหนะและ Assets

💡 เกร็ดความรู้: SN1 Solar Node ออกวางจำหน่ายครั้งแรกในเดือนเมษายน 2026 และได้รับความสนใจจากชุมชน IoT ทั้งในและต่างประเทศเนื่องจากความสามารถในการทำงานแบบ batteryless (ไม่มีแบตเตอรี่) หรือใช้แบตเตอรี่เป็นตัวเลือกเสริม

สเปคเทคนิค

Microcontroller

  • Chip: ESP32-C3-WROOM-05
  • Core: RISC-V 32-bit single-core
  • Clock: 160 MHz
  • Memory: 400 KB SRAM, 4 MB Flash
  • Wireless: WiFi 802.11 b/g/n, Bluetooth 5 LE

Power Management

  • Solar Input: 5V-12V, max 2A
  • Battery: Li-Ion/Li-Po 3.7V (optional)
  • Charging: MPPT solar charger built-in
  • Power Consumption: ~50mA (active), ~10µA (deep sleep)

Interfaces

  • GPIO: 22 pins (15 available)
  • ADC: 12-bit, 6 channels
  • UART: 2 ports
  • SPI: 1 port
  • I2C: 1 port

Physical

  • Enclosure: IP67 waterproof
  • Dimensions: 80mm x 60mm x 30mm
  • Mounting: 4 x M3 screw holes
  • Connector: IP67 waterproof cable gland

อุปกรณ์ที่ต้องใช้

Hardware พื้นฐาน

อุปกรณ์จำนวนราคาโดยประมาณ
SN1 Solar Node Board1~฿1,200-1,500
แผงโซลาร์เซลล์ 5V-12V1~฿300-800
แบตเตอรี่ Li-Ion 18650 (optional)1-2~฿100-200/ก้อน
Sensor ต่างๆ (ตามโปรเจกต์)-แล้วแต่โปรเจกต์

Software/Tools

  • ✅ Arduino IDE 2.x หรือ PlatformIO
  • ✅ USB-C Cable (สำหรับ programming)
  • ✅ ESPHome (ถ้าต้องการใช้กับ Home Assistant)
  • ✅ CynoIoT Platform account (ฟรี)

การติดตั้งและตั้งค่าเบื้องต้น

Step 1: ติดตั้ง Driver และ Arduino IDE

เริ่มต้นด้วยการติดตั้ง Arduino IDE และเพิ่ม board support สำหรับ ESP32-C3:

// 1. เปิด Arduino IDE
// 2. ไปที่ File > Preferences
// 3. ในช่อง "Additional Boards Manager URLs" ใส่:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

// 4. ไปที่ Tools > Board > Boards Manager
// 5. ค้นหา "esp32" และติดตั้ง "ESP32 by Espressif Systems"
// 6. เลือก Board: "ESP32C3 Dev Module"

Step 2: เชื่อมต่อและทดสอบ

เชื่อมต่อ SN1 Solar Node เข้ากับคอมพิวเตอร์ด้วยสาย USB-C:

/*
 * SN1 Solar Node - First Test
 * ทดสอบการทำงานของ GPIO และ Serial
 */

#define LED_PIN 8  // Built-in LED on SN1 Solar Node

void setup() {
  Serial.begin(115200);           // เปิด Serial Monitor
  pinMode(LED_PIN, OUTPUT);        // ตั้งค่า LED pin เป็น output

  Serial.println("SN1 Solar Node - First Test");
  Serial.println("ESP32-C3 initialized!");
}

void loop() {
  digitalWrite(LED_PIN, HIGH);     // เปิด LED
  Serial.println("LED ON");
  delay(1000);                     // รอ 1 วินาที

  digitalWrite(LED_PIN, LOW);      // ปิด LED
  Serial.println("LED OFF");
  delay(1000);                     // รอ 1 วินาที
}

การเขียนโปรแกรมสำหรับ IoT

โปรเจกต์: Weather Station พลังงานแสงอาทิตย์

ตัวอย่างการสร้างสถานีตรวจวัดสภาพอากาศที่ส่งข้อมูลไปยัง CynoIoT:

/*
 * SN1 Solar Node - Weather Station
 * วัดอุณหภูมิ ความชื้น และแรงดันแบตเตอรี่
 * ส่งข้อมูลไปยัง CynoIoT Platform
 */

#include <WiFi.h>
#include <DHT.h>
#include <HTTPClient.h>

// WiFi Credentials
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

// CynoIoT Configuration
const char* cynoiot_server = "api.cynoiot.com";
const char* device_id = "YOUR_DEVICE_ID";
const char* api_key = "YOUR_API_KEY";

// Sensor Configuration
#define DHT_PIN 4
#define DHT_TYPE DHT22
DHT dht(DHT_PIN, DHT_TYPE);

// Battery Pin (ADC)
#define BATTERY_PIN 1

// Timing
unsigned long lastSend = 0;
const long sendInterval = 60000;  // ส่งทุก 60 วินาที

void setup() {
  Serial.begin(115200);
  
  // เริ่มต้นใช้งาน sensor
  dht.begin();
  
  // เชื่อมต่อ WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWiFi connected!");
  
  // เข้าสู่โหมดประหยัดพลังงาน
  WiFi.setSleep(true);
}

void loop() {
  unsigned long currentMillis = millis();
  
  // ตรวจสอบเวลาส่งข้อมูล
  if (currentMillis - lastSend >= sendInterval) {
    lastSend = currentMillis;
    
    // อ่านค่า sensor
    float temperature = dht.readTemperature();
    float humidity = dht.readHumidity();
    
    // อ่านแรงดันแบตเตอรี่
    int batteryRaw = analogRead(BATTERY_PIN);
    float batteryVoltage = (batteryRaw / 4095.0) * 3.3 * 2;  // Voltage divider
    
    // ตรวจสอบว่าอ่านค่าได้หรือไม่
    if (isnan(temperature) || isnan(humidity)) {
      Serial.println("Failed to read from DHT sensor!");
      return;
    }
    
    // ส่งข้อมูลไปยัง CynoIoT
    sendDataToCynoIoT(temperature, humidity, batteryVoltage);
    
    // แสดงค่าใน Serial Monitor
    Serial.printf("Temp: %.2f°C, Humidity: %.2f%%, Battery: %.2fV\n",
                  temperature, humidity, batteryVoltage);
  }
  
  // รอสักครู่ก่อนเข้า deep sleep (ถ้าจำเป็น)
  delay(1000);
}

void sendDataToCynoIoT(float temp, float hum, float battery) {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    String url = "http://" + String(cynoiot_server) + "/api/v1/data";
    
    // สร้าง JSON payload
    String payload = "{";
    payload += "\"device_id\":\"" + String(device_id) + "\",";
    payload += "\"api_key\":\"" + String(api_key) + "\",";
    payload += "\"data\":{";
    payload += "\"temperature\":" + String(temp) + ",";
    payload += "\"humidity\":" + String(hum) + ",";
    payload += "\"battery\":" + String(battery);
    payload += "}}";
    
    // ส่ง HTTP POST
    http.begin(url);
    http.addHeader("Content-Type", "application/json");
    int httpResponseCode = http.POST(payload);
    
    if (httpResponseCode > 0) {
      Serial.printf("HTTP Response: %d\n", httpResponseCode);
    } else {
      Serial.printf("Error sending data: %s\n", http.errorToString(httpResponseCode).c_str());
    }
    
    http.end();
  } else {
    Serial.println("WiFi not connected!");
  }
}

💡 เกร็ดความรู้: โค้ดนี้ใช้ WiFi sleep mode เพื่อประหยัดพลังงาน และส่งข้อมูลทุก 60 วินาที คุณสามารถปรับเปลี่ยนช่วงเวลาตามความเหมาะสมกับโปรเจกต์ของคุณ

ไอเดียโปรเจกต์ที่ทำได้

🌾 Smart Farm

ระบบวัดความชื้นในดิน อุณหภูมิ และคุณภาพน้ำสำหรับการเกษตร

🌊 Flood Warning

ระบบเตือนภัยน้ำท่วมด้วย ultrasonic sensor และปั๊มน้ำอัตโนมัติ

🏭 Industrial IoT

ระบบตรวจสอบเครื่องจักรและสภาพแวดล้อมในโรงงาน

🚗 Asset Tracking

ระบบติดตามพาหนะและทรัพย์สินที่ต้องการพลังงานยาวนาน

🌡️ Air Quality Monitor

สถานีวัดคุณภาพอากาศกลางแจ้ง PM2.5 และ CO2

⚡ Energy Monitoring

ระบบวัดการใช้พลังงานแสงอาทิตย์และแบตเตอรี่

การแก้ปัญหาที่พบบ่อย

❌ ปัญหา: บอร์ดเปิดไม่ติด

สาเหตุ: แบตเตอรี่หมด หรือแผงโซลาร์ไม่ได้รับแสง

วิธีแก้: เชื่อมต่อ USB-C เพื่อชาร์จ หรือเอาแผงโซลาร์ไปผึ้งแดด

❌ ปัญหา: WiFi เชื่อมต่อไม่ได้

สาเหตุ: สัญญาณอ่อน หรือ password ผิด

วิธีแก้: วางบอร์ดใกล้ access point หรือใช้ external antenna

❌ ปัญหา: Sensor อ่านค่าไม่ได้

สาเหตุ: ต่อสายผิด pin หรือ sensor เสีย

วิธีแก้: เช็กวงจรตาม datasheet หรือลอง sensor ตัวใหม่

❌ ปัญหา: แบตเตอรี่เติมเร็วหมดเร็ว

สาเหตุ: ใช้พลังงานมากเกินไป

วิธีแก้: ใช้ deep sleep mode และลด frequency การส่งข้อมูล

สรุป

SN1 Solar Node เป็นตัวเลือกที่น่าสนใจสำหรับโปรเจกต์ IoT กลางแจ้งที่ต้องการ:

  • ✅ พลังงานแสงอาทิตย์ - ไม่ต้องกังวลเรื่องสายไฟ
  • ✅ กันน้ำ IP67 - ใช้งานได้ทุกสภาพอากาศ
  • ✅ ESP32-C3 - WiFi และ Bluetooth LE ในตัว
  • ✅ ราคาย่อมเยา - เหมาะกับทั้งเรียนและใช้งานจริง

ถ้าคุณกำลังมองหาบอร์ด IoT สำหรับโปรเจกต์กลางแจ้ง SN1 Solar Node เป็นตัวเลือกที่ควรพิจารณา!