กลับไปหน้ารวมไฟล์
connected-weather-station-with-esp32-bac841.md

ในบทเรียนนี้ น้องจะได้เรียนรู้วิธีสร้างสถานีตรวจอากาศด้วย ESP32 และวิธีติดตามค่าต่างๆ จากระยะไกลผ่านแอป Blynk และเว็บไซต์ สถานีนี้ไม่ใช่แค่วัดข้อมูลสิ่งแวดล้อมแบบเรียลไทม์ แต่ยังส่งข้อมูลขึ้นคลาวด์ให้เราดูได้จากที่ไหนในโลกก็ได้

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

หัวใจของโปรเจคนี้คือการเอาไมโครคอนโทรลเลอร์ที่มี Wi-Fi ในตัวมาทำงานร่วมกับเซ็นเซอร์ประสิทธิภาพสูง

  1. บอร์ดพัฒนา ESP32: ไมโครคอนโทรลเลอร์ 32 บิตที่มี Wi-Fi และ Bluetooth ในตัว เหมาะสุดๆ สำหรับงาน IoT
  2. เซ็นเซอร์ DHT11: ใช้สำหรับวัดอุณหภูมิและความชื้นสัมพัทธ์ในอากาศ
  3. เซ็นเซอร์วัดแสง (LDR): ตัวต้านทานที่ไวต่อแสง ใช้วัดความเข้มของแสง
  4. ตัวต้านทาน 10k Ohm: สำหรับสร้างวงจรแบ่งแรงดัน (Voltage Divider) ร่วมกับ LDR
  5. เซ็นเซอร์ CJMCU CCS811: เซ็นเซอร์คุณภาพอากาศขั้นสูง (Digital Gas Sensor) สำหรับตรวจจับค่าคาร์บอนไดออกไซด์เทียบเท่า (eCO2) และสารประกอบอินทรีย์ระเหยง่ายทั้งหมด (TVOC)
  6. สายจัมเปอร์: สำหรับต่อวงจร
  7. เบรดบอร์ดหรือ PCB: สำหรับทำโปรโตไทป์หรือบัดกรีสำหรับการประกอบถาวร
  8. สาย USB: สำหรับจ่ายไฟและอัพโหลดโปรแกรม

ขั้นตอนที่ 1: ตั้งค่าสถานีตรวจอากาศ

การเชื่อมต่อเซ็นเซอร์แต่ละตัวใช้โปรโตคอลการสื่อสารที่ต่างกัน ทั้งแบบ Analog, Digital และ I2C เพื่อให้ ESP32 ประมวลผลข้อมูลได้แม่นยำ

ต่อสายอุปกรณ์กันเลย

เชื่อมต่อเซ็นเซอร์ตามนี้จ้า:

เซ็นเซอร์วัดแสง (LDR):

  • ใช้หลักการแบ่งแรงดัน (Voltage Divider) ต่อขา LDR ข้างหนึ่งไปที่ 3.3V และอีกขาต่อกับ ตัวต้านทาน 10k Ohm ที่เชื่อมกับ GND
  • จุดต่อระหว่าง LDR กับตัวต้านทาน ให้ต่อเข้ากับขา D34 ของ ESP32 (ซึ่งเป็นขา Analog Input) เพื่ออ่านค่าแรงดันที่เปลี่ยนไปตามความเข้มแสง

CJMCU CCS811 (เซ็นเซอร์วัดคุณภาพอากาศ):

  • เชื่อมต่อผ่านโปรโตคอล I2C:
    • 3V3.3V บนบอร์ด ESP32
    • GNDGND
    • SDA → ขา D21 บน ESP32
    • SCL → ขา D22 บน ESP32
    • WAKEGND (เพื่อให้เซ็นเซอร์ทำงานต่อเนื่อง)

DHT11 (เซ็นเซอร์วัดอุณหภูมิและความชื้น):

  • GNDGND บน ESP32
  • VCC3.3V บน ESP32
  • OUTD15 บน ESP32 (หมายเหตุ: ใช้ขา Digital สำหรับการส่งข้อมูลแบบ single-bus)

ขั้นตอนที่ 2: อัพโหลดโค้ดลงบอร์ด ESP32

ในขั้นตอนนี้ เราจะใช้ Arduino IDE ในการเขียนโปรแกรมเพื่ออ่านค่าจากเซ็นเซอร์ต่างๆ

ขั้นตอนการทำงาน:

  1. เปิดโปรแกรม Arduino IDE
  2. เลือกบอร์ด ESP32 ของคุณจากเมนู Tools > Board (เช่น ESP32 Dev Module)
  3. ตรวจสอบให้แน่ใจว่าเลือก Port ที่ถูกต้องแล้ว
  4. อัพโหลดโค้ดตัวอย่างลงบนบอร์ด

วิเคราะห์การทำงานของโค้ด: โปรแกรมจะเริ่มต้นเซ็นเซอร์ CCS811 ผ่าน I2C และตั้งค่า DHT11 ให้อยู่ในสถานะพร้อม ในส่วน loop() บอร์ดจะอ่านค่าอะนาล็อกจากขา D34 เพื่อคำนวณความเข้มแสง และอ่านค่าดิจิทัลจาก DHT11 และ CCS811 ถ้าน้องเปิด Serial Monitor (ตั้งค่า Baud Rate เป็น 9600) ก็จะเห็นค่าที่เซ็นเซอร์ต่างๆ อ่านได้ เพื่อตรวจสอบข้อมูลเบื้องต้น

ขั้นตอนที่ 3: ตรวจสอบสถานีอากาศจากระยะไกลผ่านแอป Blynk

Blynk เป็นแพลตฟอร์ม IoT ที่ทำให้เราสามารถตรวจสอบค่าจากสถานีอากาศของเราได้จากระยะไกล ผ่านมือถือ ไม่ว่าจะอยู่ห่างกันแค่ไหนก็ตาม สิ่งที่ต้องมีก็แค่แอป Blynk กับอินเทอร์เน็ตเท่านั้น ในโปรเจกต์นี้เราจะเรียนรู้วิธีตรวจสอบค่าจากเซ็นเซอร์ LDR และ DHT11 เท่านั้นนะ

ตั้งค่าแอปพลิเคชัน Blynk:

สร้างโปรเจกต์ใหม่ในแอป Blynk: หลังจากดาวน์โหลดแอปและล็อกอินเข้าบัญชีแล้ว ให้เริ่มต้นด้วยการสร้างโปรเจกต์ใหม่

เลือกฮาร์ดแวร์: เลือกรุ่นฮาร์ดแวร์ที่ใช้ ถ้าทำตามบทความนี้ก็คงใช้บอร์ด ESP32 อยู่แล้ว

Auth Token: Auth Token คือรหัสประจำตัวที่ไม่ซ้ำใคร ใช้เชื่อมต่อฮาร์ดแวร์กับสมาร์ทโฟนของคุณ ทุกโปรเจกต์ใหม่จะมี Auth Token เป็นของตัวเอง คุณจะได้รับ Token นี้หลังจากสร้างโปรเจกต์เสร็จ คลิกที่ส่วน Devices และเลือกอุปกรณ์ที่ต้องการ ก็จะเห็น Token แล้ว Token ตัวนี้ทำหน้าที่เหมือน "กุญแจ" ที่อนุญาตให้บอร์ด ESP32 เชื่อมต่อกับแอปได้

ตั้งค่าแอป Blynk / ออกแบบแดชบอร์ด: น้องจะต้องสร้างโปรเจกต์บน Blynk สำหรับตรวจสอบพารามิเตอร์ต่างๆ เพิ่มวิดเจ็ต Value Display 3 ตัว และตั้งค่าทีละตัว:

  • ตัวแรกจะรับอินพุตเป็น V6 (สำหรับแสดงความชื้น)
  • ตัวที่สอง V5 (สำหรับแสดงอุณหภูมิ)
  • ตัวที่สาม V0 (สำหรับแสดงความเข้มแสง) น้องจะสังเกตว่าทั้งหมดถูกตั้งค่าเป็นโหมด Push เพื่อให้บอร์ดส่งข้อมูลตามช่วงเวลาที่กำหนด

โปรแกรมบอร์ด ESP32 สำหรับเชื่อมต่อคลาวด์: เปิด Arduino IDE และเปิดโปรแกรมตัวอย่าง เลือกบอร์ดที่ใช้จากเมนู Tools พร้อมทั้งเลือก Port ที่ถูกต้อง แล้วอัพโหลดโค้ด

ตรรกะของโค้ด Blynk: โค้ดนี้ใช้ไลบรารี BlynkSimpleEsp32.h น้องต้องกรอกชื่อไวไฟ (SSID), รหัสผ่าน และ Auth Token ที่ได้รับลงไป ฟังก์ชันต่างๆ เช่น Blynk.virtualWrite(V5, temperature) จะถูกเรียกใช้เพื่อส่งค่าจากเซ็นเซอร์บน ESP32 ไปยัง Blynk Server

ถ้าอัพโหลดสำเร็จ น้องจะเห็นข้อความยืนยันการเชื่อมต่อจาก Blynk บน Serial Monitor และข้อมูลสภาพอากาศจะโผล่มาให้เห็นบนมือถืออย่างต่อเนื่องเลย!

คู่มือนี้เป็นส่วนหนึ่งของโครงการ DEEDU ซึ่งได้รับเงินสนับสนุนร่วมจากโครงการ Erasmus + ของคณะกรรมาธิการยุโรป หมายเลขโครงการ: 2018-1-FR02-KA205-014144.

เนื้อหาในสิ่งพิมพ์นี้ไม่สะท้อนความคิดเห็นอย่างเป็นทางการของสหภาพยุโรป ความรับผิดชอบต่อข้อมูลและมุมมองที่แสดงอยู่ในนี้เป็นของผู้เขียนเท่านั้น

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
  - "1x Blynk"
author: "EDUcentrum"
category: ""
components:
  - "1x 10 Kohm resistor"
  - "1x ESP32 board"
  - "1x Jumper wires (generic)"
  - "1x DHT11 Temperature & Humidity Sensor (4 pins)"
  - "1x CJMCU CCS811 sensor"
  - "2x Breadboard (generic)"
  - "1x Light sensor"
description: "งานนี้จะพาน้องๆ มาสร้างสถานีตรวจอากาศเทพๆ ด้วย ESP32 กัน เรียนรู้อะไรตึงๆ ตั้งแต่เซตอัพเซนเซอร์ จนถึงการดึงข้อมูลไปแสดงผลบนแอป Blynk แบบเรียลไทม์ งานง่ายแต่หล่อมาก!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX19jTHrV2eHya7Rrqas91Is0hNVbRNfNYuOmuFV2U9pArnA7Os3DEJkSK8Kiikg4M/m6Kres0oM0lqsA/5ZvfmHrV045tJP8SHU="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/connected-weather-station-with-esp32-bac841_cover.jpg"
lang: "en"
likes: 0
passwordHash: "d416f06a34da41cc09438bfde1bab72ef05739cbe1fce43230e68ff04e911302"
price: 2450
seoDescription: "Build an ESP32 Weather Station and monitor data remotely via Blynk app. Step-by-step tutorial for your DIY connected project."
tags:
  - "weather"
  - "environmental sensing"
  - "monitoring"
title: "สถานีตรวจอากาศสุดตึง เชื่อมต่อ ESP32 วัยรุ่นจัดเต็ม!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/IKgXfvrhloc"
views: 5850