Skip to content

ไลบรารี NETPIE (MQTT) สำหรับบอร์ด ESP32 ช่วยให้คุณเชื่อมต่อ WiFi, สื่อสารกับ NETPIE, และอัปเดต shadow / เปิด-ปิดอุปกรณ์ ได้อย่างง่ายสุด ๆ

Notifications You must be signed in to change notification settings

HakusaiTH/Netpie-Library-for-ESP32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🛰️ Netpie Library for ESP32

ไลบรารี NETPIE (MQTT) สำหรับบอร์ด ESP32 ช่วยให้คุณเชื่อมต่อ WiFi, สื่อสารกับ NETPIE, และอัปเดต shadow / เปิด-ปิดอุปกรณ์ ได้อย่างง่ายสุด ๆ


✨ คุณสมบัติหลัก

  • 🚀 ใช้งานง่ายมาก — เพียง 3–4 บรรทัดก็เชื่อมต่อได้
  • 📡 รองรับ @msg/# และ @shadow/data/update
  • 💡 มี helper ฟังก์ชัน shadowSet() สำหรับส่งค่าขึ้น NETPIE แบบ key-value
  • 🔁 Auto reconnect WiFi + MQTT
  • ⚙️ เขียนด้วย C++ 100% เหมาะกับ Arduino IDE / PlatformIO

📁 โครงสร้างไฟล์

Netpie/
├── Netpie.h
├── Netpie.cpp
└── examples/
    └── led_shadow/
        └── led_shadow.ino

โฟลเดอร์ Netpie ต้องอยู่ใน Documents/Arduino/libraries/


⚙️ วิธีติดตั้ง

  1. ไปที่โฟลเดอร์ Documents/Arduino/libraries/
  2. สร้างโฟลเดอร์ชื่อ Netpie
  3. วางไฟล์ Netpie.h, Netpie.cpp ลงไป
  4. วางโฟลเดอร์ examples/led_shadow/led_shadow.ino ตามโครงสร้างด้านบน
  5. เปิด Arduino IDE → เมนู Sketch → Include Library → Netpie หากเห็นชื่อ Netpie แปลว่าติดตั้งถูกต้องแล้ว ✅

🔧 ตัวอย่างการใช้งาน

examples/led_shadow/led_shadow.ino

#include "Netpie.h"

#define WIFI_SSID   "YourWiFi"
#define WIFI_PASS   "YourPassword"
#define MQTT_CLIENT "YourClientID"
#define MQTT_USER   "YourUsername"
#define MQTT_TOKEN  "YourToken"

Netpie netpie(WIFI_SSID, WIFI_PASS, MQTT_CLIENT, MQTT_USER, MQTT_TOKEN);

const int LEDPIN = LED_BUILTIN;
bool ledOn = false;

void onMsg(const String& topic, const String& msg) {
  Serial.printf("[RX] %s => %s\n", topic.c_str(), msg.c_str());
  if (topic == "@msg/led") {
    ledOn = (msg == "on" || msg == "ledon");
    digitalWrite(LEDPIN, ledOn ? HIGH : LOW);
    netpie.shadowSet("led", ledOn);
  }
}

void setup() {
  Serial.begin(115200);
  pinMode(LEDPIN, OUTPUT);
  netpie.onMessage(onMsg);
  netpie.begin();
  netpie.subMsg("led");
}

void loop() {
  netpie.loop();

  // ส่งค่าจำลองอุณหภูมิและความชื้นทุก 5 วิ
  static unsigned long last = 0;
  if (millis() - last > 5000) {
    last = millis();
    float temperature = random(250, 350) / 10.0; // 25.0 - 35.0°C
    float humidity = random(400, 800) / 10.0;    // 40.0 - 80.0%
    netpie.shadowSet("temperature", temperature);
    netpie.shadowSet("humidity", humidity);
    Serial.printf("[Publish] Temp: %.1f°C  Hum: %.1f%%\n", temperature, humidity);
  }
}

🧠 วิธีใช้งานบน NETPIE

  1. ไปที่ https://netpie.io/

  2. สร้าง device แล้วนำ

    • Client ID
    • Token
    • Secret (ใช้เป็น MQTT username)
  3. ใส่ค่าเหล่านี้ในโค้ด

  4. อัปโหลดลง ESP32

  5. เปิด Serial Monitor → ดูผลลัพธ์

  6. ทดสอบสั่งเปิดไฟ:

    • Topic: @msg/led
    • Message: "on" หรือ "off"

📡 ฟังก์ชันที่มีในไลบรารี

ฟังก์ชัน รายละเอียด
begin() เชื่อมต่อ WiFi + ตั้งค่า MQTT
loop() เรียกใน loop() เพื่อคงการเชื่อมต่อ
onMessage(handler) ตั้ง callback เมื่อมีข้อความเข้า
sub(topic) subscribe topic เอง
subMsg("led") subscribe @msg/led
pub(topic, msg) publish ข้อความเอง
pubMsg("led", "on") publish ไปที่ @msg/led
shadowSet(key, value) ส่ง key-value ขึ้น Shadow อัตโนมัติ
connected() เช็คสถานะการเชื่อมต่อ MQTT

🧩 ตัวอย่างการส่งข้อมูลเพิ่มเติม

netpie.shadowSet("temperature", 28.5);
netpie.shadowSet("humidity", 60.2);
netpie.pubMsg("notify", "Temperature high!");

🧰 Dependencies


📄 License

MIT License สร้างโดย Phoovadet NoobDev

About

ไลบรารี NETPIE (MQTT) สำหรับบอร์ด ESP32 ช่วยให้คุณเชื่อมต่อ WiFi, สื่อสารกับ NETPIE, และอัปเดต shadow / เปิด-ปิดอุปกรณ์ ได้อย่างง่ายสุด ๆ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages